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;