Архітектура інтегрованих послуг
АРХІТЕКТУРА ІНТЕГРОВАНИХ ПОСЛУГ
1. Модель IntServ
Архітектура інтегрованих послуг IntServ з'явилася у 1994 році, раніше за DiffServ, у відповідь на необхідність у модифікації інфрастуктури Internet. Метою цієї архітектури є підтримка QoS, у першу чергу для аплікацій реального часу, яка б забезпечувала управління міжкінцевою затримкою пакета, а також управління розподілом смуги між потоками трафіка. Термін «інтегровані послуги» відповідно до специфікації RFC 1633 містить у собі існуючу раніше доставку best effort, а також додає доставку потоків трафіка реального часу з гарантованою затримкою і доставку пакетів з гарантованою швидкістю.
Головна ідея (постулат) моделі IntServ полягає в тому, що ресурсами, у тому числі смугою, можна явно управляти з метою задоволення вимог потоків трафіка. Другий момент (постулат) – забезпечення твердих гарантій щодо якості обслуговування неможливе без резервування ресурсів, де під резервуванням ресурсів розуміється відображення QoS-вимог потоків на стан (конфігурацію) маршрутизаторів.
Основними функціональними блоками моделі IntServ є резервування ресурсів (resource reservation) і управління доступом (admission control). У рамках архітектури IntServ зроблено акцент на процесі сигналізації, за допомогою якого індивідуальні потоки повідомляють про свої вимоги щодо обсягу смуги, який потрібно зарезервувати, і припустимої величини затримки. Як протокол сигналізації в моделі IntServ передбачається використання протоколу резервування ресурсів RSVP (RFC 2205 – 2215).
Процесові резервування передує процес управління доступом, що на підставі аналізу доступних мережних ресурсів приймає рішення про прийняття потоку до обслуговування (якщо ресурсів досить) або відхилення запиту (за нестачі ресурсів). Обов'язковою умовою прийняття запиту до обслуговування є непогіршення якості обслуговування раніше прийнятих запитів. Функція управління доступом покладається на COPS-сервер.
Отже, ключовим поняттям у IntServ є резервування ресурсів. Коли мова йде про резервування смуги для потоку трафіка, то це означає таку конфігурацію механізму обслуговування черг, що при обслуговуванні черги з даним потоком йому надається така смуга, яка запитується. Коли мова йде про забезпечення припустимої величини затримки, то тут все трохи складніше. Наприклад, IOS Cisco забезпечує низьку затримку шляхом резервування місця в черзі. Взагалі в концепції IntServ з (RFC 1633) не обумовлюється спосіб забезпечення резервування ресурсів, залишаючи це питання розробникам обладнання.
Реалізація моделі IntServ згідно з RFC 1633 вимагає наявності в маршрутизаторі таких функціональних блоків (рис. 1 ):
- класифікація (ідентифікація) потоків даних з метою визначення їхньої належності певному класу обслуговування;
- механізм обслуговування черги, а також механізми визначення перевантаження і відкидання пакетів з низьким рівнем пріоритетного обслуговування;
- управління доступом до ресурсів мережі з метою визначення можливості обслуговування запиту з заданим рівнем QoS на підставі аналізу наявності необхідного обсягу ресурсів;
- механізм резервування ресурсів.
Рисунок 1 – Компоненти моделі IntServ, реалізовані в маршрутизаторі
Функції управління доступом, класифікації і планувальника можуть бути об'єднані в блок управління трафіком (traffic control), головна задача якого полягає в створенні різниці щодо якості обслуговування.
Модель IntServ має свої переваги та недоліки. Головною перевагою даної моделі є забезпечення твердих гарантій щодо якості обслуговування: аплікація отримує той обсяг ресурсів, який їй необхідний, не менше і не більше. Крім того, це сприяє ефективному використанню ресурсів мережі. Однак моделі IntServ властиві серйозні недоліки, завдяки яким вона не одержала широкого поширення на практиці. Перший і найголовніший недолік полягає в низькій масштабованості, що пов'язано із обслуговуванням кожного потоку окремо. Нагадаємо, що для кожного окремого потоку необхідно не тільки зарезервувати ресурси, а також підтримувати це резервування, крім того, на кожному маршрутизаторі уздовж шляху доставки необхідно зберігати інформацію про стан потоку.
Другий недолік пов'язаний із утратою якості обслуговування при проходженні через ділянку мережі, у якій не підтримується IntServ. Тут відбувається або передача з якістю best effort, або відображення запиту на класи DiffServ (DSCP) при проходженні через DiffServ-домен.
інтегрований intserv протокол
2. Протокол сигналізації RSVP
2.1 Призначення протоколу RSVP
ReSerVation Protocol (RSVP) – стандартизований протокол, призначений для динамічного настроювання наскрізного QoS у рамках гетерогенної мережі. RSVP дозволяє аплікаціям посилати в мережу сигнали про свої QoS-вимоги для кожного потоку і динамічно резервувати необхідну для них смугу пропускання. Можна дати таке визначення RSVP – це протокол сигналізації, що забезпечує резервування ресурсів і управління ними з метою надання інтегрованих сервісів, призначених для емуляції виділених каналів у IP-мережах.
RSVP працює на рівні протоколу IP і має свій власний тип протоколу – 46, хоча можлива інкапсуляція повідомлень RSVP у датаграми UDP. Для такої інкапсуляції використовуються UDP-порти 1698 і 1699.
Спочатку протокол RSVP розроблявся для мультимедійного трафіка (аудіо- та відео-), орієнтуючись на групове мовлення. Однак RSVP успішно застосовується для резервування ресурсів для односпрямованого трафіка, наприклад, трафіка мережної файлової системи (Network File System, NFS) і управляючого трафіка віртуальних приватних мереж (Virtual Private Network, VPN).
Протокол RSVP сигналізує про запити резервування ресурсів доступним шляхом в мережі, який маршрутизується. При цьому RSVP не виконує власну маршрутизацію, а використовує для цього інші протоколи маршрутизації. Подібна модульність допомагає протоколу RSVP ефективно функціонувати разом з будь-якою службою надання інформації про маршрути. RSVP забезпечує явну передачу повідомлень для управління трафіком, політиками і легко працює в непідтримуваних оточеннях.
2.2 Принципи функціонування протоколу RSVP
Функціонування RSVP пов'язане з виконанням таких задач:
- резервування ресурсів і підтримка резервування;
- звільнення зарезервованих ресурсів;
- сигналізація про помилки.
Резервування ресурсів здійснюється шляхом посилання в мережу RSVP-запитів від імені потоку даних, в яких закладено інформацію про необхідний рівень QoS. RSVP-запити передаються уздовж заздалегідь розрахованого маршруту і на кожному із пройдених вузлів (маршрутизаторів) здійснюється спроба зарезервувати необхідні ресурси. Для цього в кожному з маршрутизаторів мережі необхідна реалізація RSVP-агентів, взаємодія яких з іншими функціональними блоками відображена на рис. 2 (RFC 2205).
Рисунок 2 – Агенти RSVP на маршрутизаторах мережі
Перед тим як зарезервувати ресурси, RSVP-демон (RSVPD) маршрутизатора з'єднується з двома локальними модулями прийняття рішення – модулем управління доступом (admission control) і модулем управління політикою (policy control). Модуль управління доступом визначає, чи має вузол досить вільних ресурсів для забезпечення відповідного рівня QoS. Модуль управління політикою визначає, чи є в користувача адміністраторські права, для того, щоб зробити резервування. Якщо яка-небудь з перевірок не пройшла, RSVP-демон відправляє повідомлення про помилку процесові аплікації, який надіслав запит. Якщо обидві перевірки пройшли нормально, RSVP-демон установлює параметри класифікатора пакетів (packet classifier) і планувальника пакетів (packet scheduler) для надання потрібного рівня QoS. Класифікатор пакетів визначає клас QoS для кожного пакета, а планувальник пакетів управляє передачею пакетів, базуючись на їхньому класі QoS. На рівні планувальника передбачається використання алгоритмів WFQ або СQ і алгоритму WRED.
Під час процесу прийняття рішення модулем управління доступом резервування необхідної смуги пропускання виконується тільки в тому випадку, якщо для запитуваного класу трафіка маються вільні ресурси в достатній кількості. У протилежному випадку запит на доступ відхиляється, але трафік передається з якістю обслуговування, визначеною за замовчуванням для даного класу трафіка. У багатьох випадках, навіть якщо запит на доступ відхилений на одному або декількох маршрутизаторах, модуль усе ще може реалізувати прийнятну якість обслуговування, встановивши резервування на перевантажених маршрутизаторах. Це можливо через те, що інші потоки даних можуть не цілком використовувати замовлену ними смугу пропускання.
Резервування завжди має здійснюватися тим самим одноадресним шляхом (маршрутом) або багатоадресним деревом. У випадку виходу з ладу лінії зв'язку маршрутизатор має сповістити про це RSVP-демона, щоб його RSVP-повідомлення передавалися новим шляхом.
Процес встановлення резервування складається з п'яти окремих кроків.
1. Джерело даних посилає за унікальною або груповою адресою одержувача спеціальне повідомлення PATH, у якому воно вказує параметри свого трафіка – специфікацію потоку даних відправника (Sender_TSpec). Повідомлення PATH передається маршрутизаторами мережі у напрямку від джерела (або джерел) з використанням таблиць маршрутизації, які отримані за допомогою будь-якого протоколу маршрутизації.
2. Кожен RSVP-маршрутизатор перехоплює РАТН-повідомлення, зберігає IP-адресу попередньої точки призначення, записує замість нього свою власну адресу і відправляє оновлене повідомлення далі тим же шляхом, яким передаються дані. Тим самим у мережі утвориться фіксований маршрут передачі повідомлень у рамках сесії RSVP.
3. Після одержання повідомлення РАТН приймач відправляє маршрутизаторові, від якого він одержав це повідомлення, запит резервування ресурсів — повідомлення RESV (reservation request). До повідомлення RESV крім інформації Receiver_TSpec (специфікація потоку даних) включається специфікація запиту (RSpec), в якій указуються необхідні приймачеві параметри якості обслуговування, і специфікація фільтра (FilterSpec), що визначає, до яких пакетів сесії застосовується дане резервування (наприклад, за типом транспортного протоколу і номером порту). Разом RSpec і FilterSpec складають дескриптор потоку, який маршрутизатор використовує для ідентифікації кожного резервування ресурсів (RFC 2205). Фільтр може визначити потік пакетів з будь-яким ступенем деталізації і на підставі будь-якої інформації, у тому числі і прикладному рівні. Запитувані параметри QoS у специфікації RSpec можуть відрізнятися від зазначених у специфікації TSpec.
4. Коли кожен маршрутизатор, який підтримує RSVP, уздовж зворотнього шляху одержує повідомлення RESV, то він визначає прийнятність зазначених у запиті параметрів резервування як було описано вище з використанням процесів управління доступом і управління політикою. Якщо запит не може бути задоволений (через недолік ресурсів або помилки авторизації), маршрутизатор повертає повідомлення про помилку джерелу. Якщо запит приймається, то маршрутизатор посилає повідомлення RESV уверх наступному маршрутизаторові (у напрямку джерела). Прийом запиту резервування маршрутизатором означає також передачу параметрів QoS на відпрацьовування у відповідні блоки маршрутизатора. Конкретний спосіб відпрацьовування параметрів QoS маршрутизатором у протоколі RSVP не описується. Якщо технологія канального рівня, що обслуговує вихідний інтерфейс, не підтримує управління якістю обслуговування, то відпрацьовування виконується механізмом управління чергами, таким як WFQ або CQ. Якщо ж ця технологія підтримує QoS, то параметри специфікації RSpec відображаються на параметри QoS даної технології, наприклад, ATM.
5. Коли останній маршрутизатор одержує повідомлення RESV і приймає запит, то він посилає повідомлення-підтвердження назад вузлу-одержувачу (останній маршрутизатор розташований найближче до джерела, а для групових потоків — це точка об’єднання резервування). При виконанні групового резервування враховується той факт, що в точках розгалуження дерева доставки декілька потоків резервування зливаються в один. Якщо для всіх потоків запитується однакова пропускна здатність, то вона потрібна і для загального потоку. Якщо запитуються різні величини пропускної здатності, то для загального потоку обирається максимальна.
Після встановлення резервування джерело починає відправляти дані, що обслуговуються на всьому шляху до приймача (приймачів) із заданою якістю обслуговування.
Механізм RSVP-резервування схематично показаний на рис. 3.
Рисунок 3 – Механізм RSVP-резервування
Отже, RSVP-компоненти виконують такі функції.
• RSVP-джерело (RSVP sender) ініціює відправлення трафіка в RSVP-сеансі. RSVP- джерела передають параметри свого трафіка – специфікацію потоку даних відправника Sender_TSpec – проміжним маршрутизаторам і RSVP-одержувачеві. Специфікація Sender_TSpec є частиною об'єкта RSVP SENDER_TSPEC повідомлення PATH (див. нижче). Під час передавання RSVP-мережею зміст специфікації Sender_TSpec не змінюється;
• RSVP-одержувач (RSVP-receiver) одержує трафік у RSVP-сеансі. У процесі резервування ресурсів у відповідь на повідомлення PATH формує повідомлення, до якого включено об'єкт RSVP FLOWSPEC (див. нижче), що містить інформацію Receiver_TSpec і RSpec. Під час передавання RSVP-мережею зміст даних специфікацій може змінюватися в результаті злиття декількох RSVP-запитів або з інших причин.
Специфікація потоку даних Sender_TSpec або Receiver_TSpec містить у собі таку інформацію про трафік (RFC 2210): середню швидкість передачі даних, розмір «кошика маркерів» (узгоджений розмір сплеску), пікову швидкість (максимальний розмір сплеску), мінімальний і максимальний розміри пакетів. Специфікація RSpec містить вимоги щодо виділених ресурсів у термінах смуги пропускання і затримки.
Підтримка резервування. RSVP є протоколом гнучких станів (soft-state). Це означає, що потрібне періодичне оновлення резервування в мережі шляхом посилання додаткових повідомлень, чим власне протоколи даного типу відрізняються від hard-state протоколів, в яких запит посилається один раз і виконується доти, поки не буде явно скасований.
Для відновлення резервування усі компоненти, що беруть участь у резервуванні (RSVP-джерело, RSVP-одержувач, RSVP-сумісні маршрутизатори), періодично через кожні 30 с відсилають своїм сусідам повідомлення PATH (у прямому напрямку) і RESV (у зворотному напрямку). Якщо маршрутизатор відправляє чотири повідомлення PATH підряд і не одержує протягом цього часу жодного повідомлення RESV, резервування вважається втраченим і одержувачеві відправляється повідомлення про розрив з'єднання.
Скасування резервування. Резервування можна скасувати прямо або непрямо. Пряме скасування виконується з ініціативи RSVP-джерела або RSVP-одержувача за допомогою відповідних повідомлень протоколу RSVP (PATHTEAR уздовж шляху, яким передавалося повідомлення PATH, і RESVTEAR уздовж шляху, яким передавалося повідомлення RESV). Повідомлення RESVTEAR відправляється у відповідь на отримане PATHTEAR, що сигналізує про те, що RSVP-одержувач скасував резервування. Cisco IOS Software очікує від RSVP-джерела відсилання RSVP-одержувачеві підтвердження про одержання RESVTEAR – повідомлення RESVTEARCONF.
Непряме скасування відбувається за тайм-аутом: стан резервування має термін життя, і RSVP-компоненти мають періодично підтверджувати резервування. Якщо ж повідомлення-підтвердження перестають надходити, то резервування скасовується після закінчення його терміну життя.
Сигналізація помилок. Природно, в процесі поширення мережею або в процесі обробки RSVP-повідомлень іноді виникають помилки. Зазвичай це відбувається через порушення цілісності повідомлення. Для повідомлення RSVP-компонентів про виникнення помилок використовуються повідомлення PATHERR і RESVERR.
2.3 Повідомлення і пакети RSVP
У табл. 1 наведено типи повідомлень, які використовуються в RSVP. Документом RFC 2205 визначено сім типів повідомлень: PATH, RESV, PATHERR, RESVERR, PATHTEAR, RESVTEAR, RESVCONF. Повідомлення HELLO введене в RFC 3209 як розширення RSVP і призначене для підтримки встановленого резервування. Повідомлення RESVTEARCONF не описане в документах RFC, а є запатентованою компанією Cisco розробкою.
Таблиця 1 – Типи RSVP повідомлень
Повідомлення | Функція | Напрямок | Адреса призначення |
PATH | Використовується для ініціалізації встановлення і підтримки резервування | Униз (до одержувача) | Вузол-одержувач |
RESV | Інформує про успішне проходження повідомлення PATH; резервує ресурси | Уверх (до джерела) | Наступний вузол |
PATHERR | Посилається в напрямку джерела у випадку виявлення помилки в PATH (наприклад, коли розірване з'єднання або пакет PATH пошкоджений) | Уверх | Наступний вузол |
RESVERR | Посилається в напрямку до кінцевого вузла, якщо в процесі обробки повідомлення RESV виявлена помилка | Униз | Наступний вузол |
PATHTEAR | Посилається до кінцевого вузла для розриву існуючого резервування | Униз | Вузол-одержувач |
RESVTEAR | Посилається в напрямку до вузла-джерела для розриву існуючого резервування | Уверх | Вузол- джерело |
RESVCONF | Посилається у відповідь на повідомлення RESV або RESVTEAR для запиту підтвердження одержання повідомлення | Униз | Вузол-одержувач |
RESVTEARCONF (Cisco) | Посилається в підтвердження на RESVTEAR | Униз | Вузол-одержувач |
HELLO (RFC 3209) | Посилається сусіднім RSVP- вузлам з якими існує пряме з'єднання з метою підтримки встановленого з'єднання | Уверх / униз | Наступний вузол |
Подобные работы: