Управлінняінтенсивністю вхідного і вихідного трафіка
1 Функціїуправління інтенсивністю
Зметою забезпечення функцій якості обслуговування весь трафік, що надходить домережі постачальника послуг, має проходити суворий контроль на межі мережі напредмет відповідності його інтенсивності параметрам, що обумовлені утрафік-контракті (SLA) та які підтримуються мережею (рис. 1). Цей набірпараметрів іноді називається профілем потоку, а управління інтенсивністю, щоприводить потік у відповідність до його профілю – профілюванням трафіка.
/>
Рисунок 1 – Схемауправління доступом
Відповіднодо наведеної схеми організації управління доступом (рис. 1) потік даних, якийвиділено класифікатором із вхідного потоку трафіка на підставі певної ділянкизаголовка пакета, направляється на вхід вимірювача. Вимірювач порівнює часовіхарактеристики потоку з тими, що заявлено в трафік-контракті, використовуючи,наприклад, алгоритм «кошика маркерів». Надалі ця інформація подається на входимаркувальника і фільтра/формувача.
Маркувальниквстановлює значення, наприклад, поля DSCP пакета, зараховуючи його до певногоагрегатора поведінки (Behavior Aggregate, BA) – класу обслуговування. Значення DSCPзалежить як від результатів класифікації, так і від стану вимірювача.Наприклад, пакети, параметри яких не відповідають профілеві потоку,маркуватимуться значенням DSCP, що дає менший пріоритет в обслуговуванні.
Надаліпромарковані пакети надходять на вхід фільтра/формувача, який власне і реалізуєфункції управління інтенсивністю трафіка. Управління інтенсивністю трафікаможна досягнути за рахунок застосування двох функцій: функції обмеження трафіка(traffic policing) і функції вирівнювання трафіка (traffic shaping,TS).Незважаючи на однакове призначення, ці функції відрізняються способом обробкитрафіка в момент порушення параметрів профілю (рис. 2). У табл. 1 наведенапорівняльна характеристика функції обмеження і функції вирівнювання трафіка.
/>
а) trafficshaping
/>
б) trafficpolicing
Рисунок 2 –Приклад управління інтенсивністю трафіка
Профілюваннятрафіка на основі правил політики (policing) у випадку порушення параметрівпрофілю (наприклад, перевищення тривалості пульсації або середньої швидкості)відкидає пакет або маркує його зі зниженням пріоритету. Відкидання деякихпакетів знижує інтенсивність потоку і приводить його параметри у відповідністьдо тих, що зазначені у профілі. Маркування пакетів без відкидання потрібне длятого, щоб пакети все-таки були обслуговані цим вузлом (або наступними запотоком), але зі зниженою якістю.
Функціявирівнювання трафіка (shaping) призначена для надання трафіку, який вжепройшов профілювання, потрібної «форми» у часі і реалізується шляхомбуферизації пакетів. В основному за допомогою цієї функції прагнуть згладитипульсації трафіка, і тим самим, зменшити черги на вузлах мережі, якіоброблятимуть трафік далі за потоком. Вирівнювання доцільне використовувати длявідновлення часових співвідношень трафіка аплікацій, що працюють з рівномірнимипотоками, наприклад, мовних аплікацій.
трафікінтенсивність управління
Таблиця 1 –Порівняльна характеристика функції обмеження і функції вирівнювання трафіка Функція обмеження трафіку Функція вирівнювання трафіка Характе-ристика Обмежник інтенсивності методом відкидання при перевищенні заданої швидкості Обмежник- вирівнювач інтенсивності методом затримки (буферизації пакетів) і подальшого пересилання з узгодженою інтенсивністю при перевищенні заданої швидкості Призначення Обмеження трафіка до швидкості контракту з метою захисту мережі від можливого перевантаження. Обмеження трафіка може допомогти й у випадку запобігання DOS атакам
1. На границі двох мереж доцільно на виході першої реалізувати вирівнювання, щоб уникнути втрат на вході другої мережі під час виконання функції обмеження трафіка.
2. У випадку, якщо десь далі в мережі можливе переповнення вхідних черг, а QoS там неможлива.
Обмеження швидкості доступу до контрактних значень
Марку-вання
пакетів Підтримується, може змінити маркування пакета Не підтримується Область застосування Зазвичай на вході першого мережного пристрою (маршрутизатора, комутатора). У загальному випадку може виконуватися як на вхідних, так і на вихідних портах. Найчастіше на вхідних, тому що в цьому випадку пакети, що відкидаються, не доходять до процесу маршрутизації, й у такий спосіб заощаджуються ресурси Завжди на вихідному інтерфейсі. Зазвичай реалізується на виході маршрутизатора, що граничить з іншою мережею Приклад механізм Committed Access Rate (CAR), Class-Based Policing GTS, Class-Based Shaping, DTS, FRTS
2 Алгоритм«кошика маркерів»
Дляперевірки відповідності вхідного трафіку заданому профілю і механізм обмеження трафіку,і механізм вирівнювання трафіку вимагають вимірювання параметрів потоку. Прицьому основними параметрами, якими оперують у процесі вимірювання (дозування)трафіка, є такі:
q Т – період усереднення швидкості;
q CIR (Committed Information Rate) біт/с – середня або узгодженашвидкість, яку трафік не має перевищувати;
q Bc, байт – обсяг пульсації, що відповідає середній швидкості CIR іперіоду Т, /> (узгодженийабо стандартний розмір сплеску);
q Вe, байт – припустиме перевищення обсягу пульсації (розширенийрозмір сплеску).
Існуєдва основних алгоритми вимірювання трафіка – алгоритм «кошика маркерів» (tokenbucket) і алгоритм «дірявого відра» (leaky bucket). Перший переважновикористовується для контролю параметрів трафіка в IP-мережах, а другий – умережах ATM і Frame Relay. Розглянемо їх у загальному вигляді.
Алгоритм«кошика маркерів» дозволяє оцінити й обмежити середню швидкість івеличину пульсації потоку пакетів. Цей алгоритм базується на порівнянні потокупакетів з деяким еталонним потоком маркерів, що заповнюють умовний кошик –«кошик маркерів» (рис. 3).
Підмаркером у цьому випадку розуміється якийсь абстрактний об'єкт, носій «порції» інформації.Генератор маркерів періодично з постійним інтервалом w направляє черговиймаркер у «кошик» з обмеженим обсягом b байт. Усі маркери мають однаковий обсягm байт, а генерація маркерів відбувається так, що «кошик» заповнюється зішвидкістю r біт/с, де r = 8m/w. Ця швидкість r і є максимальною середньоюшвидкістю для трафіка пакетів, а обсяг «кошика» відповідає максимальномурозмірові пульсації потоку пакетів, тобто з використанням уведених вищетермінів r=CIR, b=Bc. Якщо сумарний обсяг маркерів у «кошику» дорівнює b, тонадходження маркерів тимчасово припиняється. Фактично «кошик маркерів» єлічильником, що збільшується на m кожні w секунд.
Призастосуванні алгоритму «кошика маркерів» профіль трафіка визначається середньоюшвидкістю r і обсягом пульсації b. Порівняння еталонного і реального потоківвиконує сервер – абстрактний пристрій, що має два входи. Вхід 1 пов'язаний зчергою пакетів, а вхід 2 – з «кошиком маркерів». Сервер також має вихід, наякий він передає пакети з вхідної черги пакетів. Вхід 1 сервера моделює вхіднийінтерфейс маршрутизатора, а вихід – вихідний інтерфейс. Під час передаванняпакета з «кошика» вилучаються маркери загальним обсягом у М байт (з точністю дорозміру одного маркера, тобто до m байт).
/>
Рисунок 3 –Алгоритм «кошика маркерів»
Якщож «кошик» заповнений недостатньо, то пакет обробляється одним із двох описанихнижче нестандартних способів, вибір якого залежить від мети застосуванняалгоритму.
Першийваріант, алгоритм «кошика маркерів» застосовується для згладжування трафіка, уцьому випадку пакет просто затримується в черзі на деякий додатковий час,очікуючи надходження в «кошик» потрібної кількості маркерів. Отже, навіть якщов результаті пульсації в систему приходить велика група пакетів, з черги пакетивиходять більш рівномірно, у темпі, що задається генератором маркерів.
Другийваріант, алгоритм «кошика маркерів» використовується для обмеження трафіка,тоді пакет відкидається як такий, що не відповідає профілю. Більш м'якимрішенням може бути повторне маркування пакета зі зниженням його статусу приподальшому обслуговуванні. Наприклад, пакет можна позначити особливою позначкою(відкидати за необхідності), у результаті чого під час перевантаженьмаршрутизатори відкидатимуть цей пакет у першу чергу. При диференційованомуобслуговуванні пакет можна перевести в інший клас, який обслуговується з нижчоюякістю.
Сутністьалгоритму «кошика маркерів» полягає в тому, що він дозволяє передачу данихпачками, але обмежує тривалість пачки. Нехай пропускна здатність вихідногоінтерфейсу, що моделюється виходом сервера, дорівнює R. Це означає, що серверне може передавати дані на вихід зі швидкістю, що перевищує R біт/с. Можнапоказати, що на будь-якому інтервалі часу t середня швидкість потоку, якийвиходить із сервера, дорівнює мінімальній серед двох величин: R і r+ b/t. Привеликих значеннях t швидкість вихідного потоку наближається до r – це ісвідчить про те, що алгоритм забезпечує бажану середню швидкість. У той же часпротягом невеликого часу t пакети можуть виходити із сервера зі швидкістю, якаперевищує r. Якщо r+ b/t
3 Алгоритм «дірявого відра»
Дляконтролю угоди про параметри якості обслуговування всі комутатори мережі FrameRelay підтримують алгоритм «драного відра» (leaky bucket). Цей алгоритм, як іалгоритм «кошика маркерів», дозволяє контролювати середню швидкість і пульсаціютрафіка, однак робить це у інший спосіб.
Алгоритмомпередбачається, що трафік контролюється кожні Т секунд. На кожному з цихінтервалів часу трафік повинний мати середню швидкість не більш обумовленоїшвидкості CIR. Швидкість контролюється, базуючись на підрахунку обсягу даних,що надійшли за період Т. Якщо цей обсяг менше або дорівнює Bc, то фактичнашвидкість трафіка була менше Вс/Т, тобто менше CIR. Перевищення обсягомпульсації обумовленого значенняВс на величину Be вважається «м'яким»порушенням – пакети-порушники мають бути позначені DE=1, але не відкинуті. Приперевищенні обсягом пульсації величини Вc + Вe кадри відкидаються.
Алгоритм(рис. 4) використовує лічильник байт С, які надійшли від користувача. Кожні Тсекунд цей лічильник зменшується на величину Вс (або ж скидається в 0, якщозначення лічильника менше, ніж Вс). Це найчастіше ілюструється «відром», зякого дискретно, кожні Т секунд, витікає обсяг, рівний мінімальному з чисел Всабо С (рис. 4). Усі кадри, дані яких не збільшили значення лічильника вищепорогу Вс, пропускаються в мережу зі значенням позначки DE=0. Кадри, дані якихпризвели до значення лічильника, більшого за Вс, але меншого за Bc+Be, такожпередаються в мережу, але з позначкою DE=1. І, нарешті, кадри, що призвели дозначення лічильника, більшого за Bc+Be, відкидаються комутатором.
/>
Рисунок 4 –Алгоритм «дірявого відра»
Користувачможе домовитися про підтримку не всіх параметрів якості обслуговування дляданого віртуального каналу, а тільки деяких. Наприклад, можна використовуватитільки параметри CIR і Bc. Цей варіант дає якісніше обслуговування, тому щокадри ніколи не відкидаються комутатором відразу. Комутатор тільки позначаєкадри, що перевищують поріг Bc за час Т, позначкою DE=1. Якщо мережа не зазнаєперевантажень, то кадри такого каналу завжди надходять до кінцевого вузла,навіть якщо користувач постійно порушує договір з мережею.
Популярнимє ще один різновид замовлення на обслуговування, при якому обумовлюється тількипоріг Be, а швидкість CIR=0. Усі кадри такого каналу відразу ж позначаютьсяпозначкою DE=1, але відправляються в мережу, а при перевищенні порога Beвідкидаються. Контрольний інтервал часу Т в цьому випадку обчислюється як Be/R, де R – швидкість доступу до каналу.
Алгоритмдопускає різні модифікації, наприклад, використання більшої кількості порогівобсягу пульсації, використання замість обсягу пульсації значення максимальноїшвидкості і т.п.
Одназ модифікацій алгоритму «дірявого відра» за назвою Generic Cell Rate Algorithm(GCRA) застосовується в мережах ATM для контролю декількох параметрів: піковоїшвидкості, середньої швидкості, варіації інтервалу надходження чарунок і обсягупульсації.
Засвоєю суттю алгоритм «дірявого відра» – це не що інше, як однолінійна системамасового обслуговування з постійним часом обслуговування. Цей механізмперетворює нерівномірний потік пакетів від процесів користувача в рівномірнийпотік пакетів у мережі з постійною швидкістю, що не залежить віднерівномірності вхідного потоку.
Яквидно з опису, алгоритм «дірявого відра» «суворіше» контролює пульсаціїтрафіка, ніж алгоритм «кошика маркерів». Алгоритм «кошика маркерів» дозволяєтрафіку в періоди зниженої активності накопичувати обсяг пульсації, а потімвикористовувати ці накопичення в періоди сплесків трафіка. В алгоритмі«дірявого відра» такої можливості немає, тому що лічильник С скидається в нульпримусово наприкінці кожного періоду Т незалежно від того, скільки байтівнадійшло від користувача в мережу протягом цього періоду. Ще одне розходженнядвох алгоритмів полягає в тому, що при переповненні «маркерного кошика»алгоритм ігнорує маркери, але ніколи не відкидає пакети. Алгоритм «дірявоговідра», навпаки, при переповненні викидає самі пакети.