読み方 : ビービーアール
BBR【Bottleneck Bandwidth and Round-trip propagation time】
概要

IPネットワーク上で信頼性の高いデータ送受信を行うトランスポート層のプロトコルであるTCP(Transmission Control Protocol)では、データを送信する際にネットワークの混雑(輻輳)を検知しながら送信速度を自動的に調整する輻輳制御の仕組みを持っている。
長年に渡って広く使われてきた「CUBIC」や「Reno」といった従来のアルゴリズムは、パケットの損失を輻輳のシグナルとして検知し、損失が起きると送信速度を落とす方式を採用している。この方式ではルータのバッファにパケットが大量に滞留した状態(バッファブロート)が生じやすく、遅延が増大するという問題が指摘されていた。
BBRは米グーグル(Google)社が2016年に提案したアルゴリズムで、この問題を根本から見直した仕組みとなっている。パケット損失ではなく、実際に計測したスループット(単位時間あたりのデータ送受信量)とRTT(ラウンドトリップタイム:パケットが往復するのにかかる時間)の変化をもとにネットワークの状態を推定する。バッファを溢れさせることなく最大限の帯域を活用できる送信速度を継続的に探索し、バッファブロートを抑制しながら高いスループットを維持することが可能になる。
BBRは長距離回線や高帯域回線、あるいは損失が起きやすい無線環境などで、従来方式より有利に機能する。例えば、動画配信や大容量データ転送のように継続的な通信量が大きい状況では、回線を有効利用しながら遅延の増加を抑える目的で用いられる。一方、他の輻輳制御方式と混在したときに帯域を占有しがちになるなどの課題もあり、BBRv2、BBRv3と改良が行われている。