آموزش شبکه: Quality of Service یا همان QoS چیست؟
Quality of Service – QoS یا کیفیت خدمات سرویس به هر تکنولوژی که نیاز به مدیریت ترافیک دادهها را دارد اشاره میکند و معیار هایی که در آن بررسی میشود Packet loss ، Latency و Jitter میباشند که هر کدام از این موارد را در ادامه به طور دقیق تری بررسی خواهیم کرد.
Traffic shaping چیست؟
Traffic shaping یکی از روشهای مدیریت پهنای باند میباشد که در شبکههای رایانهای استفاده میشود. شکل دهی به ترافیک عبوری یا همان Traffic shaping باعث میشود پهنای باند به صورت بهینهتری مصرف شود و پهنای باند قابل استفاده افزایش پیدا کند. Traffic shaping به این صورت میباشد که برخی از بستههای ارسالی را با تاخیر ارسال میکند. عملا با پالیسیها و قوانینی که از سمت ادمین تعیین شده یک سری از بستهها را مارک میشوند و در مورد این بستهها روش متفاوتی برای برخورد در نظر گرفته خواهد شد.
روشهای معمول اعمال Traffic shaping
شایع ترین روش برای تفکیک بستهها در Traffic shaping تفکیک مبتنی بر Application است. برای مثال میتوان از این روش حتی برای کاهش پنهای باند متعلق به یک application خاص نیز استفاده کرد!
یکی از استفادههایی که میتوان از Traffic shaping کرد در ترافیکهای voipمیباشد. ترافیکهای voip از این بابت که تاخیر در صدا بسیار آزار دهنده است ترافیکهای بسیار مهمی هستند و بدین منظور نباید تا جای ممکن تاخیر داشته باشند، لذا با استفاده از مارک کردن ترافیک voip در Traffic shaping میتوانیم در زمانهایی که پهنای باند به شدت در حال استفاده میباشد مشخص کنیم که این ترافیک اولویت اول را دارد و بقیه ترافیکها را برای عبور این ترافیک، به تاخیر بیاندازد.
روش دیگری که برای Traffic shaping میتوان استفاده نمود تفکیک ترافیک بر اساس مسیر است! بر این مبنا که ارسال کننده بسته کدام یک از node های شبکه است و به کدامین node قرار است بسته ارسال شود.
روشهای دیگری هم برای انجام این کار وجود دارد که میتوان برای انجام Traffic shaping از آنها استفاده کرد.
چرا از Traffic shaping استفاده کنیم؟
اگر ترافیک دریافتی و پروسس بستهها به شدت افزایش یابد و آن node شبکه توانایی هندل کردن بسته ها را نداشته باشد، آن node از دسترس خارج خواهد شد و کل شبکه دچار اخلال میشود! به همین علت توصیه میشود که از Traffic shaping که یکی از موارد QOS یا همان کیفیت خدمات میباشد استفاده نمایید.
نحوی عملکرد در Traffic shaping
میتوانید نحوی عملکرد Traffic shaping را در شکلهای زیر به خوبی مشاهده نمایید:
در شبکههای سازمانی برای Applicationهای حساس مثلا Voice یا Video که تاخیر در آنها بسیار آزار دهنده میباشد نیاز است که برای عبور این ترافیکها که حساس تر و مهم تر هستند اولویتهایی قائل شود و در واقع این اولویت بندی همان اجرای کیفیت خدمات یا QoS میباشد. QoS باعث میشود که از کاهش کیفیت ناشی از ، از بین رفتن برخی از بستهها یا تاخیر آنها جلوگیری شود!
سازمانها میتوانند با استفاده از ابزار و تاکتیکهای خاصی مثل شکل دادن به ترافیکها (traffic shaping)، جابه جایی بافر یا … به QoS دست پیدا کنند. البته QoS تنها برای استفاده داخل سازمانی نیست و برخی از سازمانها که “ارائه دهنده هر نوع خدمات شبکه” هستند، یک سری توافقنامه سطح سرویس یا همان SLA در اختیار مشتریان خود قرار میدهند و این توافقنامه بر اساس QoSای است که برای سرویس خود اجرا نمودهاند.
SLA
این توافقنامه سطح سرویس Service Level Agreement یا همان SLA به این صورت میباشد که به مشتری وعده داده میشود، کیفیت خدمات شما طبق این پارامترها به میزان مشخص شده خواهد بود و از این موارد کمتر نخواهد شد. البته در این توافقنامه مشخص میشود که در صورتی کیفیت خدمات به مقدار لازم نبود به عنوان جبران خسارتهای وارد شده یا تاخیرهای به وجود آمده، سازمان ارائه دهنده آن سرویس چه مواردی را به عنوان جبران این مشکل باید متحمل شود! در حقیقت با وجود این توافقنامه سطح عملکرد سرویس تضمین خواهد شد.
پارامتر های QOS
Packet loss، Jitter و Latency جزو مواردی هستند که معیار سنجش QOS یا همان Quality of Service میباشند و برای بررسی این که یک شبکه از کیفیت سرویس خوبی برخوردار است یا خیر از سنجش شبکه با این موارد نیز استفاده میکنند که زیر مفهموم هر کدام را بررسی میکنیم:
Packet loss
در مواقعی که بسته دچار مشکل میشود و به مقصد مورد نظر ارسال نمیگردد یا در واقع زمانی که بسته ها به هر دلیلی قبل از رسیدن به مقصد drop میشوند. ممکن است زمانی که بسته drop میشود، اطلاعات درخواستی مجدد ارسال شوند (در صورتی که بسته Real-Time Protocol یا RTP باشد ، قابل اطمینان) که البته در این حالت هم کیفیت خدمات به علت تاخیر زیاد غیرقابل قبول خواهد بود.
Jitter
به عنوان یک تغییر در تاخیر بسته ها است. در ارسال بسته ها در یک شبکه برای عدم تداخل بسته ها در مبدا، بسته ها به صورت یک جریان پیوسته با تاخیر تعیین شده ای در حال مسیر یابی میباشند. در صورتی که این جریان منظم با تاخیر های تعیین شده نباشد و تاخیر ها در این جریان تغییر پیدا کنند Jitter رخ داده است.
Latency
ممکن است زمان زیادی برای رسیدن هر بسته به مقصد طول بکشد زیرا گاهی بسته ها در صف های طولانی نگه داشته میشوند. در برخی از موارد مانند خدمات voip یا بازی های آنلاین این تاخیر بیش از حد میتواند این برنامه ها را عملا غیر استفاده کند.
با بررسی هر کدام از این موارد در داخل یک شبکه میتوان به میزان کیفیت سرویس آن شبکه پی برد و آن را اندازه گیری کرد یا در صورت نیاز با انجام پیگیری های لازم این مشکلات را برطرف نمود.
پیاده سازی QOS
سه مدل برای اجرای QOS وجود دارد:
- Best effort
- integrated services
- Differentiated services
Best effort
Best effort یک مدل QOS است که همه بسته ها اولویت یکسان دارند و هیچ تضمینی در تحویل بسته ها به مقصد وجود ندارد. در مواردی best effort اعمال میشود که شبکه ها برای QOS پیکربندی خاصی انجام نداده اند و یا برای زمانی میباشد که زیرساخت ما QOS را پشتیبانی نمیکند. (پروتکل IP یک پروتکل Best effort است)
Integrated services
Integrated services یا همان IntServ خدمات یکپارچه میباشد. IntServ یک مدل QOS است که یک قسمت از پهنای باند را برای مسیر خاصی در نظر میگیرد. در واقع برای هر برنامه یک پهنای باند مشخص در نظر گرفته میشود تا اطمینان حاصل شود که منابع شبکه قابل پاسخگویی به نیاز بسته های آن برنامه است و مشکلی از نظر منابع برای ارسال بسته های این برنامه خاص وجود ندارد. البته پیاده سازی این مدل از QOS نیازمند این است که روتر ها و مسیریاب های شبکه قادر به پشتیبانی RSVP باشد!
Differentiated services
Differentiated services یا همان DiffServ یک مدل دیگر از QOS است که عناصر شبکه را مانند روتر ها و سویچ ها برای سرویس دهی به چند کلاس طبقه بندی میکند و این طبقه بندی بر اساس اولویت ترافیک ها خواهد بود. برای مثال ترافیک صوتی اولویت بالاتری به بقیه ترافیک ها دارد بسته های این ترافیک یک کد به عنوان DSCP خواهند داشت و بر اساس این کد در مسیر یاب ها اولویت آن ها بالاتر خواهد بود.
DSCP Value | Decimal Value | Meaning | Drop Probability | Equivalent IP Precedence Value |
101 110 | 46 | High Priority | N/A | 101 – Critical |
Expedited Forwarding (EF) | ||||
000 000 | 0 | Best Effort | N/A | 000 – Routine |
001 010 | 10 | AF11 | Low | 001 – Priority |
001 100 | 12 | AF12 | Medium | 001 – Priority |
001 110 | 14 | AF13 | High | 001 – Priority |
010 010 | 18 | AF21 | Low | 010 – Immediate |
010 100 | 20 | AF22 | Medium | 010 – Immediate |
010 110 | 22 | AF23 | High | 010 – Immediate |
011 010 | 26 | AF31 | Low | 011 – Flash |
011 100 | 28 | AF32 | Medium | 011 – Flash |
011 110 | 30 | AF33 | High | 011 – Flash |
100 010 | 34 | AF41 | Low | 100 – Flash Override |
100 100 | 36 | AF42 | Medium | 100 – Flash Override |
100 110 | 38 | AF43 | High | 100 – Flash Override |
001 000 | 8 | CS1 | 1 | |
010 000 | 16 | CS2 | 2 | |
011 000 | 24 | CS3 | 3 | |
100 000 | 32 | CS4 | 4 | |
101 000 | 40 | CS5 | 5 | |
110 000 | 48 | CS6 | 6 | |
111 000 | 56 | CS7 | 7 | |
000 000 | 0 | Default | ||
101 110 | 46 | EF |
باید دقت داشته باشید که معماری شبکه بر چگونگی اجرای QOS تاثیر بسزایی دارد و تنها برخی از مکانیزم های QOS میتواند کیفیت ترافیک را در شرایط خاص مدیریت نمایند.
Traffic policing چیست؟
یکی دیگر از روشهای کنترل ترافیک در شبکه Traffic policing میباشد. این نوع کنترل ترافیک به این صورت میباشد که اگر ترافیک از حد تعیین شده بیشتر گردد بقیه بستههای ارسالی (بستههایی که بعد از آن ارسال میشوند) drop میشوند! در صورتی که در مدل دیگر کنترل ترافیک یا همان Traffic shaping به این صورت میباشد که بستهها با تاخیر جواب داده خواهند شد که از این نظر Traffic policing ضعیف تر از Traffic shaping میباشد اما در هر صورت یکی از روشهای مهم برای در دسترس نگه داشتن سرور در مواردی است که ترافیک زیادی در حال وارد شدن به سمت سرور میباشد.
چگونگی برخود بستههای UDP و TCP در زمان اعمال Traffic policing
در صورتی که بستههای drop شده بستههای UDP باشند فرستنده متوجه عدم ارسال آنها نخواهد شد اما در صورتی که فرستنده بستههای خود را با استفاده از پروتکل TCP ارسال کند به علت قابلیت اطمینانی که در پروتکل TCP میباشد (بستههای TCP هنگامی که به مقصد میرسند یک تاییدیه یا acknowledge برای مبدا ارسال میکنند که باعث میشود این پروتکل قابلیت اطمینان داشته باشد) با drop شدن بستهها به مبدا اطلاع رسانی میشود و مجدد مبدا بسته را ارسال میکند در صورتی که در این ارسال کاهش ترافیک اتفاق افتاده باشد و بسته مجدد drop نشود بسته به مقصد خواهد رسید و acknowledge برای دریافت بسته به سمت مبدا ارسال خواهد شد.
البته بهتر است در مواردی که میتوانیم به جای این مورد از Traffic shaping استفاده کنید چون بستهها را drop نمیکند و تنها آنها را با تاخیر ارسال مینماید اما در مواردی برای تعمین کیفیت خدمات QOS باید از این مورد استفاده نمود تا از در دسترس ماندن سرور در شرایطی که ترافیک زیادی به سمت آن ارسال شده است اطمینان داشته باشیم.
RTP چیست
RTP مخفف Real-time Transport Protocol به معنای پروتکل انتقال آنی ( بهنگام ) می باشد که پروتکل شبکه ای است که برای ارسال فایل های صوتی و تصویری بر روی بستر شبکه های IP است. RTP به طور مکرر در ارتباطات و سیستم های سرگرمی که شامل جریان رسانه ها (streaming media) از قبیل telephony، برنامه های کاربردی video teleconference، سرویس های television و ویژگی ها تحت وب push-to-talk می باشد استفاده می شود.
RTP یکی از اصول فنی Voice over IP VOIP است و در این مفهوم اغلب برای ترکیب با پروتکل سیگنال از قبیل پروتکل شروع جلسه Session Initiation protocol SIP که ارتباطات را بر روی بستر شبکه فراهم می کند ، به کار میرود.
RTP توسط گروه انتقال صدا – تصویر موسسه Internet Engineering Task Force IETF در سال 1996 توسعه داده شد. این پروتکل برای انتقال انتها به انتها (end-to-end) و آنی ( بهنگام ) جریان رسانه ها طراحی شده است.
و تسهیلاتی به منظور جبران کردن حرکت نا منظم و اتفاقی (jitter ) و تشخیص خارج از توالی ارسال شدن داده ها را فراهم می کند که در انتقال در شبکه های آی پی مرسوم است.
یکی از قابلیت های خوب این پروتکل این است که از طریق IP multicast می توان داده را به مقصد های متعدد ارسال نمود. دیگر پروتکل های انتقال که به صورت خاص برای بخش های مولتی مدیا طراحی شده اند پروتکل های SCTP و DCCP هستند که البته از سال 2010 تا کنون دیگر به صورت گستره استفاده نمی شوند.
RTP به طور خاص 2 زیرپروتکل را توصیف می کند که عبارتند از :
- RTP
- RTCP