Ovaj članak ukratko objašnjava kako omogućiti BBR algoritam kontrole zagušenja na Windows uređajima; kao i trenutne probleme koji mogu nastati korištenjem ove funkcije.

BBR uvod

BBR (Bottleneck Bandwidth and Round-trip propagation time) je noviji algoritam kontrole zagušenja TCP-a koji je razvio Google. Cilj mu je riješiti problem niske iskoristivosti propusnosti i velikih latencija tradicionalnih algoritama kontrole zagušenja (kao što su Reno ili CUBIC) u određenim mrežnim uvjetima (osobito u mrežama s određenim postotkom gubitka paketa i latencijom).

Osnovna ideja

Osnovna ideja BBR-a je da se više ne oslanja na gubitak paketa kao glavni signal za utvrđivanje zagušenja mreže. Tradicionalni algoritmi kontrole zagušenja obično smanjuju brzinu slanja tek kada otkriju gubitak paketa, ali to može dovesti do toga da se dostupna propusnost ne iskoristi u potpunosti ili da se uvede nepotrebna latencija (širenje međuspremnika) u mrežama s velikim međuspremnicima ili blagim nasumičnim gubicima paketa.

BBR se umjesto toga proaktivno mjeri dva ključna parametra mreže:

  1. Propusnost uskog grla (Bottleneck Bandwidth, BtlBw): Gornja granica brzine prijenosa podataka u mrežnoj putanji, odnosno kapacitet najužeg grla u putanji.
  2. Vrijeme povratnog prijenosa (Round-trip Propagation Time, RTprop): Najkraće vrijeme potrebno da paket podataka putuje naprijed-natrag u mrežnoj putanji, isključujući vrijeme čekanja u međuspremnicima međupredajnika.

Mehanizam rada

BBR periodički istražuje ova dva parametra kako bi dinamički prilagodio svoje ponašanje slanja:

  • Istraživanje propusnosti uskog grla: BBR će slati podatke neko vrijeme brzinom malo višom od trenutne procijenjene propusnosti uskog grla kako bi istražio postoji li veća dostupna propusnost.
  • Istraživanje vremena povratnog prijenosa: BBR će slati podatke neko vrijeme brzinom malo nižom od trenutne procijenjene propusnosti uskog grla kako bi ispraznio redove čekanja u putanji, kako bi se izmjerio točniji RTprop.

Na taj način, BBR pokušava održavati količinu podataka koji se prenose (inflight data) na razini malo višoj od umnoška propusnosti i kašnjenja (BDP = BtlBw * RTprop). To može u potpunosti iskoristiti propusnost veze uskog grla i izbjeći predugo čekanje i veliku latenciju u mreži.

Glavne prednosti

  • Visoka propusnost: Osobito u dugim masnim mrežama (Long Fat Networks) s određenim gubicima paketa i latencijom, BBR obično može dobiti veću propusnost od tradicionalnih algoritama.
  • Niska latencija: Aktivnim upravljanjem redovima čekanja, BBR može učinkovito smanjiti latenciju mreže i izbjeći problem širenja međuspremnika.
  • Neosjetljiv na gubitak paketa: Budući da se ne oslanja prvenstveno na gubitak paketa za utvrđivanje zagušenja, BBR je stabilniji u mrežama s malim brojem nasumičnih gubitaka paketa.

Uvjeti za omogućavanje BBR-a u sustavu Windows

Operativni sustav mora to podržavati. Verzija mora biti Windows 11 version 22H2 ili novija.

Pokrenite Powershell kao administrator i pošaljite sljedeću naredbu da biste saznali algoritme koje sustav podržava:

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

Može ispisati nešto slično:

Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2

Ovaj popis predstavlja nazive algoritama kontrole zagušenja koje sustav može prepoznati i konfigurirati u postavkama TCP-a. Default obično znači da sustav odlučuje koristiti CUBIC ili neki drugi algoritam na temelju određenog predloška ili globalnih postavki.

Pokušaj korištenja BBR algoritma kontrole zagušenja u sustavu Windows

Pogledajte trenutno konfigurirani algoritam kontrole zagušenja:

Get-NetTCPSetting | Select SettingName, CongestionProvider

Izlaz bi mogao izgledati ovako:

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

Pokušajte ga omogućiti:

Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2

Greška:

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

Trenutni problemi s korištenjem BBR algoritma u sustavu Windows

U ovom trenutku, prema istraživanju, BBR podrška za Windows još nije savršena i ima mnogo grešaka (prva dva izvora spominju da će omogućavanje BBR-a oštetiti TCP promet “localhost” (povratne petlje), uzrokujući da veze unutar istog stroja postanu spore ili neodgovarajuće), kao što su:

Stoga sam odlučio privremeno ne omogućiti BBR. Ako želite pokušati omogućiti, možete isprobati sljedeću naredbu:

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

Ovdje također možete zamijeniti BBR2 s BBR (BBR v1), možete testirati i usporediti učinke.

Zatim pogledajte je li trenutno konfigurirani algoritam kontrole zagušenja konfiguriran kao BBR2:

Get-NetTCPSetting | Select SettingName, CongestionProvider

U sustavima Windows 11 23H2 / 24H2 omogućavanje BBR v2 može uzrokovati nedostupnost lokalnih TCP veza (na primjer, uzrokovati da adb ne radi, Steam ne radi itd.), u tom slučaju vratite algoritam kontrole zagušenja na prethodnu konfiguraciju. Nakon vraćanja nije potrebno ponovno pokretanje, problem bi trebao biti odmah riješen.

Ovaj članak nije savršen, dobrodošli su komentari ili poruke koje će me obavijestiti o najnovijim informacijama.

Referenca

Set-NetTCPSetting (NetTCPIP) | Microsoft Learn

Omogućite TCP BBR v2 na Linuxu i Windows 11 - Coxxs

https://github.com/google/bbr

Ostale verzije ove web stranice

Ovaj članak ima verzije na više jezika.

Ako želite objaviti komentar, posjetite sljedeću web stranicu:

ZH EN ZH-TW JA

Ove web stranice podržavaju samo pregledavanje, ne mogu se objavljivati ​​komentari ili poruke, ali nude više jezičnih opcija i kraće vrijeme učitavanja:

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