7

I need to fetch the RTT for TCP flow. I have looked into the proc file system but not able to get the RTT value of TCP .If any one having any idea regarding it that, in which file RTT would be stored pleae share.

Thanks in advance.

Karan_Rana
  • 2,813
  • 2
  • 26
  • 35

3 Answers3

11

Maybe the ss (socket statistics) util available in the iproute utils can help you with this.

# 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

If you want more information what the rtt field is i think it is best to take a look at ss.c.

Mattias Wadman
  • 11,172
  • 2
  • 42
  • 57
  • 2
    Note: If you do NOT see rtt info from `ss` then it means that the machine hasn't enabled the INET_DIAG subsystem in the kernel and it's falling back to using more limited info from /proc/net/. You'll need to rebuild the kernel with INET_DIAG/"INET socket monitoring interface" support to enable. – Pierz Jan 10 '20 at 10:34
1

You can so this using tcpprobe (inserts a hook into the tcp_recv processing path using kprobe and records the state of a TCP connection in response to incoming packets).

Explained here: Extract TCP round trip time (RTT) estimations on linux

Community
  • 1
  • 1
kakhkAtion
  • 2,264
  • 22
  • 23
1

It also possible to print the cached rtts (and rttvar, cwnd) for previous destinations using the ip command:

sudo ip tcp_metrics
Pierz
  • 7,064
  • 52
  • 59