interviewpath
  • 0day streak
  • 10total XP
  • Level 1
0/5

Unit 12 · Networking research · Lesson 2 of 4

Congestion-control research and its evaluation dependencies

Congestion-control algorithms differ in the signal they react to (loss, delay, explicit marks or a path model) and in how they trade throughput, delay and fairness. Published comparisons hold only for the conditions tested, so research-level understanding means knowing which conditions change a conclusion and how to report them.
About 5 hFocus mode

Step 1: Learn the ideas

  • Loss-based control: Reno and CUBIC
  • Delay-based control: Vegas and successors
  • Model-based control: BBR versions 1 to 3
  • ECN-based and L4S-style control
  • Learning- and utility-based designs
  • Throughput, delay and fairness tradeoffs
  • Intra- versus inter-algorithm fairness and harm
  • Conditions that change conclusions
  • Implementation and version differences

Why it matters

"Is BBR better than CUBIC?" has no unconditional answer, and the question tests whether you know why. A strong answer names the design differences, the tradeoffs and the conditions under which each published result holds, and proposes an experiment that would settle a specific claim.

Core ideas

Families by signal.

  • Loss-based (Reno, CUBIC): increase until loss, then back off. Robust and widely deployed; tends to fill buffers (high delay with deep buffers) and to underuse paths with random loss or shallow buffers. CUBIC's growth depends on time since the last loss rather than on RTT, which improves scaling and RTT fairness relative to Reno.
  • Delay-based (Vegas and later designs such as Copa, or Swift in data centers): back off when RTT rises above the base RTT. Can keep queues short, but loses throughput against loss-based competitors that keep filling the buffer (some designs detect this and switch to a more aggressive mode), and is sensitive to noisy delay measurements.
  • Model-based (BBR): estimate bottleneck bandwidth (a windowed maximum of delivery rate) and propagation RTT (a windowed minimum), pace at the estimated rate and cap inflight near a multiple of the estimated BDP, with periodic probing for more bandwidth and for a lower RTT.
  • Explicit signals (DCTCP, L4S-style schemes): react to ECN marks set by the network, which requires network support.
  • Learning- or utility-based designs optimize an objective online or from training, and inherit the question of how far beyond their training conditions they generalize.

Tradeoffs. No algorithm simultaneously maximizes throughput, minimizes delay and loss, shares fairly with itself and with incumbents, and stays robust to noisy signals. Each design picks a point, and the evaluation shows where.

What changes the conclusion.

  • RTT of each flow and RTT differences between competitors.
  • Bottleneck rate and location (access link, Wi-Fi, cellular scheduler, data-center switch) and whether the bottleneck moves.
  • Buffer depth relative to the BDP and the queue policy: drop-tail versus AQM (RED, CoDel, FQ-CoDel), shared versus per-flow queues, traffic policers.
  • Loss model: random non-congestion loss, bursty loss, or overflow loss only.
  • Cross traffic: number of flows, their algorithms and start times, short versus long flows, application-limited traffic.
  • Implementation and version: kernel versus user space, pacing and offload support, parameter settings, and BBRv1 versus later versions, which also use the packet loss rate to address the retransmission and fairness problems reported for v1.

For example, the BBR article itself reports that loss-based competitors take more than their share when buffers exceed several BDPs, while controlled studies later found BBRv1 taking more than its share in shallow buffers, with heavy retransmissions in some settings. Two papers that omit buffer depth or version cannot be compared.

Common misconceptions

  • "One algorithm is best." Rankings flip across buffer sizes, loss models and competitors.
  • "BBR ignores loss." BBRv1 largely did; later versions bound inflight data when loss exceeds a threshold. Always state the version.
  • "Fair to itself means fair to others." Convergence among flows of one algorithm says little about coexistence with CUBIC.
  • "Delay-based means low latency in practice." Against loss-based competitors, delay-based flows back off while the queue stays full.
  • "Emulator results transfer directly." Emulators omit cellular schedulers, ACK aggregation and policers unless you model them.

How to approach it

For any claim, write the condition table first: bandwidth, RTTs, buffer, queue policy, loss, cross traffic, implementation and version. Then design the smallest experiment that could falsify the claim. Read the BBR article with its guide, then one independent evaluation, and compare their condition tables.

