В этой статье кратко описывается, как включить алгоритм управления перегрузкой BBR на устройствах Windows, а также текущие проблемы, которые могут возникнуть при использовании этой функции.

О BBR

BBR (Bottleneck Bandwidth and Round-trip propagation time) — это новый алгоритм управления перегрузкой TCP, разработанный компанией Google. Он предназначен для решения проблем, связанных с низкой эффективностью использования полосы пропускания и большими задержками традиционных алгоритмов управления перегрузкой (таких как Reno или CUBIC) в определенных сетевых условиях (особенно в сетях с определенным процентом потери пакетов и задержкой).

Основная идея

Основная идея BBR заключается в том, чтобы больше не полагаться на потерю пакетов в качестве основного сигнала для определения перегрузки сети. Традиционные алгоритмы управления перегрузкой обычно снижают скорость передачи только при обнаружении потери пакетов, но в сетях с большими буферами или незначительными случайными потерями пакетов это может привести к недостаточному использованию доступной полосы пропускания или к ненужным задержкам (раздувание буфера).

BBR вместо этого активно измеряет два ключевых параметра сети:

  1. Пропускная способность узкого места (Bottleneck Bandwidth, BtlBw): верхний предел скорости передачи данных в сетевом пути, то есть пропускная способность самого узкого звена в пути.
  2. Время кругового распространения (Round-trip Propagation Time, RTprop): минимальное время, необходимое пакету данных для прохождения по сетевому пути туда и обратно, не включая время ожидания в буферах промежуточных устройств.

Механизм работы

BBR периодически исследует эти два параметра для динамической регулировки своего поведения при передаче:

  • Обнаружение пропускной способности узкого места: BBR в течение определенного периода времени отправляет данные со скоростью, немного превышающей текущую оценку пропускной способности узкого места, чтобы проверить, есть ли более высокая доступная пропускная способность.
  • Обнаружение времени кругового распространения: BBR в течение определенного периода времени отправляет данные со скоростью, немного меньшей текущей оценки пропускной способности узкого места, чтобы освободить очередь в пути, чтобы измерить более точный RTprop.

Таким образом, BBR пытается поддерживать объем передаваемых данных (inflight data) на уровне, немного превышающем произведение пропускной способности и задержки (BDP = BtlBw * RTprop). Это позволяет в полной мере использовать полосу пропускания узкого места и избежать чрезмерного ожидания в сети и высоких задержек.

Основные преимущества

  • Высокая пропускная способность: особенно в сетях Long Fat Networks с определенной потерей пакетов и задержкой, BBR обычно может получить более высокую пропускную способность, чем традиционные алгоритмы.
  • Низкая задержка: активно контролируя очередь, BBR может эффективно снизить задержку сети и избежать проблем с раздуванием буфера.
  • Нечувствительность к потере пакетов: поскольку BBR в основном не полагается на потерю пакетов для определения перегрузки, он более стабилен в сетях с небольшим количеством случайных потерь пакетов.

Условия для включения BBR в Windows

Требуется поддержка операционной системы. Версия должна быть Windows 11 version 22H2 или выше.

Запустите Powershell от имени администратора и отправьте следующую команду, чтобы узнать об алгоритмах, поддерживаемых системой:

[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])

Он может выводить что-то вроде:

Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2

Этот список представляет собой имена алгоритмов управления перегрузкой, которые система может распознавать и настраивать в настройках TCP. Default обычно означает, что система решает, использовать ли CUBIC или другие алгоритмы, на основе определенного шаблона или глобальных настроек.

Попытка использования алгоритма управления перегрузкой BBR в Windows

Просмотр текущего настроенного алгоритма управления перегрузкой:

Get-NetTCPSetting | Select SettingName, CongestionProvider

Вывод может выглядеть так:

SettingName        CongestionProvider
-----------        ------------------
Automatic
InternetCustom     CUBIC
DatacenterCustom   CUBIC
Compat             NewReno
Datacenter         CUBIC
Internet           CUBIC

Попытка включить:

Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2

Ошибка:

Set-NetTCPSetting : Property CongestionProvider is read-only
At line:1 char:1
+ Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetTCPSett...ystemName = ""):ROOT/StandardCimv2/MSFT_NetTCPSetti
   ng) [Set-NetTCPSetting], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetTCPSetting

Текущая проблема использования алгоритма BBR в Windows

В настоящее время известно, что поддержка BBR в Windows еще не завершена и имеет много ошибок (в первых двух материалах упоминается, что включение BBR нарушит TCP-трафик “localhost” (интерфейса обратной связи), что приведет к замедлению или нереагированию подключений внутри одной машины), например:

  • Ломает Steam, потому что Steamwebhelper больше не может запуститься, и когда используется Internet Download Manager, он ломает все крючки загрузки, когда они переключаются обратно на CUBIC, они снова работают — Исправьте ошибки BBR2 в Windows 11 - Microsoft Community , создано 8 мая 2025 г.
  • Новая ошибка BBR2 24H2 — нестабильные соединения. Мой браузер Firefox случайным образом получает ошибку NS_BINDING_ABORT. Мой плагин разработки Visual Studio Code Remote зависает при подключении и выдает следующую ошибку: не удалось настроить сокет для динамической переадресации порта на удаленный порт =: время ожидания соединения с прокси-сервером истекло. . Мое приложение Messenger (UWP) почти не работает (новые сообщения не отображаются). — Windows 11 24H2 and BBR2 : r/Windows11
  • Прерывает локальное консольное подключение Hyper-V (начиная с Windows 11 23H2). Консоль будет отображать Connecting to '[VM]' в течение нескольких минут, а затем завершится с ошибкой Video remoting was disconnected и появится подсказка Не удалось подключиться к виртуальной машине.. — Как включить TCP BBR в Windows - Stack Overflow
  • v2rayN не может обновлять географические файлы, ядро или подключаться к прокси-серверу. — [Bug]: Алгоритм перегрузки BBR2 в Windows приводит к остановке v2rayN · 2dust/v2rayN

Поэтому решено пока не включать BBR. Если вы хотите попробовать включить его, вы можете попробовать команду:

netsh int tcp set supplemental template=Internet congestionprovider=BBR2
netsh int tcp set supplemental template=InternetCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Datacenter congestionprovider=BBR2
netsh int tcp set supplemental template=DatacenterCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Compat congestionprovider=BBR2

Здесь также можно заменить BBR2 на BBR (BBR v1), вы можете протестировать его и сравнить эффект.

Затем просмотрите текущий настроенный алгоритм управления перегрузкой, настроен ли он на BBR2:

Get-NetTCPSetting | Select SettingName, CongestionProvider

В Windows 11 23H2/24H2 включение BBR v2 может привести к недоступности локальных TCP-соединений (например, adb не может использоваться, Steam выходит из строя и т. д.), в этом случае восстановите предыдущую конфигурацию алгоритма управления перегрузкой. После восстановления перезагрузка не требуется, проблема должна быть решена немедленно.

Эта статья еще не завершена, пожалуйста, оставьте сообщение или комментарий, чтобы сообщить мне самую последнюю информацию.

Ссылка

Set-NetTCPSetting (NetTCPIP) | Microsoft Learn

Enable TCP BBR v2 on Linux & Windows 11 - Coxxs

https://github.com/google/bbr

Другие версии этой веб-страницы

У этой статьи есть версии на нескольких языках.

Если вы хотите оставить комментарий, посетите следующую веб-страницу:

ZH EN ZH-TW JA

Эти веб-страницы поддерживают только просмотр и не поддерживают публикацию комментариев или сообщений, но предоставляют больше языковых параметров и более короткое время загрузки:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO