IPV6报头结构

IPV6报头结构

在这里插入图片描述

** 字段作用

版本(Version)
版本字段用来表示IP版本,占4位,对应值为6(0110)。

通信分类(Traffic Class)
通信分类字段用来标识对应IPv6的通信流类别,或者说是优先级别,占8位,类似于IPv4中的ToS(服务类型)字段。

流标签(Flow Label)
流标签字段时IPv6数据报中新增的一个字段,占20位,可用来标记报文的数据流类型,以便在网络层区分不同的报文。流标签字段有源节点分配,通过流标签、源地址、目的地址三元组方式就可以唯一标识一条通信流,而不用像IPv4那样需要使用五元组方式(源地址、目的地址、源端口、目的端口和传输层协议号)。这样发动的最大好处有两点:一是流标签可以和任意的关联,需要标识不同类型的流(可以是非五元组)时,无需对流标签做改动;二是流标签在IPv6基本头中,使用IPSec时此域对转发路由器可见,因此转发路由器可以在使用IPv6报文IPSec的情况下仍然可以通过三元组(流标签、源地址、目的地址)针对特定的流进行QoS(质量服务)处理。

有效载荷长度(PayLoad Length)
有效载荷长度字段是以字节为单位的标识IPv6数据报中有效载荷部分(包括所有扩展报头部分)的总长度,也就是除了IPv6的基本报头以外的其他部分的总长度,占20位。

下一个头部(Next Header)
指明跟在IPV6报头后面的报头。(扩展头部或传输层协议头部),占8位。每种扩展报头都有其对应的值。
下一个头部字段内定义的扩展报头类型与IPv4中的协议字段值类似,但在IPv6数据报中,紧接着IPv6报头的可能不是上层协议头部(当没有扩展报头或者为最后一个扩展报头时才是上层协议头),而是IPv6扩展报头。
后面Next Header的值(常用到的):
1 逐跳头 0 针对路由器的一条来命令
2 目标选项头 60 针对目的主机的一条命令
3 路由头 43 类似于IPv4的松散路由
4 分段头 44 处理分段事宜,与IPv4很类似
5 认证头 51 让包接收方确定包发送方的身份
6 加密头 50 有关加密的信息自
7 UDP 17
8 TCP 6

跳数限制(Hop Limit)
跳数限制于IPv4报文中的TTL字段类似,指定了报文可以有效转发的次数,占8位。报文每经过一个路由器结点,跳数值就减1,当此字段值减到0时,则直接丢弃该报文。

源地址(Source IP Address)
源IP地址字段标识了发送该IPv6报文源节点的IPv6地址,占128位。

目的IP地址(Destination IP Address)
目的IP地址字段标识了IPv6报文的接受节点的IPv6地址,占128位。

结构体定义
typedef struct _ipv6_addr
{
union
{
uint8_t __u6_addr8[16];
uint16_t __u6_addr16[8];
uint32_t __u6_addr32[4];
} __in6_u;
}ipv6_addr;
typedef struct _IP6Hdr
{
uint32_t ip6_version:4;
uint32_t ip6_priority:8;
uint32_t ip6_flow_lbl:20;
uint16_t ip6_payload_len; /* PayLoad Length /
uint8_t ip6_nexthdr; /
Next Header /
uint8_t ip6_hop_limit; /
Hop Limit */
ipv6_addr ipv6_Saddr;
ipv6_addr ipv6_Daddr;
} IP6Hdr;

typedef struct _IP6ExtenHdr
{
uint8_t Ex_Next_Hdr;
uint8_t Ex_Hdr_len;
uint16_t reserve16;
uint32_t reserve32;

}IP6ExtenHdr;

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值