2. IPv6 流标签规范
IPv6 报头 [RFC2460] 中的 20 位 Flow Label 字段由节点用于标记某个流的分组. Flow Label 为零表示分组尚未被标记. 分组分类器可以使用 Flow Label, Source Address 和 Destination Address 字段组成的三元组来识别特定分组所属的流. 能够以无状态方式执行此处理的节点, 或已设置流专用状态的节点, 会以流专用方式处理分组. 具体处理的性质以及流状态建立方法不在本规范范围内.
选择流标签值时, 应使其各位表现出高度变化性, 从而适合作为负载分配方案中哈希函数输入的一部分. 同时, 第三方应难以猜出流标签来源接下来会选择的值.
在统计学中, 离散均匀分布定义为一种概率分布, 其中给定等间隔取值范围内的每个值 (例如整数序列) 被选为下一个值的可能性相同. 这种分布中的值同时表现出变化性和不可猜测性. 因此, 如 第 3 节 所规定, 流标签值来源最好近似于离散均匀分布. 本规范有意不对分布本身或实现这种分布的方法提出精确的数学要求.
一旦设置为非零值, Flow Label 预期会不变地传递到目的节点. 转发节点 MUST 保持非零流标签值不变, 或仅出于 第 6.1 节 所述的强制性运行安全原因才更改它.
无法验证流标签是否在途中被修改, 也无法验证它是否属于均匀分布. 因此, 没有任何 Internet 范围的机制可以在数学上依赖未修改且均匀分布的流标签; 它们具有 "best effort" 性质. 实现者应注意, 流标签是一个未受保护的字段, 可能在途中被意外或有意更改 (参见 第 6 节).
流标签要求
为使流标签能够在实践中使用, 以下要求适用于其使用:
-
Flow Label 字段 MUST 由源节点设置. 转发节点 MUST NOT 更改 Flow Label 值, 除非 第 6.1 节 另有说明.
-
属于同一流的所有分组 MUST 使用相同的 Flow Label 值发送. 如果节点不提供任何流专用处理, 它 MUST 将 Flow Label 设置为零.
-
不支持流标签字段的节点在发起分组时 MUST 将其设置为零, 在转发分组时保持不变, 并在接收分组时忽略它.
Flow Label 设计用于由对分组执行流专用处理的节点使用. 此类节点可以包括但不限于:
- 执行负载分配的路由器
- 执行第 3/4 层负载均衡的交换机
- 防火墙和其他安全设备
- 服务质量 (QoS) 机制
- 网络监控和测量系统