我需要获取TCP流的RTT。 我已经查看了proc文件系统,但无法获得TCP的RTT值。如果有任何人对此有任何想法,那么RTT将存储在哪个文件中。请备份。
提前致谢。
答案 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连接的状态以响应传入的数据包)。
答案 2 :(得分:0)
还可以使用ip
命令为先前的目的地打印缓存的rtts(和rttvar,cwnd):
sudo ip tcp_metrics