在C/C++语言中,为了处理报文数据,就会定义各种各有的协议结构体,这一来,又进一步强化了对每个字段的理解,因为它不再是书本上一个简单的字段名字,它变成了我代码结构体中一个实实在在存在的成员变量。
typedef struct _ip_hdr { #if LITTLE_ENDIAN unsigned char ihl:4; //首部长度 unsigned char version:4, //版本 #else unsigned char version:4, //版本 unsigned char ihl:4; //首部长度 #endif unsigned char tos; //服务类型 unsigned short tot_len; //总长度 unsigned short id; //标志 unsigned short frag_off; //分片偏移 unsigned char ttl; //生存时间 unsigned char protocol; //协议 unsigned short chk_sum; //检验和 struct in_addr srcaddr; //源IP地址 struct in_addr dstaddr; //目的IP地址 }ip_hdr;