What is BBR
A congestion control based on measuring the two parameters that
characterize a path: bottleneck bandwidth and round-trip propagation
time, or BBR.
Why Use BBR?
- Better congestion control algorithm in TCP.
- No need to change the client.
- More effective in a high packet loss network!
- The classic TCP uses binary exponential backoff and makes requests slow.
How BBR Work?
Instead of assuming a packet loss as congestion, BBR measures two parameters and forms a control loop.
- Bottleneck Bandwidth
- RoundTripTime of a packet
Bottleneck bandwidth is the max available bandwidth of a connection.
It creates a control loop to bump up/down Bottleneck bandwidth depending on average packet payload delivery over a time
On each ack: It updates the Bottleneck Bandwidth & RoundTrip time.
On each send: It tempers the
pacing_rate to bump up/down the Bottleneck bandwidth.
BBR is a simple instance of a Max-plus control system, a new approach
to control based on nonstandard algebra.12 This approach allows the
adaptation rate [controlled by the max gain] to be independent of
the queue growth [controlled by the average gain].
Since the server can instrument the packets, monitor and decide the right load to a connection, the client needs not any change.
CUBIC vs BBR
CUBIC also increases bottleneck bandwidth but doesn’t retract after hitting the plateau. BBR actively learns the packet RTT & adjusts bandwidth. Thus the queue length stays small and latencies smaller than CUBIC.