BBR (Bottleneck Bandwidth and Round-trip propagation time) ist ein von Google entwickelter Überlaststeuerungs-Algorithmus für TCP. Statt wie klassische Verfahren auf Paketverlust zu reagieren, baut BBR ein explizites Modell des Netzwerkpfads auf und hält die Senderate damit nahe am physikalischen Optimum.
Idee: Modell statt Verlustreaktion
Klassische, verlustbasierte Verfahren (Reno, CUBIC) erhöhen das Congestion Window, bis Pakete verloren gehen, und halbieren es dann. Das füllt Router-Puffer (Bufferbloat) und erzeugt unnötige Latenz. BBR misst stattdessen zwei Größen des Pfads: die Bottleneck-Bandbreite (BtlBw) und die minimale Umlaufzeit (RTprop, Round-trip propagation time). Daraus ergibt sich das Bandbreiten-Verzögerungs-Produkt (BDP) als Zielmenge der Daten im Flug.
Arbeitsweise
BBR arbeitet in vier Zuständen: Startup (exponentielles Erkunden bis zur Bottleneck-Bandbreite), Drain (Abbau überschüssiger Daten), ProbeBW (regelmäßiges, zyklisches Abtasten der Bandbreite) und ProbeRTT (minimale RTT erfassen). Die Senderate wird per Pacing gleichmäßig auf das BDP begrenzt — kein Burst-Füllen der Puffer. So erreicht BBR oft deutlich höheren Durchsatz bei gleichzeitig niedrigerer Latenz, besonders auf Pfaden mit großen Puffern.
Einsatz
# BBR im Linux-Kernel aktivieren (Kernel 4.9+)
sudo sysctl net.ipv4.tcp_congestion_control=bbr
sudo sysctl net.core.default_qdisc=fq
BBR ist seit Linux-Kernel 4.9 (Dezember 2016) verfügbar und wird bei Google sowie bei vielen Cloud- und CDN-Anbietern produktiv eingesetzt. Die Spezifikation läuft als IETF-Entwurf (draft-ietf-ccwg-bbr); BBRv2 erweitert das Verfahren um eine bessere Reaktion auf ECN-Signale und Verluste.
Verwandte Grundlagen: TCP, Congestion Window, Netzwerkpaket, Latenz, MSS, ECN, QUIC.