TCP 的时间戳选项允许发送方在每个数据包中嵌入一个时间戳,接收方在确认 (ACK) 中返回该时间戳。 通过计算发送时间戳和接收时间戳之间的差值,发送方可以精确计算每个 ACK 的往返时间 (RTT)。
传统的 RTT 计算方法只针对每个窗口计算一次 RTT,这对于较小的窗口大小 (例如 8 个数据包) 是足够的。 然而,随着窗口大小的增加 (例如 100 个数据包),这种方法会导致 RTT 估计不准确,从而引发不必要的重传。
RFC 1323 的 3.1 节详细阐述了大窗口场景下改进 RTT 计算的必要性。 传统的 RTT 计算方法以较低的频率对数据信号进行采样,这会在估计的 RTT 中引入偏差。 随着窗口大小的增加,采样率降低,导致 RTT 估计更加不准确。
时间戳选项通过为每个 ACK 提供精确的 RTT 测量来解决这个问题,即使在窗口大小较大的情况下也能保持 RTT 估计的准确性,从而提高 TCP 性能并减少不必要的重传。
时间戳选项的格式如图 18-20 所示,它在 TCP 报头中增加了 12 个字节。
暂无评论