这段时间在做ipv6数据包转发,了解了下ipv6协议。
ipv6头部:
- struct in6_addr {
- union {
- __u8 u6_addr8[16];
- __be16 u6_addr16[8];
- __be32 u6_addr32[4];
- } in6_u;
- #define s6_addr in6_u.u6_addr8
- #define s6_addr16 in6_u.u6_addr16
- #define s6_addr32 in6_u.u6_addr32
- };
- struct ipv6hdr {
- #if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 priority:4,
- version:4;
- #else
- __u8 version:4,
- priority:4;
- #endif
- __u8 flow_lbl[3];
- __be16 payload_len;
- __u8 nexthdr;
- __u8 hop_limit;
- struct in6_addr saddr;
- struct in6_addr daddr;
- };
ipv6地址为16字节;payload_len标示负载长度,不包括ipv6头部;nexthdr标示紧接着ipv6头部数据包类型。hop_limit相当于ipv4的ttl;version为6;
阅读(3186) | 评论(0) | 转发(0) |