9.1.2 IP 隧道内 ECN 字段的变化
9.1.2 IP 隧道内 ECN 字段的变化
IP 隧道模式数据包的内层头部中存在 ECN 字段副本, 这提供了检测外层头部中 ECN 字段未授权修改的机会. 对符合本文档的实现而言, 内层和外层头部中 ECT 字段的比较分为两类:
-
如果 IP 隧道使用 full-functionality option, 当且仅当内层头部中也设置了 not-ECT codepoint 时, 外层头部中 SHOULD 设置 not-ECT codepoint.
-
如果隧道使用 limited-functionality option, 外层头部中 SHOULD 设置 not-ECT codepoint.
收到不满足适当条件的数据包可能值得关注.
考虑这样一种情况: IP 隧道的隧道入口点尚未更新到本文档的要求, 而隧道出口点已经更新以支持 ECN. 在这种情况下, IP 隧道未被显式配置为支持 full-functionality ECN option. 然而, 隧道入口点的行为与支持 full-functionality option 的隧道入口点相同. 如果来自 ECN-capable 连接的数据包使用该隧道, ECT codepoint 将在隧道入口点设置于外层头部中. 隧道内的拥塞随后可能导致 ECN-capable 路由器在外层头部中设置 CE. 由于该隧道没有被显式配置为支持 full-functionality option, 隧道出口点期望外层头部中设置 not-ECT codepoint. 当 ECN-capable 隧道出口点在未配置为支持 full-functionality option 的隧道上收到外层头部中具有 ECT 或 CE codepoint 的数据包时, 它 SHOULD 根据是否设置了 CE codepoint 来处理该数据包, 如下所述. RECOMMENDED 的做法是, 在未配置为支持 full-functionality option 的隧道上, 如果外层头部中设置了 CE codepoint 而内层头部中未设置, 则该数据包 SHOULD 在出口点被丢弃, 否则 SHOULD 被转发.
IP 隧道无法防止基于把 ECN codepoint 从 CE 改为 ECT 来清除拥塞指示. 清除拥塞指示可能以没有 ECN 时不可能的方式影响网络和其他流. 需要注意的是, 只能对隧道内节点放置的拥塞指示执行清除拥塞指示; 内层头部中的 ECN 字段副本会保留来自隧道入口上游节点的拥塞通知 (除非内层头部也被清除). 如果清除拥塞通知被认为是一种超过 ECN 拥塞管理收益的安全风险, 则可以指定或配置隧道使用 limited-functionality option.