BBR (Bottleneck Bandwidth and RTT) — алгоритм управления перегрузкой TCP, оптимизированный для high-load и нестабильных сетей. Применяется для увеличения throughput и снижения latency без изменения архитектуры инфраструктуры.
Алгоритм использует модель канала на основе пропускной способности и RTT вместо реакции на packet loss, что обеспечивает стабильную передачу данных и минимальный jitter.
- Как работает BBR
- Ограничения классических алгоритмов
- Модель BBR
- Сравнение BBR и классических TCP алгоритмов
- Где BBR даёт максимальный эффект
- Как включить BBR в Linux
- Проверка ядра
- Проверка доступности
- Активация
- Проверка
- Production-настройка BBR
- Sysctl конфигурация
- Роль fq
- Ограничения
- Тестирование производительности
- HTTP тест
- Сетевой тест
- Заключение
Как работает BBR
Ограничения классических алгоритмов
Традиционные алгоритмы (CUBIC, Reno) используют реактивную модель:
- увеличение congestion window до появления потерь
- снижение скорости при packet loss
Это приводит к перегрузкам, нестабильному throughput и повышенному latency.
Модель BBR
BBR использует проактивный подход:
- оценка bandwidth (BtlBw)
- оценка RTT (RTprop)
- расчёт pacing_rate
Сеть удерживается в состоянии максимальной эффективности без искусственных перегрузок.
BBR минимизирует зависимость от packet loss и стабилизирует throughput в условиях нестабильных каналов.
Сравнение BBR и классических TCP алгоритмов
| Параметр | BBR | CUBIC | Reno |
|---|---|---|---|
| Модель | bandwidth + RTT | packet loss | packet loss |
| Throughput | Высокий | Средний | Низкий |
| Latency | Низкий | Средний | Высокий |
| Jitter | Минимальный | Средний | Высокий |
| High RTT | Эффективен | Ограничен | Неэффективен |
| VPN / туннели | Оптимально | Средне | Плохо |
Где BBR даёт максимальный эффект
- VPN и TCP-туннели
- reverse proxy и CDN
- мобильные сети (4G/5G)
- межрегиональные соединения
- cloud-инфраструктура
Прирост throughput может достигать 30–200% в условиях высокого RTT.
Как включить BBR в Linux
Проверка ядра
uname -r Требуется kernel ≥ 4.9. Рекомендуется 5.x или 6.x для production.
Проверка доступности
sysctl net.ipv4.tcp_available_congestion_control Если отсутствует:
modprobe tcp_bbr Команда modprobe tcp_bbr загружает модуль ядра Linux, реализующий алгоритм управления перегрузкой TCP BBR
Активация
cat >> /etc/sysctl.conf <<EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF sysctl -p Проверка
sysctl net.ipv4.tcp_congestion_control ss -ti | grep bbr Вывод с параметрами bw и pacing_rate подтверждает активный BBR.
Production-настройка BBR
Sysctl конфигурация
cat >> /etc/sysctl.d/99-network-tuning.conf <<EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
net.core.rmem_max=67108864
net.core.wmem_max=67108864
net.ipv4.tcp_rmem=4096 87380 67108864
net.ipv4.tcp_wmem=4096 65536 67108864
EOF
sysctl --system Роль fq
fq (Fair Queueing) необходим для корректного pacing. Без него возможны burst-пакеты и деградация производительности.
Ограничения
- работает только с TCP
- ограниченный эффект в low-latency сетях
- возможна агрессивность в shared-средах
Рекомендуется нагрузочное тестирование перед внедрением в production.
Тестирование производительности
HTTP тест
curl -o /dev/null https://speed.cloudflare.com/__down?bytes=100000000 Сетевой тест
iperf3 -c <server> Сравнение метрик до и после активации позволяет оценить реальный прирост.
Заключение
BBR является эффективным инструментом TCP-оптимизации, позволяющим увеличить throughput и снизить latency в современных сетевых сценариях без изменения архитектуры.









