Skip to content

Only NewReno + Cubic congestion control; no BBR #192

Description

@ch4r10t33r

Severity

Low — not RFC-mandatory. NewReno + Cubic cover most deployments; BBR matters mainly on high-BDP / lossy long-RTT paths (intercontinental, satellite, Tor-style transports).

Summary

zquic ships with `NewReno` and `Cubic` in `src/loss/congestion.zig` and `src/loss/cubic.zig`, selectable via a tagged-union `Controller`. quinn additionally ships `BBR` (v1) in `congestion/bbr.rs`.

Evidence

quinn: `quinn-proto/src/congestion/` — `bbr.rs`, `cubic.rs`, `new_reno.rs` (three algos via trait `Controller`).

zquic:

Impact for libp2p

  • For Lean / Eth2 devnets on continental-scale paths, Cubic is adequate.
  • For globe-spanning gossip mesh, BBR's bandwidth-probing behaviour would reduce stalls under bufferbloat-y middleboxes.

Suggested fix

  1. Add a `Controller.bbr` variant to the existing tagged union.
  2. Implement BBR v1 (state machine: STARTUP → DRAIN → PROBE_BW → PROBE_RTT) — RFC 9438 / draft-cardwell-iccrg-bbr-congestion-control.
  3. Add CLI / config knob for algorithm selection.

Tracker: #138

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions