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:

  1. 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.
  2. 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á com Video remoting was disconnected e exibirá uma mensagem Could 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

https://github.com/google/bbr

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:

ZH EN ZH-TW JA

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