6.1.1.1 中间盒问题
6.1.1.1 中间盒问题
ECN 在 TCP 头部中引入 ECN-Echo 和 CWR 标志 (如图 3 所示) 用于初始化. 互联网中存在一些有缺陷的防火墙, 负载均衡器和入侵检测系统, 它们会丢弃 ECN-setup SYN packet, 或用 RST 响应, 因为它们把这类数据包 (设置了这些 bit) 视为可用于拒绝服务攻击的端口扫描工具特征. 一些有问题的设备已经被识别, 网页 [FIXES] 包含不合规产品以及厂商发布的修复列表 (如果可用). TBIT 网页 [TBIT] 列出了一些受这种有缺陷设备影响的 Web 服务器. 我们在本文档中提及这一点, 是为了向社区警示此问题.
为了即使在存在这类有缺陷设备时也提供稳健连通性, 主机在发送 ECN-setup SYN packet 后收到 RST 时, MAY 重新发送清除了 CWR 和 ECE 的 SYN. 这可能导致建立一个不使用 ECN 的 TCP 连接.
如果主机在正常 SYN 重传超时间隔内没有收到 ECN-setup SYN 的回复, MAY 重新发送 SYN, 并在任何后续 SYN 重传中清除 CWR 和 ECE. 为克服可能导致原始 SYN 被丢弃的正常丢包, 发起主机可以在放弃并重传清除 CWR 和 ECE bit 的 SYN 之前, 重传一个或多个 ECN-setup SYN packet.
我们注意到, 在此场景中, 以下示例场景是可能的:
(1) Host A: sends ECN-setup SYN. (2) Host B: sends ECN-setup SYN/ACK, packet is dropped or delayed. (3) Host A: sends non-ECN-setup SYN. (4) Host B: sends non-ECN-setup SYN/ACK.
我们注意到, 在这种情况下, 按照上述过程, host A 和 host B 都不能在数据包上设置 ECT bit. 此外, 第 6.1.1 节关于 ECN-setup 和使用规则的一个重要后果是, 禁止主机把收到 ECT packet 用作对端主机支持 ECN 的隐式信号.