首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux内核中测量TCP的RTT

在linux内核中测量TCP的RTT
EN

Stack Overflow用户
提问于 2016-10-18 23:32:11
回答 1查看 1.1K关注 0票数 1

我正在自定义协议中实现类似TCP的RTT估计。当我查看函数时

代码语言:javascript
复制
static void tcp_rtt_estimator(struct sock *sk, long mrtt){
long m = mrtt; /* RTT */

对于第一次迭代,当没有完成先前的RTT估计时,代码片段为

代码语言:javascript
复制
srtt = m << 3;          /* take the measured time to be rtt */

为什么不为srtt直接获取m的值?根据我的理解,参数mrtt_us只是当前往返时间度量的jiffies中的值。

上面关于mrtt_us的假设是不正确的吗?如果是,那么我应该向这个函数传递什么值?

附注:我已经测量了jiffies中的RTT,目前我正在将它传递给这个函数。显然,这是不正确的,因为由于srtt = m << 3,第一个RTT值变成了与测量的srtt不同的值

EN

回答 1

Stack Overflow用户

发布于 2016-10-19 19:42:33

我是从https://lkml.org/lkml/1998/9/12/41的LKML上的一个邮件链中发现的

它提到存储的SRTT实际上是实际SRTT的8倍。我认为这样做是为了在计算中提供更高的精度。

因此,为了回答这个问题,RTT的测量值应该传递给jiffies中的这个函数(内核版本3.13)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40112346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档