IPv6的报头结构以及与IPv4的比较

网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息 。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等 。当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段 。虽然IPv6报头的字节长度两倍于IPv6报头(40个字节与20个字节),但IPv6拥有简化的报头结构 。IPv6报头有8个字段,IPv4则有14个 。IPv6丢弃及改用了IPv4报头字段中的几个,从而使包处理更有效率 。
下面比较一下两种报头 。Version(版本)字段在两种协议中没有变化 。IPv6丢弃了IPv4的Internet Header Length(因特网报头长度)、Type of Service(服务类型)、Identification(识别)、Flags(标志)、Fragment Offset(分片偏移量)和Header Checksum(报头校验和)字段 。Total Lenght(总长度)、Time to Live(生存时间)和Protocol(协议)字段在IPv6中有了新名字,功能稍微进行了重新定义 。IPv4中的Option(选项)字段已从报头中消失,改为Extension(扩展)功能 。最后,IPv6加入了两个新字段:Traffic Class(流量类别)和Flow Label(流标记) 。分别介绍一下IPv6包的每个报头字段 。
Version:Version字段的长度仍是4位,它指明了协议版本号 。
Traffic Class:这个8位字段可以为包赋予不同的类别或优先级 。它类似IPv4的Type of Service字段,为差异化服务留有余地 。
Flow Label:Flow Label字段是IPv6的新增字段 。源节点使用这个20位字段,为特定序列的包请求特殊处理(效果好于尽力转发) 。实时数据传输如语音和视频可以使用Flow Label字段以确保QoS 。
Payload Length:这个16位字段表明了有效载荷长度 。与IPv4包中的Total Length字段不同,这个字段的值并未算上IPv6的40位报头 。计算的只是报头后面的扩展和数据部分的长度 。因为该字段长16位,所以能表示高达64KB的数据有效载荷 。如果有效载荷更大,则由超大包(jumbogram)扩展部分表示 。
Next Header:这个8位字段类似IPv4中的Protocol字段,但有些差异 。在IPv4包中,传输层报头如TCP或UDP始终跟在IP报头后面 。在IPv6中,扩展部分可以插在IP报头和传输层报头当中 。这类扩展部分包括验证、加密和分片功能 。Next Header字段表明了传输层报头或扩展部分是否跟在IPv6报头后面 。
Hop Limit:这个8位代替了IPv4中的TTL字段 。它在经过规定数量的路由段后会将包丢弃,从而防止了包被永远转发 。包经过一个路由器,Hop Limit字段的值就减少一个 。IPv4使用了时值(time value),每经过一个路由段就从TTL字段减去一秒 。IPv6用段值(hop value)换掉了时值 。
Source Address:该字段指明了始发主机的起始地址,其长度为128位 。
Destination Address:该字段指明了传输信号的目标地址,其长度为128位 。
网络人员可能会惊讶地发现校验和与分片字段从IPv6的报头当中消失了 。丢弃包的报头校验和是为了提高路由效率 。虽然包报头仍有可能出现错误,新协议的设计人员却认为这种风险可以接受,尤其是考虑到IP层的上下层:数据链路层和传输层会检查错误 。
至于分片,IPv6确实允许对包进行分割,但这过程在报头的扩展部分而不是报头本身进行 。此外,IPv6包只能由源节点进行分割、目标节点进行重新组装:不允许路由器介入进来对包进行分割或重新组装 。这种分片特性的目的在于降低传输中的处理开销,而且假定如今网络的帧大小足够大,大多数包不需要分片 。
如果非要分割IPv6包,源节点就会确定每条链路的最大传输单元(MTU) 。一种办法就是,向目标地址发送一个测试包 。如果测试包对某条链路来说太大,链路就返还一个因特网控制消息协议(ICMP)消息给源节点,源节点就相应减小包大小 。
实现分片及其它选项功能的扩展机制是IPv6重新设计的一个重要特性 。它取代了IPv4的Options字段,这就增强了IPv4包的安全功能,并且丰富了源路由选择 。
设计师不是把这种增强的功能添加到IPv6报头当中,而是设计了可插在IP报头和较高层协议报头之间的扩展部分 。这使没有扩展部分的包处理起来更快,还提供了一系列可扩充选项,如加密、验证、分片、源路由、段和目标选项等 。正如前文所述,这些扩展部分计算在包总的有效载荷长度里面 。

IPv6的报头结构以及与IPv4的比较

文章插图
【IPv6的报头结构以及与IPv4的比较】

    推荐阅读