在Linux中获取TCP RTT

时间:2013-04-26 08:07:14

标签: linux procfs

我需要获取TCP流的RTT。 我已经查看了proc文件系统,但无法获得TCP的RTT值。如果有任何人对此有任何想法,那么RTT将存储在哪个文件中。请备份。

提前致谢。

3 个答案:

答案 0 :(得分:8)

也许iproute utils中提供的ss(套接字统计)工具可以帮助你解决这个问题。

# ss -i 'src 1.1.1.1:1234 and dst 2.2.2.2:1234'
State      Recv-Q Send-Q                         Local Address:Port                             Peer Address:Port
ESTAB      0      0                              1.1.1.1:1234                                   2.2.2.2:1234
    reno wscale:2,7 rto:3380 rtt:855/602.5 ato:40 ssthresh:2 send 27.3Kbps rcv_space:5840

如果您想了解rtt字段的更多信息,我认为最好先了解一下ss.c

答案 1 :(得分:1)

你可以这样使用tcpprobe(使用kprobe将钩子插入到tcp_recv处理路径中,并记录TCP连接的状态以响应传入的数据包)。

在此解释:Extract TCP round trip time (RTT) estimations on linux

答案 2 :(得分:0)

还可以使用ip命令为先前的目的地打印缓存的rtts(和rttvar,cwnd):

sudo ip tcp_metrics