What is TCP BBR?

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.

  1. Bottleneck Bandwidth
  2. 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