[解析] 虽然CIDR和NAT可能赢得了许多年的时间,但是当前的IP版本(IPv4)已经不能再承受如此重的负荷了。除了技术问题以外,还有一个隐藏在背后的问题。在Internet早期,它主要被用于大学、高科技工业和美国政府,特别是美国国防部。20世纪90年代中期开始,人们对于Internet的兴趣不断膨胀,Internet开始为各种各样的人所使用,尤其是有着不同需求的人们。首先,大量携带无线移动计算设备的人通过Internet与他们的家庭或者企业保持联系。其次,随着计算机工业、通信业和娱乐业的不断交融,有可能在不久的将来,世界上的每一部电话和电视都将变成Internet节点,从而几十亿台机器将会使用音频和视频点播。在这样的形势下,很显然,IP必须也要进一步发展,并且要变得更加灵活。
1.IPv6的优点
IPv6保持了IP的优良特性,丢弃或者削弱了IP中的缺点,并且在必要的地方添加了新的特性。主要有以下几方面的优点。
(1)IPv6有比IPv4更长的地址。
IPv6的地址有16字节长,这解决了IPv6一开始就想要解决的问题:使用一个能有效地提供几乎无限Internet地址的空间。
(2)IPv6对头部进行了简化。
它只包含7个域(IPv4有13个域)。这一变化使得路由器可以更快地处理分组,从而提高了路由器的吞吐量,并缩短了延迟。
(3)更好地支持选项。
这一变化对于新的头部来说是本质的变化,因为以前那些必需的域现在变成了可选的,而且选项的表达方式也有所不同,这使得路由器可以非常简单地跳过那些与它无关的选项。此特性也加快了分组的处理速度。
(4)在安全性方面的改进。
在新的IP中,认证和隐私是关键的特征。然而,后来这些特征也被引入IPv4中,因此,IPv6和IPv4在安全性方面的差异已经没有那么大了。
(5)保证服务质量能力的提升
随着Internet多媒体的增长,服务质量的需求也更加紧迫。IPv6对服务质量的控制能力大大提升。
2.IPv6的包头
IPv6的头部如图所示。
对于IPv6,版本(Version)域总是6(对于IPv4该域总是4)。在从IPv4到IPv6迁移的过程中,路由器通过检查该域来确定分组的类型。
流量类别(Traffic class)域的用途是,按照各种不同的实时递交需求将分组区分开。
流标签(Flow,label),通过该域,源端和目标端可以建立一个具有特殊属性和需求的虚连接。例如,从某台特定主机上的一个进程到另一台主机上的一个进程之间的分组流可能有严格的延迟要求,因此需要预留带宽,这时可以提前建立一个流(flow),并分配一个标识符。当一个Flow Label域非0分组出现的时候,所有的路由器都在自己的内部表中查找该Flow Label值,看它要求哪一种特殊的待遇。实际上,这样的流是两种传输模型相结合的一种尝试,拥有数据报子网的灵活性和虚电路子网的质量保证。
净荷长度(Payload length)域指明了紧跟在图所示的40字节头之后还有多少字节数。在IPv4中,该域的名字为总长度(Total length),之所以改成现在的名字是因为其含义略有不同:40字节的头部不再像以前那样作为长度中的一部分。
下一个头(Next header)域显示了IPv6的关键之处。IPv6头部能够得以简化的原因是,它还可以有附加(可选)的扩展头。该域指明了如果当前头之后还有扩展头,该扩展头是哪种扩展头(当前已经定义了6种扩展头)。如果当前的头是最后一个IP头,那么Next header域指定了该分组将被传递给哪一个传输协议处理(如TCP、UDP)。
跳数限制(Hop limit)域被用来避免分组永远留在网络中。在实践中,它与IPv4中的生存期(Time to live,TTL)域是一样的。也就是说,在每一跳上该域中的值都要被递减。IPv4中的TTL域理论上是一个以秒为单位的时间值,但是所有的路由器都不按照时间值来使用该域,所以在IPv6中将其名字改过来,以便反映出它的实际用法。
接下来是源地址和目标地址域,这是固定长度的16字节地址。为了书写16字节的地址,IETF也设计了一种新的标记法。16字节被分成8组来书写,每一组4个十六进制数字,组之间用冒号隔开。
3.从IPv4到IPv6的演进策略
目前Internet上成千上万的主机、路由器等网络设备都运行着IPv4。这就决定了IPv4的网络向IPv6演进将是一个浩大而且繁杂的工程,IPv4和IPv6网络将在很长时间内共存,如何从IPv4平滑地过渡到IPv6是一个非常复杂的问题。
IETF专门有一个小组V60ps从事描述演进方案,并且确定在演进中使用的具体工具的工作。V60ps工作组主要工作是制定在IPv4/IPv6共享网络上的操作指导规范,并提供关于如何把IPv6应用到现有IPv4网络和新的网络设备上的指导方针。在IPv6的发展道路上,与已有的IPv4网互通是不可回避的问题。
IPv6与IPv4互通包括3个层面:与IPv4终端或服务器互通,与IPv4网互通以及通过骨干IPv4网与对端IPv6网连接。针对不同的互通需求,已经有不同的技术标准出现。与IPv4终端或服务器互通可以采用双协议栈技术来实现,对于需要跨越IPv4设备的IPv6网络之间的互联可以采用隧道技术。单一的IPv6网络需要访问IPv4互联网,可以采用协议转换技术NAT/PT(地址翻译与报头转换技术)。在设备中支持这些互通标准,是对设备商的基本要求。
(1)双协议栈
双协议栈方式是过渡阶段的一种主要方式。双协议栈方式是指主机同时运行IPv4和IPv6两套协议栈,同时支持两个版本的网络层IP协议标准。主机和路由器都可以通过双栈方式来获得和IPv4及IPv6节点的通信能力。
双栈工作方式描述如下:
①如果应用程序使用的目的地址是IPv4地址,则使用IPv4协议栈。
②如果应用程序使用的目的地址是嵌入IPv4地址的IPv6地址,IPv6就封装到IPv4中。
③如果目的地址是IPv6地址,则使用IPv6地址,或者封装在默认配置的隧道中。
(2)隧道技术
隧道技术在过渡阶段中是IPv6单独子网间通信的基本手段。这种机制在IPv4网络“海洋”之上连接孤立的IPv6节点“孤岛”。隧道技术将IPv6的分组封装到IPv4的分组中,封装后的IPv4分组将通过IPv4的路由体系传输,分组报头的“协议”域设置为41,表示这个分组的负载是一个IPv6的分组,以便在适当的地方恢复出被封装的IPv6分组并传送给目的站点。在IPv6变为主导后,此技术可以反过来作为IPv4“孤岛”的连接方式。
(3)地址翻译与报头转换技术(NAT/PT)
隧道技术一般用于IPv6节点间的通信,而对于IPv4和IPv6节点间的通信,采用直接对IPv4和IPv6报文进行语法和语义翻译的NAT/PT技术。在IPv6网络和IPv4网络之间设置NAT/PT网关,当IPv6子网中有IPv6分组发给网关时,网关将其转化成IPv4分组发向IPv4子网;反过来,当IPv4子网中有数据分组要发送给IPv6网络时,网关就将其转化成IPv6分组发向IPv6子网。NAT/PT网关要维护一个IPv4和IPv6地址的映像表。
IPv6的最终实现还需要很长时间。但是由于各种推动因素的加剧,IPv6网络的大规模实施已经为期不远。网络过渡时期中IPv4和IPv6技术将保持长时间共存,并最终过渡到IPv6。