Suggested order

  1. 1Read TCP Congestion Control: A Systems Approach Chapter 3 (Design Space), especially evaluation criteria, comparative analysis and experimental methodology.
  2. 2Read Chapter 4 on AIMD and CUBIC and Chapter 5 (Avoidance-Based Algorithms) on Vegas and BBR.
  3. 3Read RFC 9438 Section 3 (Design Principles of CUBIC) and Section 5 (Discussion) for how its authors frame fairness and difficult environments.
  4. 4Read the BBR article with its paper guide in this app.
  5. 5Read "When to use and when not to use BBR" (Cao et al., IMC 2019) and list the conditions under which its conclusions change.
  6. 6Read "Beyond Jain's Fairness Index" (Ware et al., HotNets 2019) and restate its harm-based criterion in your own words.
  7. 7Write a one-page condition table and experiment plan for a claim such as "BBR is unfair to CUBIC".

Paper guides: BBR: Congestion-Based Congestion Control, Congestion Avoidance and Control, Data Center TCP (DCTCP)

Step 2: Check off what you can do

Tap each one you can genuinely do or explain. Each earns 10 XP.

Step 3: Go deeper

  • TCP Congestion Control: A Systems ApproachStart here

    Systems Approach (open online edition)

    Section: Chapter 3: Design Space

    Evaluation criteria, comparative analysis and experimental methodology; continue with Chapters 4 and 5 for the algorithms.

    Open(opens in a new tab)Link responded, 5 Oct 2026
  • BBR: Congestion-Based Congestion ControlStart here

    Google Research

    Section: Full text in ACM Queue (2016)

    The model-based design argument and deployment observations for BBRv1.

    Open(opens in a new tab)Not checked, 5 Oct 2026
  • RFC 9438: CUBIC for Fast and Long-Distance Networks

    IETF (RFC Editor)

    Section: Section 3: Design Principles of CUBIC

    Specification of the dominant loss-based algorithm and its stated fairness principles.

    Open(opens in a new tab)Not checkable automatically, 5 Oct 2026
  • When to use and when not to use BBR: An empirical analysis and evaluation study

    Stony Brook University (author copy)

    Empirical map of where BBR outperforms or underperforms loss-based algorithms across buffer sizes and loss rates.

    Open(opens in a new tab)Link responded, 5 Oct 2026
  • Beyond Jain's Fairness Index: Setting the Bar For The Deployment of Congestion Control Algorithms

    Swarthmore College (author copy)

    Argument for judging new algorithms by the harm they cause to existing traffic rather than by equal shares.

    Open(opens in a new tab)Link responded, 5 Oct 2026

Step 4: Practice

Use the bottleneck-emulation project to test one specific claim, for example "a single BBR flow takes more than half the link from a CUBIC flow when the buffer is shallow". Write the condition table first (rate, base RTTs, buffer in BDP multiples, queue discipline, loss, flow start times, kernel and algorithm versions), run each configuration at least five times, and report medians with spread. Then change one condition, such as buffer depth, and check whether the conclusion flips.

Record attempts on each problem’s page (+15 XP, +10 more when solved on your own).

Step 5: Test yourself

Answer each one out loud or on paper before you finish the lesson.

  1. Question 1Why does a delay-based flow lose throughput when it shares a drop-tail bottleneck with CUBIC?
  2. Question 2Which two quantities does BBR estimate, and why can they not be measured at the same moment?
  3. Question 3How can the same pair of algorithms produce opposite fairness results with shallow and deep buffers?
  4. Question 4What changed between BBRv1 and later versions, and why does it matter when citing results?
  5. Question 5What is the difference between intra-algorithm fairness and harm to incumbent traffic?
  6. Question 6Why might a scheme tuned in an emulator perform poorly on a cellular link?

You’re done when you can

  • Explain the control loops of CUBIC, a delay-based algorithm and BBR in under five minutes in total.
  • Name the conditions that change a BBR-versus-CUBIC comparison and give a concrete example for at least five of them.
  • Reconstruct the condition table of one published evaluation and identify a missing parameter.
  • Present a falsifiable experiment design for a coexistence claim, including baselines and the number of runs.

Finish the lesson

How confident do you feel?

Lesson complete!

+50 XP

Reviews will come up on the Practice tab so it sticks.

Your notes and study time

Log study time