210 likes | 223 Views
Congestion Control for High Bandwidth-Delay Product Networks. D. Katabi (MIT), M. Handley (UCL), C. Rohrs (MIT) – SIGCOMM’02 Presented by Cheng Huang. Basics of TCP Congestion Control. Bandwidth-delay product Capacity of the “pipe” between a TCP sender and a TCP receiver
E N D
Congestion Control for High Bandwidth-Delay Product Networks D. Katabi (MIT), M. Handley (UCL), C. Rohrs (MIT) – SIGCOMM’02 Presented by Cheng Huang
Basics of TCP Congestion Control • Bandwidth-delay product • Capacity of the “pipe” between a TCP sender and a TCP receiver • Congestion window (cwnd) • sender’s estimation of the capacity • Additive Increase and Multiplicative Decrease (AIMD) algorithm • no loss: cwnd = cwnd + s • loss: cwnd = cwnd – cwnd/2
Motivations • Inadequacy of TCP, as bandwidth-delay product increases • Prone to instability • regardless of AQM schemes • Inefficient • Fairness concern • TCP tends to bias against long RTT flows • Satellite links, wireless links, etc.
Design Rationale • NOT an end-to-end approach • Using precise congestion signaling • Decoupling efficiency and fairness control
Features of XCP (eXplicit Control Protocol) • Maintains high utilization, small queues, and almost no drops, as bandwidth/delay increases • 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
XCP – Sender/Receiver’s Role • Sender • Fill the congestion header • Update cwnd = max(cwnd + H_feedback, s) • Receiver • Copy H_feedback to ACK
XCP – Router’s Role • Control Interval Estimation • Average RTT • Efficiency Control • Maximize link utilization • Fairness Control • Achieve fairness among individual flows
Control Interval Estimation • Estimation requirement • 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)
Control Interval Estimation (2) • Weight of each packet • wi = H_rtti * (si / H_cwndi) • Average RTT • sum(wi * H_rtti) / sum(wi) • Average cwnd • sum(wi * H_cwndi) / sum(wi)
Efficiency Controller (EC) • Aggragate feedback (total H_feedback) • 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 • Independent of delay, capacity and number of flows
Fairness Controller (FC) • Achieve fairness via AIMD algorithm • phi > 0, equal throughput increment of all flows • phi < 0, throughput decrement proportional to its current throughput • Positive feedback • (1/wi) * (pi/H_rtti) = C1 (constant value) • sum(pi/H_rtti) = phi/d • Negative feedback • (1/wi) * (ni/H_rtti) = C2 * H_cwndi/H_rtti • sum(ni/H_rtti) = phi/d
Fairness Controller (FC) (2) • Bandwidth shuffling • h = max(0, gamma*y - |phi|) • gamma = 0.1 • y: input traffic
Performance Evaluation • Simulation topology I
Performance Evaluation (2) • Simulation topology II
Differential Bandwidth Allocation • Replace FC • phi > 0: allocate throughput increment according to flows’ prices
Gradual Deployment – A TCP-friendly XCP • Separate queues to distinguish TCP and XCP traffics • Calculate average cwnd of TCP traffics by • Update weights to make TCP and XCP fair
Conclusion • XCP provides a theoretically sound, yet effective approach to congestion control. It remains excellent performance, independent of link capacity, delay and number of flows.