图5 IPv6数据报的扩展头标
2.2.2. 寻路头标
信源将分组发往信宿时,在某些情况下还希望控制该分组经由的路径。例如为使该分组通过最佳路由对网络进行提示,也可能为避开不合适的路由器需要控制路径。信源利用寻路头标与IP基本头标的信宿地址的组合来定义分组通过网络的路由。
2.2.3. 报片头标
与IPv4不同,IPv6路由器不对过大的分组进行分段,如果分组比到下一个中继点的最大传输单元(MTU:Maximum Transmission Unit)大时,就抛弃该分组并回送ICMP消息。IPv6主机可以在向网络发送分组前,将该分组分成若干较小的报片(fragment)。各报片可以独立地控制路由,并由信宿主机再将其回复成原分组。
2.2.4. 信宿选项头标
在IPv6中为\信宿选项\头标定义的头标类型为60(参阅图2.14)。此头标具有很高的自由度,含有1个以上的选项参数。各选项参数由选项号码标识。 目前只定义了二个填充选项作为信宿选项。
填充1选项
最简单的选项是填充1(pad 1),它由1字节的全\比特构成。该选项无长度域,因此长度为1。可以利用此选项将头标内的其他选项的位置错开,最常用的情况是满足配置限制来设置其他选项。 填充N选项
2.2.5. 中继点选项
信宿选项头标是分组到达信宿时才被处理的扩展头标。各中继点对此头标不做任何处理,这与IPv6的设计思想是一致的。但对管理和调试功能来说,存在着IP分组路径上所有的路由器都要处理的IP选项,这就是头标类型为0的中继点(Hop By Hop)选项。换句话说,当IPv6头标中的下一个头标代码为0时,就表明存在着中继点选项。此选项与信宿选项不同,即使信宿地址不是自己的地址也要对其进行处理。
2.3. ICMP的改进[5]
IP层协议最重要的任务是将数据从信源传送到信宿,但除此之外还应为系统间的调整提供必要的调整功能。所谓系统间的调整是指邻机系统发现、地址分配的控制和组成员管理等功能。IP层协议也提供差错报告和诊断的功能。TCP/IP将这些功能综合成一个协议,即Internet控制报文协议(ICMP:Internet Control Message Protocol)。
2.4. IPv6地址结构
IPv6与IPv4比较最显著个一个改动就是使用128比特上的地址来代替了32比特长的IPv4地址。128比特的地址具有极大的可分配性,地址的分配方案直接和网络的路由
的效率有关,因此地址结构是在演进过程中值得深入研究的课题。 所有IPv6的地址都被分配到接口,而非节点。一个IPv6单播地址与一个单个的接口相关联。由于每个接口都属于一个单个节点,所以该节点的任意接口的单播地址都可以用作该节点的一个标识符。
2.4.1. 单播地址
IPv6单播地址在使用连续的比特掩码后是可聚集的,这一点类似于无类型域间寻经(CIDR:Classless Inter-Domain Routing)下的IPv4地址[ RFC 1519]。
在IPv6中,定义了若干形式的单播地址,包括:全局的可聚集全局单播地址、NSAP地址、IPX层次地址、场所局部地址、链路局部地址、以及IPv4兼容主机地址。将来还可以定义其它的地址类型。
2.4.2. 任播地址(Anycast Addresses)
IPv6任播地址是分配给多于一个接口(通常属于不同的节点)的地址,其特点是:发往一个任播地址的分组将被寻经到\最近\的一个具有该地址的接口。这里的\最近\指的是寻经协议中的最近。
任播地址从单播地址空间中进行分配,使用单播地址的任何格式。因而,从语法上,任播地址与单播地址没有区别。当一个单播地址被分配给多于一个的接口时,就将其转化为任播地址。被分配具有任播地址的接点必须得到明确的配置,从而知道它是一个任播地址。
对任意的任播地址,都有最长的地址前缀P,它限定了一个拓扑区域,所有属于该任播地址的接口都处在这个区域中。在P所限定的这个区域中,属于该任播地址集合的每一个成员都必须作为寻经系统中的单独入口而被广告;在该区域之外,该任播地址也许会聚集到对该前缀P的寻经广告中。
2.4.3. 组播地址(Multicast Addresses)
IPv6组播地址是对一组节点的一个标识符。一个节点可以属于任意数量的组播组(group)。组播地址有如下格式:
Group ID:用于确定组播组,在给定的区域范围内,可以是永久的,也可以是暂时的。 对于永久分配的组播地址,其\意义\独立于其区域值。例如:假设\服务器组\被分配了一个group ID为101(十六进制)的永久组播地址,则:
FF01:0:0:0:0:0:0:101 是指与发送者在同一节点的所有NTP服务器; FF02:0:0:0:0:0:0:101 是指与发送者在同一链路的所有NTP服务器; FF05:0:0:0:0:0:0:101 是指与发送者在同一场所的所有NTP服务器; FF0E:0:0:0:0:0:0:101 是指internet中的所有NTP服务器。
对于非永久分配的组播地址,只有在给定的区域范围内才有意义。例如:一个场所的非永久场所局部组播地址为FF15:0:0:0:0:0:0:101,则该组与不同场所的相同地址的组无关,与不同区域中有相同group ID的非永久组无关,与使用相同group ID的永久组无关。
组播地址绝不可以用作IPv6的信源地址,或用作任何寻经头标。
2.5. IPv6和IPv4主要异同点小结
由以上的讨论,我们可以将IPv6头标和IPv4头标的基本异同点总结如下:
新的IPv6头标的结构比IPv4简单得多。IPv4(图2)中有10个固定长度的域、2个地址空间和若干个选项,IPv6中只有6个域和2个地址空间。 在IPv6中起始4比特的版本号和IPv4的意义相同,其位置保持不变。这是由于考虑到同时利用IPv4和IPv6进行通信的情况。也就是说,原本设想生成数据链路帧时进行相同的封装,使IPv4和IPv6能够共用数据链路层的驱动程序。
网络层利用此版本域来决定对分组的处理。当版本值为4(0100)时,就认为是IPv4的分组,版本值为6(0110)时,就看作IPv6的分组。然而实际上舍弃了这种想法只作有限的使用。这是由于在底层可以将IPv4和IPv6分离的缘故。例如,在Ethenet上传送

