可能不是最终的接收者).;;参见 [ADDRARCH] 和第 4.4 章.
4. IPv6 扩展首部
在 IPv6 里, 可选的网络层信息在一个独立的首部编码, 放在包中 IPv6 首部与上
层协议首部之间.;;有这样几个为数不多的扩展首部, 每个首部由不同的"下一个首
部"的值来标识.;;一个 IPv6 首部可以携带零个, 一个或者更多的扩展首部, 每个
扩展首部由前一个首部中的"下一个首部"字段标识.;;如下例所示:
--------------- ------------------------
IPv6 首部 TCP 首部数据
下一个首部 =
TCP;;;;;;
--------------- ------------------------
IPv6 首部;;;;路由首部;;TCP 首部数据
下一个首部 = 下一个首部 =
路由首部;;;;;;TCP;;;;
--------------- ---------------- ------------------------
--------------- ---------------- ----------------- -----------------
IPv6 首部;;;;路由首部 分片首部;;;;;;TCP 首部数据
;;;;;;的分片
下一个首部 = ;;下一个首部 =;;;;下一个首部 =
路由首部;;;;分片首部TCP;;;;
--------------- ---------------- ----------------- -----------------
除了一个特例, 扩展首部不在包的传送路径中的任何节点检测和处理, 直到这个包
到达目的地址字段标识的那个节点 (或者在组播的情况下, 一组节点中的每一个).
在这里, 对IPv6 首部的"下一个首部"字段的常规处理将是调用处理模块来处理第
一个扩展首部, 或者, 假如不存在扩展首部, 就处理上层首部.;;每个扩展首部的
内容和语义决定是否处理下一个首部.;;因此, 扩展首部必须严格按照它们在包中
出现的次序来处理; 这样, 接收者就不能搜索整个包来寻找某个特定类型的首部, 并
且在处理所有前面的首部之前处理它.
上文所述的特例是指 Hop-by-Hop 选项首部.;;它携带了包的传送路径中的每个节
点都必须检测和处理的信息, 包括源节点和目的节点.;;Hop-by-Hop 选项首部假如
存在, 就必须紧跟在 IPv6 首部后面.;;IPv6 首部中"下一个首部"字段的值为零表
示存在这个首部.
假如一个首部的处理结果要求节点处理下一个首部, 但是节点无法识别这个首部的"
下一个首部"字段值, 那么节点就应该抛弃这个包, 并且给包的源节点发送一个
ICMP "参数存在问题"的报文, ICMP 编码值为 1 ("碰到无法识别的"下一个首部"
类型").;;ICMP 指针字段包含那个无法识别的值在原包中的偏移量.;;假如节点遇
到 IPv6 首部以外的其他首部中的"下一个首部"字段的值为零的情况, 应做相同的
处理.
为了后 娴氖撞勘3?8 个八位组对齐, 每个扩展首部都是 8 个八位组的整数倍长.
每个扩展首部的多八位组字段都以它们的自然边界对齐.;;也就是说, 宽度为 n 个
八位组的字段放在距首部开始位置处 n 个八位组的整数倍的位置上, 其中 n = 1, 2,
4, 或者 8.
一个完整的 IPv6 实现应包含以下扩展首部的处理程序:
Hop-by-Hop 选项首部
路由首部 (类型 0)
分片首部
目的地址首部
认证首部
封装安全有效载荷首部 (ESP 首部)
前四个将在本文中加以说明, 后两个在 [RFC-2402] 和 [RFC-2406] 中分别进行说明 。
4.1;;扩展首部的顺序
当在同一个包中使用多于一个扩展首部时, 建议以如下顺序排列这些首部:
IPv6 首部
Hop-by-Hop 选项首部
目的地址选项首部 (注 1)
路由首部
分片首部
认证首部 (注 2)
封装安全有效载荷首部 (注 2)
目的地址选项首部 (注 3)
上层协议首部
注 1:由 IPv6 目的地址字段及路由首部列出的后续地址中第一个出现
推荐阅读
- IPv6/IPv4协议转换的试验
- 一种新IPv6任播地址解析协议及应用
- 改进的移动IPv6协议分析
- 毕业三方协议必须签吗
- ADSL网络协议PPPOE
- 二 第三章广域网协议配置命令
- 在WIN XP和WIN 2K中安装IPv6协议
- 一 第三章广域网协议配置命令
- 四 第三章广域网协议配置命令
- 一 第四章网络协议配置命令