מאמר זה מציג בקצרה כיצד להפעיל את אלגוריתם בקרת גודש ה-BBR במכשירי Windows; כמו גם את הבעיות האפשריות בשימוש בפונקציה זו כעת.

מבוא ל-BBR

BBR (רוחב פס צוואר בקבוק וזמן הפצה הלוך ושוב) הוא סוג חדש יחסית של אלגוריתם בקרת גודש TCP שפותח על ידי גוגל. הוא נועד לפתור את הבעיות של ניצול רוחב פס נמוך וחביון גדול באלגוריתמי בקרת גודש מסורתיים (כגון 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 או באלגוריתמים אחרים על סמך תבניות ספציפיות או הגדרות גלובליות.

Windows מנסה להשתמש באלגוריתם בקרת גודש 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

בעיות נוכחיות עם שימוש Windows באלגוריתם BBR

בשלב זה, שאילתה מראה שתמיכת ה-BBR של Windows אינה מושלמת, יש הרבה באגים (שני החומרים הראשונים מזכירים שהפעלת BBR תשבור את תעבורת ה-TCP של “localhost” (ממשק לולאה חוזרת), מה שגורם לחיבורים בתוך אותה מכונה להיות איטיים או לא מגיבים), כגון:

  • זה ישבור את Steam, מכיוון ש-Steamwebhelper לא יכול להפעיל יותר, וכאשר משתמשים ב-Internet Download Manager, זה ישבור את כל ווי ההורדה, והם יעבדו שוב כאשר יוחלף בחזרה ל-CUBIC —— Fix BBR2 bugs on Windows 11 - Microsoft Community , נוצר ב-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 and 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 לא יכול לעדכן קבצי מיקום גיאוגרפי, ליבה או להתחבר לשרתי proxy. —— [Bug]: אלגוריתם הגודש 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

Enable TCP BBR v2 on 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