Este artigo apresenta brevemente como ativar o algoritmo de controlo de congestionamento BBR em dispositivos Windows, bem como os problemas que podem ser causados pelo uso desta funcionalidade atualmente.
Introdução ao BBR
BBR (Bottleneck Bandwidth and Round-trip propagation time, Largura de Banda do Gargalo e Tempo de Propagação de Ida e Volta) é um tipo mais recente de algoritmo de controlo de congestionamento TCP desenvolvido pelo Google. Ele tem como objetivo resolver os problemas de baixa utilização da largura de banda e alta latência dos algoritmos de controlo de congestionamento tradicionais (como Reno ou CUBIC) em certas condições de rede (especialmente em redes com uma certa taxa de perda de pacotes e latência).
Ideia Central
A ideia central do BBR é não depender mais da perda de pacotes como o principal sinal para determinar o congestionamento da rede. Os algoritmos de controlo de congestionamento tradicionais geralmente reduzem a taxa de envio apenas quando detetam perda de pacotes, mas isso pode levar à incapacidade de utilizar totalmente a largura de banda disponível ou à introdução de atrasos desnecessários (expansão do buffer) em redes com buffers maiores ou com ligeiras perdas aleatórias de pacotes.
O BBR, em vez disso, mede ativamente dois parâmetros-chave da rede:
- Largura de banda do gargalo (Bottleneck Bandwidth, BtlBw): O limite superior da taxa de transmissão de dados no caminho da rede, ou seja, a capacidade do elo mais estreito no caminho.
- Tempo de propagação de ida e volta (Round-trip Propagation Time, RTprop): O tempo mínimo necessário para um pacote de dados viajar de ida e volta no caminho da rede, excluindo o tempo de fila nos buffers dos dispositivos intermediários.
Mecanismo de Trabalho
O BBR ajusta dinamicamente seu comportamento de envio, sondando periodicamente esses dois parâmetros:
- Sondagem da largura de banda do gargalo: O BBR enviará dados por um período de tempo a uma taxa ligeiramente superior à largura de banda do gargalo atualmente estimada para detetar se há uma largura de banda disponível mais alta.
- Sondagem do tempo de propagação de ida e volta: O BBR enviará dados por um período de tempo a uma taxa ligeiramente inferior à largura de banda do gargalo atualmente estimada para esvaziar a fila no caminho, a fim de medir um RTprop mais preciso.
Desta forma, o BBR tenta manter a quantidade de dados em trânsito (dados em voo) ligeiramente acima do nível do produto largura de banda-atraso (BDP = BtlBw * RTprop). Isso pode utilizar totalmente a largura de banda do link de gargalo e evitar causar filas excessivas e alta latência na rede.
Principais Vantagens
- Alta taxa de transferência: Especialmente em redes longas e gordas (Long Fat Networks) com uma certa perda de pacotes e latência, o BBR geralmente consegue obter uma taxa de transferência mais alta do que os algoritmos tradicionais.
- Baixa latência: Ao controlar ativamente o enfileiramento, o BBR pode reduzir eficazmente a latência da rede e evitar problemas de expansão do buffer.
- Insensível à perda de pacotes: Como não depende principalmente da perda de pacotes para determinar o congestionamento, o BBR é mais estável em redes com uma pequena quantidade de perda aleatória de pacotes.
Condições para ativar o BBR no Windows
O sistema operativo tem de suportar. O requisito de versão pode ser Windows 11 versão 22H2 e superior.
Execute o Powershell como administrador e envie o seguinte comando para entender os algoritmos suportados pelo sistema:
[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])
Pode gerar algo como:
Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2
Esta lista representa os nomes dos algoritmos de controlo de congestionamento que o sistema pode reconhecer e configurar nas definições TCP. Default
geralmente significa que o sistema usa CUBIC ou outros algoritmos com base em modelos específicos ou configurações globais.
Windows tenta usar o algoritmo de controlo de congestionamento BBR
Verifique o algoritmo de controlo de congestionamento configurado atualmente:
Get-NetTCPSetting | Select SettingName, CongestionProvider
A saída pode ser semelhante à seguinte:
SettingName CongestionProvider
----------- ------------------
Automatic
InternetCustom CUBIC
DatacenterCustom CUBIC
Compat NewReno
Datacenter CUBIC
Internet CUBIC
Tente ativar:
Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2
Erro:
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 atuais do Windows ao usar o algoritmo BBR
Neste momento, ao consultar, sabe-se que o suporte BBR do Windows não é perfeito e tem muitos bugs (os dois primeiros materiais mencionam que ativar o BBR irá interromper o tráfego TCP “localhost” (interface de loopback), fazendo com que as conexões na mesma máquina fiquem lentas ou não respondam), tais como:
- Irá interromper o Steam, porque o Steamwebhelper não consegue mais iniciar e, ao usar o Internet Download Manager, irá interromper todos os ganchos de download, e quando voltar para CUBIC, eles funcionarão novamente — Corrigir bugs BBR2 no Windows 11 - Microsoft Community , criado em 8 de maio de 2025
- O novo bug do BBR2 24H2 é a conexão instável. O meu navegador Firefox recebe o erro
NS_BINDING_ABORT
aleatoriamente. O meu plugin de desenvolvimento remoto do Visual Studio Code ficou preso ao se conectar e mostra o seguinte erro:failed to set up socket for dynamic port forward to remote port =: proxy connection timed out.
. A minha aplicação Messenger (UWP) quase trava (novas mensagens não podem ser exibidas). —— Windows 11 24H2 e BBR2 : r/Windows11 - Irá interromper as conexões de console local do Hyper-V (desde o Windows 11 23H2). O console exibirá
Connecting to '[VM]'
por alguns minutos e, em seguida, falhará comVideo remoting was disconnected
e exibirá uma mensagemCould not connect to the virtual machine.
—— Como ativar o TCP BBR no Windows - Stack Overflow - O v2rayN não consegue atualizar arquivos geográficos, núcleos ou conectar-se a servidores proxy. —— [Bug]: O algoritmo de congestionamento BBR2 no Windows faz com que o v2rayN pare de funcionar · 2dust/v2rayN
Portanto, decidi não ativar o BBR temporariamente. Se quiser tentar ativar, pode experimentar o 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
Aqui também pode substituir BBR2
por BBR
(BBR v1), pode testar e comparar os efeitos.
Em seguida, verifique o algoritmo de controlo de congestionamento configurado atualmente para verificar se foi configurado como BBR2
:
Get-NetTCPSetting | Select SettingName, CongestionProvider
No Windows 11 23H2 / 24H2, ativar o BBR v2 pode fazer com que as conexões TCP locais fiquem indisponíveis (por exemplo, fazendo com que o adb não consiga ser usado, o Steam falhe, etc.) , neste momento, restaure o algoritmo de controlo de congestionamento para a configuração anterior. Não é necessário reiniciar após a restauração, o problema deve ser resolvido imediatamente.
Este artigo não está completo, bem-vindo a deixar uma mensagem ou comentário, informe-me as informações mais recentes.
Referência
Set-NetTCPSetting (NetTCPIP) | Microsoft Learn
Ativar TCP BBR v2 no Linux e Windows 11 - Coxxs
Outras versões desta página web
Este artigo tem versões em vários idiomas.
Se quiser deixar um comentário, visite a seguinte página web:
Estas páginas web só suportam navegação, não é possível deixar comentários ou mensagens, mas fornecem mais opções de idiomas e têm tempos de carregamento mais rápidos:
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