ABC: A Simple Explicit Congestion Controller for Wireless Networks

https://www.usenix.org/conference/nsdi20/presentation/goyal

  • 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

Last updated