Congestion Control for High BandwidthDelay Product Networks D
Congestion Control for High Bandwidth-Delay Product Networks D. Katabi (MIT), M. Handley (UCL), C. Rohrs (MIT) – SIGCOMM’ 02 Presented by Cheng Huang 02. 12. 2004 1
Basics of TCP Congestion Control n Bandwidth-delay product q n Congestion window (cwnd) q n Capacity of the “pipe” between a TCP sender and a TCP receiver sender’s estimation of the capacity Additive Increase and Multiplicative Decrease (AIMD) algorithm q q no loss: 02. 12. 2004 cwnd = cwnd + s cwnd = cwnd – cwnd/2 2
Motivations n Inadequacy of TCP, as bandwidth-delay product increases q Prone to instability n q n regardless of AQM schemes Inefficient Fairness concern q TCP tends to bias against long RTT flows n 02. 12. 2004 Satellite links, wireless links, etc. 3
Design Rationale n n n NOT an end-to-end approach Using precise congestion signaling Decoupling efficiency and fairness control 02. 12. 2004 4
Features of XCP (e. Xplicit Control Protocol) n Maintains high utilization, small queues, and almost no drops, as bandwidth/delay increases q n n drop: less than one in a million packets Maintains good performance in dynamic environment (with many short web-like flows) No bias against long RTT flows 02. 12. 2004 5
XCP – Sender/Receiver’s Role n Sender q q n Fill the congestion header Update cwnd = max(cwnd + H_feedback, s) Receiver q Copy H_feedback to ACK 02. 12. 2004 6
XCP – Router’s Role n Control Interval Estimation q n Efficiency Control q n Average RTT Maximize link utilization Fairness Control q Achieve fairness among individual flows 02. 12. 2004 7
Control Interval Estimation n Estimation requirement q q q Core stateless Average over flows (not over packets) e. g. two flows have RTTs of 80 ms and 40 ms and the same cwnd = 10 packets, then average RTT over packets is: RTTavg = (80*10+40*20)/(10+20) = 53. 33 (ms) Instead, average RTT over flows is: RTTavg = (80*80*10+40*40*20)/(80*10+40*20) = 60 (ms) 02. 12. 2004 8
Control Interval Estimation (2) n Weight of each packet q n Average RTT q n wi = H_rtti * (si / H_cwndi) sum(wi * H_rtti) / sum(wi) Average cwnd q sum(wi * H_cwndi) / sum(wi) 02. 12. 2004 9
Efficiency Controller (EC) n Aggragate feedback (total H_feedback) q q n alpha, beta: constant value d: control interval (average RTT) S: spare bandwidth Q: persistent queue size Stability requirement determines alpha = 0. 4; beta = 0. 226 q Independent of delay, capacity and number of flows 02. 12. 2004 10
Fairness Controller (FC) n Achieve fairness via AIMD algorithm q q n Positive feedback q q n phi > 0, equal throughput increment of all flows phi < 0, throughput decrement proportional to its current throughput (1/wi) * (pi/H_rtti) = C 1 (constant value) sum(pi/H_rtti) = phi/d Negative feedback q q (1/wi) * (ni/H_rtti) = C 2 * H_cwndi/H_rtti sum(ni/H_rtti) = phi/d 02. 12. 2004 11
Fairness Controller (FC) (2) n Bandwidth shuffling q h = max(0, gamma*y - |phi|) n n 02. 12. 2004 gamma = 0. 1 y: input traffic 12
Performance Evaluation n Simulation topology I 02. 12. 2004 13
02. 12. 2004 14
02. 12. 2004 15
Performance Evaluation (2) n Simulation topology II 02. 12. 2004 16
The dynamics of XCP (I) 02. 12. 2004 17
The Dynamics of XCP (II) 02. 12. 2004 18
Differential Bandwidth Allocation n Replace FC q phi > 0: allocate throughput increment according to flows’ prices 02. 12. 2004 19
Gradual Deployment – A TCP-friendly XCP n Separate queues to distinguish TCP and XCP traffics Calculate average cwnd of TCP traffics by n Update weights to make TCP and XCP fair n 02. 12. 2004 20
Conclusion n XCP provides a theoretically sound, yet effective approach to congestion control. It remains excellent performance, independent of link capacity, delay and number of flows. 02. 12. 2004 21
- Slides: 21