اصول کنترل ازدحام
کنترل ازدحام، نرخی را که فرستندهها دادهها را به یک شبکه مشترک تزریق میکنند، تنظیم میکند تا تقاضای کلی نزدیک به ظرفیت باقی بماند و از فروپاشی ازدحام که زمانی رخ میدهد که بار ارائه شده توانایی شبکه برای تحویل آن را تحتالشعاع قرار دهد، جلوگیری کند.
Definition
کنترل ازدحام مجموعهای از مکانیسمها است که توسط آن فرستندهها نرخ انتقال خود را در پاسخ به سیگنالهای ازدحام شبکه تنظیم میکنند تا بار کلی را نزدیک به ظرفیت شبکه نگه دارند و در عین حال آن را به طور عادلانه بین جریانهای رقیب به اشتراک بگذارند.
Scope
این موضوع به اصول و عملکرد کنترل ازدحام میپردازد: تمایز آن از کنترل جریان، علل و هزینههای ازدحام، رویکردهای سرتاسری در مقابل رویکردهای با کمک شبکه، دینامیک افزایش افزایشی/کاهش ضربی (AIMD) و ویژگیهای انصاف و پایداری آن، و الگوریتمهای مشخص TCP — شروع آهسته، اجتناب از ازدحام، بازیابی سریع — همراه با نقش اعلان صریح ازدحام و وجود الگوریتمهای جایگزین. این موضوع مکانیسمهای قابلیت اطمینان به ازای هر اتصال را که به بازیابی از دست رفتن دادهها میپردازند و نه به بارگذاری بیش از حد شبکه، شامل نمیشود.
Core questions
- کنترل ازدحام چه تفاوتی با کنترل جریان دارد؟
- چه چیزی باعث ازدحام میشود و فروپاشی ازدحام چیست؟
- دینامیک AIMD چیست و چرا منجر به انصاف و پایداری میشود؟
- فازهای شروع آهسته، اجتناب از ازدحام و بازیابی سریع TCP چگونه کار میکنند؟
- سیگنالهای سرتاسری (از دست رفتن/تأخیر) چگونه با سیگنالهای با کمک شبکه مانند ECN مقایسه میشوند؟
Key concepts
- کنترل ازدحام در مقابل کنترل جریان
- فروپاشی ازدحام
- افزایش افزایشی/کاهش ضربی (AIMD)
- شروع آهسته
- اجتناب از ازدحام
- ارسال مجدد سریع و بازیابی سریع
- پنجره ازدحام
- اعلان صریح ازدحام (ECN)
- انصاف و کارایی
Key theories
- افزایش افزایشی، کاهش ضربی (AIMD)
- افزایش خطی پنجره ارسال در صورت عدم وجود ازدحام و نصف کردن آن در صورت سیگنال ازدحام، جریانهای رقیب را به سمت سهمی برابر و کارآمد از ظرفیت سوق میدهد؛ تحلیلها نشان میدهند که AIMD به انصاف و کارایی همگرا میشود، به همین دلیل TCP آن را اتخاذ میکند.
- فازهای کنترل ازدحام TCP
- TCP پهنای باند را با یک شروع آهسته نمایی بررسی میکند، در نزدیکی ظرفیت تخمین زده شده به اجتناب از ازدحام خطی تغییر میکند و از ارسال مجدد سریع/بازیابی سریع برای واکنش به از دست رفتنهای جداگانه بدون شروع مجدد استفاده میکند و ازدحام را عمدتاً از دست رفتن بستهها استنباط میکند.
- اجتناب از فروپاشی ازدحام
- بدون کنترل نرخ، ارسال مجدد در طول بارگذاری بیش از حد میتواند شبکه را به فروپاشی ازدحام سوق دهد که در آن توان عملیاتی به شدت کاهش مییابد؛ معرفی اجتناب از ازدحام در اواخر دهه ۱۹۸۰ اینترنت را از فروپاشیهای مکرر نجات داد.
Clinical relevance
کنترل ازدحام چیزی است که اینترنت مشترک را تحت بار سنگین قابل استفاده نگه میدارد: از اواخر دهه ۱۹۸۰ از فروپاشی سیستمی جلوگیری کرده و به طور مداوم توان عملیاتی، تأخیر و انصاف را برای میلیاردها جریان متعادل میکند. طراحی آن مستقیماً بر سرعت دانلود، کیفیت پخش ویدئو و عملکرد مراکز داده تأثیر میگذارد و تحقیقات فعال بر روی الگوریتمهایی مانند CUBIC و BBR و مدیریت صف با تأخیر کم، این تعادل را به طور مداوم بهبود میبخشد.
History
پس از یک سری فروپاشیهای ازدحام در اینترنت اولیه در سالهای ۱۹۸۶-۱۹۸۷، کار ون جاکوبسون در سال ۱۹۸۸ شروع آهسته و اجتناب از ازدحام را معرفی کرد و کنترل ازدحام مدرن TCP را پایهگذاری نمود. تحلیل چیو و جین در سال ۱۹۸۹ توضیح داد که چرا AIMD منجر به انصاف و کارایی میشود. دهههای بعدی انواع مختلفی مانند رنو، نیو رنو، CUBIC و BBR مبتنی بر مدل، به علاوه مکانیسمهای سمت روتر مانند RED و ECN را تولید کردند.
Debates
- کنترل ازدحام مبتنی بر از دست رفتن در مقابل کنترل ازدحام مبتنی بر تأخیر و مدل
- TCP مبتنی بر از دست رفتن تنها زمانی واکنش نشان میدهد که بافرها سرریز شوند، که میتواند باعث تأخیر بالا (بافر بلوت) و استفاده ناکافی از لینکهای سریع و طولانی شود، که انگیزهای برای طرحهای مبتنی بر تأخیر و مدل مانند BBR است؛ بحثها بر سر انصاف زمانی که اینها با جریانهای سنتی مبتنی بر از دست رفتن همزیستی دارند، متمرکز است.
Key figures
- Van Jacobson
- Dah-Ming Chiu
- Raj Jain
- Sally Floyd
Related topics
Seminal works
- jacobson1988
- chiu1989
- kurose2021
Frequently asked questions
- تفاوت بین کنترل جریان و کنترل ازدحام چیست؟
- کنترل جریان از گیرنده محافظت میکند: از یک فرستنده سریع جلوگیری میکند که بافر گیرنده کند را پر کند. کنترل ازدحام از شبکه محافظت میکند: از فرستندهها به طور جمعی جلوگیری میکند که روترها و لینکهای بین آنها را تحتالشعاع قرار دهند. TCP هر دو را انجام میدهد، با استفاده از پنجره دریافت برای کنترل جریان و پنجره ازدحام برای کنترل ازدحام.
- چرا TCP وقتی از دست رفتن بسته را میبیند، کند میشود؟
- از دست رفتن بسته، سیگنال اصلی TCP است که نشان میدهد شبکه دچار ازدحام است. با کاهش شدید نرخ ارسال خود در هنگام از دست رفتن و افزایش تدریجی آن در غیر این صورت، TCP زمانی که شبکه بیش از حد بارگذاری شده است، عقبنشینی میکند و زمانی که ظرفیت اضافی وجود دارد، آن را بررسی میکند، که ترافیک کلی را نزدیک به ظرفیت نگه میدارد و پهنای باند را تقریباً به طور عادلانه به اشتراک میگذارد.