210 likes | 232 Views
Explore the innovative XCP protocol that enhances network performance, ensuring fairness among flows while maintaining high utilization and minimal drops even with increasing bandwidth and delay. Learn about XCP's sender, receiver, and router roles, control interval estimation, efficiency, and fairness controllers.
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.