Network Congestion Gabriel Nell UC Berkeley Outline Background: what is congestion? Congestion control – End-to-end – Router-based Economic insights Overview of TCP-friendly congestion control mechanisms Congestion The state of sustained network overload Congestion collapse – Traffic dominated by overhead such as packet retransmissions Current internet – Dominated by best-effort traffic – TCP for guaranteed delivery; Congestion-aware – UDP for streaming applications; Congestion-unaware Controlling Congestion End-hosts – Advantages: cheap, scalable – Disadvantage: requires cooperation Routers – Advantages: can be more aggressive, has a complete picture of network traffic – Disadvantages: expensive, algorithms difficult to implement in hardware TCP Congestion Control Implemented at end hosts Relies on feedback – Implicit: packet drops indicate congestion – Explicit: ECN flags in header Congestion controlled by changing window size: additive increase, multiplicative decrease (AIMD) Problem: delays in adapting to network conditions may cause oscillations Router-Based Control Scheduling – Determines service order – Should be easy to implement, provide fairness and protection, and perform well Scheduling algorithms – FIFO (first in, first out) – Round-robin / weighted round-robin – Weighted fair queuing Router-Based Control Buffer Management – Absorbs bursts – Shared/per-flow – Introduce delay Queue Management – Manage queue length, decide what packets to drop – RED effective, but difficult to parameterize for variable conditions Economic Insights Tragedy of the Commons – Network resources a public good – Negative externality Solution: Internalize costs – Congestion pricing: cover fixed costs, charge extra under congestion conditions – Charge by willingness to pay Economic Insights New problem - customers prefer: – Flat rates – Constant performance, even if variable performance is better on average TCP-friendly Congestion Control TCP-friendly: long-term throughput does not exceed that of TCP under the same conditions Motivation: want to stream data such as audio and video without degrading overall network performance For convenience, consider long-lasting streams Congestion Control Schemes Window-based vs. Rate-based Unicast vs. Multicast End-to-end vs. Router-supported Single-rate Vs. Multi-rate Meaningful when considering multicast Single-rate sends data to each client at the same rate Multirate sends data to each client at whatever rate is best for that client Single-rate Protocols Rate-based Approaches RAP – Rate Adaptation Protocol – Simple AIMD behavior LDA+ – Loss-Delay Based Adaption Algorithm – Dynamic AIMD based on RTCP feedback TFRC – TCP-Friendly Rate Control Protocol – Adjusts sending rate based on complex TCP equation TEAR – TCP Emulation at Receivers – Uses a congestion window to determine rate, but averages over larger timescales Window-based Approaches RLA – Random Listening Algorithm – Tracks number n of congested receivers, window is decreased if a random number is 1/n MTCP – Multicast TCP – Arrange receivers in a tree, children report congestion to parents. – Root receives aggregate info, sends only as much data as smallest window NCA – Nominee-Based Congestion Avoidance – Selects bottleneck as representative receiver, uses TCP- style congestion control algorithm Multi-rate Protocols Rate-based Approaches RLC – Receiver-Driven Layered Congestion Control – Bandwidth consumed by each layer increases exponentially – Subscription to additional layers comes at particular times, which also increase exponentially; however congestion causes immediate layer drops Rate-based Approaches FLID-DL – Fair Layered Increase/Decrease with Dynamic Layering – Encodes data with digital fountain – Bandwidth consumed by a layer decreases over time LTS/TFRP – Layered Transmission Scheme/TCP-Friendly Transport Protocol – Use simple TCP rate equation to decide subscription level MLDA and Rainbow MLDA – Multicast Loss-Delay Based Adaption Algorithm (rate-based) – Same as LDA+, but performs rate calculation at receiver Rainbow (window-based) – Encode data with digital fountain – Receivers individually request packets based on individual windows Conclusion Congestion is an important and complex problem Many solutions of varying effectiveness and complexity for various applications Areas of future research: – Methods of comparing protocols – Improve definitions of fairness, friendliness – Improve models of TCP traffic Questions?