IPv6 Internet协议第六版规范(1)(12)


当上层协议发送一个或多个包, 作为包含路由首部的包的响应时, 响应包中不能包
含由所收到的路由首部"反向"而自动得到的路由首部.;;除非收到的源地址和路由
首部的完整性和可靠性已得到验证 (比如通过使用收到的包中的认证首部).;;换句
话说, 只有下面几类包可以响应由路由首部定向的包:
o;;不携带路由首部的响应包.
o;;携带路由首部的响应包, 但其携带的路由首部不是由所收到的包中的路由首
部反向得到的 (例如, 由本地配置信息提供的路由首部)
o;;携带路由首部的响应包, 其路由首部是由所收到的包中的路由首部反向而得
到的.;;但所收到的包中的源地址和路由首部的完整性和可靠性必须经过响
应者验证.
附录 A. 数据流标签字段的语义和用法
数据流是指从某特定的源节点向某特定的 (单播或组播) 目的节点发送的数据包的
序列.;;当源节点希望中间的路由器对数据包进行一些非凡处理时, 可以使用数据
流.;;这一非凡处理的种类可以由某一控制协议, 如资源预约协议, 或者由数据流
中的包自身中的信息, 如在 hop-by-hop 选项首部里的选项, 传达给路由器.;;关
于这样的控制协议或者选项的具体资料已经超出了本文的范围.
从源节点到目的节点之间可能有数条活动的数据流, 还可能有同任何数据流都无关
的业务量.;;一个数据流由一个源地址和一个非零的数据流标签唯一地标识.;;不属
于任何一个数据流的包具有零值的数据流标签.
由数据流的源节点为数据流分配数据流标签.;;新的数 萘鞅昵┍匦氪?1 到 FFFF
(十六进制) 之间伪随机地选出来.;;随机分配数据流标签的目的是使得路由器能够
使用数据流标签字段中的任意一组位作为哈希要害字, 用来查询与数据流相关的状
态.
属于同一数据流的包必须具有相同的源地址, 目的地址和数据流标签.;;假如其中
的一些包包含 Hop-by-Hop 选项首部, 那么它们都必须具有相同内容的 Hop-by-Hop
选项首部 (除了 Hop-by-Hop 选项首部中的"下一个首部"字段).;;假如其中的一些
包包含路由首部, 那么它们在路由首部之前 (含路由首部) 的所有扩展首部的内容
都必须相同 (除了路由首部中的"下一个首部"字段).;;答应但不要求路由器或目的
节点检验上述条件是否满足.;;假如检测到违反上述条件, 应向源节点发送 ICMP
"参数存在问题", 编码 0 的报文, 指针指向数据流标签字段的高位 (也就是, 在
IPv6 包中偏移量为 1).
在数据流的路径中建立的数据流处理状态的最大生存期必须作为描述状态建立机制
的一部分加以规范.;;比如资源预约协议, 或者"数据流建立" hop-by-hop 选项.
使用一个数据流标签以后, 不答应源节点在这个已建立的数据流处理状态的最大生
存期内重新使用这个数据流标签.
当节点停机和重新启动(比如系统崩溃)时, 它必须小心, 不要使用先前用过的可能
尚未过期的数据流的数据流标签.;;有多种解决方法: 可以在稳定可靠的存储器中
记录数据流标签的使用情况, 这样节点就能在系统崩溃前后记住它.;;或者在所有
先前建立的数据流过期以前, 避免使用任何数据流.;;假如知道系统重新启动的最
短时间, 这一时间可从开始分配数据流标签之前的等待时间中扣除.
不要求全部的包, 甚或大多数的包处于数据流中 (也就是, 携带非零的数据流标签).
这一观察报告放在这里, 提醒协议的设计者和实现者不要对此做出任何假定.;;例
如, 设计一个这样的路由器是不明智的, 其性能只有在大多数包处于数据流中的时

推荐阅读