ABC: A Simple Explicit Congestion Controller for Wireless Networks
https://www.usenix.org/conference/nsdi20/presentation/goyal
Last updated
Was this helpful?
https://www.usenix.org/conference/nsdi20/presentation/goyal
Last updated
Was this helpful?
Wireless Links have Variable Rates
Drop-based E2E Schemes: NewReno, Cubic, etc.
Rely on drops to infer congestion
Drops are infrequent --> under-utilization or bufferbloat
Cubic: deploy deep buffer
AQM Schemes: RED, PIE, CoDel, etc.
Drops and ECN signal only congestion
Do not signal that higher rates are possible
Other E2E Schemes: Verus, Copa, Sprout, etc.
Use RTT, send/receive rate, etc.
Require queue build-ups to estimate available rate
Queues --> trade-off between throughput and delay
Need more feedback for increasing rates
Explicit Schemes: XCP, RCP, etc.
Explicit feedback using the packet header
Compare enqueue rate to link rate for computing feedback
Challenges:
Control loop designed for fixed capacity links
Less accurate in tracking wireless link rates
Multi-bit feedback --> hard to deploy
IP header has no space
IP options are not an option
TCP options: IPSec problems
Accel-Brake Control (ABC)
Single bit feedback - signal both increase and decrease
Repurpose ECN for deployment
Control algorithm for fast-varying links
Use dequeue rate for better feedback
Coexistence
With legacy bottleneck routers
With legacy transport protocol
ABC Overview
Single bit feedback
Sender adjusts window using these accelerate and brake signals
Accelerate: W += 1
Brake: W -= 1
Router controls rate by setting f(t)
f(t) = 0, throttles the transmission
f(t) = 1/2, maintain the current rate
f(t) = 1, doubles the congestion windows every RTT
Within 1 RTT,
W --> 2 * f(t) * W
Sender's rate can be varied from 0 to 2 * current_rate
Control loop for time-varying links
ABC Router: target rate
ABC predicts the future enqueue rate for improved control
Varying link capacity --> enqueue and dequeue rate can differ significantly
Building block for congestion control loops!
ABC: high utilization, low delay
Evaluation
ABC endpoints
Linux - pluggabel TCP API
ABC router
Cellular
Trace driven emulation with Mahimahi
Wi-Fi
Commodity router - Netgear WNDR 3800
Linux implementation using OpenWrt
Summary
Single bit feedback - signal both increase and decrease
Control sender's rate from 0 to 2*Current Rate in 1 RTT
Control loop for fast-varying wireless links
ABC quickly and accurately adapts to varying link rates