
امروز کیفیت سرویس (QoS – Quality of Service) را بررسی میکنیم که به مجموعه ابزارها و تکنیکهایی اشاره دارد که مدیران شبکه برای اولویتبندی ترافیک در شبکه از آنها استفاده میکنند.
QoS چیست؟
حالت پیشفرض پردازش بستهها در سوئیچها و روترها این است که فریمها و بستهها را به همان ترتیبی که دریافت شدهاند، پردازش کنند. مکانیزم صفبندی FIFO (First-In, First-Out) بین انواع مختلف ترافیک تفاوتی قائل نمیشود.
ابزارهای QoS از چهار ویژگی کلیدی برای طبقهبندی انواع ترافیک استفاده میکنند:
- Latency (Delay): تأخیر، مدتزمانی است که برای ارسال یک بسته به مقصد صرف میشود. ابزارهای QoS میتوانند تأخیر را برای بستههایی که به زمان حساس هستند (مانند صدا و ویدئو) کاهش دهند.
- Jitter: به تغییرات تأخیر در بستههای ارسالی گفته میشود. ابزارهای QoS میتوانند این تغییرات را کاهش دهند تا تجربهی کاربر نهایی بهبود یابد.
- Loss: نرخ از دست رفتن بستهها را نشان میدهد که معمولاً بهصورت درصدی از کل بستههای ارسالشده بیان میشود. ابزارهای QoS میتوانند packet loss را کاهش دهند، مخصوصاً برای ترافیکهایی که به تأخیر حساس هستند.
- Bandwidth: پهنای باند، مقدار دادهای است که یک رابط میتواند در هر ثانیه ارسال کند. ابزارهای QoS تعیین میکنند که کدام نوع ترافیک اولویت بیشتری دارد و چه مقدار از پهنای باند باید به آن اختصاص یابد.
تصویر بالا ویژگیهای سه نوع اصلی ترافیک (صدا، ویدئو، داده) و حداقل مقادیر موردنیاز برای تأخیر، jitter، packet loss و bandwidth را نشان میدهد.
ابزارهای QoS
تصویر بالا توالی رخدادهای QoS را در زمان ارسال ترافیک از یک رابط نشان میدهد. ابزارهای QoS در این شکل شامل موارد زیر هستند:
- Classification and Marking: ابزارهای QoS جریانهای ترافیک را نظارت کرده و بستهها را بر اساس محتویات هدرشان طبقهبندی میکنند. این بستهها ممکن است با تغییر بیتهای هدر، علامتگذاری شوند.
- Congestion Avoidance: زمانی که میزان ترافیک از ظرفیت منابع شبکه بیشتر شود، ممکن است برخی از بستهها بهطور انتخابی حذف، تأخیر دادهشده یا مجدداً علامتگذاری شوند تا از ازدحام جلوگیری شود.
- Congestion Management: ابزارهای QoS مدیریت صفبندی و زمانبندی ترافیک را انجام میدهند، تا بستهها به ترتیب اولویت، از رابط خروجی ارسال شوند.
طبقهبندی و علامتگذاری (Classification and Marking)
Classification فرآیند تطبیق فیلدهای هدر بستهها برای اعمال یک اقدام QoS خاص بر روی بسته است. این فیلدها شامل تمام فیلدهای معمولی هستند که توسط ACLs فیلتر میشوند، همچنین شامل فیلد Type of Service (ToS) در بستههای IPv4 یا Traffic Class در بستههای IPv6 میشوند.
Marking به فرآیند تغییر مقدار بیتها در فیلد ToS یا Traffic Class اشاره دارد. محتوای این دو فیلد یکسان است، همانطور که در عکس زیر نشان داده شده است.
DSCP و IPP
بر اساس استاندارد RFC 2474، هشت بیت DSCP امکان تعریف 64 کلاس مختلف را برای QoS فراهم میکنند. این یک پیشرفت نسبت به استاندارد قبلی است که فقط از سه بیت در فیلد IP Precedence (IPP) برای طبقهبندی ترافیک استفاده میکرد (RFC 791). برای حفظ سازگاری با سیستمهای قدیمی، بیتهای DSCP شامل مقادیر Class Selector (CS) هستند که با بیتهای IPP مطابقت دارند. تصویر زیر این مقادیر را نشان میدهد.
در شبکههای Layer 2 VLAN، بیت سوم از فریم 802.1Q برای Class of Service (CoS) رزرو شده است که ابزارهای QoS میتوانند از آن برای علامتگذاری فریمها استفاده کنند. این مقدار تنها تا زمانی که فریم در Layer 2 باقی بماند، معتبر است. اگر فریم به Layer 3 منتقل شود، مقدار ToS باید در سطح IP علامتگذاری شود.
نمونهای از علامتگذاری CoS
تصویر بالا نشان میدهد که چگونه CoS در یک مسیر شامل trunk links استفاده میشود. فیلدهای اضافی که میتوانند برای QoS marking استفاده شوند شامل Traffic Identifier (TID) در فریمهای 802.11 و فیلد EXP در MPLS هستند. جدیول زیر فیلدهای مختلف QoS را فهرست میکند.
فیلد | نام در هدر بسته | طول (بیت) | محل استفاده |
---|---|---|---|
DSCP | IPv4, IPv6 | 6 | بستههای end-to-end |
IPP | IPv4, IPv6 | 3 | بستههای end-to-end |
CoS | 802.1Q | 3 | روی لینکهای VLAN |
TID | 802.11 | 3 | روی Wi-Fi |
EXP | MPLS Label | 3 | روی MPLS WAN |
توجه: فیلد EXP در MPLS طبق RFC 5462 به Traffic Class تغییر نام داد. با این حال، نام EXP همچنان به دلیل استفادهی تجربی آن رایج است.
Expedited Forwarding (EF) و Assured Forwarding (AF)
Expedited Forwarding (EF) مقدار DSCP عدد 46 را دارد و برای بستههایی که به تأخیر کم، jitter پایین و packet loss حداقلی نیاز دارند، استفاده میشود. معمولاً QoS از EF برای اولویتبندی بستههای صوتی استفاده میکند.
Assured Forwarding (AF) طبق RFC 2597 مجموعهای از 12 مقدار DSCP را تعریف میکند که در یک ماتریس مرتب شدهاند. (Figure 6-6) این مقادیر را نشان میدهد.
چهار ردیف در تصویر بالا نشاندهندهی اولویت صف هستند و سه ستون نشاندهندهی اولویت drop. نامگذاری AF از فرمت AFXY پیروی میکند که در آن X نشاندهندهی اولویت صف و Y نشاندهندهی اولویت drop است.
مدیریت ازدحام (Congestion Management)
مدیریت ازدحام به ابزارهای QoS اشاره دارد که برای کنترل صفها در هنگام انتظار بستهها برای خروج از یک اینترفیس استفاده میشوند. اکثر دستگاههای شبکه دارای یک سیستم صفبندی هستند که میتواند بستهها را به چندین صف طبقهبندی کند. یک زمانبند (scheduler) تصمیم میگیرد که بستهها در چه ترتیبی ارسال شوند، بهخصوص زمانی که اینترفیس شلوغ است.
یکی از روشهای محبوب، Class-Based Weighted Fair Queuing (CBWFQ) است که کلاسهای مختلف ترافیک را به صفهای خاصی اختصاص داده و حداقل پهنای باند را برای هر صف تضمین میکند. تصویر پایین نشان میدهد که چگونه زمانبند از Round-Robin برای پردازش صفها به ترتیب استفاده میکند.
مشکل CBWFQ: این روش نیازهای ترافیک حساس به زمان را در شرایط ازدحام شدید برآورده نمیکند. ترافیک صوتی معمولاً به 30 تا 320 kbps نیاز دارد، حداکثر تأخیر 150 ms، jitter حداکثر 30 ms، و از دست دادن بستهها کمتر از 1%.
راهحل: Low Latency Queuing (LLQ)
برای حل این مشکل، LLQ به CBWFQ اضافه میشود. زمانبند همیشه اولین بسته را از LLQ ارسال میکند، همانطور که در تصویر پایین نشان داده شده است.
Policing، Shaping و TCP Discards
دو ابزار اصلی برای مدیریت ازدحام در لینکهای پرترافیک عبارتاند از policing و shaping. این ابزارها بیشتر در WAN edge استفاده میشوند و در سطح سازمان کمتر رایج هستند.
- Policers: بستههایی که از آستانهی مجاز عبور میکنند را حذف میکنند.
- Shapers: بستهها را در صف نگه میدارند و تأخیر ایجاد میکنند تا نرخ ارسال حفظ شود.
تصویر بالا نمونهای از استفاده از policing در یک لینک Metro Ethernet را نشان میدهد که اجازهی استفادهی بیش از 200 Mbps را نمیدهد. اگر مشتری این مقدار را تجاوز کند، ارائهدهندهی خدمات میتواند بستههای اضافی را حذف یا مجدداً علامتگذاری کند.
ویژگیهای اصلی policing:
- اندازهگیری ترافیک و مقایسهی آن با نرخ CIR (Committed Information Rate).
- اجازهی burst در زمانهایی که ترافیک کم است.
- حذف بستههای اضافی یا علامتگذاری آنها برای حذف در مراحل بعدی در صورت ایجاد ازدحام.
Shaping در QoS
در سمت مشتری، مدیر شبکه میتواند از shaping برای تطبیق ترافیک با مقدار CIR استفاده کند. Shaper ترافیک را کاهش داده و بستهها را در صف قرار میدهد تا بهتدریج ارسال شوند، همانطور که در تصویر پایین نشان داده شده است.
تفاوت کلیدی: Shaping نمیتواند سرعت فیزیکی اینترفیس را کاهش دهد، بلکه ارسال و انتظار را کنترل میکند.
مثال:
اگر نرخ CIR برابر 200 Mbps باشد و لینک 1000 Mbps باشد، Shaper فقط 20% از زمان، دادهها را ارسال میکند و 80% از زمان، در حالت انتظار است.
راهکار پیشنهادی برای ترافیک حساس به تأخیر:
- بازههای ارسال را روی مقدار کم (مثلاً 10 میلیثانیه) تنظیم کنید.
- برای مثال، 1000 Mbps داده را 2 ms ارسال کنید و 8 ms صبر کنید.
- این روش تضمین میکند که بستههای صوتی حداکثر 10 ms منتظر میمانند، که بسیار کمتر از 150 ms نیازمندی تأخیر برای صدا است.
ویژگیهای کلیدی Shapers
- اندازهگیری ترافیک در طول زمان و مقایسهی آن با نرخ shaping تنظیمشده.
- اجازهی bursting در مواقع کمترافیک.
- کاهش سرعت ارسال بستهها با قرار دادن آنها در صف و آزادسازی تدریجی آنها.
QoS و TCP
در صورت عدم استفاده از ابزارهای جلوگیری از ازدحام (congestion-avoidance), tail drop ممکن است رخ دهد، همانطور که در تصویر زیر نشان داده شده است.
هنگامی که صفهای پایینتر پر شوند، بستههای دریافتی بعدی حذف خواهند شد.
نقش TCP در کاهش Tail Drop:
پروتکل TCP بهطور خودکار از یک فرآیند windowing بین فرستنده و گیرنده استفاده میکند تا بهصورت پویا مقدار دادهای را که قبل از دریافت تأییدیه باید ارسال شود، تنظیم کند. ابزارهای QoS میتوانند از این فرآیند windowing استفاده کنند و برخی از TCP segments را قبل از پر شدن صفها حذف کنند. این کار باعث میشود که اتصالات TCP سرعت خود را کاهش دهند، ازدحام کاهش یابد و tail drop بهطور کلی اجتناب شود.
ابزارهای QoS عمق صفها را در طول زمان بررسی میکنند. آستانههای تنظیمشده مشخص میکنند که چه درصدی از بستههای TCP باید با افزایش بار صف حذف شوند، همانطور که در تصویر پایین نشان داده شده است.
آستانههای صف برای حذف بستههای TCP (Queue Thresholds for Discarding TCP Packets)
در (Figure 6-12)، سطوح مختلفی از حذف بسته در صفها مشخص شدهاند:
- Queue Empty: هیچ بستهای حذف نمیشود.
- Minimum Threshold: حداقل مقدار پر شدن صف که در آن هیچ حذف بستهای رخ نمیدهد.
- Maximum Threshold: اگر صف به این سطح برسد، درصدی از بستههای TCP حذف میشوند.
- Queue Full: تمام بستههای جدید حذف میشوند (Full Drops).
هدف: کاهش ازدحام و جلوگیری از tail drop از طریق مدیریت هوشمند حذف بستهها.