LWIP中的网络头--数据结构(总结)


1 在etharp.h中有MAC地址结构体
2 
3 struct eth_addr
4 {
5   u8_t addr[6];                //6字节的MAC地址
8 } PACK_STRUCT_STRUCT;
 
1 在etharp.h中有以太网头的数据结构体
2 
3 struct eth_hdr {
4   struct eth_addr dest;         //以太网目的地址
5   struct eth_addr src;          //以太网源地址
6   u16_t type;                   //帧类型
7 } PACK_STRUCT_STRUCT;
 1 在ip.h中ip头结构体
 2 
 3 struct ip_hdr {
 4     u16_t  _v_hl_tos;                 //版本号、首部长度、服务类型
 5     u16_t  _len;                      //总长度
 6     u16_t  _id;                       //标识
 7     u16_t  _offset;                   //分片偏移量
 8 #define IP_RF 0x8000                  //标志位第一位(保留位)掩码
 9 #define IP_DF 0x4000                  //标志位第二位(不分片标志)掩码
10 #define IP_MF 0x2000                  //标志位第三位(更多分片位)掩码 
11 #define IP_OFFMASK 0x1fff             //13位片偏移字段的掩码
12      u16_t  _ttl_proto;               //生存时间
13      u16_t _chksum;                   //首部校验和
14      struct ip_addr src;              //源IP地址
15      struct ip_addr dest;             //目的IP地址 
16 } PACK_STRUCT_STRUCT;

 

 1 在tcp.h中的tcp头结构体
 2 struct tcp_hdr {
 3   u16_t src;                        //源端口号
 4   u16_t dest;                       //目的端口号
 5   u32_t seqno;                      //序号
 6   u32_t ackno;                      //确认序号
 7   u16_t _hdrlen_rsvd_flags;         //首部长度、保留、标志位
 8   u16_t wnd;                        //窗口大小
 9   u16_t chksum;                     //校验和
10   u16_t urgp;                       //紧急指针
11 } PACK_STRUCT_STRUCT;
1 在udp.h中udp头结构体
2 
3 struct udp_hdr {
4   u16_t src;              //源端口号
5   u16_t dest;             //目的端口号  
6   u16_t len;              //长度
7   u16_t chksum;           //校验和
8 } PACK_STRUCT_STRUCT;

 

posted @ 2016-01-14 17:12  Iamchritian  阅读(1023)  评论(0编辑  收藏  举报