跳到主要内容

3. 无状态场景中的流标记要求

本节定义无状态流标记的最低要求. 未实现有状态流标记的节点 MUST 遵循这些要求.

源节点要求​

源节点 SHOULD 将每个不相关的传输连接分配给不同的流. 为此, 流由源和目的地址, 源和目的端口以及传输协议号定义. 源节点 SHOULD 生成近似离散均匀分布的流标签值.

为实现这一点, 源节点 SHOULD 使用伪随机函数生成流标签值. 该函数 SHOULD 将源和目的地址, 源和目的端口以及传输协议号作为输入. 输出 SHOULD 是 20 位流标签值.

附录 A 描述了一个可使用的示例哈希函数. 但是, 实现可以自由使用任何能够产生合适流标签值分布的方法.

给定流的所有分组 MUST 使用相同的流标签值. 这意味着一旦将流标签值分配给某个流, 在该流持续期间该值 MUST NOT 改变.

如果源节点未实现流标记, 它 MUST 将 Flow Label 字段设为零.

转发节点要求​

未实现有状态流标记的转发节点 MUST NOT 改变 Flow Label 字段, 但出于安全原因按 第 6.1 节 所述处理的情况除外.

转发节点 MAY 将 Flow Label 值作为其转发决策的一部分, 例如用于多路径上的负载分布. 这样做时, 转发节点 SHOULD 将 Flow Label 与其他分组头字段 (例如源地址和目的地址) 结合使用, 以确保适当的负载分布.

目的节点要求​

接收到非零 Flow Label 值分组的目的节点 SHOULD 忽略 Flow Label 字段, 除非它已被配置为以特定方式处理流标签.

流标签生命周期​

流标签值的生命周期就是流本身的生命周期. 一旦流终止 (例如 TCP 连接关闭时), 该流标签值 MAY 被不同流复用.

不要求维护关于先前已使用流标签值的状态. 但是, 为保持分布质量, 源节点 SHOULD 避免在短时间内连续为不同流复用相同流标签值.