В контексте сетевых интерфейсов и передачи данных аббревиатура **BBR** расшифровывается как **Bottleneck Bandwidth and Round-trip propagation time** (Пропускная способность узкого места и время кругового обхода).
Это современный алгоритм управления перегрузкой TCP, разработанный инженерами Google в 2016 году.
---
### Почему это важно?
Традиционные алгоритмы (например, CUBIC или Reno) определяют наличие перегрузки по **потере пакетов**. Это работало в 90-х, но сегодня приводит к проблемам:
* **Bufferbloat:** Роутеры с большими буферами накапливают очереди, что дико увеличивает задержку (пинг), прежде чем TCP поймет, что пора замедлиться.
* **Низкая скорость на нестабильных линиях:** Если пакет потерян из-за помех (а не из-за перегрузки), обычный TCP резко снижает скорость, хотя канал свободен.
**BBR же работает иначе:** он не ждет потерь, а постоянно измеряет реальную скорость канала и минимальную задержку, строя модель сети.
---
### Как работает BBR?
Алгоритм пытается найти «золотую середину», управляя потоком данных на основе двух ключевых метрик:
1. **RTprop (Round-Trip propagation time):** Чистое время прохождения сигнала туда-обратно без учета очередей.
2. **BtlBw (Bottleneck Bandwidth):** Максимальная емкость самого узкого участка пути.
BBR старается держать в сети ровно столько данных, сколько помещается в «трубу», не переполняя буферы.
---
### Основные преимущества
* **Высокая пропускная способность:** На каналах с небольшим процентом потерь пакетов (например, Wi-Fi или спутниковая связь) BBR может быть в десятки раз быстрее классических алгоритмов.
* **Низкая задержка:** Минимизирует очереди в сетевом оборудовании.
* **Устойчивость:** Отлично справляется с «шумными» сетями.
### Где он используется?
* **Linux:** BBR включен в ядро, начиная с версии 4.9.
* **Google:** Все сервисы (YouTube, Поиск) используют BBR для доставки контента.
* **Серверы:** Многие системные администраторы включают BBR на высоконагруженных веб-серверах для ускорения загрузки сайтов у пользователей.
### Как проверить/включить в Linux?
Если вы настраиваете сетевой интерфейс на сервере, проверить текущий алгоритм можно командой:
А включить BBR (при наличии прав) можно через `sysctl`, добавив:
Код: Выделить всё
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr