Шляхи-дороги через мережу

У мережах з комутацією пакетів сьогодні використовуються два класи механізмів просування пакетів — дейтаграмна передача та віртуальні канали. І той, і інший реалізуються протоколами канального та мережевого рівня моделі OSI. Прикладами протоколів із застосуванням дейтаграмного механізму просування можуть бути Ethernet, IP і IPX. За допомогою віртуальних каналів дані передаються в мережах X.25, frame relay та ATM. Цей урок присвячений базовим принципам техніки віртуальних каналів, її переваг та недоліків у порівнянні з дейтаграмним способом.

ЩЕ РАЗ ПРО ДЕЙТАГРАМНИЙ СПОСІБ ПЕРЕДАЧІ

мережу

Така особливість дейтаграмного механізму, як невизначеність шляхів трафіку через мережу, також у деяких випадках обертається недоліком: наприклад, якщо для пакетів будь-якого сеансу між двома кінцевими вузлами мережі необхідно забезпечити задану якість обслуговування (Quality of Service, QoS). Сучасні методи підтримки QoS більш ефективні, коли трафік, що потребує гарантованого обслуговування, завжди проходить через одні й ті ж проміжні вузли.

СЛІД У СЛІД

Якщо метою є прокладка для всіх пакетів потоку єдиного шляху через мережу, то необхідною (але не завжди єдиною) ознакою такого потоку є наявність для всіх пакетів загальних точок входу в мережу і виходу з неї. Саме передачі таких потоків у мережі створюються віртуальні канали.

мережі

Мережа тільки забезпечує можливість передачі трафіку вздовж віртуального каналу, рішення про те, які саме потоки будуть передаватися цими каналами, приймають самі кінцеві вузли. Вузол може використовувати один і той же віртуальний канал для передачі всіх потоків, коли вони мають спільні з даним віртуальним каналом кінцеві точки, хоча це і необов'язково. Наприклад, для потоку реального часу може бути задіяний один віртуальний канал між точками А та В, а для трафіку електронної пошти інший. В останньому випадку вимоги до якості обслуговування у різних віртуальних каналів будуть відрізнятися, і задовольнити їх потенційно буде простіше, ніж під час передачі трафіку з різними вимогами до параметрів QoS по одному віртуальному каналу.

У різних технологіях, заснованих на техніці віртуальних каналів, різною мірою здійснюється облік вимог потоку до параметрів QoS. Так, у технології X.25 вони взагалі не враховуються, отже віртуальний канал характеризується лише своїми маршрутними параметрами, т. е. послідовністю вузлів, якими він проходить. Технологія frame relay дозволяє встановити вимоги до пропускної здатності віртуального каналу, а технологія АТМ додатково до цього формулює такі вимоги QoS, як час затримки та відсоток втрат. Однак питання підтримки якості обслуговування в мережах з віртуальними каналами виходять за рамки даного уроку, тому ми зосередимося виключно на базовому механізмі, який враховує лише вимоги до маршруту проходження трафіку.

ВСТАНОВЛЕННЯ ТА ВИКОРИСТАННЯ ВІРТУАЛЬНИХ КАНАЛІВ

Віртуальні канали бувають двох типів - віртуальний канал, що комутується (Switched Virtual Circuit, SVC) і постійний віртуальний канал (Permanent Virtual Circuit, PVC). При створенні віртуального каналу, що комутується, комутатори мережі налаштовуються на передачу пакетів автоматично, за запитом кінцевого (іноді і проміжного) вузла мережі. Організація постійного віртуального каналу здійснюється заздалегідь, причому комутатори налаштовуються вручну адміністратором мережі, можливо, із залученням централізованої системи управління мережею тадеякого службового протоколу (поки найчастіше власного протоколу виробника обладнання).

Розглянемо спочатку процес створення віртуального каналу, що комутується, тобто SVC.

мережу

