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 避免在短时间内连续为不同流复用相同流标签值.