我已经看到,在 TCP 中使用以前的往返时间测量来估计往返时间,并且这个估计用于计算超时时间。我想知道,是否应该将重传数据包的往返时间包括在估计中?
提前致谢。
我已经看到,在 TCP 中使用以前的往返时间测量来估计往返时间,并且这个估计用于计算超时时间。我想知道,是否应该将重传数据包的往返时间包括在估计中?
提前致谢。
是的。重新传输的段有自己的计时器,并且不会重新使用假定丢失段的计时器。没有理由不使用它测量的 RTT。
在 RFC 1122 (ch 4.2.3.1) 中,Karn 算法的第一部分说,在计算平滑 RTT 时,必须忽略重传段的测量 RTT。
RFC 6298 (ch 3) 通过使用 TCP 时间戳选项授权重传段来更新此行为,以用于计算 SRTT,因为它消除了歧义。
TCP 时间戳不是强制性的,它们在 *BSD 和 Linux 中默认使用。但是,在 Windows 操作系统中,如果对等方在启动连接时使用它们,则使用它们。