重传机制是TCP中最重要和最复杂的问题之一。TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认, 就要重传这一报文段。 重传时间的选择是TCP最复杂的问题之一。
由于TCP的下层是一个互联网环境,IP数据报所选择的路由变化很大。因而运输层的往返时间 (RTT) 的方差也很大。
TCP 超时重传时间设置
如果把超时重传时间设置得太短,就会引起很多报文段的不必要的重传,使网络负荷增大。但若把超时重传时间设置得过长,则又使网络的空闲时间增大,降低了传输效率。
TCP采用了一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间RTT。
加权平均往返时间
TCP保留了RTT 的一个加权平均往返时间RTTS(这又称为 平滑的往返时间)。第一次测量到RTT 样本时,RTTS值就取为所测量到的RTT样本值。以后每测量到一个新的RTT 样本,就按下式重新 计算一次RTTS: