यह लेख संक्षेप में बताता है कि विंडोज डिवाइस पर BBR भीड़ नियंत्रण एल्गोरिथ्म को कैसे चालू किया जाए; और इस सुविधा का उपयोग करने पर वर्तमान में संभावित समस्याएं।

BBR परिचय

BBR (Bottleneck Bandwidth and Round-trip propagation time) Google द्वारा विकसित एक नया TCP भीड़ नियंत्रण एल्गोरिथ्म है। इसका उद्देश्य पारंपरिक भीड़ नियंत्रण एल्गोरिदम (जैसे रेनो या CUBIC) द्वारा कुछ नेटवर्क स्थितियों (विशेष रूप से कुछ पैकेट हानि दर और विलंबता वाले नेटवर्क में) में कम बैंडविड्थ उपयोग और बड़े विलंबता की समस्या को हल करना है।

मूल विचार

BBR का मूल विचार नेटवर्क भीड़ का निर्धारण करने के लिए पैकेट हानि पर निर्भर नहीं रहना है। पारंपरिक भीड़ नियंत्रण एल्गोरिदम आमतौर पर पैकेट हानि का पता चलने पर ही ट्रांसमिशन दर को कम करते हैं, लेकिन बफर के बड़े होने या मामूली यादृच्छिक पैकेट हानि वाले नेटवर्क में, यह उपलब्ध बैंडविड्थ का पूरी तरह से उपयोग करने या अनावश्यक विलंबता (बफर सूजन) को पेश करने में विफल हो सकता है।

BBR सक्रिय रूप से नेटवर्क के दो महत्वपूर्ण मापदंडों को मापता है:

  1. बाधा बैंडविड्थ (Bottleneck Bandwidth, BtlBw): नेटवर्क पथ में डेटा ट्रांसमिशन दर की ऊपरी सीमा, यानी पथ में सबसे संकीर्ण लिंक की क्षमता।
  2. राउंड-ट्रिप प्रसार समय (Round-trip Propagation Time, RTprop): नेटवर्क पथ में डेटा पैकेट के लिए आवश्यक सबसे कम समय, जिसमें मध्यवर्ती डिवाइस बफर में कतारबद्ध समय शामिल नहीं है।

कार्य तंत्र

BBR समय-समय पर इन दो मापदंडों की जांच करके अपनी ट्रांसमिशन व्यवहार को गतिशील रूप से समायोजित करता है:

  • बाधा बैंडविड्थ की जांच: BBR कुछ समय के लिए वर्तमान अनुमानित बाधा बैंडविड्थ से थोड़ी अधिक दर पर डेटा भेजता है ताकि यह पता लगाया जा सके कि क्या अधिक उपलब्ध बैंडविड्थ है।
  • राउंड-ट्रिप प्रसार समय की जांच: BBR कुछ समय के लिए वर्तमान अनुमानित बाधा बैंडविड्थ से थोड़ी कम दर पर डेटा भेजता है, ताकि पथ में कतार को खाली किया जा सके, जिससे अधिक सटीक RTprop को मापा जा सके।

इस तरह, BBR प्रसारित किए जा रहे डेटा की मात्रा (इन्फ्लाइट डेटा) को बैंडविड्थ विलंबता उत्पाद (BDP = BtlBw * RTprop) के स्तर से थोड़ा ऊपर बनाए रखने की कोशिश करता है। यह न केवल बाधा लिंक के बैंडविड्थ का पूरी तरह से उपयोग कर सकता है, बल्कि नेटवर्क में अत्यधिक कतार और उच्च विलंबता से भी बच सकता है।

मुख्य लाभ

  • उच्च थ्रूपुट: विशेष रूप से कुछ पैकेट हानि और विलंबता वाले लंबे मोटे नेटवर्क (Long Fat Networks) में, BBR आमतौर पर पारंपरिक एल्गोरिदम की तुलना में अधिक थ्रूपुट प्राप्त कर सकता है।
  • कम विलंबता: सक्रिय कतार नियंत्रण के माध्यम से, BBR प्रभावी रूप से नेटवर्क विलंबता को कम कर सकता है और बफर सूजन की समस्या से बच सकता है।
  • पैकेट हानि के प्रति असंवेदनशील: क्योंकि यह भीड़ का निर्धारण करने के लिए मुख्य रूप से पैकेट हानि पर निर्भर नहीं करता है, इसलिए BBR थोड़ी मात्रा में यादृच्छिक पैकेट हानि वाले नेटवर्क में अधिक स्थिर प्रदर्शन करता है।

विंडोज पर BBR को चालू करने की शर्तें

ऑपरेटिंग सिस्टम को समर्थन करना होगा। संस्करण की आवश्यकताएँ Windows 11 संस्करण 22H2 या उससे ऊपर की हो सकती हैं।

व्यवस्थापक के रूप में Powershell चलाएं, और सिस्टम द्वारा समर्थित एल्गोरिदम को समझने के लिए निम्न आदेश भेजें:

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

यह इस तरह कुछ आउटपुट कर सकता है:

Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2

यह सूची TCP सेटिंग्स में सिस्टम द्वारा पहचाने और कॉन्फ़िगर किए जा सकने वाले भीड़ नियंत्रण एल्गोरिथ्म नामों का प्रतिनिधित्व करती है। Default का आमतौर पर मतलब है कि सिस्टम एक विशिष्ट टेम्पलेट या वैश्विक सेटिंग के आधार पर CUBIC या अन्य एल्गोरिदम का उपयोग करने का निर्णय लेता है।

