TCP自适应重传算法
实质:TCP监视每条连接的性能,推断出适当的超时时限值。当连接的性能改变时,TCP修改 时限值。
为了搜集自适应算法所需要的数据,TCP记录每个报文段发送出去的时间和该报文段数据确认到达的时间。通过这两个时间,计算传输过程中所需要的时间,即为样本往返时间。
通常,TCP软件计算往返时间的加权平均值,作为往返时间点的估计值(RTT),并使用新的往返时间来逐步的修改这个平均值。
早期的平均技术使用一个常数权重因子α,0≤α<1,对就的平均值和最新的往返书卷样本进行加权:
*RRT=(α·Old_RTT)+((1-α)·New_Round_Trip_Sample)*
选用接近1的α值会使加权平均值对短暂的时延变化不敏感。
当发送报文段时,TCP计算出一个超时时限值,它是当前的往返时间估计值的函数。早期推荐规范设置β=2。
Timeout=β*RTT
总结一下,为了适应互联网环境中遇到的时延变化,TCP使用自适应重传算法来监测每个连接的时延,并相应的调整连接的超时参数。
提出一个小问题:如果原来的传输和最近的重传都不能提供精确的往返时间,TCP应该怎么做呢?
参考链接:https://blog.csdn.net/qq_45255257/article/details/108748486