מאמר זה מציג בקצרה כיצד להפעיל את אלגוריתם בקרת גודש ה-BBR במכשירי Windows; כמו גם את הבעיות האפשריות בשימוש בפונקציה זו כעת.
מבוא ל-BBR
BBR (רוחב פס צוואר בקבוק וזמן הפצה הלוך ושוב) הוא סוג חדש יחסית של אלגוריתם בקרת גודש TCP שפותח על ידי גוגל. הוא נועד לפתור את הבעיות של ניצול רוחב פס נמוך וחביון גדול באלגוריתמי בקרת גודש מסורתיים (כגון Reno או CUBIC) בתנאי רשת מסוימים (במיוחד ברשתות עם שיעור אובדן מנות וחביון מסוימים).
רעיון מרכזי
הרעיון המרכזי של BBR הוא לא להסתמך יותר על אובדן מנות כאות העיקרי לקביעת גודש ברשת. אלגוריתמי בקרת גודש מסורתיים בדרך כלל מורידים את קצב השליחה רק כאשר מזוהה אובדן מנות, אך הדבר עלול לגרום לאי ניצול מלא של רוחב הפס הזמין, או להחדרת חביון מיותר (ניפוח חוצץ), ברשתות עם חוצצים גדולים יותר או עם אובדן מנות אקראי קל.
BBR פונה למדידה אקטיבית של שני פרמטרים מרכזיים של הרשת:
- רוחב פס צוואר בקבוק (Bottleneck Bandwidth, BtlBw): הגבול העליון של קצב העברת הנתונים בנתיב הרשת, כלומר הקיבולת של החוליה הצרה ביותר בנתיב.
- זמן הפצה הלוך ושוב (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
גרסאות אחרות של דף אינטרנט זה
למאמר זה יש גרסאות בשפות רבות.
אם ברצונך להשאיר תגובה, אנא בקר בדף האינטרנט הבא:
דפים אלה תומכים רק בגלישה, לא ניתן להשאיר תגובות או הודעות, אך הם מספקים אפשרויות שפה נוספות ויש להם זמני טעינה קצרים יותר:
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