Управління інтенсивністю вхідного і вихідного трафіка
1 Функції управлінняінтенсивністю
З метою забезпечення функцій якості обслуговування весь трафік, що надходить до мережі постачальника послуг, має проходити суворий контроль на межі мережі на предмет відповідності його інтенсивності параметрам, що обумовлені у трафік-контракті (SLA) та які підтримуються мережею (рис. 1). Цей набір параметрів іноді називається профілем потоку, а управління інтенсивністю, що приводить потік у відповідність до його профілю – профілюванням трафіка.
Рисунок 1 – Схема управління доступом
Відповідно до наведеної схеми організації управління доступом (рис. 1) потік даних, який виділено класифікатором із вхідного потоку трафіка на підставі певної ділянки заголовка пакета, направляється на вхід вимірювача. Вимірювач порівнює часові характеристики потоку з тими, що заявлено в трафік-контракті, використовуючи, наприклад, алгоритм «кошика маркерів». Надалі ця інформація подається на входи маркувальника і фільтра/формувача.
Маркувальник встановлює значення, наприклад, поля DSCP пакета, зараховуючи його до певного агрегатора поведінки (Behavior Aggregate, BA) – класу обслуговування. Значення DSCP залежить як від результатів класифікації, так і від стану вимірювача. Наприклад, пакети, параметри яких не відповідають профілеві потоку, маркуватимуться значенням DSCP, що дає менший пріоритет в обслуговуванні.
Надалі промарковані пакети надходять на вхід фільтра/формувача, який власне і реалізує функції управління інтенсивністю трафіка. Управління інтенсивністю трафіка можна досягнути за рахунок застосування двох функцій: функції обмеження трафіка (traffic policing) і функції вирівнювання трафіка (traffic shaping,TS). Незважаючи на однакове призначення, ці функції відрізняються способом обробки трафіка в момент порушення параметрів профілю (рис. 2). У табл. 1 наведена порівняльна характеристика функції обмеження і функції вирівнювання трафіка.
а) traffic shaping
б) traffic policing
Рисунок 2 – Приклад управління інтенсивністю трафіка
Профілювання трафіка на основі правил політики (policing) у випадку порушення параметрів профілю (наприклад, перевищення тривалості пульсації або середньої швидкості) відкидає пакет або маркує його зі зниженням пріоритету. Відкидання деяких пакетів знижує інтенсивність потоку і приводить його параметри у відповідність до тих, що зазначені у профілі. Маркування пакетів без відкидання потрібне для того, щоб пакети все-таки були обслуговані цим вузлом (або наступними за потоком), але зі зниженою якістю.
Функція вирівнювання трафіка (shaping) призначена для надання трафіку, який вже пройшов профілювання, потрібної «форми» у часі і реалізується шляхом буферизації пакетів. В основному за допомогою цієї функції прагнуть згладити пульсації трафіка, і тим самим, зменшити черги на вузлах мережі, які оброблятимуть трафік далі за потоком. Вирівнювання доцільне використовувати для відновлення часових співвідношень трафіка аплікацій, що працюють з рівномірними потоками, наприклад, мовних аплікацій.
трафік інтенсивність управління
Таблиця 1 – Порівняльна характеристика функції обмеження і функції вирівнювання трафіка
Функція обмеження трафіку | Функція вирівнювання трафіка | |
Характе-ристика | Обмежник інтенсивності методом відкидання при перевищенні заданої швидкості | Обмежник- вирівнювач інтенсивності методом затримки (буферизації пакетів) і подальшого пересилання з узгодженою інтенсивністю при перевищенні заданої швидкості |
Призначення | Обмеження трафіка до швидкості контракту з метою захисту мережі від можливого перевантаження. Обмеження трафіка може допомогти й у випадку запобігання DOS атакам | 1. На границі двох мереж доцільно на виході першої реалізувати вирівнювання, щоб уникнути втрат на вході другої мережі під час виконання функції обмеження трафіка.2. У випадку, якщо десь далі в мережі можливе переповнення вхідних черг, а QoS там неможлива.Обмеження швидкості доступу до контрактних значень |
Марку-ванняпакетів | Підтримується, може змінити маркування пакета | Не підтримується |
Область застосування | Зазвичай на вході першого мережного пристрою (маршрутизатора, комутатора). У загальному випадку може виконуватися як на вхідних, так і на вихідних портах. Найчастіше на вхідних, тому що в цьому випадку пакети, що відкидаються, не доходять до процесу маршрутизації, й у такий спосіб заощаджуються ресурси | Завжди на вихідному інтерфейсі. Зазвичай реалізується на виході маршрутизатора, що граничить з іншою мережею |
Приклад | механізм Committed Access Rate (CAR), Class-Based Policing | GTS, Class-Based Shaping, DTS, FRTS |
2 Алгоритм «кошика маркерів»
Для перевірки відповідності вхідного трафіку заданому профілю і механізм обмеження трафіку, і механізм вирівнювання трафіку вимагають вимірювання параметрів потоку. При цьому основними параметрами, якими оперують у процесі вимірювання (дозування) трафіка, є такі:
- Т – період усереднення швидкості;
- CIR (Committed Information Rate) біт/с – середня або узгоджена швидкість, яку трафік не має перевищувати;
- Bc, байт – обсяг пульсації, що відповідає середній швидкості CIR і періоду Т,
(узгоджений або стандартний розмір сплеску);- Вe, байт – припустиме перевищення обсягу пульсації (розширений розмір сплеску).
Існує два основних алгоритми вимірювання трафіка – алгоритм «кошика маркерів» (token bucket) і алгоритм «дірявого відра» (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 < R, то вони виходять із сервера зі швидкістю r+ b/t, у протилежному випадку інтерфейс обмежує цю швидкість до величини R. Період часу t відповідає пульсації трафіка. Ця ситуація спостерігається тоді, коли протягом деякого часу пакети не надходили до сервера, так що «кошик» цілком заповнився маркерами (тобто часу, більшого ніж b/r). Якщо після цього до входу сервера надійде велика послідовність пакетів, які йдуть один за одним, то ці пакети передаватимуться на вихід зі швидкістю вихідного інтерфейса R також один за одним, без інтервалів. Максимальний час такої пульсації складає b/(R-r) секунд, після чого обов'язково наступить пауза, яка необхідна для наповнення спустілого «кошика». Обсяг пульсації складає Rb/(R-r) байт. З наведеного співвідношення видно, що алгоритм «кошика маркерів» починає погано працювати, якщо середня швидкість r обирається близькою до пропускної здатності вихідного інтерфейса. У цьому випадку пульсація може продовжуватися дуже довго, що знецінює алгоритм.