跳到主要内容

5.3 分片

5.3 分片

ECN-capable 数据包 MAY 设置 DF (Don't Fragment) bit. 对分片数据包的重组 MUST NOT 丢失拥塞指示. 换言之, 如果要重组的某个 IP 数据包的任一分片设置了 CE codepoint, 则以下两个动作之一 MUST 发生:

  • 在重组后的数据包中设置 CE codepoint. 然而, 如果参与此次重组的任何其他分片携带 Not-ECT codepoint, 则此动作 MUST NOT 发生.

  • 由于除重组以外的任何其他原因丢弃该数据包.

如果两个动作都适用, 可以选择其中任意一个. 当所有分片携带相同 codepoint 时, 分片数据包的重组 MUST NOT 改变 ECN codepoint.

我们注意到, 由于 RFC 2481 没有规定重组行为, 符合该实验性 RFC 的较早 ECN 实现可能无法在保留分片中的 CE codepoint 方面正确执行重组. 发送端可以通过在 ECN-capable 数据包中设置 DF bit 来避免此类行为的后果.

在某些情况下, 上述重组规范可能不够精确. 例如, 如果分片点处或其后的路径中存在恶意或损坏的实体, 数据包分片可能携带 ECT(0), ECT(1) 和/或 Not-ECT codepoint 的混合. 在这种情况下, 上述重组规范没有对分片重组提出要求. 在需要更精确重组行为的情况下, 协议规范应改为规定该协议发送的所有 ECN-capable 数据包中都 MUST 设置 DF.