Struct quinn::congestion::Bbr
source · pub struct Bbr { /* private fields */ }Expand description
Experimental! Use at your own risk.
Aims for reduced buffer bloat and improved performance over high bandwidth-delay product networks. Based on google’s quiche implementation https://source.chromium.org/chromium/chromium/src/+/master:net/third_party/quiche/src/quic/core/congestion_control/bbr_sender.cc of BBR https://datatracker.ietf.org/doc/html/draft-cardwell-iccrg-bbr-congestion-control. More discussion and links at https://groups.google.com/g/bbr-dev.
Implementations§
Trait Implementations§
source§impl Controller for Bbr
impl Controller for Bbr
source§fn on_sent(&mut self, now: Instant, bytes: u64, last_packet_number: u64)
fn on_sent(&mut self, now: Instant, bytes: u64, last_packet_number: u64)
One or more packets were just sent
source§fn on_ack(
&mut self,
now: Instant,
sent: Instant,
bytes: u64,
app_limited: bool,
rtt: &RttEstimator
)
fn on_ack(
&mut self,
now: Instant,
sent: Instant,
bytes: u64,
app_limited: bool,
rtt: &RttEstimator
)
Packet deliveries were confirmed Read more
source§fn on_end_acks(
&mut self,
now: Instant,
in_flight: u64,
app_limited: bool,
largest_packet_num_acked: Option<u64>
)
fn on_end_acks(
&mut self,
now: Instant,
in_flight: u64,
app_limited: bool,
largest_packet_num_acked: Option<u64>
)
Packets are acked in batches, all with the same
now argument. This indicates one of those batches has completed.source§fn on_congestion_event(
&mut self,
_now: Instant,
_sent: Instant,
_is_persistent_congestion: bool,
lost_bytes: u64
)
fn on_congestion_event(
&mut self,
_now: Instant,
_sent: Instant,
_is_persistent_congestion: bool,
lost_bytes: u64
)
Packets were deemed lost or marked congested Read more
source§fn initial_window(&self) -> u64
fn initial_window(&self) -> u64
Initial congestion window