1 / 21

XCP: eXplicit Control Protocol

XCP: eXplicit Control Protocol. Dina Katabi MIT Lab for Computer Science dk@mit.edu www.ana.lcs.mit.edu/dina. Traditionally, a single mechanism controls both Efficiency and Allocation. Example: In TCP, it is Additive-Increase Multiplicative-Decrease (AIMD).

hagood
Download Presentation

XCP: eXplicit Control Protocol

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XCP: eXplicit Control Protocol Dina Katabi MIT Lab for Computer Science dk@mit.edu www.ana.lcs.mit.edu/dina

  2. Traditionally, a single mechanism controls both Efficiency and Allocation Example: In TCP, it is Additive-Increase Multiplicative-Decrease (AIMD) XCP Approach: Decouple Efficiency and Allocation Controls • Find best mechanism to control aggregate traffic at a link to achieve efficient links utilization • Find best mechanism to shuffle the bandwidth in the aggregate traffic to converge to the desired allocation

  3. TCP TCP TCP’s Throughput Drop • TCP uses AIMD: • No Drop: Increase by a constant increment (i.e., 1 packet/RTT) • Drop: Halve throughput Time Traditional Approach Control drops at router [RED, REM, AVQ, …] TCP couples Efficiency & Fairness

  4. TCP Utilization TCP Utilization Round Trip Delay (sec) Bottleneck Bandwidth (Mb/s) Problems with Current Approaches: • Good performance requires parameter tuning [RED, ARED, REM, PI-controller, AVQ, …] • Inefficient as bandwidth or delay increases[Low02] •  Need to change congestion control because: • Bandwidth is increasing (demands for it are • increasing too!) making TCP more inefficient • Delay is already a problem

  5. Congestion Control is Inefficient Because: • Congestion feedback is binary (i.e., drop or no-drop) and indifferent to the degree of congestion • As a result, TCP oscillates between over-utilizing the link and under-utilizing it Solution: Efficient congestion control requires Explicit feedback (I.e., routers tell senders the degree of congestion )

  6. To make a decision, router needs state of this flow To make a decision, router needs state of all flows Put a flow’s state in its packets [Stoica] Unscalable Scalable Fairness Control Shuffle bandwidth in aggregate to converge to fair rates Router computes a flow’s fair rate explicitly

  7. XCP: An eXplicit Control Protocol • Efficiency Controller • Fairness Controller

  8. Round Trip Time Round Trip Time Congestion Window Congestion Window Feedback Feedback Congestion Header How does XCP Work? Feedback = + 0.1 packet

  9. Round Trip Time Congestion Window Feedback = + 0.1 packet How does XCP Work? Feedback = - 0.3 packet

  10. How does XCP Work? Congestion Window = Congestion Window + Feedback Routers compute feedback without keeping any per-flow state

  11. MIMD AIMD How Does an XCP Router Compute the Feedback? Efficiency Controller Fairness Controller Goal: Matches input traffic to link capacity & drains the queue Goal: Divides  between flows to converge to fairness Looks at a flow’s state in Congestion Header Looks at aggregate traffic & queue • 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 (Proven to converge to fairness)

  12. Windows change by  every davg Traffic rate changes by every davg Rate r(t) changes per time unit by Algorithm: If  > 0  Divide  equally between flows If  < 0 Divide  between flows proportionally to their current rates  =  davg Spare -  Queue Theorem:System is stable (I.e., converges to efficiency) for any link bandwidth, delay, number of sources if: Need to estimate number of flows N RTTi : Round Trip Time of pkt i Cwndi : Congestion Window in pkt i (Proof based on Nyquist Criterion) It Is Tricky … Efficiency Controller Fairness Controller No Per-Flow State No Parameter Tuning

  13. Implementation Implementation uses few multiplications & additions per packet Practical! Gradual Deployment XCP can co-exist with TCP and can be deployed gradually

  14. Performance

  15. Simulations Show XCP is Better • Extensive Simulations • Compared with TCP over DropTail, RED, REM, AVQ, CSFQ • XCP: • Better utilization • Near-zero drops • Fairer • Efficient & robust to increase in bandwidth • Efficient & robust to increase in delay

  16. Subset of Results S1 Bottleneck S2 R1, R2, …, Rn Sn Similar behavior over:

  17. Utilization as a function of Bandwidth Utilization as a function of Delay Utilization Utilization Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec) XCP Remains Efficient as Bandwidth or Delay Increases

  18. Utilization as a function of Bandwidth Utilization as a function of Delay Utilization Utilization  and  chosen to make system robust to delay XCP increases proportionally to spare bandwidth rather than by a constant amount Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec) XCP Remains Efficient as Bandwidth or Delay Increases

  19. Start 40 Flows Start 40 Flows Stop the 40 Flows Stop the 40 Flows XCP is More Efficient than TCPRTT = 40ms, C = 100 Mbps Time (sec) Time (sec) XCP shows fast adaptation! Time (sec) Time (sec)

  20. XCP is Fairer than TCP Same Round Trip Delay Different Round Trip Delay Throughput Throughput Flow ID Flow ID (RTT is from 40 ms to 330 ms )

  21. XCP Summary • XCP • Outperforms TCP • Efficient for any bandwidth • Efficient for any delay • Scalable • Benefits of Decoupling • Efficient utilization becomes about aggregate traffic  No need for per-flow state • Stability analysis looks only at Efficiency Controller (independent of number of flows)

More Related