Shared Congestion Management
Download
Report
Transcript Shared Congestion Management
صف بندی و اصول QoS
مظفر بگ محمدی
نظام صف بندی
• هر مسیریابی باید بعضی نظامهای صف بندی را پیاده کند.
– نظام زمانبندی
– سیاست دور انداختن
• صف بندی موجب تخصیص پهنای باند و فضای بافر می شود:
– پهنای باند :بسته ی بعدی ارسالی کدام است؟
– فضای بافر :در صورت لزوم کدام بسته را دور بیاندازیم؟
• به عالوه ،صف بندی روی تاخیر نیز تاثیر دارد.
2
صفبندیهای متداول در اینترنت
• FIFO + drop-tail
– اسانترین گزینه
– در اینترنت به صورت گسترده ای استفاده می شود.
– نظام زمانبندیFIFO :
– سیاست حذف :حذف از انتها
• )FIFO (first-in-first-out
– تمام ترافیک را به صورت یک کالس می بیند و اولویت ندارد.
• حذف از انتها
– وقتی که صف پر شود ،بستههای ورودی فارغ از اهمیت انها دور انداخته خواهند شد.
3
مشکالت +FIFOحذف از انتها
• مشکل قفل شدن صف
– این امکان وجود دارد که چندین جریان فضای ضف را در اختیار خود بگیرند.
– هر کی بیشتر بفرستد ،بیشتر میگیرد هیچ گونه سیاست ضمنی ندارد.
• صفهای پر
–
–
–
–
TCPازدحام را از روی گم شدن بستهها تشخیص می دهد.
شبکه را مجبور میکند که در حالت پایدار دارای صفهای طوالنی باشد.
تاخیر صفبندی برای ترافیکهای بالدرنگ بسیار بد است.
همزمانی :میزبانها دوره ی زیر را تکرار می کنند.
…• Full queue empty Full empty
• با ترافیکهای انفجاری رفتار مناسبی ندارد.
4
مشکل قفل شدن صف
• صف بندی اولویت دار میتواند این مشکل را حل کند.
– گرسنگی
– تشخیص اولویت مشکل است.
• راه ساده تر :دور انداختن تصادفی
– اگر بسته ای دریافت شود و صف پر باشد ،یکی از بستهها به صورت تصادفی انتخاب و دور انداخته
میشود.
• حذف از ابتدا
– وقتی صف پر شد ،بستههای ابتدای صف دور انداخته می شوند.
• حذف تصادفی و حذف از ابتدا مشکل قفل شدن را حل میکنند ،اما مشکل صف پر کماکان
باقی است.
5
)Random Early Detection (RED
• بستهها را قبل از این که صف پر شود دور بیاندازید (پیش از موعد)
• ازدحامهای قریب الوقوع را تشخیص می دهد.
• از همزمانی پنجره جلوگیری می کند.
– بستهها را به صورت تصادفی عالمت میزند و حذف می کند.
• دور انداختن تصادفی ،رفتار ناعادالنه با ترافیک انفجاری را تعدیل میکند.
6
الگوریتم RED
• نگهداری طول متوسط صف در حین اجرا
• اگر avg < minthباشد ،کاری انجام نده.
– صف خلوت است ،بستهها را وارد صف کن.
• اگر avg > maxthباشد ،بسته را دور بیانداز.
– محافظت در برابر فرستندههای متخلف
• در غیر این صورت ،بستهها را متناسب با طول صف عالمت بزن (دور بیانداز).
– فرستنده را از ازدحام قریب الوقوع با خبر کن.
7
RED Operation
Min thresh
Max thresh
P(drop)
Average Queue Length
1.0
maxP
minth
maxth
Avg queue length
8
صفبندی عادالنه :اهداف
• چگونه از مهمترین بستهها محافظت کنیم؟
– به طورکلی ،چگونه ميتوان بستهها را جدا (ایزوله) کرد.
– صفبندی سادهی اولویتدار کمک چندانی نمیکند.
• دو رویکرد:
– صفبندی عادالنه (که به خودی خود کافی است)
– ظرف سوراخدار (به همراه چند تکنیک دیگر که در ادامه ی درس بحث خواهند شد)
• هدف کلیدی : FQتخصیص عادالنهی منابع
– نگهداری از یک صف به ازای هر جریان
• جدا کردن کاربران متخلف
• همچنان خاصیت تسهیم اماری برقرار است
9
– یک جریان میتواند کل ظرفیت لینک را استفاده کند.
ً
اصطالحا بقای کار برقرار است ،یعنی اگر بستهای برای ارسال وجود داشته باشد ،زمانبند لینک را خالی نگه نخواهد داشت.
–
عدالت چیست؟
• در چه سطحی؟
– جریانها ،اتصاالت ،حوزهها؟
• اگر لینکها RTT ،و ...کاربران متفاوت باشد چه؟
– TCPعدالت را با توجه به RTTرعایت میکند.
• پهنای باند با معکوس RTTجریان متناسب است.
– ایا جریانها باید به طور مساوی استفاده کنند ،یا عدالت مثل TCPرعایت شود؟
• بیشینه کردن معیار عدالت؟
– Fairness = (Sxi)2/n(Sxi2) 0<fairness<1
10
عدالت Max-min
• کاربرانی که میزان تقاضای انها کمتر است زودتر سرویس داده میشوند ،منابع بین کاربرانی که
تقاضای انها زیاد است به صورت متعادل تقسیم می شود.
• به طور رسمی:
– منابع را بین تقاضاها به ترتیب صعودی تقسیم میکنیم.
– میزان دسترسی هیچ فرستندهای به یک منبع از میزان تقاضای ان بیشتر نخواهد بود.
– فرستندههای ی که تقاضای انها براورده نشده است ،سهم یکسانی از منبع خواهند داشت.
11
پیادهسازی عدالت Max-min
• برای هر جریان از یک صف مجزا استفاده کن
– بین صفها به صورت نوبت چرخشی زمانبندی را اجرا کن.
• چرا نوبت چرخشی را بر حسب بسته اجرا نکنیم؟
– طول متغییر بستهها ارسال بستههای بزرگ تر منجر به دریافت سرویس بیشتری خواهد شد.
• از لحاظ ایدهال :باید بین تمام صفها نوبت چرخشی را بیت به بیت اجرا کنیم
12
توضیح RRبیت به بیت
• در شبکههای واقعی نمیتوان بیتهای
بستهها را با هم قاطی کرد
– FQسعی میکند که RRبیت به بیت را
شبیهسازی کند.
13
شبیهسازی RRبیت به بیت
• یک جریان :هر بار که یک بیت از بستهی iانتقال یابد ،کالک یک تیک میزند.
– Pi = length, Ai = arrival time, Si = begin transmit time, Fi = finish transmit time
– Fi = Si+Pi = max (Fi-1, Ai) + Pi
• چندین جریان ،هر بار که یک بیت از تمام جریانها منتقل شود ،کالک یک تیک جلو میرود.
– اگر تعداد جریانها معلوم باشد ،میتوان زمان Fiرا برای تمام بستهها محاسبه کرد.
• چرا باید تعداد کل جریانها را بدانیم؟ به خاطر محاسبه ی A
14
صف بندی عادالنه
• نگاشت زمانبندی بیت به بیت به زمانبند انتقال بسته
• بستهای که Fiان از همه کمتر است را ارسال کن.
15
FQ
Flow 1
Flow 2
I/P
O/P
Flow n
روش مشابه :صف بندی عادالنه وزندار ) :(WFQهر جریان دارای یک وزن است.
16
بدون قبضه کردن
Flow 1
F=8
Flow 2
Output
F=10
Flow 1
(arriving)
F=5
.نمی توان بسته در حال انتقال را متوقف کرد
Flow 2
Output
transmitting
F=10
F=2
17
مالحظات صفبندی عادالنه
• FQمیتواند از طریق نظارت بر جریانها ازدحام را کنترل کند.
– جریانها باید وفقی باشند تا از وقوع شکست ازدحام جلوگیری شود.
• حالت پیچیده
– باید به ازای هر جریان یک صف داشته باشیم.
• در مسیریابهای ی که تعداد جریانهای عبوری زیاد است (مثل مسیریابهای ستون فقرات) کار مشکلی است.
• امکان تجمیع جریانها وجود داردً ( .
مثال ،عدالت را برای یک حوزه برقرار کرد)
• محاسبات پیچیده
– دسته بندی جریانها سخت است
– باید صفها را بر حسب زمان خاتمه مرتب کرد
– باید تعداد جریانها را با دقت زمانی زیادی یادداشت کرد.
18
سیاستگذاری جریانها در لبه ی شبکه:ظرف نشانه
Tokens
Tokens enter
bucket at rate r
Overflow
Bucket depth
b: capacity of
bucket
Tokens
Packet
Tokens
Enough tokens
packet goes through,
tokens removed
Packet
Not enough
tokens wait
for tokens to
accumulate
19
مشخصات ظرف نشانه
• در بلندمدت ،نرخ محدود به rخواهد شد.
• در کوتاه مدت ،میتوان یک ترافیک انفجاری به اندازه ی bرا ارسال کرد.
• حداک ثر میزان ترافیک وارده در دوره ی Tبرابر است با:
– b + r*T
– به نوعی جریانها را از هم جدا میکند.
• ما از همان ابتدا نرخ ارسال فرستنده ها را کنترل می کنیم.
• هنوز الزم است مکانیسمهای ی در داخل شبکه به ما کمک کنند تا کارای ی را تنظیم کنیم.
20