我需要获取 TCP 流的 RTT。我已经查看了 proc 文件系统,但无法获得 TCP 的 RTT 值。如果有人对此有任何想法,请分享 RTT 将存储在哪个文件中。
提前致谢。
也许ss
iproute utils 中可用的(socket statistics)实用程序可以帮助您解决这个问题。
# 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。
您可以使用 tcpprobe (使用 kprobe 将挂钩插入 tcp_recv 处理路径并记录 TCP 连接的状态以响应传入数据包)。
还可以使用以下ip
命令为以前的目的地打印缓存的 rtts(和 rttvar、cwnd):
sudo ip tcp_metrics