TCP Friendly Streaming Ketan Mayer-Patel CS 294-9 :: Fall 2003 TCP Congestion Control Review • 3 phases – Slow-start • Probing for initial congestion level. – Congestion Avoidance • Additive increase, multiplicative decrease – Fast Retransmission/Recovery • Optimizations CS 294-9 :: Fall 2003 Slow-Start • • • • At beginning or after an RTO loss. Window set to 1 segment. Every new ACK grows window by 1. If ssthresh not yet set: – Keep going until RTO loss occurs. – Set ssthresh to 1/2 window size. – Start over. • If ssthresh set, transition to avoidance phase. CS 294-9 :: Fall 2003 Congestion Avoidance • Grow window by 1/window for every ACK. • When RTO loss occurs: – Set ssthresh to half window size. – Set window to 1. – Go back to slow start. CS 294-9 :: Fall 2003 Fast Retransmit/Recover • If three duplicate ACK’s detected: – Retransmit segment identified by duplicate ACK’s. – Set ssthresh to 1/2 window size. – Set window size to ssthresh. – As long as dup acks keep coming, use the following window size equation: • window + # dup acks – If ack changes, go back to avoidance. – If RTO occurs, back to slow start. CS 294-9 :: Fall 2003 AIMD Graphically Window Size • TCP congestion control mostly modeled as being in AIMD phase in steady-state. ssthresh Time CS 294-9 :: Fall 2003 Steady State Control Laws • Increase: wt+R = wt + a • Decrease wt+R = wt *b CS 294-9 :: Fall 2003 AIMD Fairness • AIMD motivated by fairness and stability. • Claim is that AIMD will push multiple TCP connections into a fair and stable operating point. • Formally unproven, but can provide intuition graphically. CS 294-9 :: Fall 2003 Window Size of A AIMD Fairness Graphically Window Size of B CS 294-9 :: Fall 2003 AIMD Fairness Problems • What assumptions are made by the graphical “proof” – Synchronous reaction by both participants. • What governs when TCP reacts? – Round-trip time. – Thus, longer RTT connections might lose to shorter RTT connections. CS 294-9 :: Fall 2003 Loss as Congestion • TCP congestion control couples loss with congestion. – Every loss is a congestion event. • Where does loss come from? – Overflowing queues in bottleneck routers. – Rarely from network level congestion. CS 294-9 :: Fall 2003 RED • Random Early Drop • Introduced as a way of providing congestion feedback before queues completely full. • Basic operation: – Router keeps track of weighted average queue length. – Below some low threshold, nothing done. – Between low and high thresholds, probability of dropping increases linearly – Above high threshold, everything dropped. CS 294-9 :: Fall 2003 RED Graphically Instantaneous queue length Max queue length Forced drop Max threshold Probabilistic early drop Min threshold No drop Time Initial drop probability 100% maxp 2003 minth CS 294-9 :: Fall max th Weighted Average Queue Length ECN • Explicit Congestion Notification – Instead of dropping packet, mark it. – Receiver echoes the mark back to sender in the next ACK (and all ACK’s thereafter). – Sender clears the mark after it makes adjustment. • Recent evidence that shows that ECN essential for any active queue management scheme. CS 294-9 :: Fall 2003 MM Streams and TCP • Congestion control only works if everyone plays along. • Unrestricted datagram traffic will clobber TCP. • Clearly, need congestion control, but in what form. CS 294-9 :: Fall 2003 Why not TCP? • Could just use TCP without the reliability part. Why might this be problematic? – Large, sudden changes in rate. – Caused by slow start, RTO’s, etc. CS 294-9 :: Fall 2003 TCP Friendliness • To avoid being labeled “unreactive”, we need to “look” like TCP. • Two basic strategies: – Use a “TCP-compatible” congestion control algorithm to determing sending rate. – Use encoding and streaming strategies that can deal with rapid rate changes induced by TCP. – Combine these together. CS 294-9 :: Fall 2003 TCP-Compatible Cong. Control • What’s the right metric for compatibility? – A control algorithm is TCP-compatible (or friendly) if it achieves the same long-term throughput as TCP given similar network conditions. CS 294-9 :: Fall 2003 Analyzing TCP Want an expression for bandwidth of connection in terms of loss and delay. B = # packets * S / #RTT * RTT # packets = 3/2 n2 B = (3/2 n*S) / RTT Window Size (# Segments) Loss probability = L Expected loss = 1 # packets such that E(loss) = 1 given L is 1/L n = sqrt(2/(3L)) 2 * ssthresh ssthresh n Time (# RTT’s) B = sqrt(3/(2L))*S/RTT CS 294-9 :: Fall 2003 RAP • Rate-based version of TCP AIMD – Periodically probe for greater bandwidth • No more than once per RTT – Immediately react to congestion. • AIMD applied to inter-packet gap – No longer need to maintain a “window” – Presumes constant packet sizes – Appropriate constants provide TCP-friendliness • Coupled with fine-grained adaptation – This is key. – Will see more about this in the papers. CS 294-9 :: Fall 2003 Binomial Congestion Control • Bansal and Balakrishnan, 2001 • Non-linear congestion control law. – Parameterized by k and l – AIMD is simply one point in parameter space. • Control laws: – wt+R = wt + a / wtk – wt+R = wt - b * wtl • When k = 0, and l = 1, reduces to AIMD • Other parameter choices proven to be TCPcompatible but generate smoother rate changes. CS 294-9 :: Fall 2003 Rate-based Congestion Control • Previous analysis of TCP congestion control is naïve. – Padhye et al. Provide a better analysis. M packet size BTCP t RTT M 2 Dl 3Dl l 1 32l 2 tout min 1,3 3 8 • Basic idea: l loss fraction D number of packets ACK' ed by one ACK – Keep measures of RTT and loss and modulate rate in accordance to TCP analysis. – TCP Vegas proposes to do this with TCP itself. CS 294-9 :: Fall 2003 TFRC • Motivation – TCP-friendly congestion control without sudden rate changes. • Equation-based – Estimates loss and RTT and plugs them directly into analytical estimate for TCP throughput • Estimating loss – Loss “event” as opposed to pure loss • Want to avoid counting more than one loss per RTT • Loss even interval = # of packets between loss events. • Loss rate is weighted average of last 10 loss event intervals. CS 294-9 :: Fall 2003