Download presentation
Presentation is loading. Please wait.
1
Limited Transmit & Early Retransmit for TCP
Bryan Youse CISC TCP/IP & Upper Layer Protocols October 23, 2008 See Also: RFC 3042 Hari Balakrishnan's PhD Thesis draft-allman-tcp-early-rexmt-07
2
Motivation: World Wide Web
Empirical data shows that more than half of all objects downloaded from the Web are < 10Kb Many of these are less than 5Kb! These objects can be transferred in TCP round trips Limited Transmit and Early Retransmit both serve to help transient connections deal with loss
3
Challenges to Reliability
TCP must account for a PDU being lost or corrupted. Unacceptable: 1: Sender Receiver 2: Sender Receiver data data ACK ACK lost data corrupted data T-PDU is discarded by network T-PDU is discarded by receiver
4
Dealing with Loss Retransmission Time-Out (RTO)
Picture above is NOT drawn to scale. Retransmission Time-Out is very long in comparison to normal sequence of sending data and receiving acknowledgements.
5
Time-Outs are COSTLY Minimum RTO is conservative: 1 second
Approximate depiction of severity of waiting for RTO: Sender Receiver RTO data ACK lost data data rtx
6
Fast Retransmission Avoid waiting for timeouts
Three DUPACKs spur retransmission Why are 3 DUPACKs used instead of just 1-2, or 4-5??
7
Reasons Fast Retransmit Might Not Happen
Small congestion window at sender (cwnd) Sender might not even have a queue of data To provoke DUPACKs, new data must be sent Consider a real-time application waiting for input Or, consider when connection is closing
8
Limited Transmit When the first two DUPACKs are received, sender transmits new data, if receiver's advertised window allows for it, and outstanding data is within the congestion window plus two segments If these new data and ACKs are not lost, sender can infer initial data loss by the 3-DUPACK rule, and use Fast Retransmission
9
Limited Transmit - Example
Congestion Window (cwnd) of size 3 PDUs: TCP TCP w/ Limited Tx ACK 1 ACK 1 Data 1 Data 1 Data 2 Data 2 ACK 1 ACK 1 Data 3 Data 3 ACK 1 ACK 1 Timeout Data 4 . ACK 1 Data 1 ACK 5 Data 1
10
Conservation of Packets
The two DUPACKs hint that a packet has left the network However, the original PDU hasn't been technically declared lost yet (< 3 DUPACKs). No reason to think congestion state is wrong. This means: SENDING NEW DATA IS OK
11
Proven by Real-World Experiment
A busy webserver's retransmissions were studied: - Retransmissions due to timeouts - TCP Fast Retransmissions - TCP w/ SACK Fast Retransmissions - TCP w/ Limited Transmit Fast Retransmissions
12
Data From PhD Thesis of Hari Balakrishnan, his early work leading up to Limited Transmit idea. He is a co-author of RFC Here he calls the idea Enhanced Recovery. This test analyzed the 1.6 million TCP connections with the IBM Web Server for the 1996 Atlanta Olympics. KEY VALUE: 104,287 RTO-induced retransmissions were avoidable. This is at least 104,287 seconds of efficiency altogether wasted by the server, or 29 hours!
13
More Visual Results Limited Transmit
Network tested: Cross-country Internet.
14
Limited Tx Solves... Limited Transmit solves the problem of not receiving three DUPACKs due to the congestion window being too small.
15
Reasons Fast Retransmit Might Not Happen
Small congestion window at sender (cwnd) Sender might not even have a queue of data To provoke DUPACKs, new data must be sent Consider a real-time application waiting for input Or, consider when connection is closing
16
Limited Tx Doesn't Solve...
Limited Transmit does NOT solve the problem of not receiving three DUPACKs due to not having outstanding data to send! Solution: Early Retransmit
17
Early Retransmit Similar to Limited Tx, even more lenient
Not an official RFC yet, is in draft state Draft specifies TCP implementors MAY use Early Rtx , while Limited Tx is listed as SHOULD BE used. The RFC keyword pecking order as defined in RFC 2119: {Imperative} MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT {Suggested} SHOULD, SHOULD NOT, RECOMMENDED {Allowed} MAY, OPTIONAL
18
Two Versions of Early Rtx
TCP sender is REQUIRED to track the outstanding bytes. A TCP sender MAY track the number of outstanding PDUs. Early Retransmit MAY be implemented in either case Early Retransmit calculates a value called ER_thresh: a threshold to determine the number of DUPACKs needed to trigger Fast Retransmission
19
Early Retransmit - Example
TCP Early Retransmit ACK 1 ACK 1 A-PDU 1 Data 1 A-PDU 1 Data 1 A-PDU 2 A-PDU 2 A-PDU 3 Data 2 A-PDU 3 Data 2 ACK 1 ACK 1 Data 3 Data 3 ACK 1 ACK 1 Data 1 ER_thresh = 2. 2 DUPACKs recv'd, so Rtx! ACK 4 ... Data 1 Timeout
20
PDU-based Early Rtx ER_thresh = oseg - 1
Concept of outstanding segments (oseg) PDU – Sent & ACK'd PDU – Sent & ACK'd PDU – Sent & Not ACK'd PDU – Sent & Not ACK'd PDU – Sent & Not ACK'd PDU – Not Yet Sent oseg ER_thresh = oseg - 1
21
Early Retransmit - Example
ACK 1 A-PDU 1 Data 1 A-PDU 2 A-PDU 3 Data 2 ACK 1 2 DUPACKs 3 outstanding segments: oseg = 3 Data 3 ACK 1 Data 1 ER_thresh:3-1=2 ACK 4 RETRANSMIT ...
22
Bytes sent but not yet acknowledged
Byte-based Early Rtx Concept of outstanding window (ownd) Bytes sent & ACK'd Bytes sent but not yet acknowledged Yet to send ownd ER_thresh = CEILING( ownd / SMSS ) - 1 Sender Maximum Segment Size
23
No new data to send exists
Early Rtx Conditions Used if and only if: ER_thresh ≤ 3 Why? No new data to send exists Why?
24
Review Limited Transmit Early Retransmit cwnd = 3 Data 0 Data 0 ACK 1
A-PDU 1 Data 1 A-PDU 1 Data 1 A-PDU 2 A-PDU 2 A-PDU 3 Data 2 A-PDU 3 Data 2 A-PDU 4 ACK 1 ACK 1 A-PDU 5 Data 3 Data 3 2 DUPACKs ACK 1 ACK 1 Sent despite cwnd being 3 Data 4 Data 1 ACK 1 ACK 4 Early Retransmit Data 1 ACK 5 3 DUPACKs Retransmit Data 5
25
Special SACK Case If connection is using SACKs, the outstanding data must be SACKed before data is retransmitted. Why?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.