تقدم هذه المقالة مقدمة موجزة حول كيفية تمكين خوارزمية التحكم في الازدحام BBR على أجهزة Windows؛ والمشاكل المحتملة لاستخدام هذه الميزة حاليًا.

مقدمة عن BBR

BBR (النطاق الترددي للاختناق ووقت الانتشار ذهابًا وإيابًا) هو نوع جديد من خوارزمية التحكم في الازدحام تم تطويره بواسطة Google. وهو يهدف إلى حل مشكلة عدم كفاءة استخدام النطاق الترددي وزيادة التأخير في بعض الظروف الشبكية (خاصة في الشبكات التي بها معدل فقدان حزم وتأخير معين) لخوارزميات التحكم في الازدحام التقليدية (مثل Reno أو CUBIC).

الفكرة الأساسية

الفكرة الأساسية لـ BBR هي عدم الاعتماد على فقدان الحزم كإشارة رئيسية لتحديد ازدحام الشبكة. عادةً ما تقوم خوارزميات التحكم في الازدحام التقليدية بتقليل معدل الإرسال فقط عند اكتشاف فقدان الحزم، ولكن في الشبكات ذات المخازن المؤقتة الكبيرة أو التي بها فقدان حزم عشوائي طفيف، قد يؤدي ذلك إلى عدم القدرة على الاستفادة الكاملة من النطاق الترددي المتاح، أو إدخال تأخيرات غير ضرورية (تضخم المخزن المؤقت).

بدلاً من ذلك، تقوم BBR بقياس المعلمتين الرئيسيتين للشبكة بشكل فعال:

  1. النطاق الترددي للاختناق (Bottleneck Bandwidth, BtlBw): الحد الأعلى لمعدل نقل البيانات في مسار الشبكة، أي سعة أضيق وصلة في المسار.
  2. وقت الانتشار ذهابًا وإيابًا (Round-trip Propagation Time, RTprop): أقصر وقت يستغرقه انتقال الحزم ذهابًا وإيابًا في مسار الشبكة، باستثناء وقت الانتظار في المخازن المؤقتة للأجهزة الوسيطة.

آلية العمل

تقوم BBR بضبط سلوك الإرسال الخاص بها ديناميكيًا عن طريق استكشاف هاتين المعلمتين بشكل دوري:

  • استكشاف النطاق الترددي للاختناق: سترسل BBR البيانات بمعدل أعلى قليلاً من النطاق الترددي للاختناق المقدر حاليًا لفترة من الوقت، وذلك لاستكشاف ما إذا كان هناك نطاق ترددي متاح أعلى.
  • استكشاف وقت الانتشار ذهابًا وإيابًا: سترسل BBR البيانات بمعدل أقل قليلاً من النطاق الترددي للاختناق المقدر حاليًا لفترة من الوقت، وذلك لإفراغ قائمة الانتظار في المسار، وبالتالي قياس RTprop بدقة أكبر.

بهذه الطريقة، تحاول BBR الحفاظ على كمية البيانات قيد النقل (inflight data) عند مستوى أعلى قليلاً من حاصل ضرب النطاق الترددي والتأخير (BDP = BtlBw * RTprop). وهذا يضمن الاستفادة الكاملة من النطاق الترددي لوصلة الاختناق، وتجنب التسبب في قوائم انتظار طويلة وتأخيرات عالية في الشبكة.

المزايا الرئيسية

  • إنتاجية عالية: خاصة في الشبكات الطويلة والسمينة (Long Fat Networks) التي بها معدل فقدان وتأخير معين، يمكن لـ BBR عادةً الحصول على إنتاجية أعلى من الخوارزميات التقليدية.
  • تأخير منخفض: من خلال التحكم الفعال في قائمة الانتظار، يمكن لـ BBR تقليل تأخير الشبكة بشكل فعال وتجنب مشاكل تضخم المخزن المؤقت.
  • غير حساسة لفقدان الحزم: نظرًا لعدم الاعتماد بشكل أساسي على فقدان الحزم لتحديد الازدحام، فإن BBR أكثر استقرارًا في الشبكات التي بها عدد قليل من فقدان الحزم العشوائي.

