IPv4 协议详解:从头部结构到数据包接收处理
1. IPv4 头部结构
IPv4 头部包含了内核网络栈处理数据包所需的信息,如使用的协议、源地址和目的地址、校验和、用于分片的标识(id)、避免数据包因错误而无限转发的生存时间(ttl)等。这些信息存储在 IPv4 头部的 13 个成员中(第 14 个成员 IP 选项是可选的)。
IPv4 头部由 iphdr 结构体表示,其代码如下:
struct iphdr {
#if defined(__LITTLE_ENDIAN_BITFIELD)
__u8 ihl:4,
version:4;
#elif defined (__BIG_ENDIAN_BITFIELD)
__u8 version:4,
ihl:4;
#else
#error "Please fix <asm/byteorder.h>"
#endif
__u8 tos;
__be16 tot_len;
__be16 id;
__be16 frag_off;
__u8 ttl;
__u8 protocol;
__sum16 check;
__be32 saddr;
__be32 daddr;
/*The options start here. */
};
下
超级会员免费看
订阅专栏 解锁全文
6911

被折叠的 条评论
为什么被折叠?



