Acest articol introduce pe scurt modul de activare a algoritmului de control al congestiei BBR pe dispozitivele Windows; și problemele care pot apărea în prezent la utilizarea acestei funcții.
Introducere BBR
BBR (Bottleneck Bandwidth and Round-trip propagation time) este un nou tip de algoritm de control al congestiei dezvoltat de Google. Acesta își propune să rezolve problemele legate de utilizarea scăzută a lățimii de bandă și de latența ridicată a algoritmilor tradiționali de control al congestiei (cum ar fi Reno sau CUBIC) în anumite condiții de rețea (în special în rețelele cu o anumită rată de pierdere a pachetelor și întârziere).
Idee centrală
Ideea centrală a BBR este de a nu mai depinde de pierderea pachetelor ca semnal principal pentru a judeca congestia rețelei. Algoritmii tradiționali de control al congestiei reduc de obicei rata de trimitere numai atunci când detectează pierderea pachetelor, dar acest lucru poate duce la incapacitatea de a utiliza pe deplin lățimea de bandă disponibilă sau la introducerea de întârzieri inutile (umflarea bufferului) în rețelele cu buffere mai mari sau cu pierderi aleatorii ușoare de pachete.
BBR, în schimb, măsoară activ doi parametri cheie ai rețelei:
- Lățimea de bandă a blocajului (Bottleneck Bandwidth, BtlBw): Limita superioară a ratei de transfer a datelor în calea rețelei, adică capacitatea celei mai înguste verigi din cale.
- Timpul de propagare dus-întors (Round-trip Propagation Time, RTprop): Timpul minim necesar pentru ca un pachet de date să facă ocolul în calea rețelei, excluzând timpul de așteptare în bufferele dispozitivelor intermediare.
Mecanismul de lucru
BBR își ajustează dinamic comportamentul de trimitere prin detectarea periodică a acestor doi parametri:
- Detectarea lățimii de bandă a blocajului: BBR va trimite date pentru o perioadă de timp la o rată ușor mai mare decât lățimea de bandă a blocajului estimată în prezent, pentru a detecta dacă există o lățime de bandă disponibilă mai mare.
- Detectarea timpului de propagare dus-întors: BBR va trimite date pentru o perioadă de timp la o rată ușor mai mică decât lățimea de bandă a blocajului estimată în prezent, pentru a goli coada de așteptare din cale, astfel încât să măsoare un RTprop mai precis.
În acest fel, BBR încearcă să mențină cantitatea de date în tranzit (inflight data) la un nivel ușor mai mare decât produsul lățimii de bandă și al întârzierii (BDP = BtlBw * RTprop). Acest lucru poate utiliza pe deplin lățimea de bandă a legăturii de blocaj și poate evita crearea unei cozi de așteptare prea lungi și a unei întârzieri mari în rețea.
Avantaje principale
- Debit mare: În special în rețelele lungi și grase (Long Fat Networks) cu o anumită pierdere de pachete și întârziere, BBR poate obține de obicei un debit mai mare decât algoritmii tradiționali.
- Latență scăzută: Prin controlul activ al cozii de așteptare, BBR poate reduce eficient latența rețelei și poate evita problema umflării bufferului.
- Insensibil la pierderea pachetelor: Deoarece nu depinde în principal de pierderea pachetelor pentru a judeca congestia, BBR este mai stabil în rețelele cu o cantitate mică de pierdere aleatorie a pachetelor.
Condiții pentru activarea BBR pe Windows
Sistemul de operare trebuie să suporte acest lucru. Cerința de versiune poate fi Windows 11 version 22H2 sau o versiune ulterioară.
Rulați Powershell ca administrator, trimiteți următoarea comandă pentru a înțelege algoritmii acceptați de sistem:
[Enum]::GetNames([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider])
Este posibil să scoată ceva de genul:
Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2
Această listă reprezintă numele algoritmilor de control al congestiei pe care sistemul le poate recunoaște și configura în setările TCP. Default
înseamnă de obicei că sistemul decide să utilizeze CUBIC sau alți algoritmi în funcție de un anumit șablon sau setări globale.
Windows încearcă să utilizeze algoritmul de control al congestiei BBR
Vizualizați algoritmul de control al congestiei configurat în prezent:
Get-NetTCPSetting | Select SettingName, CongestionProvider
Ieșirea poate arăta astfel:
SettingName CongestionProvider
----------- ------------------
Automatic
InternetCustom CUBIC
DatacenterCustom CUBIC
Compat NewReno
Datacenter CUBIC
Internet CUBIC
Încercați să activați:
Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2
Eroare:
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
Problemele actuale ale Windows cu algoritmul BBR
În acest moment, conform interogării, suportul BBR pentru Windows nu este încă perfect și are multe erori (primele două materiale menționează că activarea BBR va deteriora traficul TCP „localhost” (interfața de buclă inversă), ceea ce face ca conexiunile din aceeași mașină să devină lente sau să nu răspundă), cum ar fi:
- Va strica Steam, deoarece Steamwebhelper nu mai poate porni și, atunci când utilizați Internet Download Manager, va strica toate cârligele de descărcare, iar atunci când schimbați înapoi la CUBIC, vor funcționa din nou —— Fix BBR2 bugs on Windows 11 - Microsoft Community , creat pe 8 mai 2025
- Noul bug al BBR2 24H2 este o conexiune instabilă. Browserul meu Firefox primește aleatoriu o eroare
NS_BINDING_ABORT
. Pluginul meu de dezvoltare Visual Studio Code Remote s-a blocat la conectare și a apărut următoarea eroare:failed to set up socket for dynamic port forward to remote port =: proxy connection timed out.
Aplicația mea Messenger (UWP) aproape s-a prăbușit (nu s-au putut afișa mesaje noi). —— Windows 11 24H2 and BBR2 : r/Windows11 - Va întrerupe conexiunea consolei locale Hyper-V (începând cu Windows 11 23H2). Consola va afișa
Connecting to '[VM]'
timp de câteva minute, apoi va eșua cuVideo remoting was disconnected
și va apărea o notificareCould not connect to the virtual machine.
—— Cum se activează TCP BBR pe Windows - Stack Overflow - v2rayN nu poate actualiza fișierele geografice, nucleul sau nu se poate conecta la serverul proxy. —— [Bug]: Algoritmul de congestie BBR2 din Windows face ca v2rayN să nu mai funcționeze · 2dust/v2rayN
Prin urmare, am decis să nu activez BBR pentru moment. Dacă doriți să încercați să activați, puteți încerca următoarea comandă:
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
Aici puteți înlocui și BBR2
cu BBR
(BBR v1), puteți testa și compara efectele.
Apoi, verificați dacă algoritmul de control al congestiei configurat în prezent a fost configurat ca BBR2
:
Get-NetTCPSetting | Select SettingName, CongestionProvider
Pe Windows 11 23H2 / 24H2, activarea BBR v2 poate face ca conexiunile TCP locale să nu fie disponibile (de exemplu, ceea ce face ca adb să nu poată fi utilizat, Steam să eșueze etc.), în acest moment, vă rugăm să restaurați algoritmul de control al congestiei la configurația anterioară. Nu este necesară repornirea după restaurare, problema ar trebui rezolvată imediat.
Acest articol nu este perfect, vă rugăm să lăsați un mesaj sau un comentariu pentru a mă informa despre cele mai recente informații.
Referințe
Set-NetTCPSetting (NetTCPIP) | Microsoft Learn
Enable TCP BBR v2 on Linux & Windows 11 - Coxxs
Alte versiuni ale acestei pagini web
Acest articol are mai multe versiuni lingvistice.
Dacă doriți să faceți un comentariu, vă rugăm să vizitați următoarele pagini web:
Aceste pagini web acceptă doar navigarea și nu pot fi postate comentarii sau mesaje, dar oferă mai multe opțiuni de limbă și au timpi de încărcare mai scurți:
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