摘要

  • RFC 6298 将 TCP 建议的初始 RTO 从三秒改为一秒,因为历史观测显示,超过 97.5% 的连接 RTT 低于一秒。
  • 如果等待 SYN 确认时,一个低于三秒的计时器到期,数据传输开始前就必须将 RTO 重新设为三秒。

尚无测量时的选择

TCP 通常根据已观测的往返时间计算重传计时器。但连接刚开始时还没有 RTT 样本。若 SYN 或其响应丢失,发送方必须在“等待太久”和“因路径只是较慢而过早重传”之间取舍。

RFC 2988 使用三秒。RFC 6298 建议使用一秒,但允许实现选择更保守的、更长的值。这是一项 SHOULD,而不是 MUST。

测量支持了什么

附录 A 把这次改变呈现为基于历史观测的权衡。一项大规模分析发现,超过 97.5% 的连接 RTT 小于一秒,握手重传约占 2%;另一方面,约 2.5% 的观测连接 RTT 超过一秒。

在所引用的数据集中,大多数数据集估计的不必要重传比例低于 0.1%,但 Dartmouth 无线网络跟踪数据约为 1.1%。反事实分析显示,在重传 SYN 的连接中,约 43% 至 87% 至少可能获得 10% 的性能收益,17% 至 73% 可能获得 50% 的收益。这些是 2011 年的历史测量,不是对今天网络的描述。

更快起步后的制动机制

计时器到期仍会强制将 RTO 加倍。如果等待 SYN 时使用的 RTO 低于三秒且计时器到期,那么数据开始传输时必须将 RTO 重置为三秒。对于慢路径,新增成本被限定为额外的 SYN,以及依据 RFC 5681 限制为一个报文段的初始拥塞窗口。

这条规则并不能消除 RTT 超过三秒的路径所面临的困难。它防止未经测量的一秒假设原样延续到数据阶段。

来源