Встановлення віртуального каналу, що комутується, виконується службовим протоколом, який оперує з пакетами спеціального типу і формату. У мережах АТМ такий протокол носить назву Q.2931 (у мережах frame relay - Q.933, а в мережах X.25 він вважається одним із режимів роботи основного протоколу X.25 і тому не отримав спеціальної назви).

Вузол-ініціатор повинен вибрати, якому комутатору мережі краще передати запит на встановлення каналу. Такий вибір може відбуватися на основі таблиці маршрутизації вузла-відправника, але якщо вузол з'єднаний з мережею через єдиний порт, як у наведеному прикладі, ця таблиця йому, природно, не потрібно.

Присвоєний віртуальному каналу номер 102 має локальне значення порту комп'ютера, через який встановлюється з'єднання. Так як через порт вже проходить віртуальний канал з номером 101, то програмне забезпечення протоколу Q.2931, що працює на кінцевому вузлі, просто вибрало перший вільний (не використовується в даний момент на даному порту) номер з дозволеного діапазону. Такий підхід гарантує унікальну ідентифікацію віртуальних каналів у межах кожного порту.

Визначивши вихідний порт, комутатор R1 генерує нове значення номера віртуального каналу, а саме 106. Це пов'язано з тим, що на ділянці мережі від 3 порту комутатора R1 до порту 1 комутатора R2 номер 102 вже використовується іншим віртуальним каналом, що проходить через зазначені порти. Першим вільним номером виявився 106, в межах локальної ділянки мережі він однозначно ідентифікує віртуальний, що встановлюється.канал. Саме ця обставина мала на увазі, коли раніше зазначалося, що ідентифікатори віртуальних каналів мають локальний характер. Після зміни значення ідентифікатора пакет Call Setup передається через вихідний порт 3 комутатор R2. (Особливість АТМ, яка полягає в тому, що пакет Call Setup при передачі розбивається на кілька осередків, кожна з яких забезпечується одним і тим самим значенням ідентифікатора, в даному випадку, при розгляді процедури встановлення віртуального каналу не суттєва.)

Кожен запис таблиці комутації складається з чотирьох основних полів: номери вхідного порту, вхідної мітки (ідентифікатора віртуального каналу в пакетах, що надходять на вхідний порт), номери вихідного порту і вихідної мітки (ідентифікатора віртуального каналу в пакетах, що передаються через вихідний порт). Запис у таблиці комутації «1-102-3-106» означає, що всі пакети, що надходять на порт 1 (тут точніше — комірки АТМ) з ідентифікатором віртуального каналу 102 будуть передаватися на порт 3, а в полі ідентифікатора віртуального каналу буде поміщено нове значення - 106.

шляхи-дороги

Віртуальні канали можуть бути односпрямованими та двоспрямованими. У прикладі організується двонаправлений канал, тому комутатор створює ще одну запис в таблиці комутації — для просування пакетів у зворотному напрямку, від вузла N2, A2 до вузла N1, A1. Цей запис дзеркальний по відношенню до першої, так що пакет, що йде у зворотному напрямку, отримає при виході з порту 1 початкове значення мітки, а саме 102. В результаті вузол N1, A1 правильно розпізнає належність пакету, що прийшов, до конкретного віртуального каналу, незважаючи на постійну зміну номерів у процесі подорожі пакету через мережу. Для однонаправлених каналів запис створюється тількидля одного напряму.

