BBR — алгоритм управления скоростью передачи TCP | Глоссарий FREEHOSTING

BBR

Bottleneck Bandwidth and RTT
BBR — BBR (Bottleneck Bandwidth and RTT) — алгоритм управления скоростью TCP-передачи, оптимизирующий пропускную способность и задержку, снижая потери пакетов и улучшая качество сети.

Определение простыми словами

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.