TCP RTT

Posted soul-stone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP RTT相关的知识,希望对你有一定的参考价值。

1、https://cloud.tencent.com/developer/article/1097489

Karn的算法解决了初代算法的问题并且有了个可行的方案,但是RTO粗暴翻倍的做法感觉还是比较浪费。所以,在一年之后又有两个人Jacobson 和 Karels 针对这种加权移动平均的算法对RTT波动handle能力不强的弊端做了修正。其原理是用最新采样的RTT和平滑过的SRTT的差距来作为另一个影响因子。

SRTT = SRTT + α * (RTT - SRTT)

DevRTT = (1-β) * DevRTT + β *(|RTT - SRTT|)

RTO = μ * SRTT + δ * DevRTT  //估算重传时间(以后称之为RTO,Retransmission Timeout)

这三个公式就是现在TCP协议中真正运用的算法,关于这些参数,α是取0.125,β是0.25,μ 是1,δ是4,这就是linux中的取值,至于为什么,没有人知道,但是在实际效果中,果真就很有效,在编程过程中,我们称这种玄学叫做调的一手好参数。

 

以上是关于TCP RTT的主要内容,如果未能解决你的问题,请参考以下文章

TCP中RTT的测量和RTO的计算

基于RTT梯度的TCP CDG拥塞控制算法

TCP RTT测量妙计

排队理论解释TCP/IP网络拥塞是如何影响TCP的RTT的波动

TCP 拥塞控制

了解TCP慢启动