Congestion Control for High Bandwidth-Delay Product Environments Dina Katabi Mark Handley Charlie Rohrs High Performance Switching and Routing Telecom Center Workshop: Sept 4, 1997.
Download ReportTranscript Congestion Control for High Bandwidth-Delay Product Environments Dina Katabi Mark Handley Charlie Rohrs High Performance Switching and Routing Telecom Center Workshop: Sept 4, 1997.
Congestion Control for High Bandwidth-Delay Product Environments Dina Katabi Mark Handley Charlie Rohrs High Performance Switching and Routing Telecom Center Workshop: Sept 4, 1997. TCP congestion control performs poorly as bandwidth or delay increases Shown analytically in [Low01] and via simulations 50 flows in both directions Buffer = BW x Delay RTT = 80 ms 50 flows in both directions Buffer = BW x Delay BW = 155 Mb/s Because TCP lacks fast response • Spare bandwidth is available TCP increases by 1 pkt/RTT even if spare bandwidth is huge • When a TCP starts, it increases exponentially Too many drops Flows ramp up by 1 pkt/RTT, taking forever to grab the large bandwidth Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec) Proposed Solution: Decouple Congestion Control from Fairness High Utilization; Small Queues; Few Drops Bandwidth Allocation Policy Proposed Solution: Decouple Congestion Control from Fairness Coupled because a single mechanism controls both Example: In TCP, Additive-Increase MultiplicativeDecrease (AIMD) controls both How does decoupling solve the problem? 1. To control congestion: use MIMD which shows fast response 2. To control fairness: use AIMD which converges to fairness Characteristics of Our Solution 1. Improved Congestion Control (in high bandwidthdelay & conventional environments): • Small queues • Almost no drops 2. Improved Fairness 3. Scalable (no per-flow state) 4. Flexible bandwidth allocation: min-max fairness, proportional fairness, differential bandwidth allocation,… XCP: An eXplicit Control Protocol 1. Congestion Controller 2. Fairness Controller How does XCP Work? Round Trip Round Time Trip Time Congestion Congestion WindowWindow Feedback Feedback Feedback = + 0.1 packet Congestion Header How does XCP Work? Round Trip Time Congestion Window Feedback == Feedback +- 0.3 0.1 packet How does XCP Work? Congestion Window = Congestion Window + Feedback XCP extends ECN and CSFQ Routers compute feedback without any per-flow state How Does an XCP Router Compute the Feedback? Congestion Controller Fairness Controller Looks at aggregate traffic & queue Looks at a flow’s state in Congestion Header Algorithm: Aggregate traffic changes by ~ Spare Bandwidth ~ - Queue Size So, = davg Spare - Queue Algorithm: If > 0 Divide equally between flows If < 0 Divide between flows proportionally to their current rates Congestion Fairness Goal: Matches input traffic to Goal: Divides between link capacityController & drains the queue flows Controller to converge to fairness MIMD AIMD Getting the devil out of the details … Congestion Controller = davg Spare - Queue Theorem: System converges to optimal utilization (i.e., stable) for any link bandwidth, delay, number of sources if: 0 4 2 and 2 2 No Parameter Tuning (Proof based on Nyquist Criterion) Fairness Controller Algorithm: If > 0 Divide equally between flows If < 0 Divide between flows proportionally to their current rates Need to estimate number of flows N N pkts in T 1 T (Cwnd pkt / RTTpkt ) RTTpkt : Round Trip Time in header No Per-Flow State Cwndpkt : Congestion Window in header T: Counting Interval Implementation Implementation uses few multiplications & additions per packet Practical! Liars? • Policing agents at edges of the network or statistical monitoring • Easier to detect than in TCP Gradual Deployment XCP can co-exist with TCP and can be deployed gradually Performance Subset of Results S1 Bottleneck S2 R1, R2, …, Rn Sn Similar behavior over: XCP Remains Efficient as Bandwidth or Delay Increases Utilization as a function of Bandwidth Bottleneck Bandwidth (Mb/s) Utilization as a function of Delay Round Trip Delay (sec) XCP Remains Efficient as Bandwidth or Delay Increases Utilization as a function of Bandwidth XCP increases proportionally to spare bandwidth Bottleneck Bandwidth (Mb/s) Utilization as a function of Delay and chosen to make XCP robust to delay Round Trip Delay (sec) XCP Shows Faster Response than TCP Start 40 Flows Start 40 Flows Stop the 40 Flows Stop the 40 Flows XCP shows fast response! XCP Deals Well with Short Web-Like Flows Arrivals of Short Flows/sec XCP is Fairer than TCP Same RTT Flow ID Different RTT Flow ID (RTT is 40 ms 330 ms ) XCP Summary • XCP Outperforms TCP Efficient for any bandwidth Efficient for any delay Scalable • Benefits of Decoupling Use MIMD for congestion control which can grab/release large bandwidth quickly Use AIMD for fairness which converges to fair bandwidth allocation Questions? NS Code & More Information at: http://ana.lcs.mit.edu/dina/XCP