Title: RRTCP: A ReorderingRobust TCP with DSACK
1RR-TCP A Reordering-Robust TCP with DSACK
- Ming Zhang (Princeton)
- Brad Karp (Intel Research/Carnegie Mellon)
- Sally Floyd (ICSI)
- Larry Peterson (Princeton)
2Motivation
- TCP performs badly under packet reordering
- In todays Internet, reordering is considered
maladaptive - Route oscillation Paxson96
- Router software errors Paxson97
- Striping packets across multiple links
Bennett99 - Satellite links Ward95
- The above are not the main reasons that TCP
should be reordering-robust - Beneficial systems cannot be deployed because of
reordering - Multi-path routing
- Parallel packet forwarding path Chen01
- Goal improve TCPs robustness on paths that
reorder packets, without increasing
aggressiveness under congestion.
3Outline
- Motivation
- False fast retransmit and dupthresh
- Measuring reordering length and DSACK-FA
- Cost of false fast retransmit and timeout
- Using costs to adapt dupthresh to maximize
throughput - Experimental evaluation
- Conclusion and future work
4Problem False Fast Retransmit
- TCP detects loss with duplicate ACKs (dupacks)
- TCP enters fast retransmit when number of dupacks
reaches some theshold dupthresh - dupthresh is 3 per Jacobson89
- If a packets position is perturbed by more than
3 packets, sender misinterprets reordering as
loss and enters false fast retransmit - False fast retransmit causes congestion window
(cwnd) to be halved unnecessarily - DSACK can help identify false fast retransmits by
reporting duplicate data packets to sender
5Increasing dupthresh has risks
- Setting dupthresh greater than max reordering
length can avoid false fast retransmit - Risks of increasing dupthresh include
- Generate one-second-minimum timeouts, not enough
ACKs return after real loss to trigger fast
retransmit - Increased end-to-end delay for dropped packets,
longer for enough dupacks to return - Delayed response to congestion, window reduction
delayed until enough dupacks arrive - The scheme for adapting dupthresh must balance
these opposing goals - Avoid both false fast retransmit (too small a
dupthresh) and timeout (too large a dupthresh)
6Measuring Reordering Length
- When packet 1 is delayed, one dupack will be
generated by receiver for each packet 2, 3, 4, 5
that arrives before 1 - Packet 1 will create a hole in SACK senders
scoreboard - The returning cumulative ACK (C) or SACK (S) for
packet 1 will close the hole in the scoreboard - Packet 1s reordering length is the difference
between the greatest SACKed/ACKed packet number,
5, and 1
7Measuring Reordering Length Distribution
- Sender stores timestamped samples of reordering
length in a reordering histogram - Sample expires after a configurable interval
- Histogram summarizes distribution of reordering
for any persistent reordering process - Histogram stores up to n reordering events, each
of which requires a timestamp (4 bytes) and a
pointer (4 bytes) - The reordering length measurement scans the same
number of scoreboard entries as standard SACK
8DSACK-FA Avoiding False Fast Retransmit
- To avoid false fast retransmit for X (FA ratio)
of reorderings, set dupthresh to the X value in
the reordering length cumulative distribution - Histogram maps FA ratio to dupthresh value
- Fixed FA ratio DSACK-FA (false fast retransmit
avoidance) - Can we adapt FA ratio dynamically?
- Central idea choose FA ratio to optimize
bandwidth of a connection
9Outline
- Motivation
- False fast retransmit and dupthresh
- Measuring reordering length and DSACK-FA
- Cost of false fast retransmit and timeout
- Using costs to adapt dupthresh to maximize
throughput - Experimental evaluation
- Conclusion and future work
10Cost False Fast Retransmit
- False fast retransmit has opportunity cost in
needlessly missed packet transmissions - cwnd is reduced by half until sender learns
retransmit is false - To recover from false fast retransmit when DSACK
returns, sender restores previous window value
Floyd99, Ludwig00 - How many packets could we have transmitted but
didn't? - The cost depends on the duration D of wrongly
reduced window - For fixed cwnd W and
11Cost Timeout
- After a real loss, timeouts have two main costs
beyond fast retransmit cost - The idle period after sender cannot send any new
packets, but before retransmission timer expires - Slow start, during which cwnd grows from one to
half the previous cwnd - Extend limited transmit to send kcwnd additional
dupack clocked packets - For fixed cwnd W, C(timeout) C(idle) C(ss)
where,
12DACK-TA Adapting FA ratio to maximize throughput
- Limited transmit can also introduce an
opportunity cost, C(limited transmit), in idle
time. - Let S be the fundamental step by which we adapt
FA ratio (0.01 in this work) - Upon every false fast retransmit, increase FA
ratio by S - Upon every timeout, decrease FA ratio by
- Upon every limited-transmit-induced idle period,
decrease FA ratio by - Algorithm name DSACK-TA (timeout avoidance)
13Experimental Evaluation
- Use NS-2 network simulator
- Extended to delay or drop packets according to
various distributions - One long-lived TCP flow lasting 1000s
- Initial FA ratio is 90ile sampled
- Limited transmit bound is 1cwnd
- Reordering length sample life time is 80s
- Compare 4 TCP variants SACK, DSACK-R, DSACK-FA
and DSACK-TA
14False Fast Retransmit Avoidance
- Link delay 50ms, delay time 0, 50ms, normal
distribution
15False Fast Retransmit Ratio
16Timeout Avoidance Timeout Ratio
- Link delay 100ms, delay time 0, 400ms, uniform
distribution - Loss rate 0.6 and delay rate 1.4
17Timeout Avoidance Fast Retransmit Ratio
18Timeout Avoidance - Throughput
19Loss and Reordering
- link delay 50ms, 5 delayed pkt, mean delay 25ms,
normal
20Related Work
- Ludwig00 Use TCP timestamp option to identify
and recover from false fast retransmit, but no
dupthresh adaptation - Blanton01 Increase dupthresh to avoid false
fast retransmit, but no explicit timeout avoidance
21Conclusion
- RR-TCP improves TCPs robustness under reordering
- Use reordering histogram to adapt dupthresh to
avoid false fast retransmit - Balance false fast retransmit, timeout and
limited transmit according to their relative
costs - Not more aggressive than SACK under congestion,
only more slowly responsive Bansal01 - Demonstrate the relative importance of loss and
reordering to throughput, reordering matters most
under low loss rate - Future work
- Receiver-side RR-TCP, store reordering state and
dupthresh at clients - Share reordering state among short-lived flows
- Study RR-TCP together with multi-path routing
- URL http//www.icir.org/bkarp/RR-TCP
22Multi-path routing
- Link delay 50 ms, 50 packets delayed