几个常用且重要的网络数据结构
来源:互联网 发布:磁性自瞄源码 原理 编辑:程序博客网 时间:2024/04/29 22:38
当接收到原始数据包后,为了不用指针定位所需要的字段,LINUX其实定义好了几个常用的结构。暂时先记录下来。
1,IP数据包的分析: #include <netinet/ip.h>
struct
#if
#endif
#if
#endif
#define
#define
#define
#define
2,ICMP 数据包的分析:#include <netinet/ip_icmp.h>
struct icmp
{
char icmp_type;
char icmp_code;
unsigned short icmp_cksum;
unsigned short icmp_id;
unsigned short icmp_seq;
char icmp_data[20];
};
TCP数据包分析: #include <netinet/tcp.h>
struct tcphdr
{
u_int16_t source;
u_int16_t dest;
u_int32_t seq;
u_int32_t ack_seq;
# if __BYTE_ORDER == __LITTLE_ENDIAN
u_int16_t res1:4;
u_int16_t doff:4;
u_int16_t fin:1;
u_int16_t syn:1;
u_int16_t rst:1;
u_int16_t psh:1;
u_int16_t ack:1;
u_int16_t urg:1;
u_int16_t res2:2;
# elif __BYTE_ORDER == __BIG_ENDIAN
u_int16_t doff:4;
u_int16_t res1:4;
u_int16_t res2:2;
u_int16_t urg:1;
u_int16_t ack:1;
u_int16_t psh:1;
u_int16_t rst:1;
u_int16_t syn:1;
u_int16_t fin:1;
# else
# error "Adjust your <bits/endian.h> defines"
# endif
u_int16_t window;
u_int16_t check;
u_int16_t urg_ptr;
};
UDP数据包分析: #include<netinet/udp.h>
struct udphdr
{
u_int16_t source;
u_int16_t dest;
u_int16_t len;
u_int16_t check;
};
- 几个常用且重要的网络数据结构
- 四个常用且重要的数据结构
- 几个重要的数据结构
- 几个linux网络编程常用的数据结构
- 几个网络编程常用的数据结构
- 几个网络编程常用的数据结构
- SharePoint 几个重要且好玩的JS函数 一
- sk_buff有关的几个重要的数据结构
- Linux内核--网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
- Linux内核--网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
- 网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
- Linux内核--网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
- Linux内核--网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
- uboot几个重要数据结构
- 几个常用的、重要的网络命令!(ping,Tracert ,winipcfg等)
- 网络中几个重要的结构体
- 几个重要的网络结构体
- 常用网络术语 && HTTP协议的几个重要概念 && HTTPS传输协议
- 文件
- HDOJ 题目1059Dividing(多重背包,母函数优化)
- Linux修改MAC地址
- Windows下实现Mysql数据库版本更换、数据迁移
- 并发对象池的实现过程
- 几个常用且重要的网络数据结构
- js 闭包作用
- LeetCode Solutions : N-Queens
- 博客积分无上限、
- 最小生成树---------prim算法
- Java UUID
- zookeeper HA 实现主备切换
- 九度OJ-1010-A+B
- HDU 4305 Lightning