QoS در واقع روشی برای اولویتدهی به یک سری ترافیکهای خاص برای بالا بردن کیفیت و سرعت در سرویس دهی آنها نسبت به بقیه ترافیکها میباشد. از آنجایی که ارتباطات صوتی و تصویری در اینترنت رو به افزایش است و همین طور به دلیل Real time بودن آنها، استفاده از QoS باعث میشود کیفیت آنها تا حد امکان دچار مشکل نشود و بتوان سرویس بهتری را ارائه داد.
ولی چگونه میتوان این نوع ترافیکها را از بقیه جدا کرد؟
برای نشانهگذاری آنها ابتدا بهتر است نگاهی به لایههای شبکه بیندازیم. بستههای ورودی در هر لایه اطلاعات و هدر های مخصوص خود را دارا میباشند. هر بسته در رسیدن به لایه بالایی، هدر خود را از دست داده و data را تحویل لایهی بالایی خود میدهد
ساختار هدر لایه های ۲ و ۳ معمولا شبیه به یکدیگر هستند، دارای آدرس مبدا و مقصد و همینطور یک سری پارامتر. پارامتر های مربوط به QoS نیز در این قسمت وجود دارند که بیشتر در موردشان توضیح خواهم داد.
در ساختار اولیه هدر لایه ۲ هیچ گونه فیلدی برای تنظیمات QoS وجود نداشت تا اینکه در استانداردهای بعدی ۴ بایت به این هدر اضافه شد. از این ۱۶ بیت اضافه شده ۳ بیت متعلق به Priority Code Point میباشد که در واقع تنظیمات QoS در لایه ۲ در ۳ بیت قرار میگیرد.
در این ۳ بیت به طور کلی اعدادی بین ۰ تا ۷ قرار میگیرد. از این اعداد برای طبقه بندی کردن ترافیک استفاده میشود. media یا rtp بالاترین اولویت میخواهد، سپس signalling مانند SIP, IAX2 اولویت بالاتری را نسبت بقیه ترافیک شبکه میخواهند. به این ۳ بیت در لایه ۲ Class of Service یا CoS میگویند.
تنظیمات پیشنهادی برای هر کدام از اینها را میتوانید از لینک زیر مشاهده کنید.
https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service
از آنجایی که این تنظیمات فقط درون شبکه LAN کاربرد دارد (به دلیل اینکه تنظیمات در لایه ۲ انجام میشود) بنابراین شما برای استفاده از قابلیتهای QoS در اینترنت نیاز به تنظیم این پارامتر ها در لایه ۳ دارید.
در لایه ۳ بر خلاف لایه ۸ بیت برای QoS استفاده میشود که به آن Type os Service یا ToS میگویند. در استریسک برای تنظیم ToS باید از یکی از مقادیر زیر استفاده کنید:
[CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13, AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43, ef]
در واقع برای تمامی مقادیر یک مقدار عددی نیز وجود دارد، اما در استریسک شما باید فقط از لیست بالا استفاده کنید.
برای تنظیم ToS در IPPhone ها شما باید به Manual هر کدام از آنها مراجعه کنید زیرا تعریف ToS در هر IPPhone با دیگری متفاوت است(یعنی در بعضی ها از آنها از نوع decimal و در بعضی دیگر از نوع hex آنها برای تنظیم ToS استفاده میشود). مثلا در گوشی های Grandstream از نوع deciaml برای مقدار دهی استفاده شده است.
در جدول زیر تمامی مقادیر آنها در حالتهای مختلف آمده است.
DSCP | ToS (HEX) | ToS (deciaml) |
none | 0×00 | 0 |
cs1 | 0×20 | 32 |
af11 | 0×28 | 40 |
af12 | 0×30 | 48 |
af13 | 0×38 | 56 |
cs2 | 0×40 | 64 |
af21 | 0×48 | 72 |
af22 | 0×50 | 80 |
af23 | 0×58 | 88 |
cs3 | 0×60 | 96 |
af31 | 0×68 | 104 |
af32 | 0×70 | 112 |
af33 | 0×78 | 120 |
cs4 | 0×80 | 128 |
af41 | 0×88 | 136 |
af42 | 0×90 | 144 |
af43 | 0×98 | 152 |
cs5 | 0xA0 | 160 |
ef | 0xB8 | 184 |
cs6 | 0xC0 | 192 |
cs7 | 0xE0 | 224 |
در جدول زیر مقادیر پیشنهادی بر ToS و CoS آمده است.
Cos | ToS | |
3 | cs3 | Signalling |
5 | ef | Audio |
4 | af41 | Video |
3 | af41 | Text |
sip.conf :
در sip برای تنظیم QoS در asterisk چهار پارامتر هم برای ToS و هم برای CoS وجود دارد که در زیر نشان داده شده است.
tos_sip=cs3 ; Sets TOS for SIP packets. tos_audio=ef ; Sets TOS for RTP audio packets. tos_video=af41 ; Sets TOS for RTP video packets. tos_text=af41 ; Sets TOS for RTP text packets. cos_sip=3 ; Sets 802.1p priority for SIP packets. cos_audio=5 ; Sets 802.1p priority for RTP audio packets. cos_video=4 ; Sets 802.1p priority for RTP video packets. cos_text=3 ; Sets 802.1p priority for RTP text packets.
iax.conf :
در استریسک برای تنظیم CoS و ToS در iax.conf از آنجایی که کانکشن IAX صدا، تصویر و سیگنالینگ را از یک سوکت UDP رد میکند در نتیجه فقط یک گزینه برای هر کدام وجود دارد.
tos=ef cos=5
پایان