Технологія ATM та алгоритм RED
Адаптивний контроль заснований на використанні вільної смуги пропуску. Звичайно він реалізується для ABR (сервіс класу C) та UBR (сервіс класу D), які не мають жорстких вимог до якості обслуговування. Адаптивний контроль здійснюється за допомогою зворотнього зв’язку між джерелом та комутатором ATM, який може бути явним (для передачі інформації про перевантаження використовуються спеціальні чарунки, як в ABR) або прихованим (поведінка джерела трафіка змінюється у відповідності до змін поведінки мережі).
Алгоритм RED в мережах ATM використовує прихований зворотній зв’язок для повідомлення про перевантаження шляхом вибіркового знищення чарунок користувача. Замість того, щоб чекати перевантаження і переповнення буферу, наслідком чого стане знищення всіх даних, що надходять, RED знищує частину чарунок. Їх кількість і частота знищення визначаються параметром, що має назву ймовірність знищення. Цей параметр розраховується кожен раз у відповідності до поточного стану ресурсів ATM-комутатора, тобто фактично визначається довжиною черги на обслуговування трафіка в ATM-мережі.
Середня довжина черги (QueueLength) визначається так:
QueueLength=(1-1/2n)*PreviousQueueLength+CurrentQueueLength*1/2n.
Тут PreviousQueueLength – довжина черги на попередньому підрахунку; CurrentQueueLength – поточна довжина черги; n – ваговий коефіцієнт (n>=1), який визначає адміністратор мережі з наступних міркувань.
Якщо n має мале значення, середня довжина черги QueueLength фактично визначається поточною довжиною черги CurrentQueueLength. Тоді алгоритм RED чітко і швидко реагує на будь-які зміни поточної довжини черги, що дозволяє ATM-комутатору практично миттєво позбавитись від зайвих чарунок при найменшій загрозі перевантаження. Проте при дуже малих значеннях n RED почне необгрунтовано скидувати чарунки навіть при невеликих часових збільшеннях черг, які не є небезпечними і можуть бути оброблені без втрат.
Якщо коефіцієнт n має велике значення, середня довжина черги QueueLength стає функцією від попередньої довжини чеги PreviousQueueLength. Алгоритм RED досить повільно реагує на зміни довжини черги, що дозволяє ATM-комутаторам неначе згладжувати “піки” та ”провалля” трафіка без знищення чарунок. Але при дуже великих значеннях n RED може стати настільки повільним, що буде продовжувати знищення чарунок, навіть коли довжина черги стане менше за мінімальний поріг спрацювання цього алгоритму.
Роботу алгоритму RED можна описати так:Якщо середня довжина черги QueueLength менше або дорівнює мінімально допустимому значенню порога спрацювання MinThreshold алгоритму RED (QueueLength
Ймовірність знищення пакетів підраховується так:
Pa=Pb/(1-Count*Pb)
Тут: Pa – ймовірність знищення, Pb =Pmax * (QueueLength - MinThreshold)/( MaxThreshold - MinThreshold) * PacketSize/MaxPacketSize, де
Pmax – максимальна ймовірність знищення чарунок; Count – кількість чарунок, що є в черзі на момент останнього знищення; PacketSize – довжина пакету протоколу, інкапсульованого в ATM; MaxPacketSize – максимальна довжина пакету, інкапсульованого в ATM.
Якщо середня довжина черги QueueLength більше або рівна максимальнодопустимому значенню MaxThreshold (QueueLength >=MaxThreshold), то чарунка, що надійшла на вхід комутатора обов’язково буде знищена.
Як видно з формул, ймовірність знищення чарунок залежить від довжини інкапсульованих пакетів. Відповідно, великі пакети (наприклад, при перекачуванні файлів по FTP) будуть знищуватись частіше, ніж маленькі (наприклад, ті, що передаються по Telnet).