Test Description:

This test shows the behavior of TCP Reno recovering from two packet drops in one window without a retransmission.

The test is repeated with a different receiver window and maximum congestion window.

Expected output:

TCP Reno can not recover from multiple losses in one window without a timeout.
  • The first packet loss can be recovered by fast retransmission.
  • The second packet loss cannot get enough duplicate ACKs for fast retransmission and has to wait for retransmission timeout to recover.

Congestion window is the flow control set by the sender. Advertised window is the flow control performed by the receiver. Thus maximum congestion window has the same effect as the receiver's advertised window size.

Test Topology

  Server .................Router.................Client

            10Mbs 2ms              1.5Mbs 20ms
   6(0)------------------0(1)0(0)-----------------7(0)

SSF Test Configuration File:

f19.dml
send window = receive window  =  40 packets
no maximum congestion window
f20.dml
send window = receive window  =  80 packets
maximum congestion window = 40 packets

SSF Tcpdump File:

f19.tcpdump

f20.tcpdump

Congestion window trace:

Top:         Congestion window without upper limit.

Bottom:    Congestion window with maximum value of 40 packets (40,000 bytes).


NS Test with the same parameters:


Trace Analysis:

The output is consistent with expected output.

Compared to NS TCP trace, SSF TCP has a longer retransmission timeout value because of different RTT counting methods.