6.1.1.2 使用回显保留字段的稳健 TCP 初始化
6.1.1.2 使用回显保留字段的稳健 TCP 初始化
有一个问题是, 为什么我们选择让发送 SYN 的 TCP 在 SYN packet 的 TCP 头部 Reserved 字段中设置两个 ECN 相关标志, 而发送 SYN-ACK 的响应 TCP 在 SYN-ACK packet 中只设置一个 ECN 相关标志. 这种不对称对于与某些已部署 TCP 实现稳健协商 ECN-capability 是必要的. 至少存在一个有缺陷的 TCP 实现, 其 TCP 接收端只是把收到数据包的 Reserved 字段原样回显到 ACK packet 的 Reserved 字段中 (因此也回显到 SYN-ACK 中). 因为 TCP SYN packet 设置 ECN-Echo 和 CWR 标志来指示 ECN-capability, 而 SYN-ACK packet 只设置 ECN-Echo 标志, 所以发送 TCP 会把接收端在 Reserved 字段中回显其自身标志的行为正确解释为接收端不支持 ECN 的指示. 发送 TCP 不会被一个仅仅回显入站 SYN packet 的 Reserved 字段且由有缺陷 TCP 实现发送的 SYN-ACK packet 误导.