विंडोज BBR भीड़ नियंत्रण एल्गोरिथ्म का उपयोग करने का प्रयास

वर्तमान कॉन्फ़िगर किए गए भीड़ नियंत्रण एल्गोरिथ्म को देखें:

Get-NetTCPSetting | Select SettingName, CongestionProvider

आउटपुट इस प्रकार दिख सकता है:

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

चालू करने का प्रयास करें:

Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider BBR2

त्रुटि:

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

वर्तमान विंडोज BBR एल्गोरिथ्म का उपयोग करने की समस्या

इस समय, पूछताछ से पता चलता है कि विंडोज का BBR समर्थन अभी भी अपूर्ण है, इसमें बहुत सारे बग हैं (पहले दो दस्तावेजों में उल्लेख किया गया है कि BBR को चालू करने से “localhost” (लूपबैक इंटरफ़ेस) TCP ट्रैफ़िक टूट जाएगा, जिससे एक ही मशीन के अंदर कनेक्शन धीमे या अनुत्तरदायी हो जाएंगे), जैसे:

  • यह स्टीम को नुकसान पहुंचाएगा, क्योंकि स्टीमवेबहेल्पर अब शुरू नहीं हो पाएगा, और जब इंटरनेट डाउनलोड मैनेजर का उपयोग किया जाता है, तो यह सभी डाउनलोड हुक को तोड़ देगा, जब CUBIC पर वापस स्विच किया जाता है, तो वे फिर से काम करेंगे —— Fix BBR2 bugs on Windows 11 - Microsoft Community , 8 मई, 2025 को बनाया गया
  • BBR2 24H2 का नया बग कनेक्शन अस्थिरता है। मेरे फ़ायरफ़ॉक्स ब्राउज़र को बेतरतीब ढंग से NS_BINDING_ABORT त्रुटि मिलती है। मेरा विज़ुअल स्टूडियो कोड रिमोट डेवलपमेंट प्लगइन कनेक्ट होने पर अटक जाता है, और निम्नलिखित त्रुटि दिखाई देती है: failed to set up socket for dynamic port forward to remote port =: proxy connection timed out. । मेरा मैसेंजर (UWP) ऐप लगभग क्रैश हो जाता है (नया संदेश प्रदर्शित नहीं हो पाता)। —— Windows 11 24H2 and BBR2 : r/Windows11
  • यह हाइपर-वी के स्थानीय कंसोल कनेक्शन को बाधित करेगा (विंडोज 11 23H2 से)। कंसोल कुछ मिनटों के लिए Connecting to '[VM]' प्रदर्शित करेगा, और फिर Video remoting was disconnected के साथ विफल हो जाएगा, और एक संकेत Could not connect to the virtual machine. पॉप अप होगा। —— विंडोज पर टीसीपी बीबीआर कैसे सक्षम करें - स्टैक ओवरफ्लो
  • v2rayN भौगोलिक फ़ाइलों, कोर को अपडेट नहीं कर सकता है या प्रॉक्सी सर्वर से कनेक्ट नहीं हो सकता है। —— [Bug]: विंडोज में BBR2 भीड़ एल्गोरिथ्म के कारण v2rayN काम करना बंद कर देता है · 2dust/v2rayN

इसलिए BBR को अस्थायी रूप से चालू नहीं करने का निर्णय लिया गया। यदि आप चालू करने का प्रयास करना चाहते हैं, तो आप निम्न आदेश का प्रयास कर सकते हैं:

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

यहां आप BBR2 को BBR (BBR v1) से भी बदल सकते हैं, आप इसका परीक्षण कर सकते हैं और प्रभावों की तुलना कर सकते हैं।

फिर वर्तमान कॉन्फ़िगर किए गए भीड़ नियंत्रण एल्गोरिथ्म की जांच करें, क्या यह BBR2 के रूप में कॉन्फ़िगर किया गया है:

Get-NetTCPSetting | Select SettingName, CongestionProvider

विंडोज 11 23H2 / 24H2 पर, BBR v2 को सक्षम करने से स्थानीय TCP कनेक्शन अनुपलब्ध हो सकते हैं (उदाहरण के लिए, adb का उपयोग करने में विफलता, स्टीम विफलता आदि) , इस समय कृपया भीड़ नियंत्रण एल्गोरिथ्म को पिछली कॉन्फ़िगरेशन पर पुनर्स्थापित करें। पुनर्स्थापित करने के बाद पुनरारंभ करने की आवश्यकता नहीं है, समस्या तुरंत हल हो जानी चाहिए।

यह लेख अभी तक सही नहीं है, कृपया बेझिझक टिप्पणी करें या मुझे नवीनतम जानकारी बताएं।

संदर्भ

Set-NetTCPSetting (NetTCPIP) | Microsoft Learn

लिनक्स और विंडोज 11 पर टीसीपी बीबीआर v2 सक्षम करें - Coxxs

https://github.com/google/bbr

इस वेब पेज के अन्य संस्करण

इस लेख के कई भाषाओं में संस्करण हैं।

यदि आप कोई टिप्पणी पोस्ट करना चाहते हैं, तो कृपया निम्न वेब पेज पर जाएं:

ZH EN ZH-TW JA

ये वेब पेज केवल ब्राउज़िंग का समर्थन करते हैं, टिप्पणी या संदेश पोस्ट नहीं कर सकते हैं, लेकिन अधिक भाषा विकल्प प्रदान करते हैं और कम लोडिंग समय:

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