Este artículo presenta brevemente cómo activar el algoritmo de control de congestión BBR en dispositivos Windows, así como los posibles problemas al usar esta función actualmente.
Introducción a BBR
BBR (Bottleneck Bandwidth and Round-trip propagation time) es un tipo de algoritmo de control de congestión TCP más nuevo desarrollado por Google. Su objetivo es resolver los problemas de baja utilización del ancho de banda y alta latencia de los algoritmos de control de congestión tradicionales (como Reno o CUBIC) en ciertas condiciones de red (especialmente en redes con cierta pérdida de paquetes y latencia).
Idea central
La idea central de BBR es dejar de depender de la pérdida de paquetes como la señal principal para juzgar la congestión de la red. Los algoritmos de control de congestión tradicionales generalmente reducen la velocidad de transmisión solo cuando se detecta la pérdida de paquetes, pero esto puede conducir a la incapacidad de utilizar completamente el ancho de banda disponible o introducir retrasos innecesarios (hinchazón del búfer) en redes con búferes más grandes o con una ligera pérdida de paquetes aleatoria.
BBR, en cambio, mide activamente dos parámetros clave de la red:
- Ancho de banda del cuello de botella (Bottleneck Bandwidth, BtlBw): El límite superior de la velocidad de transmisión de datos en la ruta de la red, es decir, la capacidad del enlace más estrecho en la ruta.
- Tiempo de propagación de ida y vuelta (Round-trip Propagation Time, RTprop): El tiempo más corto requerido para que un paquete de datos viaje de ida y vuelta en la ruta de la red, excluyendo el tiempo de espera en los búferes de los dispositivos intermedios.
Mecanismo de trabajo
BBR ajusta dinámicamente su comportamiento de transmisión sondeando periódicamente estos dos parámetros:
- Sondeo del ancho de banda del cuello de botella: BBR enviará datos a una velocidad ligeramente superior al ancho de banda del cuello de botella estimado actualmente durante un período de tiempo para sondear si hay un ancho de banda disponible mayor.
- Sondeo del tiempo de propagación de ida y vuelta: BBR enviará datos a una velocidad ligeramente inferior al ancho de banda del cuello de botella estimado actualmente durante un período de tiempo para vaciar las colas en la ruta y, por lo tanto, medir un RTprop más preciso.
De esta manera, BBR intenta mantener la cantidad de datos que se transmiten (datos en vuelo) ligeramente por encima del producto del ancho de banda y el retraso (BDP = BtlBw * RTprop). Esto puede utilizar completamente el ancho de banda del enlace de cuello de botella y evitar causar colas excesivas y alta latencia en la red.
Principales ventajas
- Alto rendimiento: especialmente en redes largas y gordas (Long Fat Networks) con cierta pérdida de paquetes y latencia, BBR generalmente puede obtener un rendimiento más alto que los algoritmos tradicionales.
- Baja latencia: al controlar activamente las colas, BBR puede reducir eficazmente la latencia de la red y evitar problemas de hinchazón del búfer.
- Insensible a la pérdida de paquetes: dado que no depende principalmente de la pérdida de paquetes para juzgar la congestión, BBR funciona de manera más estable en redes con una pequeña cantidad de pérdida de paquetes aleatoria.
Condiciones para activar BBR en Windows
El sistema operativo debe ser compatible. El requisito de la versión puede ser Windows 11 versión 22H2 y superior.
Ejecute Powershell como administrador, envíe el siguiente comando para comprender los algoritmos compatibles con el sistema:
[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])
Puede generar algo como:
Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2
Esta lista representa los nombres de los algoritmos de control de congestión que el sistema puede reconocer y configurar en la configuración de TCP. Default
generalmente significa que el sistema decide usar CUBIC u otros algoritmos según una plantilla específica o una configuración global.
Intentar usar el algoritmo de control de congestión BBR en Windows
Ver la configuración actual del algoritmo de control de congestión:
Get-NetTCPSetting | Select SettingName, CongestionProvider
La salida puede verse como la siguiente:
SettingName CongestionProvider
----------- ------------------
Automatic
InternetCustom CUBIC
DatacenterCustom CUBIC
Compat NewReno
Datacenter CUBIC
Internet CUBIC
Intente activarlo:
Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2
Error:
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
Problemas actuales con el uso del algoritmo BBR en Windows
En este momento, al consultar, se sabe que el soporte de BBR de Windows no es perfecto y tiene muchos errores (los dos primeros materiales mencionan que activar BBR corromperá el tráfico TCP de “localhost” (interfaz de bucle invertido), lo que hará que las conexiones dentro de la misma máquina sean lentas o no respondan), como:
- Destruirá Steam, porque Steamwebhelper ya no se puede iniciar, y cuando se usa Internet Download Manager, destruye todos los ganchos de descarga, y cuando se cambia de nuevo a CUBIC, vuelven a funcionar: Fix BBR2 bugs on Windows 11 - Microsoft Community , creado el 8 de mayo de 2025
- El nuevo error de BBR2 24H2 es la conexión inestable. Mi navegador Firefox recibe aleatoriamente errores
NS_BINDING_ABORT
. Mi complemento de desarrollo remoto de Visual Studio Code se bloquea al conectarse y muestra el siguiente error:failed to set up socket for dynamic port forward to remote port =: proxy connection timed out.
. Mi aplicación Messenger (UWP) casi se bloquea (no se pueden mostrar los mensajes nuevos). —— Windows 11 24H2 and BBR2 : r/Windows11 - Interrumpirá las conexiones de consola local de Hyper-V (desde Windows 11 23H2). La consola mostrará
Connecting to '[VM]'
durante unos minutos, luego fallará conVideo remoting was disconnected
y aparecerá un mensaje emergenteCould not connect to the virtual machine.
—— 如何在 Windows 上启用 TCP BBR - Stack Overflow - v2rayN no puede actualizar archivos geográficos, núcleo ni conectarse a servidores proxy. —— [Bug]: Windows 中的 BBR2 拥塞算法导致 v2rayN 停止工作 · 2dust/v2rayN
Por lo tanto, decidí no activar BBR por el momento. Si desea intentar activarlo, puede probar el siguiente comando:
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
Aquí también puede reemplazar BBR2
con BBR
(BBR v1), puede probarlo y comparar los efectos.
Luego, verifique si el algoritmo de control de congestión configurado actualmente ya está configurado como BBR2
:
Get-NetTCPSetting | Select SettingName, CongestionProvider
En Windows 11 23H2 / 24H2, habilitar BBR v2 puede hacer que las conexiones TCP locales no estén disponibles (por ejemplo, hacer que adb no se pueda usar, que Steam falle, etc.), en este momento, restaure el algoritmo de control de congestión a la configuración anterior. No es necesario reiniciar después de la restauración, el problema debería resolverse de inmediato.
Este artículo no es perfecto, bienvenido a dejar un mensaje o comentario para informarme de la información más reciente.
Referencia
Set-NetTCPSetting (NetTCPIP) | Microsoft Learn
Enable TCP BBR v2 on Linux & Windows 11 - Coxxs
Otras versiones de esta página web
Este artículo tiene versiones en varios idiomas.
Si desea publicar un comentario, visite las siguientes páginas web:
Estas páginas web solo admiten la navegación, no se pueden publicar comentarios o mensajes, pero ofrecen más opciones de idioma y tienen tiempos de carga más cortos:
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