Fair-BBR (BBQ): Enhancing RTT Fairness
- Fair-BBR (BBQ) is a congestion control algorithm that modifies standard BBR by capping the probe duration, thus mitigating RTT-induced bandwidth unfairness.
- It introduces a targeted mechanism that detects persistent queues and limits excess data injection, aligning probing behavior across flows with different RTTs.
- Empirical results indicate that BBQ significantly improves short-RTT flow performance and reduces queue delays by up to 65% while maintaining high throughput.
Fair-BBR ("BBQ") is a congestion control algorithm designed as a modification of Google's BBR (Bottleneck Bandwidth and Round-trip propagation time) protocol to address severe RTT fairness shortcomings observed in wide-area deployments. While vanilla BBR delivers model-based bandwidth maximization with low latency, it suffers from a systemic problem wherein flows with longer round-trip times (RTT) dominate and even starve flows with shorter RTTs. Fair-BBR (BBQ) introduces a targeted mechanism to counteract this bias, ensuring equitable bandwidth allocation—independent of RTT—without sacrificing throughput or delay performance (Ma et al., 2017).
1. RTT-Unfairness in Standard BBR
BBR estimates the network path's bottleneck bandwidth (MaxBw) and minimum observed RTT (MinRTT), then paces traffic at a multiple of MaxBw, bounding the congestion window at . BBR enters a periodic cycle with states ProbeBw (pacing gain ), Drain ($0.75$), and Cruise ($1.0$). The paradigm is fundamentally different from loss-based congestion control, focusing on modeling path characteristics.
Extensive deployment in both Internet-scale and in-house cluster settings revealed that, when multiple BBR flows with different RTTs compete, bandwidth allocation is highly skewed. For example, in a 100 Mbps bottleneck with a 10 ms-RTT flow and a 50 ms-RTT flow, the 10 ms flow receives just 6.3 Mbps, while the 50 ms flow achieves 87.3 Mbps. Similar disparities persist across a range of bandwidths, RTT ratios, and flow counts, indicating the bias is intrinsic to the original probe/drain mechanism rather than an implementation artifact.
The underlying cause is twofold:
- Persistent Queue Formation: In ProbeBw, each BBR flow sends excess data during probing, amounting to . Long-RTT flows inject more data per probe, creating persistent queues.
- CWND Bounding: As queues grow, short-RTT flows become congestion-window (CWND) bounded, unable to keep up with long-RTT flows, which continue aggressive probing, thus capturing a disproportionate share of the bottleneck (Ma et al., 2017).
2. Fair-BBR (BBQ) Design Principles
BBQ's objective is to preserve BBR's model-based throughput and low-latency targets, while restoring RTT fairness regardless of RTT disparities among flows. The solution is to cap the volume of excess data each flow injects during probing, thereby eliminating the RTT-proportional advantage in standard BBR.
Key design changes:
- Probe Length Capping: During the ProbeBw phase, BBQ limits the probe duration to , where is a constant (e.g., 3 ms).
- Long-RTT flows (MinRTT > ) probe for only ms, aligning their excess injection per cycle with short-RTT flows.
- Short-RTT flows (MinRTT ≤ ) experience unchanged behavior.
- Selective Activation (Queue Detection): To avoid stalling in underutilized links, BBQ caps the probe duration only when a persistent queue is detected—specifically, when the sampled RTT 0, with 1 as a slack parameter (e.g., 1%).
- Effect on Excess Volume: The probe excess per cycle is universally bounded: 2, decoupled from RTT.
This design preserves BBR’s operating point and rapid adaptation while precluding large flows from flooding the queue by virtue of higher RTT (Ma et al., 2017).
3. Algorithmic Structure: State Machine and Pseudocode
The algorithmic structure of BBQ closely follows BBR, with only the probe phase modified as follows:
$0.75$0
Distinctive aspects:
- Probe length is capped at 3 when persistent queues are detected.
- Queue detection uses a direct RTT vs. MinRTT test, not rate-of-change gradients.
- All other pacing gain states and CWND operation remain as in BBR (Ma et al., 2017).
4. Linux Implementation and Configuration
BBQ is implemented as an extension to the BBR module in the Linux 4.9.18 kernel (tcp_bbr.c). Implementation modifications include:
- Introduction of new sysctl tunables:
tcp_bbr_probe_cap_ussets 4 in microseconds (default: 3000 µs).tcp_bbr_slacksets 5 as a fraction (e.g., 0.01 for 1%).
- In PROBE_BW, the probe duration test checks against 6 when the queue is deemed full.
- Queue detection via direct comparison of the smoothed RTT estimator to 7.
- No change to the calculation of pacing gains or 8 (Ma et al., 2017).
5. Empirical Results and Comparative Performance
Experimental evaluation demonstrates that BBQ restores near-perfect RTT fairness without throughput or latency penalties. Representative findings include:
| Scenario | BBR | BBQ |
|---|---|---|
| 10 ms vs 50 ms RTT, 100 Mbps | 6.3 Mbps/87.3 Mbps (SR/ LR) | 51.4 Mbps/42.5 Mbps (SR/LR) |
| Queueing Delay | ≈23 ms | ≈8.3 ms |
- The short-RTT flow's share under BBQ improves by 55%–6.1× across 10 Mbps–1 Gbps bottlenecks; for bandwidths above 100 Mbps, flows split bandwidth evenly.
- With growing RTT disparity (10 ms to 200 ms), the short-RTT flow under BBQ maintains ≈37% share, a 4.6× improvement over vanilla BBR.
- In scenarios with one long-RTT versus several short-RTT flows, per-flow fairness is substantially enhanced, though gains diminish as the number of short-RTT flows increases and queues deepen.
- Consistent use of 9ms achieves 84%–440% gains in short-RTT flow share across RTT pairs (5 ms–300 ms).
- BBQ reduces average queueing delay by ≈65%, with no observed sacrifice of BBR's high throughput or speed of adaptation (Ma et al., 2017).
6. Significance, Limitations, and Broader Context
Fair-BBR (BBQ) demonstrates that model-based congestion control can be compatible with robust RTT fairness through minimal, principled design changes. By specifically targeting the phase responsible for RTT-proportional excess—without altering steady-state mechanisms or responsiveness—BBQ avoids the classic tradeoffs between fairness and utilization endemic to loss-based controllers.
A plausible implication is that future iterations of model-based congestion control protocols should explicitly manage resource allocation on a per-probe basis to maintain fairness across heterogeneous RTTs—an oversight in BBR’s original design revealed by large-scale deployment. Empirical results suggest that the approach is effective for both small and large bottlenecks, diverse RTTs, and mixed flow counts.
Potential limitations include diminishing returns in fairness when the number of short-RTT flows is very large or queue formation becomes excessively deep, which could demand further adaptive tweaks. Nonetheless, by introducing only minor changes in probe duration control, BBQ reestablishes equitable bandwidth distribution in practical settings where RTT heterogeneity is endemic (Ma et al., 2017).