在Linux中获取TCP RTT

问题描述 投票:5回答:3

我需要获取RTT以获取TCP流。我已经研究了proc文件系统,但无法获得TCP的RTT值。如果有人对此有任何想法,请在其中存储RTT文件(请共享)。

提前感谢。

linux procfs
3个回答
10
投票

也许iproute实用程序中提供的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
投票

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

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


0
投票

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

sudo ip tcp_metrics
© www.soinside.com 2019 - 2024. All rights reserved.