version:版本号,值为6,与ipv4作用相同。4bit
Traffic class:流分类,相当于ipv4的TOS字段,用于qos,表示报文的类或者优先级。8bit
Flow label:流标签,用于区分实时流量。标签+源地址可以确定一条唯一的数据流。20bit
Payload length:载荷长度,即包头以后的部分,data的长度。16bit
Next header:下一个报头,相当于ipv4中的protocal字段,标识了上层协议类型。8bit
Hop limit:相当于ipv4中的ttl。8bit
Source address:源ipv6地址。128bit
Destination address:目的ipv6地址。128bit
二、ipv6与ipv4相比较
1.相似部分
version相同,用于描述当前ip报文的版本。
ipv4的TOS字段与ipv6的traffic class字段都是用于QOS
对于ipv4来说,ip包头长度不固定,option字段变长,数据长度=总长-头部长度
对于ipv6来说,ip包头长度固定为40字节,所以包头中只需要payload length
ipv4的上层协议标识protocal等同于ipv6的next header字段
ipv4的ttl等同于ipv6的hop limit
2.不同部分
ipv6删除了ID,headlength,flags,片偏移,option,校验
对于ipv4来说,ID号,flags,片偏移用于分片,导致了:
1.数据报文没有分片的话,这三个字段没有意义,占用了一部分的空间,导致了承载数据的部分减小,影响了整体转发的效率。
2.如果报文产生分片的话,只有目的设备需要进行重组,而中间设备不需要重组,但是依旧需要读取这三个字段,导致转发效率低下。
对于ipv6来说,重新定义了分片的处理机制
1.ipv6只允许源节点对报文进行分片,中间节点只转发数据,不允许分片,也不需要读取分片。
2.ipv6分片后,会产生扩展包头,中间节点只读取和转发基本包头,目的节点通过扩展包头来实现报文的重组。
在ipv6中没有option字段,报文头部固定为40字节,设备处理更高效。option功能由ipv6的扩展包头提供。
对于ipv4:二层,四层已经存在校验,网络层也有头部校验,由于转发时ttl会改变,checksum每经过一跳都要重新计算,效率低下。
对于ipv6:删除了网络层的校验字段,数据包的校验交由数据链路层和传输层操作。
3.ipv6新增部分
ipv6新增了流标签
对于ipv4,需要通过五元组确定一条唯一的流,比如负载分担时,本身只看ip包头进行转发,由于需要确定一条唯一的流,还要读取传输层的信息,导致转发效率低下。
对于ipv6,可以用流标签+源ip确定一条唯一的流,不用看传输层,转发效率提高,并且方便于QOS的实现,区分能力更强。
三、ipv6扩展报头
1.扩展报头的作用与option类似,只有当需要该功能时,报文的发送者才会添加扩展报头,nextheader为8bit,用于指明下一个扩展报头或上层协议,由最后一个nextheader来指明上层协议。
2.扩展报头种类 RFC1883定义以下列顺序出现
逐跳选项报头:0 如果传输路径上的中间设备读取或实现某项功能,则携带该扩展报头,放在首位便于沿途路由器发现。应用:巨型载荷,路由器提示,资源预留RSVP(传输时预留带宽)
目的选项报头:60 源节点指定的路由器才会处理该报头,携带了目的节点才会处理的信息,应用:移动ipv6
路由报头:43 源指定该报文在传输时经过的路由器
分段报头:44
认证报头:51 也称ah,由ipsec使用,提供认证,数据完整性,重放保护,还可以对ipv6基本报头的一些字段进行保护。
封装安全净载报头:50,作用类似认证报头们提供esp认证
目的选项报头:60 只有目的节点处理该报头
3.扩展报头的好处:
1.转发能力强
对于ipv4来说,报头长度不固定,包括option一共60字节,数据转发的过程中,中间节点都需要读取option的内容,而有些功能只需要目的节点识别,导致转发效率低下。
对于ipv6来说,将option字段的功能放到扩展报头,沿途设备查看next header字段就可以识别扩展报头的作用,如果本身不需要处理,则只读取基本报头进行转发。
2.扩展能力强
对于ipv4来说,报头长度最多60字节,不便于日后扩展
对于ipv6来说,扩展报头没有大小限制,但是必须是8字节的倍数,不够的部分补0,而且不超过mtu