Uses of Interface
io.github.mahmoudimus.quic.congestion.Controller
Packages that use Controller
Package
Description
Congestion control for QUIC (RFC 9002 section 7), ported from quinn-proto's
congestion
module: the Controller interface, NewReno (RFC 9002), Cubic (RFC 9438, the default, as in quinn), the
experimental Bbr (quinn's BBRv1-style port) and the
RttEstimator they read.The sans-I/O QUIC connection and endpoint, ported from quinn-proto: the
Connection state machine (handshake, packet assembly and
processing, key updates, closing and draining), the Endpoint that routes datagrams and answers with Version
Negotiation, Retry and stateless resets, their configurations (TransportConfig, ServerConfig, ClientConfig, EndpointConfig), and the building blocks they are made of:
range sets (RangeSet), reassembly of received data
(Assembler), buffering of sent data (SendBuffer), streams and flow control (StreamsState), packet number spaces and ACK generation
(PacketSpace), loss detection (Recovery), pacing (Pacer), path MTU discovery (MtuDiscovery) and timers (TimerTable).-
Uses of Controller in io.github.mahmoudimus.quic.congestion
Classes in io.github.mahmoudimus.quic.congestion that implement ControllerModifier and TypeClassDescriptionfinal classA BBR congestion controller, experimental as in quinn: it models the path's bottleneck bandwidth and minimum RTT instead of reacting to loss, aiming at less buffer bloat and better throughput on paths with a high bandwidth-delay product. quinn's port, which this follows, is based on a BBRv1 sender (bbr_sender.cc) and draft-cardwell-iccrg-bbr-congestion-control.final classThe CUBIC congestion controller (RFC 9438), counting the window in bytes: slow start, then the cubic window functionW_cubic(t) = C * (t - K)^3 + W_maxwith the Reno-friendly estimateW_est, fast convergence, and a multiplicative decrease ofbeta_cubic = 0.7.final classThe NewReno congestion controller of RFC 9002 section 7: slow start, then congestion avoidance growing the window by one datagram per window acknowledged (Appropriate Byte Counting, RFC 3465), and a multiplicative decrease once per recovery period.Methods in io.github.mahmoudimus.quic.congestion that return ControllerModifier and TypeMethodDescriptionBbrConfig.build(long now, int currentMtu) ControllerFactory.build(long now, int currentMtu) A new controller.CubicConfig.build(long now, int currentMtu) NewRenoConfig.build(long now, int currentMtu) Bbr.copy()Controller.copy()A copy of the controller's state, for a new path that starts from this one.Cubic.copy()NewReno.copy() -
Uses of Controller in io.github.mahmoudimus.quic.connection
Methods in io.github.mahmoudimus.quic.connection that return Controller