Bu makale, windows cihazlarında BBR tıkanıklık kontrolü algoritmasının nasıl etkinleştirileceğini ve bu özelliğin kullanımının mevcut sorunlarını kısaca tanıtmaktadır.

BBR Tanıtımı

BBR (Bottleneck Bandwidth and Round-trip propagation time), Google tarafından geliştirilen daha yeni bir TCP tıkanıklık kontrolü algoritmasıdır. Amacı, geleneksel tıkanıklık kontrolü algoritmalarının (Reno veya CUBIC gibi) belirli ağ koşullarında (özellikle belirli bir paket kaybı oranı ve gecikme olan ağlarda) bant genişliği kullanımının düşük olması ve gecikmenin büyük olması sorunlarını çözmektir.

Temel Düşünce

BBR’nin temel düşüncesi, ağ tıkanıklığını belirlemek için artık paket kaybına bağımlı olmamaktır. Geleneksel tıkanıklık kontrolü algoritmaları genellikle yalnızca paket kaybı algıladıklarında gönderme hızını düşürürler, ancak bu, tamponun daha büyük olduğu veya hafif rastgele paket kaybının olduğu ağlarda, mevcut bant genişliğinden tam olarak yararlanamamaya veya gereksiz gecikmelere (tampon şişmesi) neden olabilir.

BBR bunun yerine ağın iki temel parametresini aktif olarak ölçer:

  1. Darboğaz Bant Genişliği (Bottleneck Bandwidth, BtlBw): Ağ yolunda veri aktarım hızının üst sınırı, yani yoldaki en dar halkanın kapasitesi.
  2. Gidiş-Dönüş Yayılma Süresi (Round-trip Propagation Time, RTprop): Veri paketinin ağ yolunda gidiş-dönüş için gereken en kısa süre, ara cihazlardaki arabellekteki bekleme süresi dahil değildir.

Çalışma Mekanizması

BBR, bu iki parametreyi periyodik olarak inceleyerek gönderme davranışını dinamik olarak ayarlar:

  • Darboğaz bant genişliğini araştırma: BBR, daha yüksek kullanılabilir bant genişliği olup olmadığını araştırmak için bir süre boyunca mevcut tahmini darboğaz bant genişliğinden biraz daha yüksek bir hızda veri gönderir.
  • Gidiş-dönüş yayılma süresini araştırma: BBR, yoldaki kuyruğu boşaltmak ve böylece daha doğru bir RTprop ölçmek için bir süre boyunca mevcut tahmini darboğaz bant genişliğinden biraz daha düşük bir hızda veri gönderir.

Bu şekilde, BBR, aktarılan veri miktarını (inflight data) bant genişliği gecikme çarpımının (BDP = BtlBw * RTprop) biraz üzerinde bir seviyede tutmaya çalışır. Bu, hem darboğaz bağlantısının bant genişliğinden tam olarak yararlanmayı hem de ağda aşırı uzun kuyruklara ve yüksek gecikmelere neden olmaktan kaçınmayı sağlar.

Temel Avantajları

  • Yüksek verim: Özellikle belirli bir paket kaybı ve gecikmenin olduğu uzun yağlı ağlarda (Long Fat Networks), BBR genellikle geleneksel algoritmalardan daha yüksek verim elde edebilir.
  • Düşük gecikme: BBR, kuyruğu aktif olarak kontrol ederek ağ gecikmesini etkili bir şekilde azaltabilir ve arabellek şişmesi sorunlarını önleyebilir.
  • Paket kaybına duyarlı değil: Tıkanıklığı belirlemek için temel olarak paket kaybına dayanmadığından, BBR az miktarda rastgele paket kaybı olan ağlarda daha kararlıdır.

Windows’ta BBR’yi Etkinleştirme Koşulları

İşletim sisteminin desteklemesi gerekir. Sürüm gereksinimi muhtemelen Windows 11 sürüm 22H2 ve üzeri olmalıdır.

Powershell’i yönetici olarak çalıştırın ve sistem tarafından desteklenen algoritmaları anlamak için aşağıdaki komutu gönderin:

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

Şuna benzer bir çıktı verebilir:

Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2

Bu liste, sistemin TCP ayarlarında tanıyabildiği ve yapılandırabildiği tıkanıklık kontrolü algoritma adlarını temsil eder. Default genellikle sistemin CUBIC veya başka bir algoritma kullanmaya karar vermesi için belirli bir şablon veya genel ayara göre karar verildiği anlamına gelir.

Windows’ta BBR tıkanıklık kontrolü algoritmasını kullanmayı deneme

Mevcut yapılandırılmış tıkanıklık kontrolü algoritmasını görüntüleyin:

Get-NetTCPSetting | Select SettingName, CongestionProvider

Çıktı aşağıdaki gibi olabilir:

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

Etkinleştirmeyi deneyin:

Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2

Hata:

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

Mevcut Windows’ta BBR algoritması kullanımındaki sorunlar

Şu anda, Windows’un BBR desteğinin henüz mükemmel olmadığı, birçok hatanın olduğu (ilk iki kaynak, BBR’nin etkinleştirilmesinin “localhost” (geri döngü arayüzü) TCP trafiğini bozacağını, aynı makine içindeki bağlantıların yavaş veya yanıtsız hale gelmesine neden olacağını belirtiyor) öğrenildi:

Bu nedenle, BBR’yi geçici olarak etkinleştirmemeye karar verdim. Etkinleştirmeyi denemek istiyorsanız, aşağıdaki komutu deneyebilirsiniz:

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

Burada ayrıca BBR2‘yi BBR (BBR v1) ile değiştirebilir, test edebilir ve efektleri karşılaştırabilirsiniz.

Ardından, mevcut yapılandırılmış tıkanıklık kontrolü algoritmasının BBR2 olarak yapılandırılıp yapılandırılmadığını kontrol edin:

Get-NetTCPSetting | Select SettingName, CongestionProvider

Windows 11 23H2 / 24H2’de, BBR v2’yi etkinleştirmek yerel TCP bağlantılarının kullanılamamasına neden olabilir (örneğin, adb’nin kullanılamamasına, Steam’in başarısız olmasına vb.), bu durumda lütfen tıkanıklık kontrolü algoritmasını önceki yapılandırmaya geri döndürün. Geri döndürmeden sonra yeniden başlatmaya gerek yoktur, sorun hemen çözülmelidir.

Bu makale henüz mükemmel değil, en son bilgileri bana bildirmek için yorum veya yorum bırakmaktan çekinmeyin.

Referans

Set-NetTCPSetting (NetTCPIP) | Microsoft Learn

Linux ve Windows 11’de TCP BBR v2’yi etkinleştirin - Coxxs

https://github.com/google/bbr

Bu web sayfasının diğer sürümleri

Bu makalenin birden çok dil sürümü bulunmaktadır.

Yorum yapmak isterseniz, lütfen aşağıdaki web sayfalarını ziyaret edin:

ZH EN ZH-TW JA

Bu web sayfaları yalnızca görüntülemeyi destekler, yorum veya mesaj bırakmayı desteklemez, ancak daha fazla dil seçeneği sunar ve yükleme süresi daha kısadır:

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