果跳数限制减为零,就抛弃此包 。
源地址
128 位包的制作者的地址 。
目的地址
128 位包的预期接收者的地址 (假如存在路由首部的话,可能不是最终的接收者) 。
4.IPv6扩展首部
在IPv6里,可选的网络层信息在一个独立的首部编码,放在包中IPv6首部与上层协议首部之间 。有这样几个为数不多的扩展首部,每个首部由不同的"下一个首部"的值来标识 。一个IPv6首部可以携带零个,一个或者更多的扩展首部,每个扩展首部由前一个首部中的"下一个首部"字段标识 。如下例所示:
除了一个特例,扩展首部不在包的传送路径中的任何节点检测和处理,直到这个包到达目的地址字段标识的那个节点(或者在组播的情况下,一组节点中的每一个) 。在这里,对IPv6 首部的"下一个首部"字段的常规处理将是调用处理模块来处理第一个扩展首部,或者,假如不存在扩展首部,就处理上层首部 。每个扩展首部的内容和语义决定是否处理下一个首部 。因此,扩展首部必须严格按照它们在包中出现的次序来处理;这样,接收者就不能搜索整个包来寻找某个特定类型的首部,并且在处理所有前面的首部之前处理它 。
上文所述的特例是指 Hop-by-Hop 选项首部 。它携带了包的传送路径中的每个节点都必须检测和处理的信息,包括源节点和目的节点 。Hop-by-Hop 选项首部假如存在,就必须紧跟在IPv6首部后面. IPv6首部中"下一个首部"字段的值为零表示存在这个首部 。假如一个首部的处理结果要求节点处理下一个首部,但是节点无法识别这个首部的"下一个首部"字段值,那么节点就应该抛弃这个包,并且给包的源节点发送一个ICMP "参数存在问题"的报文,ICMP 编码值为 1 ("碰到无法识别的"下一个首部"类型") 。ICMP 指针字段包含那个无法识别的值在原包中的偏移量 。假如节点碰到IPv6首部以外的其他首部中的"下一个首部"字段的值为零的情况,应做相同的处理 。
为了后面的首部保持8个八位组对齐,每个扩展首部都是8个八位组的整数倍长 。每个扩展首部的多八位组字段都以它们的自然边界对齐 。也就是说,宽度为 n 个八位组的字段放在距首部开始位置处 n 个八位组的整数倍的位置上,其中 n = 1,2, 4,或者 8 。一个完整的IPv6实现应包含以下扩展首部的处理程序:
Hop-by-Hop 选项首部 路由首部 (类型 0) 分片首部 目的地址首部 认证首部 封装安全有效数据首部 (ESP 首部)
更多的请看:http://www.QQread.com/windows/2003/index.Html
4.1 扩展首部的顺序
当在同一个包中使用多于一个扩展首部时,建议以如下顺序排列这些首部:
IPv6首部
Hop-by-Hop 选项首部
目的地址选项首部 (注 1)
路由首部
分片首部
认证首部 (注 2)
封装安全有效数据首部 (注 2)
目的地址选项首部 (注 3)
上层协议首部
注 1: 由IPv6目的地址字段及路由首部列出的后续地址中第一个出现的目的地址处理的选项 。
注 2: 关于认证首部和封装安全有效数据首部的相关顺序的附加建议参见其它文献 。
注 3: 只由包的最终目的地址处理的选项 。
除了目的地址选项首部最多出现两次 (一次在路由首部前,一次在上层协议首部前)以外,每个扩展首部应当只出现一次 。假如上层协议首部是另一个IPv6首部 (在使用通道技术或封装在IPv6中的情况下),它后面可以有自己的扩展首部. 这些扩展首部以同样的建议顺序独立排列 。假如定义了其他的扩展首部,与上面列出的扩展首部相关的次序限制必须加以说明 。除了 Hop-by-Hop 选项首部必须紧跟在IPv6首部后面以外,IPv6节点必须接受并且尽量处理任意顺序的,以及在同一个包内出现任意多次的扩展首部 。尽管如此,建议IPv6包的源节点遵守上面的建议顺序,除非后续的协议规范修改这一顺序 。
推荐阅读
- POP3 邮局协议-版本3
- Internet Protocol Internet协议
- ICMP Internet控制信息协议
- 动态主机配置协议
- 网络通信协议
- CIP 传输协议
- Daytime协议
- OSPF协议
- PPP协议
- MPLS 多协议标志交换基本原理