Test Description:
This test shows the fast recovery algorithm of TCP Reno with
multiple packet drops.
Expected output:
-
After the first packet loss, duplicate ACKs are received.
-
When duplicate ACK count reaches the threshold of 3, fast retransmission is performed.
TCP resets ssthresh to one half of
number of packets in-flight (min(cwnd, rwnd)/2) but no less than 2.
The packet which is presumed lost is retransmitted.
cwnd is set to ssthresh + 3 * MSS
-
Fast recovery begins when the 4th duplicate ACK is received. With each
duplicate ACKs above 3, cwnd increases by
1 MSS up to the limit imposed in this test. The max usable window is restricted to
14 packets, and no new packet can be sent for any duplicate ACK.
-
After the ACK of the retransmitted packet is received which acknowledged
all outstanding packets, Fast Recovery is finished. The cwnd is set to
ssthresh (7 packets), and because the pipe is empty, a burst of
7 packets is sent. Congestion avoidance is performed.
-
Another packet is dropped by the drop tail queue because of the burst of
7 packets. Fast retransmission/fast recovery is performed again.
-
The ssthresh is set to 3 packets after 3 duplicate ACKs. The
cwnd is set to 6 packets (6*MSS).
-
Each duplicate ACK received increases the cwnd by 1 MSS.
-
In this case new packets are sent during fast recovery.
- After the ACK which acknowledged all outstanding packet is received, Fast
Recovery is finished. The cwnd is set to ssthresh (3 packets)
-
Because 2 packets are outstanding, no burst of packets is seen.
Test Topology
Server .................Router.................Client
8Mbs 5ms 800kbs 100ms
6(0)------------------0(1)0(0)-----------------7(0)
SSF Configuration Test File: f15.dml
send window = receive window = max cnwd = 14 packets
SSF Tcpdump File: f15.tcpdump
Figure 1: Sequence number plot for tcpdump at router.
Server tcpdump, RTT and Congestion window plot
(EPS
format plot)
Figure 2: Sequence number plot, RTT plot and cwnd plot for tcpdump
at server
Note that in this test cwnd is upper bounded by 14 MSS (MaxConWnd),
in order to run the test under the conditions similar to the NS-2 test.
NS Test with the same parameters
NS tcpdump trace file:f15.tr
Trace Analysis:
The output is consistent with what we expected.
|