Re: tcptrace RTT measurement method

From: Manikantan Ramadas (
Date: 06/24/03

Date: Tue, 24 Jun 2003 10:39:05 -0400
From: Manikantan Ramadas <>
Subject: Re: tcptrace RTT measurement method
Message-ID: <>

Hi Shashwat,

> I would like to know the exact procedure by which tcptrace collects
> data for RTT. Here, I assume that tcptrace gets no additional
> information from the raw tcpdump file other than that printed by
> tcpdump after parsing the packets (by tcpdump -r raw_file) - correct me
> if I am wrong.
  Yes, tcptrace uses the timestamp information provided by PCAP (if you are
using tcpdump) to calculate RTT.

> In any modern TCP implementation there can be many ways of calculating
> RTT from the tcpdump output. If timestamp options is present, tcptrace
> can look at the time interval between sending a timestamp and
> receiving its echo. It can utilize SACK option to see the time it took
> for acknowledgement to reach for each segment sent. Or in the simplest
> case, it can keep track of intervals of receiving pure ack. Which
> method does tcptrace use ?
  tcptrace does not do profound stuff like using TCP timestamps or SACK
options to estimate RTTs. Obeying Karn's algorithm (not calculating an RTT
sample if retransmission of unacknowledged data is found to occur), tcptrace
uses the difference between timestamps of the data segment and that of the ACK
that acknowledges it.

> Standards mention that rtt should be calculated only when new data is
> acknowledged. Does RTT measurement of tcptrace follow this restriction ?

  Yes I believe this follows.
  Please check out ack_in() and rtt_ackin() functions in rexmit.c.
- Mani.

"A man is but a product of his thoughts; what he thinks, that he becomes."
       	      		       		      	       - Mahatma Gandhi
 * Manikantan Ramadas * IRG, Ohio Univ. * *

To unsubscribe, send a message with body containing "unsubscribe tcptrace" to

This archive was generated by hypermail 2.1.7 : 06/24/03 EDT