Denne artikel introducerer kort, hvordan man aktiverer BBR-overbelastningskontrolalgoritmen på Windows-enheder, samt de potentielle problemer ved at bruge denne funktion i øjeblikket.
BBR Introduktion
BBR (Bottleneck Bandwidth and Round-trip propagation time) er en nyere type TCP overbelastningskontrolalgoritme udviklet af Google. Den er designet til at løse problemet med lav båndbreddeudnyttelse og høj latenstid, som traditionelle overbelastningskontrolalgoritmer (såsom Reno eller CUBIC) har under visse netværksforhold (især i netværk med en vis grad af pakketab og forsinkelse).
Kerneidé
Kerneideen i BBR er ikke længere at stole på pakketab som det primære signal til at vurdere netværksoverbelastning. Traditionelle overbelastningskontrolalgoritmer reducerer normalt sendehastigheden, når de registrerer pakketab, men i netværk med store buffere eller let tilfældigt pakketab kan dette føre til, at den tilgængelige båndbredde ikke udnyttes fuldt ud, eller at unødvendige forsinkelser introduceres (bufferudvidelse).
BBR måler i stedet aktivt to vigtige netværksparametre:
- Flaskehalsbåndbredde (Bottleneck Bandwidth, BtlBw): Den øvre grænse for dataoverførselshastigheden i netværksstien, dvs. kapaciteten af det smalleste led i stien.
- Rundtursudbredelsestid (Round-trip Propagation Time, RTprop): Den korteste tid, det tager for en datapakke at rejse frem og tilbage i netværksstien, eksklusive køtid i mellemliggende enheds buffere.
Arbejdsmekanisme
BBR justerer dynamisk sin sendeopførsel ved periodisk at detektere disse to parametre:
- Detektion af flaskehalsbåndbredde: BBR sender data i en periode med en hastighed, der er lidt højere end den aktuelle estimerede flaskehalsbåndbredde, for at detektere, om der er højere tilgængelig båndbredde.
- Detektion af rundtursudbredelsestid: BBR sender data i en periode med en hastighed, der er lidt lavere end den aktuelle estimerede flaskehalsbåndbredde, for at tømme køen i stien og derved måle en mere nøjagtig RTprop.
På denne måde forsøger BBR at opretholde den mængde data, der overføres (inflight data), på et niveau, der er lidt højere end båndbredde-forsinkelsesproduktet (BDP = BtlBw * RTprop). Dette udnytter fuldt ud båndbredden på flaskehalslinket og undgår for lange køer og høje latenstider i netværket.
Hovedfordele
- Høj gennemstrømning: Især i lange, fede netværk (Long Fat Networks) med en vis grad af pakketab og forsinkelse, kan BBR normalt opnå en højere gennemstrømning end traditionelle algoritmer.
- Lav latenstid: Ved aktivt at kontrollere køer kan BBR effektivt reducere netværksforsinkelser og undgå problemer med bufferudvidelse.
- Ikke følsom over for pakketab: Da BBR ikke primært er afhængig af pakketab for at vurdere overbelastning, er BBR mere stabil i netværk med en lille mængde tilfældigt pakketab.
Windows-krav for at aktivere BBR
Operativsystemet skal understøtte det. Versionskravet er muligvis Windows 11 version 22H2 eller nyere.
Kør Powershell som administrator, og send følgende kommando for at finde ud af de algoritmer, systemet understøtter:
[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])
Det kan udskrive noget lignende:
Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2
Denne liste repræsenterer de overbelastningskontrolalgoritmenavne, som systemet kan genkende og konfigurere i TCP-indstillingerne. Default
betyder normalt, at systemet bruger CUBIC eller en anden algoritme i henhold til en bestemt skabelon eller globale indstillinger.
Windows-forsøg på at bruge BBR-overbelastningskontrolalgoritmen
Se den aktuelt konfigurerede overbelastningskontrolalgoritme:
Get-NetTCPSetting | Select SettingName, CongestionProvider
Output kan se sådan ud:
SettingName CongestionProvider
----------- ------------------
Automatic
InternetCustom CUBIC
DatacenterCustom CUBIC
Compat NewReno
Datacenter CUBIC
Internet CUBIC
Forsøg at aktivere:
Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2
Fejl:
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
Aktuelle problemer med Windows ved brug af BBR-algoritmen
På nuværende tidspunkt har undersøgelser vist, at Windows’ understøttelse af BBR ikke er perfekt, og der er mange fejl (de to første materialer nævner, at aktivering af BBR vil ødelægge “localhost” (loopback interface) TCP-trafik, hvilket får forbindelser inden for den samme maskine til at blive langsomme eller ikke-responsive), f.eks.:
- Vil ødelægge Steam, fordi Steamwebhelper ikke længere kan starte, og når Internet Download Manager bruges, vil det ødelægge alle download-hooks, når de ændres tilbage til CUBIC, vil de fungere igen - Fix BBR2 bugs on Windows 11 - Microsoft Community , oprettet 8. maj 2025
- Den nye fejl i BBR2 24H2 er ustabile forbindelser. Min Firefox-browser modtager tilfældige
NS_BINDING_ABORT
-fejl. Mit Visual Studio Code Remote Development-plugin sidder fast ved tilslutning og viser følgende fejl:failed to set up socket for dynamic port forward to remote port =: proxy connection timed out.
. Min Messenger (UWP)-applikation går næsten ned (nye beskeder kan ikke vises). - Windows 11 24H2 and BBR2 : r/Windows11 - Vil afbryde Hyper-V’s lokale konsolforbindelse (siden Windows 11 23H2). Konsollen vil vise
Connecting to '[VM]'
i et par minutter og derefter fejle medVideo remoting was disconnected
og poppe op med meddelelsenCould not connect to the virtual machine.
- Sådan aktiveres TCP BBR på Windows - Stack Overflow - v2rayN kan ikke opdatere geografiske filer, kerner eller oprette forbindelse til proxyservere. - [Bug]: BBR2-overbelastningsalgoritmen i Windows får v2rayN til at stoppe med at fungere · 2dust/v2rayN
Derfor er det besluttet midlertidigt ikke at aktivere BBR. Hvis du vil prøve at aktivere det, kan du prøve kommandoen:
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
Her kan du også erstatte BBR2
med BBR
(BBR v1) for at teste og sammenligne effekterne.
Kontroller derefter den aktuelt konfigurerede overbelastningskontrolalgoritme for at se, om den allerede er konfigureret som BBR2
:
Get-NetTCPSetting | Select SettingName, CongestionProvider
På Windows 11 23H2 / 24H2 kan aktivering af BBR v2 gøre lokale TCP-forbindelser utilgængelige (f.eks. medføre, at adb ikke kan bruges, Steam fejler osv.) , så skal du gendanne overbelastningskontrolalgoritmen til den tidligere konfiguration. Efter gendannelse er der ikke behov for genstart, og problemet bør løses med det samme.
Denne artikel er ikke perfekt, velkommen til at efterlade kommentarer eller kommentarer for at informere mig om de seneste oplysninger.
Reference
Set-NetTCPSetting (NetTCPIP) | Microsoft Learn
Enable TCP BBR v2 on Linux & Windows 11 - Coxxs
Andre versioner af denne webside
Denne artikel findes i flere sprogversioner.
Hvis du vil sende en kommentar, skal du besøge følgende webside:
Disse websider understøtter kun browsing, kan ikke kommenteres eller efterlade beskeder, men giver flere sprogmuligheder og kortere indlæsningstider:
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