这个值太大会导致不必要的等待,太小会导致不必要的重传,理论上最好是网络RTT时间,但又受制于网络距离与瞬间态时延变化,所以时间上使用自适应的动态规划算算法。(例如Jacobson算法和IKarn算法等)来确定超时时间。
jacobson算法:
工作原理是: 1,将每条连接TCP都保持一个变量RTT。 2,当发送一个数据段时,同时启动连接的定时器。 3,如果定时器超时前确认到达,则记录所需的时间。 4,修正RTT的值。 5,如果定时器超时前没有收到确认,则将RTT的值增加一倍。 Karn算法: 报文段每重传一次,就将重传时间增大一些: 新的重传时间 = γ×(旧的重传时间) 系数 γ 的典型值是2 。 当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延 RTT 和重传时间的数值。 实践证明,这种策略较为合理。