Постійні віртуальні канали, тобто PVC, на відміну від SVC, не можуть автоматично створюватись за ініціативою користувача мережі. Натомість адміністратор мережі заздалегідь складає таблиці комутації вручну. Зазвичай для полегшення роботи він використовує ту чи іншу систему керування мережею передачі даних про те, через які вузли повинен проходити віртуальний канал. Взаємодіючи з комутаторами мережі, ця система автоматично вибирає конкретні значення міток і створює записи таблиць комутації. Застосування в системах управління нестандартних протоколів конфігурування породжує одну характерну проблему - зазвичай автоматизувати прокладку PVC можна тільки в межах частини мережі, побудованої на базі обладнання одного виробника, а "зшивати" частини PVC в єдине ціле доводиться вручну. Вочевидь, що з створенні PVC таблиці маршрутизації стають непотрібними, оскільки шлях вибирається адміністратором. Для того, щоб можна було працювати з постійним прокладеним віртуальним каналом, адміністратор повинен ввести в кінцеві вузли, для яких канал створювався, номер цього PVC — свій для кожного кінця каналу.

ВІД ЗАГАЛЬНОГО ДО ПРИВАТНОГО

Неважко помітити, що віртуальний канал — окремий випадок логічного з'єднання між вузлами мережі. І для кращого розуміння техніки віртуальних каналів корисно розглянути загальні властивості тих протоколів, де використовуються механізми логічних з'єднань (а таких протоколів чимало, причому працюють на різних рівнях стека протоколів, прикладами можуть служити TCP, IPSec, Microsoft SMB, Novell SPX).

Логічне з'єднання (яке також називають сеансом) встановлюється між двома (або більше) вузлами мережі в результаті проведення процедури переговорів. Воно існує доти, доки одна зі сторінне ініціює процедури його розриву. Після встановлення з'єднання процедура обробки визначається не для окремого пакета, а для безлічі пакетів, що передаються між вузлами в рамках даного з'єднання. Процес обслуговування пакета, що знову надійшов, безпосередньо залежить від передісторії: наприклад, при втраті декількох попередніх пакетів швидкість відправлення наступних може бути автоматично знижена.

Параметри процедури обробки можуть бути постійними протягом всього з'єднання (наприклад, максимальний розмір пакета), так і змінними, що динамічно відображають поточний стан з'єднання (наприклад, згадані вище номери пакетів або поточний розмір вікна). Коли відправник і одержувач організують новий сеанс, вони передусім «домовляються» про початкові значення параметрів процедури обміну і лише після цього починають власне передачу даних.

ЗВОРОТНІЙ БІК МЕДАЛІ

На відміну від дейтаграмних, протоколи з підтримкою віртуальних каналів, що комутуються, тобто SVC, передбачають попереднє встановлення з'єднання, що вносить додаткову затримку перед передачею даних. Ця затримка особливо помітна під час передачі невеликого обсягу даних, коли тривалість встановлення віртуального каналу може бути порівнянна з часом передачі. Крім того, дейтаграмний метод швидше адаптується до змін у мережі. При відмові комутатора або ділянки маршруту віртуального каналу з'єднання розривається, і віртуальний канал потрібно прокладати заново, природно, в обхід ділянки мережі, що відмовила. Однак, порівнюючи ці два принципово різні підходи, слід врахувати, що час, витрачений на встановлення віртуального каналу, компенсується подальшою швидкою передачею всього потоку пакетів, тому для довгострокових потоківрежим SVC досить ефективний.

Застосування режиму постійних віртуальних каналів, тобто PVC, дозволяє уникнути затримки встановлення каналу. Але цей режим має свій недолік — великий обсяг ручної роботи при прокладанні каналів, що призводить до поганої масштабованості мережі. Кількість каналів PVC для організації повної топології за наявності N підключених до мережі кінцевих вузлів дорівнює N(N-1)/2, так що обсяг робіт по конфігуруванню великої мережі на основі PVC зростає як квадратична функція. У разі застосування дейтаграмних протоколів, подібних до IP, складність конфігурування мережі прямо пропорційна N, що говорить про відмінну масштабованість цього класу технологій.

А чи можна взяти від кожного підходу лише добре? Таку спробу зробили розробники технології MPLS, де використовується для просування пакетів техніка шляху комутації міток (Label Switching Path), споріднена з технікою віртуальних каналів. Але це тема для окремої розмови.