IP协议是因特网的关键协议。现在使用的IP协议是在20世纪70年代末期设计的Internet协议第4版,故称IPv4。从70年代末21世纪初,处理器的性能提高了两个数量级,存储器的容量提高了32倍以上,因特网主干网的带宽提高了1000倍。因特网上的主机数量已达亿万数量级。
虽然IPv4的设计比较完善,但随着因特网用户的飞速增加,32bit的IP地址空间已难以满足日益增加的需求。
除了地址空间需要扩展外,还有增加的各种新的应用要求,例如实时话音和图像通信要求低的延时,安全通信保障等,要求新版的IP设计能为特定应用预留资源。
为此,因特网工程特别工作组(Internet Engineering Task Force,IETF)在1992年6月提出要制定下一代IP协议版本,即IPv6。1998年12月发表了IPv6的草案标准。
IPv6保持了IPv4许多成功的优点。它仍支持无连接发送,允许发送方选择数据报大小,要求发送方指明数据报到达目的站前的最大跳数等。于是IPv6对IPv4协议细节作了许多修改,这些修改可分为下面5大类:
(1)具有更大的地址空间。IPv6将原来IPv4的32bit的地址空间增大到128bit地址空间。它的地址空间达到永远不会耗尽。
(2)灵活的报头格式。IPv6使用一种全新的、可任选的扩展报头格式。路由器不处理扩展报头,提高了路由器的处理效率。
(3)增加选项,提供新的应用功能。IPv6允许数据报包含可选的控制信息。
(4)支持资源分配。提供新的机制支持实时话音和图像等要求保证一定带宽和延时的应用。
(5)支持协议扩展,允许新增特性,满足未来发展。
1.IPv6数据报格式
图3-89 IPv6数据报的基本格式
图3-89是IPv6数据报的基本格式。数据报有一个基本报头(base header),其后可以有多个扩展报头(extension header),也可没有扩展报头,扩展报头之后是数据。所有的扩展报头(或称扩展首部)和数据合起来构成有效载荷(payload)。
IPv6基本报头的内容和格式如图3-90所示。IPv4数据报中的选项和一些固定字段移到了IPv6的扩展报头。
图3-90 IPv6数据报头的格式
每个IPv6数据报都从基本报头开始,基本报头后面是有效载荷,它包括高层的数据和可能选用的扩展报头(或称首部)。下面是IPv6基本报头中的各字段。
(1)版本(Version)。它占4bit。指明协议版本,对于IPv6,该字段为6。
(2)通信量分类(Traffic class)。它占8bit。区别不同的IPv6数据报的类别。
(3)数据流标号(Flow label)。它占20bit。IPv6的新机制是为支持资源预定而提出的在互联网上单播或多播的一系列数据报(如实时音视频传输)“流”所经过的路径上的路由器都能保证达到指明的服务质量。所有属于同一个“流”的数据报,都具有同样的数据流标号。
(4)有效载荷长度(Payload length)。它占16bit。标明IPv6数据报除基本报头以外的全部字节数。这个字段的最大长度为64kB。
(5)下一个报头(Next header)。它占8bit。
1)当IPv6数据报没有扩展报头时,下一个报头字段的作用和IPv4的协议字段一样。
2)当IPv6数据报出现扩展报头时,下一个报头字段的值,标识后面第一个扩展报头的类型。
(6)跳数限制(Hoplimit)。它占8bit。用来防止数据报在网络中无限期存在。每个路由器转发一次数据报,限制数字段中的跳数限制数值减一,直至跳数限制值到0时被丢弃。(www.daowen.com)
(7)源地址。它占128bit(16B)。数据报发送站的IP地址。
(8)目的地址。它占128bit(16B)。数据报接收站的IP地址。
2.IPv6的地址空间
(1)128bit的地址空间。在IPv6中,每个地址占128bit,即2128=3.4×1038个地址。如果整个地球表面(包括陆地和水面)都覆盖着计算机,那么IPv6可给予每平方米7×1023个IP地址。如果地址的分配速率为每微秒分配100万个地址,那么需要1019年的时间才能将这些IP地址分配完毕。因此,IPv6的IP地址是不可能用完的。
一般来讲,一个IPv6数据报的目的地址可以是以下3种基本类型之一。
1)单播(Unicast):单播就是传统的点对点通信。单播地址指明计算机或路由器发送的数据报选择一条最短的路径到达目的站。
2)多播(Multicast):多播是一点对多点的通信。数据报交付到一组计算机中的每一个。多播又称组播,组播的目的站可以在不同的地方。
3)任播(Anycast):这是IPv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付给其中一个距离最近的一个计算机。
在IPv6中,每个128bit的地址占有16个8bit,是IPv4地址长度的4倍。对于如此巨大的地址空间,维护互联网的人们如何阅读、输入和管理呢?显然,用二进制表示是不可取的。IPv4使用的点分十进制表示方法也不能简洁地表示这些地址。于是IPv6的设计者决定采用冒号十六进制的表示方法。即把16bit的值用十六进制表示。8组16bit的十六进制数值之间用冒号将其分隔。例如128bit的地址,用点分十进制表示为:104.230.140.100.255.255.255.255.0.0.17.128.150.10.255.255。上述同样的IPv6地址用冒号十六进制表示时,则为:68E6:8C64:FFFF:FFFF:0:1180:96A:FFFF。冒号十六进制表示与点分十进制表示相比,只需更少的数字和更少的分隔符,具有明显的优点。
(2)地址空间的分配。同IPv4一样,IPv6将一个地址与一个特定的网络连接相关联,而不是与一个特定的计算机相关联。地址的分配也类似于IPv4,IPv4对一个物理网分配一个地址前缀,即网络地址,IPv6保留了这种地址体系,且有所扩展。为了地址分配和修改方便,IPv6允许对给定的网络分派多个前缀,也允许对一个主机的给定接口同时分配多个地址。
3.从IPv4向IPv6过渡
20世纪70年代正式开发建设第一代互联网,并于1994年投入商业运行和统一使用TCP/IP协议。当时设计的IPv4协议的IP地址约有40多亿个。由于美国掌握绝对控制权,IP地址分配上明显偏袒美国。加上部分IP地址未能得到合理利用,所以,IPv4的IP地址已面临枯竭。
目前,我国6000多万上网用户只有3000多万个IP地址可供使用。飞速增长的IP地址需求与现有地址不足的问题正逐渐成为制约国内互联网发展的瓶颈。我国计划在4~6年时间内,将原来的IPv4网络改造成IPv6网络。实施IPv6的网络不仅可解决IP地址紧缺问题、传输质量问题,而且网络传输的速度将可提高1000~10000倍。
要解决IPv4向IPv6的过渡不是一件容易的事情。因为现在整个因特网上使用的IPv4路由器的数量实在太大,要在一个短时间内一律改成IPv6路由器,显然是不可能的,因此只能采用逐步演进的办法。此外,新安装的IPv6系统能够向后兼容。即它们必须还能接收和转发IPv4的分组,并且能为IPv4分组选择路由。从IPv4向IPv6过渡的策略有两种:
(1)双协议栈。双协议栈(Dualstack)是指在完全过渡到IPv6前,把一部分主机和路由器改成装有IPv4和IPv6两个协议栈,如图3-91所示。这种主机既能和IPv6系统通信,又能和IPv4系统进行通信。显然双协议栈的主机或路由器应具有两个IP地址:与IPv6主机通信时采用IPv6地址,与IPv4主机通信时采用IPv4的地址。
双协议栈主机怎样知道目的主机采用哪种地址呢?它是使用域名系统(DNS)来查询确认。若DNS返回的是IPv4地址,双协议栈的源主机就使用IPv4地址。当DNS返回的是IPv6地址时,源主机就使用IPv6地址。
图3-91 双协议栈工作原理
(2)隧道技术。隧道技术(Tunneling)的原理是通过转换两种协议的数据包实现通信的方法。即把源主机的IPv6数据报在进入IPv4区域时,把它封装成IPv4的数据报(整个IPv6变成了IPv4数据报的数据部)。
当IPv4数据报离开IPv4区域时,再将其数据部分(即原来的IPv6数据报)交给主机的IPv6协议栈。整个过程好像打通了一个“IPv6隧道”。要使协议栈的主机知道IPv4数据报里面封装的数据是一个IPv6数据报,就必须将IPv4报头的协议字段值设置为41,41表示数据中的数据部分是IPv6数据报。图3-92a是隧道技术过渡的工作原理图。图3-92b是双协议栈过渡的工作原理图。
图3-92 使用双协议栈和隧道技术进行IPv4到IPv6的过渡
a)隧道技术过渡 b)双协议栈过渡
近期我国第一个IPv6主干网CERNET2试验网正式开通,并开始提供服务,成为第一个全国性下一代互联网的主干网,标志着IPv6在我国已正式步入应用阶段。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。