T-DAT (TCP Delay Analysis Tool)
T-DAT is developed to capture the TCP connection behavior and
identify reasons behind the data transfer delay.
The idea is inspired by TCP rate (or throughput) analysis, which classifies the rate limit of
TCP connection by application, TCP end-points, and network paths.
Based on a similar taxonomy, T-DAT focuses on the different metric, namely transfer delay.
and identifies major contributing locations and factors:
- Sender limited
- Receiver limited
- Network limited
- Application limited
- TCP limited
- Network path limited
T-DAT is used to analyze delay sensitive applications,
especially for routing applications, such as BGP,
which focuses more on the routing message delay instead of the trasmission rate.
Knowing the delaying components is an important step that
allows the following debugging and performance tunning.
Through processing tcp raw trace,
T-DAT identifies the reason of each inter-transmission gap (i.e delay).
The following plot shows an example piece of TCP trace and the T-DAT results.
During this following sample period, the TCP connection was:
- Initially bounded by the TCP receiver window
- The sender paused the transmission
- The sender resumed to send packets, but then multiple packets were lost and retransmitted.
The transmission was therefore bounded by the sender congestion window.
- All lost packets were recovered, and the connection became again bounded by the TCP receiver window
T-DAT captures these transistions and, as a visual aid,
outputs a square waves for each of these delay factors.
The duration of wave "pulses" indicates that the TCP connection is
limited by the corresponding factor.
$ tcptrace -G tcp.pcap # Use tcptrace to pre-process TCP raw trace
$ ./t-dat tcp.tsg.xpl # Apply T-DAT to analyze the TCP sequence data.
# t-dat outputs cmd.xpl and series.xpl
# Plot the TCP sequence
$ ./BGPlot cmd.xpl.gz
Show the TCP time sequence graph (See link for the detail description).
This TCP connection has been experiencing packet losses, which affect the size of TCP congestion window size.
# Plot delay factors
$ ./BGPlot series.xpl.gz
Show the delay factor series produced by t-dat.
Each line represents a delay factor.
For example, the bottom yellow line depicts the time that the TCP connection is bounded by the congestion window.
As we can see that there exists many such small congestion bounded periods, due to the packets losses as shown in the TCP trace.