Denne artikkelen gir en kort introduksjon til hvordan du aktiverer BBR-overbelastningskontrollalgoritmen på Windows-enheter, og hvilke problemer som kan oppstå ved bruk av denne funksjonen.

BBR Introduksjon

BBR (Bottleneck Bandwidth and Round-trip propagation time) er en nyere TCP overbelastningskontrollalgoritme utviklet av Google. Den er utviklet for å løse problemene med lav båndbreddeutnyttelse og høy latens som tradisjonelle overbelastningskontrollalgoritmer (som Reno eller CUBIC) har under visse nettverksforhold (spesielt i nettverk med en viss pakningstap og latens).

Kjerneide

Kjerneideen bak BBR er ikke lenger å stole på pakningstap som et hovedsignal for å vurdere nettverksoverbelastning. Tradisjonelle overbelastningskontrollalgoritmer reduserer vanligvis sendehastigheten når de oppdager pakningstap, men dette kan føre til at tilgjengelig båndbredde ikke utnyttes fullt ut, eller introdusere unødvendig latens (bufferinflasjon) i nettverk med store buffere eller lett tilfeldig pakningstap.

BBR måler i stedet aktivt to viktige nettverksparametere:

  1. Flaskehalsbåndbredde (Bottleneck Bandwidth, BtlBw): Den øvre grensen for dataoverføringshastigheten i nettverksbanen, det vil si kapasiteten til det smaleste punktet i banen.
  2. Rundeturs forplantningstid (Round-trip Propagation Time, RTprop): Minimumstiden det tar for en datapakke å reise frem og tilbake i nettverksbanen, eksklusive køtid i mellomliggende enheters buffere.

Arbeidsmekanisme

BBR justerer sin sendeoppførsel dynamisk ved å periodisk undersøke disse to parameterne:

  • Undersøk flaskehalsbåndbredde: BBR vil sende data med en hastighet litt høyere enn den nåværende estimerte flaskehalsbåndbredden i en periode for å undersøke om det er høyere tilgjengelig båndbredde.
  • Undersøk rundeturs forplantningstid: BBR vil sende data med en hastighet litt lavere enn den nåværende estimerte flaskehalsbåndbredden i en periode for å tømme køen i banen, og dermed måle en mer nøyaktig RTprop.

På denne måten prøver BBR å opprettholde mengden data som overføres (inflight data) på et nivå litt høyere enn båndbredde-forsinkelsesproduktet (BDP = BtlBw * RTprop). Dette vil både fullt ut utnytte båndbredden til flaskehalskoblingen og unngå å forårsake for lange køer og høy latens i nettverket.

Hovedfordeler

  • Høy gjennomstrømming: Spesielt i lange, fete nettverk (Long Fat Networks) med en viss pakningstap og latens, kan BBR vanligvis oppnå høyere gjennomstrømming enn tradisjonelle algoritmer.
  • Lav latens: Ved å aktivt kontrollere køen kan BBR effektivt redusere nettverkslatensen og unngå problemer med bufferinflasjon.
  • Ikke følsom for pakningstap: Siden den ikke hovedsakelig er avhengig av pakningstap for å vurdere overbelastning, er BBR mer stabil i nettverk med lite tilfeldig pakningstap.

Betingelser for å aktivere BBR i Windows

Operativsystemet må støtte det. Versjonskravet kan være Windows 11 versjon 22H2 eller nyere.

Kjør Powershell som administrator og send følgende kommando for å forstå hvilke algoritmer systemet støtter:

[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])

Det kan gi en utskrift som ligner på:

Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2

Denne listen representerer navnene på overbelastningskontrollalgoritmene som systemet kan gjenkjenne og konfigurere i TCP-innstillingene. Default betyr vanligvis at systemet bestemmer om det skal bruke CUBIC eller andre algoritmer basert på en bestemt mal eller globale innstillinger.

Prøv å bruke BBR-overbelastningskontrollalgoritmen i Windows

Vis den nåværende konfigurerte overbelastningskontrollalgoritmen:

Get-NetTCPSetting | Select SettingName, CongestionProvider

Utskriften kan se slik ut:

SettingName        CongestionProvider
-----------        ------------------
Automatic
InternetCustom     CUBIC
DatacenterCustom   CUBIC
Compat             NewReno
Datacenter         CUBIC
Internet           CUBIC

Prøv å aktivere:

Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2

Feil:

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

Problemer med bruk av BBR-algoritmen i Windows for øyeblikket

På dette tidspunktet har søk vist at Windows’ BBR-støtte ennå ikke er perfekt, og det er mange feil (de to første materialene nevner at aktivering av BBR vil ødelegge “localhost” (loopback-grensesnitt) TCP-trafikk, noe som fører til at tilkoblinger i samme maskin blir trege eller ikke reagerer), for eksempel:

Derfor er det besluttet å ikke aktivere BBR for øyeblikket. Hvis du vil prøve å aktivere det, kan du prøve følgende kommando:

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 å teste og sammenligne effektene.

Sjekk deretter om den nåværende konfigurerte overbelastningskontrollalgoritmen allerede er konfigurert som BBR2:

Get-NetTCPSetting | Select SettingName, CongestionProvider

På Windows 11 23H2 / 24H2 kan aktivering av BBR v2 føre til at lokale TCP-tilkoblinger blir utilgjengelige (for eksempel føre til at adb ikke kan brukes, Steam mislykkes osv.), vennligst gjenopprett overbelastningskontrollalgoritmen til den forrige konfigurasjonen. Ingen omstart er nødvendig etter gjenoppretting, og problemet skal løses umiddelbart.

Denne artikkelen er ikke perfekt, legg gjerne igjen kommentarer eller meldinger for å informere meg om den nyeste informasjonen.

Referanse

Set-NetTCPSetting (NetTCPIP) | Microsoft Learn

Aktiver TCP BBR v2 på Linux og Windows 11 - Coxxs

https://github.com/google/bbr

Andre versjoner av denne nettsiden

Denne artikkelen finnes i flere språkversjoner.

Hvis du vil legge inn en kommentar, kan du gå til følgende nettside:

ZH EN ZH-TW JA

Disse nettsidene støtter bare surfing, og det er ikke mulig å legge inn kommentarer eller meldinger, men de gir flere språkalternativer og kortere lastetider:

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