IPv6报文格式浅析

2013-04-29 00:44尚建贞
无线互联科技 2013年6期

尚建贞

摘 要:文章论述了IPv6基本报头的格式,以及所包含的8个域的定义以及功能。同时,对6个扩展报头和完整的IPv6数据报文格式也进行了说明。

关键词:IPv6;报文格式;基本报头;扩展报头

1 引言

随着计算机网络特别是Internet的飞速发展,目前基于IPv4的互联网在实际运行中暴露出越来越多的不足和缺憾,例如:网络安全性差,服务质量低下,地址空间规划不合理等。这些问题严重制约着当代互联网的进一步发展,现行的网络层协议IPv4无法从根本上解决这些问题,于是一种全新的网络层协议IPv6应运而生。

2 IPv6报文格式

IPv6数据包的基本报头长度固定为40个字节,其格式如图2.1。基本包头包括8个域,去掉了IPv4报头中所有的可选项。

所包含的8个域简要介绍如下:

(1)版本Version(4bits):表示与数据包对应的IP协议的版本号,IPv4的版本号为4,IPv6的版本号固定为6;

(2)业务流类别Traffic Class(8bits):或者称为数据包优先级(Packet priority),可以赋予数据包不同的优先级,提供不同的服务,主要用于实时类的数据传输如音频视频等,有助于提升QoS,该字段用以代替IPv4中的TOS(Type of Server)字段。RFC2460文档中对该字段进行定义。

(3)流标签Flow Label(20bits):是IPv6的新增字段,源节点用此字段识别同一个流的数据包。源地址和一个非0的Flow Label可以标识同一个流的数据包。源节点和同一个目的节点可以同时存在多个活动的流业务,并且互不干涉。网络上的IPv6路由器要给与属于同一个流的数据包同样的资源分配,提供同样的服务质量(QoS)。

(4)净荷长度Payload Length(16bits) :此字段标明除去基本首部外数据包的总长度,包括所有的扩展报头和上层PDU数据所占的字节数。因为该字段是16bits,所以最多可以表示64KB的长度,如果实际净荷超过这个数值,则该字段置“0”,需要使用扩展头部的逐跳选项首部(Hop-by-Hop Options Header)中的巨量净荷选项。

(5)下一首部Next Header(8bits):形成一个扩展首部链。它类似于IPv4里面的“协议字段”或“可选字段”,这是IPv6对IPv4协议的一个重要改进,将IPv4报头的可选字段摒弃,放到扩展报头里面。该字段标明此IPv6数据包是否包含扩展首部。字段的不同取值所代表的协议。

(6)跳数限制Hop Limit(8bits):该字段代替IPv4协议的TTL字段。但此字段不再以秒为单位,而是以路由器之间转发的“跳”为单位;此字段初始值设置为128,当某节点对此数据包进行一次转发后,字段的值就减1,当路由器检测到此字段为0时则放弃处理,数据包自动丢弃。

(7)源地址(source address),128位:标识发送数据包的源节点的IPv6地址。

(8)目的地址(destination address),128位:标识接收数据包的目的节点的IPv6地址。

IPv6协议在设计的时候就摒弃了IPv4中的选项字段,使用扩展报头的方法来满足不同数据包的特殊要求。IPv6的基本报头和他的载荷数据之间可以存在一个或者多个扩展报头。一般情况下,一个典型的IPv6数据包是没有扩展报头的,如果需要目的节点或者中间的路由器做某些特殊处理的时候,发送方的源节点才会添加一个或者多个扩展报头。而且,IPv6协议中扩展报头的长度是任意的,不像IPv4中,有40个字节的限制;但是为了提高节点对报头的处理效率,扩展报头的长度总是八字节长度的整数倍。

在RFC2460中,定义了6个IPv6的扩展报头:

(1)逐跳选项首部(Hop-by-Hop Options Header),数字标识为59;主要定义路由器逐跳处理时所需要的一些特殊选项,包括数据包在网络传输的过程中,路由器所必须检查和处理的一些特殊的参数选项。

(2)目的选项首部(Destination Options Header),数字标识为60;提供目的节点信息,用于表示由最终目的节点或者中间目的节点检查的信息。如果扩展头部中包含源路由选择首部,那么链路中所有的中间处理路由器都要对数据包的这个首部进行处理,如果扩展头部不包含此选项,则只有目的节点才对这些选项进行处理。

(3)源路由选择首部(Routing Header),标识为43;提供路由扩展功能。可以控制分组在网络上的传输路径,指明数据包从源节点到目的节点所要经过的路径。

(4)分片首部(Fragment Header),数字标识为44;包括数据包分段和重组的信息。当数据包的长度大于物理网络的MTU(Maximum Transmission Unit,最大传输单元)时,源节点需要对数据包进行分段传输,并在这个头部提供数据包重组的信息。IPv6协议中的分段与IPv4的分段重组有着的本质区别:在IPv6协议机制中,所有的路由器不负责对超长度的数据包进行拆分;只有发送端的源节点才负责数据包的分段工作;IPv6通过MTU发现技术,保证数据包与网络最大传输单元的匹配。

(5)认证首部(AH:Authentication Header),数字标识为51;保证分组的完整性,提供源节点的身份认证服务和反重播保护;但认证首部不对数据进行加密,需要数据加密的数据包,可以结合ESP首部使用。

(6)封装安全载荷首部(ESP:Encapsulating Security Payload Header),数字标识为50;提供网络层的加密功能,保证数据的安全性和一致性。

不带扩展首部的IPv6数据包,只包含一个基本头部和数据,格式如图2.2:

带一个路由选项首部的IPv6分组的格式如图2.3:

带两个扩展报头(路由选项首部,分段首部)的IPv6分组格式如图2.4:

一个完整的IPv6分组可以包含多个扩展首部,但这些扩展首部只能在一个数据包中出现一次。但有一个例外:如果分组中携带有路由选项扩展首部的话,目的选项首部,可以出现多次。

在文档RFC1883中规定了扩展报头的排列顺序,如表2.1所示。

表2.1 IPv6扩展报头的排列顺序

序号 扩展报头内容

1 IPv6报头

2 逐跳选项报头

3 目的选项报头

4 路由选项报头

5 分段选项报头

6 认证选项报头

7 封装安全报头

8 目的选项报头

9 上层协议报头

如果多个扩展报头都聚集在一个分组中,这些扩展报头应有一定的排列顺序。除了逐跳选项首部(Hop-by-Hop Options Header)以外,其他的IPv6扩展首部只能由本IPv6数据包基本报头中指明的目的地址处理,链路上的其他节点是不能处理的。

3 结语

从当前基于IPv4的传统网络,过渡到IPv6网络,必将是一个漫长的过程,但是随着社会的不断发展进步和科技的不断创新,IPv6取代IPv4的趋势,势不可挡。所以以后还要不断的学习最新的网络知识,积极实践探索,理论联系实际,为IPv6更好更快的发展做出微薄的贡献!

[参考文献]

[1]谢希仁.计算机网络[M].电子工业出版社,2008.

[2]李向丽.高级计算机网络[M].清华大学出版社,2010.

[3]S.Deering.Internet Protocol,Version 6(IPv6) Specification[S].RFC 1883,IETF 1995.

[4]S.Deering.Internet Protocol,Version 6(IPv6) Specification[S].RFC 2460,IETF 1998.

[5]R.Atkinson.Security Architecture for the Internet Protocel[S].RFC 1825,IETF 1995.

[6]李淼.IPv4与IPv6网络互连技术的研究[D].[硕士学位论文].大连海事大学,2007.