Den här artikeln ger en kort introduktion till hur man aktiverar BBR-överbelastningskontrollalgoritmen på Windows-enheter, samt aktuella problem som kan uppstå vid användning av denna funktion.
BBR Introduktion
BBR (Bottleneck Bandwidth and Round-trip propagation time) är en nyare typ av TCP överbelastningskontrollalgoritm utvecklad av Google. Den syftar till att lösa problem med traditionella överbelastningskontrollalgoritmer (som Reno eller CUBIC) som har låg bandbreddsutnyttjande och hög latens under vissa nätverksförhållanden (särskilt i nätverk med en viss paketförlust och fördröjning).
Kärnidé
Kärnidéen med BBR är att inte längre förlita sig på paketförlust som en primär signal för att bedöma nätverksöverbelastning. Traditionella överbelastningskontrollalgoritmer minskar vanligtvis sändningshastigheten först när de upptäcker paketförlust, men detta kan leda till att tillgänglig bandbredd inte utnyttjas fullt ut eller införa onödig fördröjning (buffertuppblåsning) i nätverk med stora buffertar eller liten slumpmässig paketförlust.
BBR mäter istället aktivt nätverkets två nyckelparametrar:
- Flaskhalsbandbredd (Bottleneck Bandwidth, BtlBw): Den övre gränsen för dataöverföringshastigheten i nätverkssökvägen, det vill säga kapaciteten hos den smalaste länken i sökvägen.
- Round-trip-propagationstid (Round-trip Propagation Time, RTprop): Den kortaste tid som ett datapaket behöver för att färdas fram och tillbaka i nätverkssökvägen, exklusive kötid i mellanliggande enheters buffertar.
Arbetsmekanism
BBR justerar dynamiskt sitt sändningsbeteende genom att periodiskt sondera dessa två parametrar:
- Sondering av flaskhalsbandbredd: BBR skickar data med en hastighet som är något högre än den aktuella uppskattade flaskhalsbandbredden under en viss tid för att undersöka om det finns högre tillgänglig bandbredd.
- Sondering av round-trip-propagationstid: BBR skickar data med en hastighet som är något lägre än den aktuella uppskattade flaskhalsbandbredden under en viss tid för att tömma köerna i sökvägen och därmed mäta en mer exakt RTprop.
På detta sätt försöker BBR hålla mängden data som överförs (inflight data) på en nivå som är något högre än bandbreddsfördröjningsprodukten (BDP = BtlBw * RTprop). Detta utnyttjar bandbredden i flaskhalslänken fullt ut och undviker samtidigt att orsaka för lång köbildning och hög latens i nätverket.
Huvudsakliga fördelar
- Hög genomströmning: Särskilt i långa och feta nätverk (Long Fat Networks) med en viss paketförlust och fördröjning, kan BBR vanligtvis uppnå högre genomströmning än traditionella algoritmer.
- Låg latens: Genom att aktivt kontrollera köbildning kan BBR effektivt minska nätverkslatensen och undvika problem med buffertuppblåsning.
- Okänslig för paketförlust: Eftersom BBR inte huvudsakligen förlitar sig på paketförlust för att bedöma överbelastning, är BBR mer stabilt i nätverk med en liten mängd slumpmässig paketförlust.
Villkor för att aktivera BBR i Windows
Operativsystemet måste ha stöd för det. Versionskravet kan vara Windows 11 version 22H2 eller senare.
Kör Powershell som administratör och skicka följande kommando för att ta reda på vilka algoritmer systemet stöder:
[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])
Det kan ge en utskrift som liknar:
Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2
Denna lista representerar de namn på överbelastningskontrollalgoritmer som systemet kan identifiera och konfigurera i TCP-inställningarna. Default
betyder vanligtvis att systemet använder CUBIC eller någon annan algoritm baserat på en specifik mall eller global inställning.
Försök att använda BBR-överbelastningskontrollalgoritmen i Windows
Visa den aktuella konfigurationen för överbelastningskontrollalgoritmen:
Get-NetTCPSetting | Select SettingName, CongestionProvider
Utskriften kan se ut så här:
SettingName CongestionProvider
----------- ------------------
Automatic
InternetCustom CUBIC
DatacenterCustom CUBIC
Compat NewReno
Datacenter CUBIC
Internet CUBIC
Försök att aktivera:
Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2
Fel:
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
Aktuella problem med att använda BBR-algoritmen i Windows
Vid denna tidpunkt, efter att ha sökt information, har stödet för BBR i Windows brister och många buggar (de två första källorna nämner att aktivering av BBR förstör “localhost” (loopback-gränssnitt) TCP-trafik, vilket gör anslutningar inom samma maskin långsamma eller icke-svarande), t.ex.:
- Det förstör Steam, eftersom Steamwebhelper inte längre kan startas, och när Internet Download Manager används, förstör det alla nedladdningskrokar, och när du byter tillbaka till CUBIC, fungerar de igen — Fix BBR2 bugs on Windows 11 - Microsoft Community , skapad 8 maj 2025
- Den nya buggen i BBR2 24H2 är instabila anslutningar. Min Firefox-webbläsare får slumpmässigt
NS_BINDING_ABORT
-fel. Min Visual Studio Code Remote-utvecklingsplugin fastnar vid anslutning och visar följande fel:failed to set up socket for dynamic port forward to remote port =: proxy connection timed out.
. Min Messenger (UWP)-app kraschar nästan (nya meddelanden kan inte visas). — Windows 11 24H2 and BBR2 : r/Windows11 - Det avbryter Hyper-V:s lokala konsolanslutning (sedan Windows 11 23H2). Konsolen visar
Connecting to '[VM]'
i några minuter, sedan misslyckas den medVideo remoting was disconnected
och visar promptenCould not connect to the virtual machine.
. — Hur man aktiverar TCP BBR på Windows - Stack Overflow - v2rayN kan inte uppdatera geografiska filer, kärnor eller ansluta till proxyservrar. — [Bug]: BBR2-överbelastningsalgoritmen i Windows gör att v2rayN slutar fungera · 2dust/v2rayN
Därför har jag beslutat att inte aktivera BBR för tillfället. Om du vill försöka aktivera det kan du prova följande kommandon:
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
Här kan du också ersätta BBR2
med BBR
(BBR v1) för att testa och jämföra effekterna.
Kontrollera sedan om den aktuella konfigurationen för överbelastningskontrollalgoritmen redan är konfigurerad som BBR2
:
Get-NetTCPSetting | Select SettingName, CongestionProvider
På Windows 11 23H2 / 24H2 kan aktivering av BBR v2 leda till att lokala TCP-anslutningar blir otillgängliga (t.ex. orsaka att adb inte kan användas, Steam misslyckas, etc.), då ska du återställa överbelastningskontrollalgoritmen till den tidigare konfigurationen. Ingen omstart krävs efter återställningen, problemet bör lösas omedelbart.
Den här artikeln är inte komplett, välkommen att lämna meddelanden eller kommentarer för att informera mig om den senaste informationen.
Referenser
Set-NetTCPSetting (NetTCPIP) | Microsoft Learn
Aktivera TCP BBR v2 på Linux & Windows 11 - Coxxs
Andra versioner av den här webbsidan
Den här artikeln finns i flera språkversioner.
Om du vill publicera en kommentar, besök följande webbsidor:
Dessa webbsidor stöder endast visning, det är inte möjligt att publicera kommentarer eller meddelanden, men ger fler språkalternativ och har kortare laddningstid:
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