Recording RTT and RTO values

Andre Oppermann andre at freebsd.org
Fri Dec 26 07:20:01 PST 2003


Max Laier wrote:
> 
> On Friday 26 December 2003 11:49, Tanmay Ganacharya wrote:
> > Hello,
> >
> > I am a student from the University of Southern California. I am currently
> > pursuing my master.
> > I am working on a project in which I need to record the RTT and RTO values
> > of a TCP connection.
> > To achieve the same I first re-compiled my kernel to support debug mode.
> > I then used a simple client server socket program to transfer a file. The
> > sockets had the debug option set.
> > Thus the kernel logs were then collected using the trpt command.
> > But the problem is I am not able to figure out the required RTT and RTO
> > values from the log.
> >
> > The log looks somewhat like the following
> > 762 ESTABLISHED:input (src=128.8.126.6,32858,
> > dst=204.57.0.2,1666)f5ac168b at 5269bce1(win=f8e0)<ACK> -> ESTABLISHED
> > rcv_nxt f5ac168b rcv_wnd e240 snd_una 5269bce1 snd_nxt 5269d381 snd_max
> > 5269d381
> > snd_wl1 f5ac168b snd_wl2 5269bce1 snd_wnd f8e0
> >
> > 762 ESTABLISHED:output (src=204.57.0.2,1666,
> > dst=128.8.126.6,32858)[5269d381..5269d36d)@f5ac168b(win=e240)<ACK> ->
> > ESTABLISHED
> > rcv_nxt f5ac168b rcv_wnd e240 snd_una 5269bce1 snd_nxt 5269d929 snd_max
> > 5269d929
> > snd_wl1 f5ac168b snd_wl2 5269bce1 snd_wnd f8e0
> >
> > I am really not able to understand which are the RTT and RTO values in
> > these.
> > Please if anyone knows do let me know. It would really be useful.
> > Also if anyone knows any other methods of recording the RTT and RTO values
> > of a connection
> > please do let me know abt it.
> > I would really be grateful.
> 
> CC: net@ (current@ isn't exactly the list for this).
> 
> None of these values are the RTT or RTO values of the connection as the debug
> is rather sequence number centric. Take a look at "src/sys/netinet/tcp_var.h:
> struct tcpcb", where you will find short explainations for each field.
> 
> The value you might be looking for is "int t_rtttime". Modify the printf's in
> tcp_debug.c to give you the values you need and recompile your kernel.

The tcp_hostcache in -current is recording these values.  Depending on
what you exactly need you can either just look at the hostcache output
with "sysctl -a net.inet.tcp.hostcache.list" or you can put some printf's
into tcp_close() or tcp_hc_update().

-- 
Andre


More information about the freebsd-net mailing list