我在Ubuntu上运行着Apache服务器。客户端连接并下载图像。我需要提取基础TCP连接的往返时延(RTT)估计值。有没有什么方法可以做到这一点?也许类似于在调试模式下运行我的TCP栈,以便将此信息记录在某个地方。
请注意,我不想运行tcpdump并从记录的跟踪中提取RTT!我需要TCP栈的RTT估计值(显然,这是使用TCP_INFO套接字选项获取的信息的一部分)。基本上需要像tcpprob(kprobe)这样的工具插入钩子,在每个传入数据包(或每个更改)上记录TCP连接的估计RTT。
更新:
我找到了一个解决方案。可以使用tcpprobe记录rtt、拥塞窗口等信息。我在下面发布了一个答案。
net/ipv4/
目录中。每个模块都以不同的方式计算rtt(而reno根本不计算!),所以我认为您将不得不钩入特定的实现。我看到您标记了cubic,因此这是tcp_cubic.c。我不认为有一种通用方法来获取rtt,但我可能是错的... - indiv