Dit artikel geeft een korte introductie over hoe u het BBR-congestiecontrolealgoritme op Windows-apparaten kunt inschakelen; en de huidige problemen die het gebruik van deze functie kan veroorzaken.
BBR Introductie
BBR (Bottleneck Bandwidth and Round-trip propagation time) is een nieuw type TCP congestiecontrolealgoritme dat door Google is ontwikkeld. Het is ontworpen om de lage bandbreedtebenutting en grote latentie van traditionele congestiecontrolealgoritmen (zoals Reno of CUBIC) onder bepaalde netwerkomstandigheden (vooral in netwerken met een bepaald pakketverliespercentage en vertraging) op te lossen.
Kernidee
Het kernidee van BBR is om niet langer te vertrouwen op pakketverlies als het belangrijkste signaal om netwerkcongestie te beoordelen. Traditionele congestiecontrolealgoritmen verlagen de verzendsnelheid meestal pas als pakketverlies wordt gedetecteerd, maar dit kan in netwerken met grote buffers of lichte willekeurige pakketverliezen leiden tot het onvermogen om de beschikbare bandbreedte volledig te benutten, of tot onnodige vertraging (bufferinflatie).
BBR daarentegen meet actief de twee belangrijkste parameters van het netwerk:
- Bottleneck Bandwidth (BtlBw): De bovengrens van de gegevensoverdrachtsnelheid in het netwerkpad, dat wil zeggen de capaciteit van de smalste schakel in het pad.
- Round-trip Propagation Time (RTprop): De minimale tijd die een datapakket nodig heeft om heen en weer te reizen in het netwerkpad, exclusief de wachtrijtijd in de buffers van tussenliggende apparaten.
Werkingsmechanisme
BBR past zijn verzendgedrag dynamisch aan door deze twee parameters periodiek te onderzoeken:
- Detectie van knelpuntbandbreedte: BBR verzendt gedurende een bepaalde periode gegevens met een snelheid die iets hoger is dan de huidige geschatte knelpuntbandbreedte om te detecteren of er een hogere beschikbare bandbreedte is.
- Detectie van round-trip propagatietijd: BBR verzendt gedurende een bepaalde periode gegevens met een snelheid die iets lager is dan de huidige geschatte knelpuntbandbreedte om de wachtrij in het pad leeg te maken en zo een nauwkeurigere RTprop te meten.
Op deze manier probeert BBR de hoeveelheid gegevens die wordt verzonden (inflight data) op een niveau te houden dat iets hoger is dan het bandbreedte-vertragingproduct (BDP = BtlBw * RTprop). Dit kan de bandbreedte van de knelpuntsverbinding volledig benutten en lange wachtrijen en hoge latentie in het netwerk voorkomen.
Belangrijkste voordelen
- Hoge doorvoer: Vooral in lange, trage netwerken (Long Fat Networks) met een bepaald pakketverlies en vertraging, kan BBR doorgaans een hogere doorvoer bereiken dan traditionele algoritmen.
- Lage latentie: Door wachtrijen actief te beheren, kan BBR de netwerklatentie effectief verminderen en bufferinflatie voorkomen.
- Niet gevoelig voor pakketverlies: Omdat het niet primair afhankelijk is van pakketverlies om congestie te beoordelen, presteert BBR stabieler in netwerken met een kleine hoeveelheid willekeurig pakketverlies.
Voorwaarden om BBR in Windows in te schakelen
Het besturingssysteem moet dit ondersteunen. De versievereisten kunnen Windows 11 versie 22H2 of hoger zijn.
Voer Powershell uit als beheerder en verzend de volgende opdracht om meer te weten te komen over de algoritmen die door het systeem worden ondersteund:
[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])
Het kan iets dergelijks uitvoeren:
Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2
Deze lijst vertegenwoordigt de namen van congestiecontrolealgoritmen die het systeem kan herkennen en configureren in de TCP-instellingen. Default
betekent meestal dat het systeem CUBIC of een ander algoritme gebruikt op basis van een specifiek sjabloon of globale instellingen.
Windows probeert het BBR-congestiecontrolealgoritme te gebruiken
Bekijk het momenteel geconfigureerde congestiecontrolealgoritme:
Get-NetTCPSetting | Select SettingName, CongestionProvider
De uitvoer kan er als volgt uitzien:
SettingName CongestionProvider
----------- ------------------
Automatic
InternetCustom CUBIC
DatacenterCustom CUBIC
Compat NewReno
Datacenter CUBIC
Internet CUBIC
Probeer in te schakelen:
Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2
Fout:
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
Huidige problemen met het gebruik van het BBR-algoritme in Windows
Op dit moment heb ik na onderzoek ontdekt dat de BBR-ondersteuning van Windows niet perfect is en veel bugs bevat (de eerste twee bronnen vermelden dat het inschakelen van BBR het “localhost” (loopback-interface) TCP-verkeer zal verstoren, waardoor verbindingen binnen dezelfde machine traag of niet-reagerend worden), zoals:
- Zal Steam beschadigen, omdat Steamwebhelper niet meer kan worden gestart, en bij gebruik van Internet Download Manager, zal het alle download hooks beschadigen, en wanneer teruggeschakeld naar CUBIC, zullen ze weer werken - Fix BBR2 bugs on Windows 11 - Microsoft Community , gemaakt op 8 mei 2025
- De nieuwe bug van BBR2 24H2 is een instabiele verbinding. Mijn Firefox-browser ontvangt willekeurig een
NS_BINDING_ABORT
fout. Mijn Visual Studio Code Remote development plug-in loopt vast tijdens het verbinden en geeft de volgende fout:failed to set up socket for dynamic port forward to remote port =: proxy connection timed out.
Mijn Messenger (UWP) app crasht bijna (nieuwe berichten kunnen niet worden weergegeven). —— Windows 11 24H2 and BBR2 : r/Windows11 - Onderbreekt de lokale consoleverbinding van Hyper-V (sinds Windows 11 23H2). De console toont
Connecting to '[VM]'
minutenlang en faalt vervolgens metVideo remoting was disconnected
, en een pop-upCould not connect to the virtual machine.
bericht. —— Hoe TCP BBR in te schakelen op Windows - Stack Overflow - v2rayN kan geografische bestanden, cores niet bijwerken of verbinding maken met proxyservers. —— [Bug]: BBR2-congestiealgoritme in Windows zorgt ervoor dat v2rayN stopt met werken · 2dust/v2rayN
Daarom is besloten om BBR voorlopig niet in te schakelen. Als u het wilt proberen in te schakelen, kunt u de volgende opdracht proberen:
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
Hier kunt u BBR2
vervangen door BBR
(BBR v1), u kunt het testen en de effecten vergelijken.
Bekijk vervolgens of het momenteel geconfigureerde congestiecontrolealgoritme is geconfigureerd als BBR2
:
Get-NetTCPSetting | Select SettingName, CongestionProvider
Op Windows 11 23H2 / 24H2 kan het inschakelen van BBR v2 leiden tot onbeschikbaarheid van lokale TCP-verbindingen (bijvoorbeeld waardoor adb niet kan worden gebruikt, Steam mislukt, enz.) , herstel in dit geval het congestiecontrolealgoritme naar de vorige configuratie. Na het herstel is het niet nodig om opnieuw op te starten, het probleem zou onmiddellijk moeten worden opgelost.
Dit artikel is nog niet perfect, laat een bericht of reactie achter om me de laatste informatie te laten weten.
Referentie
Set-NetTCPSetting (NetTCPIP) | Microsoft Learn
Enable TCP BBR v2 on Linux & Windows 11 - Coxxs
Andere versies van deze webpagina
Er zijn verschillende taalversies van dit artikel.
Als u een reactie wilt plaatsen, gaat u naar de volgende webpagina:
Deze webpagina’s ondersteunen alleen browsen, u kunt geen reacties of berichten plaatsen, maar bieden meer taalopties en kortere laadtijden:
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