220 likes | 415 Views
QoS صف بندی و اصول. مظفر بگ محمدی. نظام صف بندی. هر مسیریابی باید بعضی نظامهای صف بندی را پیاده کند. نظام زمانبندی سیاست دور انداختن صف بندی موجب تخصیص پهنای باند و فضای بافر می شود: پهنای باند: بسته ی بعدی ارسالی کدام است؟ فضای بافر: در صورت لزوم کدام بسته را دور بیاندازیم؟
E N D
QoSصف بندی و اصول مظفر بگ محمدی
نظام صف بندی • هر مسیریابی باید بعضی نظامهای صف بندی را پیاده کند. • نظام زمانبندی • سیاست دور انداختن • صف بندی موجب تخصیص پهنای باند و فضای بافر می شود: • پهنای باند: بسته ی بعدی ارسالی کدام است؟ • فضای بافر: در صورت لزوم کدام بسته را دور بیاندازیم؟ • به علاوه، صف بندی روی تاخیر نیز تاثیر دارد.
صفبندیهای متداول در اینترنت • FIFO + drop-tail • آسانترین گزینه • در اینترنت به صورت گسترده ای استفاده می شود. • نظام زمانبندی: FIFO • سیاست حذف: حذف از انتها • FIFO (first-in-first-out) • تمام ترافیک را به صورت یک کلاس می بیند و اولویت ندارد. • حذف از انتها • وقتی که صف پر شود، بستههای ورودی فارغ از اهمیت آنها دور انداخته خواهند شد.
مشکلات FIFO +حذف از انتها • مشکل قفل شدن صف • این امکان وجود دارد که چندین جریان فضای ضف را در اختیار خود بگیرند. • هر کی بیشتر بفرستد، بیشتر میگیرد هیچ گونه سیاست ضمنی ندارد. • صفهای پر • TCP ازدحام را از روی گم شدن بستهها تشخیص می دهد. • شبکه را مجبور میکند که در حالت پایدار دارای صفهای طولانی باشد. • تاخیر صفبندی برای ترافیکهای بلادرنگ بسیار بد است. • همزمانی: میزبانها دوره ی زیر را تکرار می کنند. • Full queue empty Full empty… • با ترافیکهای انفجاری رفتار مناسبی ندارد.
مشکل قفل شدن صف • صف بندی اولویت دار میتواند این مشکل را حل کند. • گرسنگی • تشخیص اولویت مشکل است. • راه ساده تر: دور انداختن تصادفی • اگر بسته ای دریافت شود و صف پر باشد، یکی از بستهها به صورت تصادفی انتخاب و دور انداخته میشود. • حذف از ابتدا • وقتی صف پر شد، بستههای ابتدای صف دور انداخته می شوند. • حذف تصادفی و حذف از ابتدا مشکل قفل شدن را حل میکنند، اما مشکل صف پر کماکان باقی است.
Random Early Detection (RED) • بستهها را قبل از این که صف پر شود دور بیاندازید (پیش از موعد) • ازدحامهای قریب الوقوع را تشخیص می دهد. • از همزمانی پنجره جلوگیری می کند. • بستهها را به صورت تصادفی علامت میزند و حذف می کند. • دور انداختن تصادفی، رفتار ناعادلانه با ترافیک انفجاری را تعدیل میکند.
الگوریتم RED • نگهداری طول متوسط صف در حین اجرا • اگر avg < minthباشد، کاری انجام نده. • صف خلوت است، بستهها را وارد صف کن. • اگر avg > maxthباشد، بسته را دور بیانداز. • محافظت در برابر فرستندههای متخلف • در غیر این صورت، بستهها را متناسب با طول صف علامت بزن (دور بیانداز). • فرستنده را از ازدحام قریب الوقوع با خبر کن.
RED Operation Min thresh Max thresh Average Queue Length P(drop) 1.0 maxP minth maxth Avg queue length
صفبندی عادلانه: اهداف • چگونه از مهمترین بستهها محافظت کنیم؟ • به طورکلی، چگونه ميتوان بستهها را جدا (ایزوله) کرد. • صفبندی سادهی اولویتدار کمک چندانی نمیکند. • دو رویکرد: • صفبندی عادلانه (که به خودی خود کافی است) • ظرف سوراخدار (به همراه چند تکنیک دیگر که در ادامه ی درس بحث خواهند شد) • هدف کلیدی FQ : تخصیص عادلانهی منابع • نگهداری از یک صف به ازای هر جریان • جدا کردن کاربران متخلف • همچنان خاصیت تسهیم آماری برقرار است • یک جریان میتواند کل ظرفیت لینک را استفاده کند. • اصطلاحاً بقای کار برقرار است، یعنی اگر بستهای برای ارسال وجود داشته باشد، زمانبند لینک را خالی نگه نخواهد داشت.
عدالت چیست؟ • در چه سطحی؟ • جریانها، اتصالات، حوزهها؟ • اگر لینکها، RTT و ... کاربران متفاوت باشد چه؟ • TCP عدالت را با توجه به RTT رعایت میکند. • پهنای باند با معکوس RTT جریان متناسب است. • آیا جریانها باید به طور مساوی استفاده کنند، یا عدالت مثل TCP رعایت شود؟ • بیشینه کردن معیار عدالت؟ • Fairness = (Sxi)2/n(Sxi2) 0<fairness<1
عدالت Max-min • کاربرانی که میزان تقاضای آنها کمتر است زودتر سرویس داده میشوند، منابع بین کاربرانی که تقاضای آنها زیاد است به صورت متعادل تقسیم می شود. • به طور رسمی: • منابع را بین تقاضاها به ترتیب صعودی تقسیم میکنیم. • میزان دسترسی هیچ فرستندهای به یک منبع از میزان تقاضای آن بیشتر نخواهد بود. • فرستندههایی که تقاضای آنها برآورده نشده است، سهم یکسانی از منبع خواهند داشت.
پیادهسازی عدالت Max-min • برای هر جریان از یک صف مجزا استفاده کن • بین صفها به صورت نوبت چرخشی زمانبندی را اجرا کن. • چرا نوبت چرخشی را بر حسب بسته اجرا نکنیم؟ • طول متغییر بستهها ارسال بستههای بزرگتر منجر به دریافت سرویس بیشتری خواهد شد. • از لحاظ ایدهآل: باید بین تمام صفها نوبت چرخشی را بیت به بیت اجرا کنیم
توضیح RR بیت به بیت • در شبکههای واقعی نمیتوان بیتهای بستهها را با هم قاطی کرد • FQ سعی میکند که RR بیت به بیت را شبیهسازی کند.
شبیهسازی 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
صف بندی عادلانه • نگاشت زمانبندی بیت به بیت به زمانبند انتقال بسته • بستهای که Fi آن از همه کمتر است را ارسال کن.
FQ Flow 1 Flow 2 I/P O/P Flow n روش مشابه: صف بندی عادلانه وزندار (WFQ): هر جریان دارای یک وزن است.
Output Flow 1 (arriving) Flow 2 transmitting Output F=10 F=2 بدون قبضه کردن Flow 1 Flow 2 F=10 F=8 F=5 نمی توان بسته در حال انتقال را متوقف کرد.
ملاحظات صفبندی عادلانه • FQ میتواند از طریق نظارت بر جریانها ازدحام را کنترل کند. • جریانها باید وفقی باشند تا از وقوع شکست ازدحام جلوگیری شود. • حالت پیچیده • باید به ازای هر جریان یک صف داشته باشیم. • در مسیریابهایی که تعداد جریانهای عبوری زیاد است (مثل مسیریابهای ستون فقرات) کار مشکلی است. • امکان تجمیع جریانها وجود دارد. (مثلاً، عدالت را برای یک حوزه برقرار کرد) • محاسبات پیچیده • دسته بندی جریانها سخت است • باید صفها را بر حسب زمان خاتمه مرتب کرد • باید تعداد جریانها را با دقت زمانی زیادی یادداشت کرد.
ظرف نشانه: سیاستگذاری جریانها در لبه ی شبکه Tokens Tokens enter bucket at rate r Overflow Tokens Bucket depth b: capacity of bucket Packet Enough tokens packet goes through, tokens removed Tokens Packet Not enough tokens wait for tokens to accumulate
مشخصات ظرف نشانه • در بلندمدت، نرخ محدود به r خواهد شد. • در کوتاه مدت، میتوان یک ترافیک انفجاری به اندازه ی b را ارسال کرد. • حداکثر میزان ترافیک وارده در دوره ی T برابر است با: • b + r*T • به نوعی جریانها را از هم جدا میکند. • ما از همان ابتدا نرخ ارسال فرستنده ها را کنترل می کنیم. • هنوز لازم است مکانیسمهایی در داخل شبکه به ما کمک کنند تا کارآیی را تنظیم کنیم.