شروط تمكين BBR في Windows

يجب أن يدعم نظام التشغيل ذلك. قد تكون متطلبات الإصدار هي Windows 11 الإصدار 22H2 وما فوق.

قم بتشغيل Powershell كمسؤول، وأرسل الأمر التالي لفهم الخوارزميات التي يدعمها النظام:

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

قد يخرج شيئًا مشابهًا لما يلي:

Default
NewReno
CTCP
DCTCP
LEDBAT
CUBIC
BBR2

تمثل هذه القائمة أسماء خوارزميات التحكم في الازدحام التي يمكن للنظام التعرف عليها وتكوينها في إعدادات TCP. Default يعني عادةً أن النظام يقرر استخدام CUBIC أو خوارزمية أخرى بناءً على قالب معين أو إعدادات عامة.

محاولة استخدام خوارزمية التحكم في الازدحام BBR في Windows

عرض خوارزمية التحكم في الازدحام المكونة حاليًا:

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 في Windows

في هذا الوقت، علمنا أن دعم Windows لـ BBR ليس مثاليًا، وهناك العديد من الأخطاء (ذكرت المادتان الأوليان أن تمكين BBR سيعطل حركة مرور TCP الخاصة بـ “localhost” (واجهة الاسترجاع الحلقي)، مما يؤدي إلى إبطاء أو عدم استجابة الاتصالات داخل نفس الجهاز)، مثل:

  • سيعطل Steam، لأن Steamwebhelper لم يعد بإمكانه البدء، وعند استخدام Internet Download Manager، فإنه سيعطل جميع خطافات التنزيل، وعند التغيير مرة أخرى إلى CUBIC، فإنها ستعمل مرة أخرى - إصلاح أخطاء BBR2 على Windows 11 - مجتمع Microsoft ، تم إنشاؤه في 8 مايو 2025
  • الخطأ الجديد في BBR2 24H2 هو عدم استقرار الاتصال. يتلقى متصفح Firefox الخاص بي عشوائيًا خطأ NS_BINDING_ABORT. تعطل البرنامج المساعد الخاص بي لتطوير Visual Studio Code Remote عند الاتصال، مع ظهور الخطأ التالي: failed to set up socket for dynamic port forward to remote port =: proxy connection timed out. . تطبيق Messenger الخاص بي (UWP) معطل تقريبًا (لا يمكن عرض الرسائل الجديدة). - Windows 11 24H2 و BBR2 : r/Windows11
  • سيقاطع اتصال وحدة التحكم المحلية لـ Hyper-V (بدءًا من Windows 11 23H2). ستعرض وحدة التحكم Connecting to '[VM]' لبضع دقائق، ثم تفشل مع ظهور Video remoting was disconnected ، مع ظهور مطالبة Could not connect to the virtual machine. . - كيفية تمكين TCP BBR على Windows - Stack Overflow
  • يتعذر على v2rayN تحديث الملفات الجغرافية أو النواة أو الاتصال بخادم وكيل. - [خطأ]: تتسبب خوارزمية الازدحام BBR2 في Windows في توقف 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

على Windows 11 23H2 / 24H2، قد يؤدي تمكين BBR v2 إلى جعل اتصالات TCP المحلية غير متاحة (على سبيل المثال، مما يؤدي إلى عدم إمكانية استخدام adb، وفشل Steam، وما إلى ذلك) ، في هذه الحالة، يرجى استعادة خوارزمية التحكم في الازدحام إلى التكوين السابق. لا يلزم إعادة التشغيل بعد الاستعادة، ويجب حل المشكلة على الفور.

هذه المقالة ليست مثالية بعد، نرحب بك لترك تعليق أو تعليق لإعلامي بأحدث المعلومات.

المراجع

Set-NetTCPSetting (NetTCPIP) | Microsoft Learn

تمكين TCP BBR v2 على Linux و Windows 11 - 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