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‬‬