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 t
.
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.
References
- https://www.youtube.com/watch?v=mnvuqLipNhg
- https://queue.acm.org/detail.cfm?id=3022184
- https://medium.com/google-cloud/tcp-bbr-magic-dust-for-network-performance-57a5f1ccf437
Categories: development