pub enum CongestionControl {
Bbr,
Cubic,
NewReno,
}Expand description
QUIC congestion controller, selected by [limits].congestion_control.
The default is BBR, deliberately. This proxy exists to carry traffic over
long, often lossy international paths, and a loss-based controller reads the
non-congestive packet loss of those paths as congestion and keeps the window
from ever opening — the download direction collapses to near-zero. BBR models
bottleneck bandwidth and RTT instead of reacting to loss, so it holds
throughput where CUBIC and NewReno stall, matching what the Linux kernel does
for TCP with net.ipv4.tcp_congestion_control = bbr.
The loss-based controllers are kept as an escape hatch: quinn’s BBR is a port marked “experimental”, so an operator who hits trouble after a dependency bump can fall back without recompiling.
Variants§
Bbr
BBR (quinn’s experimental port of BBRv1). The default; best on lossy long-haul paths.
Cubic
CUBIC, quinn’s own default. Loss-based; the standard choice on clean paths.
NewReno
NewReno. Loss-based and the most conservative; mainly of interest for interop testing.
Trait Implementations§
Source§impl Clone for CongestionControl
impl Clone for CongestionControl
Source§fn clone(&self) -> CongestionControl
fn clone(&self) -> CongestionControl
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CongestionControl
Source§impl Debug for CongestionControl
impl Debug for CongestionControl
Source§impl<'de> Deserialize<'de> for CongestionControl
impl<'de> Deserialize<'de> for CongestionControl
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for CongestionControl
Source§impl PartialEq for CongestionControl
impl PartialEq for CongestionControl
Source§fn eq(&self, other: &CongestionControl) -> bool
fn eq(&self, other: &CongestionControl) -> bool
self and other values to be equal, and is used by ==.