Test Description:
These tests show the TCP retransmission timeout behavior.
Test A:
After the connection is established, the 13th data packet (from Server) are dropped. Because it's the last packet in the buffer, no fast retransmission can be performed. It can only be retransmitted after a timeout.
Test B:
After the connection is established, the 11th and 13th data packets sent by the Server is dropped. The timeout triggered the retransmission of the 11th packet. The 13th packet is sent after the ACK is received. 
Test C:
After the connection is established, 3 consecutive data packets are dropped. The timeout triggered the retransmission of the 11th packet. The 12th and 13th packet is sent after the ACK is received. 
Test Topology
   server.............router...............client

            8Mbs                 800kbs
   6(0)--------------0(1)0(0)---------------7(0)
     |      50ms                 300ms
  tcpdump
SSF Configuration Test File:
basic5a.dml
basic5b.dml
basic5c.dml
SSF Tcpdump File:
basic5a.tcpdump
basic5b.tcpdump
basic5c.tcpdump

Test A:

(EPS format plot for test A)

Test A sequence plot and Retransmission timeout backoff and RTT measurement 
  • The SYN packet (blue diamond) is covered by the SYN+ACK packet(red diamond) and does not show on the plot. It's because the tcpdump is on the Server side. The time to receive SYN is the same as the time to send SYN+ACK. They are overlapped.
  • The RTO counter dropping to 0 happens only when there is no packet outside at the moment. When a timeout will happen instead of setting RTO to 0 we set it to the value after backoff.
  • During the retransmission, there should no RTT measurement according to Karn's algorithm.
  • Note that there are totally 13 packets, no new packet is sent after the ACK for retransmission is received.

Test B:

(EPS format plot for test B)

Test B sequence plot, Retransmission timeout backoff and RTT measurement

Test C:

(EPS format plot for test C)

Test C sequence plot, Retransmission timeout backoff and RTT measurement