IPv6仍支持无连接的传送,但将协议数据单元(PDU)称为分组,而不是IPv4的数据报。为方便起见,本书仍使用数据报这一名词。
IPv6所引进的主要变化如下:
(1)更大的地址空间。IPv6把地址从IPv4的32 bit增大4倍,即增大到128 bit,使地址空间增大26倍。这样大的地址空间在可预见的将来是不会被用完的。
(2)扩展的地址层次结构。IPv6由于地址空间很大,因此可以划分为更多层次。
(3)灵活的首部格式。IPv6数据报的首部和IPv4的并不兼容。IPv6定义了许多可选的扩展首部,不仅可提供比IPv4更多的功能,还可提高路由器的处理效率,这是因为路由器对扩展首部不进行处理(除逐跳扩展首部外)。
(4)改进的选项。IPv6允许数据报包含有选项的控制信息,因此可以包含一些新的选项。但IPv6的首部长度是固定的,其选项放在有效载荷中。IPv4所规定的选项是固定不变的,其选项放在首部的可变部分。
(5)允许协议继续扩充。这点很重要,因为技术总是在不断地发展(如网络硬件的更新),而新的应用也还会出现。但我们知道,IPv4的功能是固定不变的。
(6)支持即插即用(即自动配置),因此IPv6不需要使用DHCP。
(7)支持资源的预分配。IPv6支持实时视像等要求保证一定的带宽和时延的应用。
(8)IPv6首部改为8 Byte对齐(即首部长度必须是8 Byte的整数倍)。原来的IPv4首部是4 Byte对齐。
IPv6数据报由两大部分组成,即基本首部(Base Header)和后面的有效载荷(Pay⁃load)。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部(Extension Header),后面是数据部分(图4-50),但请注意,所有的扩展首部并不属于IPv6数据报的首部。
图4-50 具有多个可选扩展首部的IPv6数据报的一般形式
与IPv4相比,IPv6对首部中的某些字段进行了如下更改:
①取消了首部长度字段,因为它的首部长度是固定的(40 Byte)。
②取消了服务类型字段,因为优先级和流标号字段实现了服务类型字段的功能。
③取消了总长度字段,改用有效载荷长度字段。
④取消了标识、标志和片偏移字段,因为这些功能已包含在分片扩展首部中把TTL字段改称为跳数限制字段,但作用是一样的(名称与作用更加一致),即取消了协议字段,改用下一个首部字段。(www.xing528.com)
⑤取消了检验和字段,这样就加快了路由器处理数据报的速度。我们知道,在数据链路层对检测出有差错的帧就丢弃。在运输层,当使用UDP时,若检测出有差错的用户数据报就丢弃。当使用TCP时,对检测出有差错的报文段就重传,直到正确传送到目的进程为止,因此在网络层的差错检测可以精简掉。
⑥取消了选项字段,而用扩展首部来实现选项功能。由于把首部中不必要的功能取消了,使IPv6首部的字段数减少到只有8个(虽然首部长度扩大了一倍)。
下面解释IPv6基本首部中各字段的作用(图4-51)。
(1)版本(version)占4 bit。它指明了协议的版本,对IPv6该字段是6。
(2)通信量类(Traffic Class)占8 bit。这是为了区分不同的IPv6数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
(3)流标号(Flow Label)占20 bit。IPv6的一个新的机制是支持资源预分配,并且允许路由器把每一个数据报与一个给定的资源分配相联系。IPv6提出“流”(Flow)的抽象概念。所谓“流”,就是互联网络上从特定源点到特定终点(单播或多播)的一系列数据报(如实时音频或视频传输),而在这个“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。因此,流标号对实时音频/视频数据的传送特别有用。对于传统的电子邮件或非实时数据,流标号则没有用处,把它置为0即可(关于流标号可参考[RFC 6437])。
图4-51 40 Byte长的IPv6基本首部
(4)有效载荷长度(Payload Length)占16 bit。它指明IPv6数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内)。这个字段的最大值是64 KB(65 535 Byte)。
(5)下一个首部(Next Header)占8 bit。它相当于IPv4的协议字段或可选字段。当IPv6数据报没有扩展首部时,下一个首部字段的作用和IPv4的协议字段一样,它的值指出了基本首部后面的数据应交付IP层上面的哪一个高层协议(如6或17分别表示应交付传输层TCP或UDP)。当出现扩展首部时,下一个首部字段的值就标识后面第一个扩展首部的类型。
(6)跳数限制(Hop Limit)占8 bit。用来防止数据报在网络中无限期地存在。源点在每个数据报发出时即设定某个跳数限制(最大为255跳)。每个路由器在转发数据报时,要先把跳数限制字段中的值减1。当跳数限制的值为0时,就要把这个数据报丢弃。
(7)源地址占128 bit。是数据报的发送端的IP地址。
(8)目的地址占128 bit。是数据报的接收端的IP地址。
下面介绍IPv6的扩展首部。
IPv4的数据报如果在其首部中使用了选项,那么沿着数据报传送的路径上的每一个路由器都必须对这些选项一一进行检查,这就降低了路由器处理数据报的速度,然而实际上很多的选项在途中的路由器上是不需要检查的(因为不需要使用这些选项的信息)。IPv6把原来IPv4首部中选项的功能都放在扩展首部中,并把扩展首部留给路径两端的源点和终点的主机来处理,而数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部),这样就大大提高了路由器的处理效率。
在RFC 2460中定义了6种扩展首部:①逐跳选项;②路由选择;③分片;④鉴别;⑤封装安全有效载荷;⑥目的站选项。
每一个扩展首部都由若干个字段组成,它们的长度也各不同。但所有扩展首部的第一个字段都是8 bit的“下一个首部”字段。此字段的值指出了在该扩展首部后面的字段是什么。当使用多个扩展首部时,应按以上的先后顺序出现。高层首部总是放在最后面。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。