CISC 856: TCP/IP and Upper Layer Protocols Document: Homework – The Eifel Detection Algorithm Presented by: Maitreya Natu (natu@cis.udel.edu) Due Date: Nov 18th, 2004 Q1. Describe, by adding to the timing diagram below, the sender behavior in each of the following scenarios: a) TCP without Eifel b) TCP with Eifel You have to submit 2 timing diagrams. For each scenario indicate the following: 1. PDUs sent by the sender at points A, B and C. 2. Sender’s cwnd and ssthresh values just after the timeout, and after receiving each ACK (A2, A3, A4). 3. In your annotated timing diagram for b, indicate the timestamp values sent with the PDUs. (sender and receiver timestamp values at various points are shown in the following figure in italics. Assume that prior to sending D1, the sender had received a timestamp of 150 from the receiver) Sender Receiver ssthresh=16 cwnd=8 200 D1 D8 . . . A2 A3 Time out 500 A 505 B 510 C 515 A4 300 300 300 D1 600 Q2. Describe, by adding to the timing diagram below, the sender behavior in each of the following scenarios: a) TCP with Eifel b) TCP with DSACK based spurious retransmission detection For each scenario, indicate the following: 1. PDUs sent by the sender at point A, B, C and D. (Assume the sender always has new data available to send. Use names D5, D6,…, for new data) 2. Sender’s cwnd and ssthresh values after timeout and after receiving each ACK. (Assume sender remains in slow start when cwnd = ssthresh) 3. In your annotated timing diagram for a, indicate the timestamp values sent with the PDUs. 4. In your annotated timing diagram for b, indicate the D-SACKs (if any) sent with the ACKs. 5. Show when a spurious retransmission is detected in both a and b. Comment on which detection policy is better in the given scenario. Sender 200 D1 D2 D3 D4 ssthresh=16 cwnd=4 Receiver A2 A3 A4 Time out A5 500 A 505 B 510 C 515 D 520 300 300 300 D1 600 200 Extra Credit: The specification of TCP round-trip time measurement requires that the echoed timestamp should correspond to the most recent data segment that advanced the window. Thus at point B in the timing diagram below, the receiver echoes back the sender timestamp 100 instead of timestamp 400, because 1st PDU with data D1 and sender timestamp 100, was the most recent PDU that advanced the window. How will the Eifel algorithm behave in the following scenario? What will the sender do at points A and C? Can you see a problem with Eifel algorithm? How will the Eifel algorithm recover? Sender ssthresh=8 cwnd=4 100 Receiver D1, 100, 50 D2, 100, 50 D3, 100, 50 D4, 100, 50 A2, 200, 100 200 Time out 400 A D1, 400, 50 600 A2, 600, 100 B C Reference: RFC 1323, TCP Extensions for High Performance RFC 2883, An Extension to the Selective Acknowledgement (SACK) Option for TCP RFC 3708, Using TCP Duplicate Selective Acknowledgement (DSACKs) and Stream Control Transmission Protocol (SCTP) Duplicate Transmission Sequence Numbers (TSNs) to Detect Spurious Retransmissions Pasi Sarolahti , Markku Kojo , Kimmo Raatikainen, F-RTO: an enhanced recovery algorithm for TCP retransmission timeouts, ACM SIGCOMM Computer Communication Review, v.33 n.2, April 2003