Определение простыми словами
BBR — это современный алгоритм управления скоростью передачи данных в протоколе TCP, который ориентирован на максимальное использование пропускной способности сети при минимальной задержке. Вместо традиционного реагирования на потерю пакетов, BBR измеряет параметры канала: пропускную способность и задержку (RTT), и на основе этих данных регулирует скорость передачи, обеспечивая стабильную и быструю связь даже при высокой нагрузке и нестабильных условиях.
Алгоритм разработан компанией Google и активно используется в различных современных операционных системах и интернет-сервисах для улучшения скорости загрузки и стабильности передачи данных.
Сравнение
| Характеристика | BBR | Cubic (стандартный TCP) | Reno (классический TCP) |
|---|---|---|---|
| Подход к управлению скоростью | Оценка пропускной способности и RTT | Увеличение окна с потерей пакетов | Уменьшение окна при потере пакетов |
| Задержка сети | Минимальная из-за контроля RTT | Средняя | Высокая |
| Пропускная способность | Высокая, максимальное использование канала | Хорошая | Средняя |
| Устойчивость к потере пакетов | Выше, не зависит напрямую от потерь | Низкая | Низкая |
Кейсы использования
- Оптимизация сетей передачи большого объема данных — облачные хранилища, CDN.
- Улучшение качества видеоконференций и стриминга за счет стабильной пропускной способности.
- Повышение скорости загрузки сайтов и приложений для конечных пользователей.
- Использование в дата-центрах с высокой плотностью трафика и разнообразием сетевых условий.
- Поддержка мобильных сетей с нестабильным соединением для снижения задержек.
Негативный пример: BBR может быть неэффективен в сетях с очень частыми искажающими помехами, где традиционные методы, учитывающие потери пакетов, работают лучше.
Технические детали
BBR основан на измерении пропускной способности (bottleneck bandwidth) и времени обратного прохождения сигнала (RTT). Алгоритм работает в циклах, каждый из которых содержит четыре фазы: Startup, Drain, ProbeBW, ProbeRTT.
В фазе Startup BBR быстро увеличивает скорость передачи, пока не достигнет максимальной пропускной способности. В Drain — снижает скорость, чтобы очистить буферы сети и уменьшить задержки. В ProbeBW пытается постоянно искать максимальную пропускную способность, а в ProbeRTT — периодически снижает скорость для измерения минимального RTT.
Пример включения BBR в Linux:
sudo modprobe tcp_bbr
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
sysctl net.ipv4.tcp_congestion_control
Подробнее можно ознакомиться в нашем разделе TCP, а также изучить особенности RTT и пропускной способности.
🔥 Где это применяется
Частые вопросы
Что такое BBR?
BBR — это алгоритм управления скоростью TCP, оптимизирующий передачу данных с учетом пропускной способности и задержки.
Как включить BBR в Linux?
В Linux можно включить BBR командой sysctl net.ipv4.tcp_congestion_control=bbr после загрузки модуля tcp_bbr.
В чем преимущество BBR перед Cubic?
BBR обеспечивает более высокую пропускную способность и меньшие задержки, независимо от потерь пакетов, в отличие от Cubic.