2.4.2. Комутація пакетів

Принципи комутації пакетів

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

Коефіцієнт пульсації трафіка окремого користувача мережі, дорівнює відношенню середньої інтенсивності обміну даними до максимально можливого, може складати 1:50 чи 1:100. Як що для описаної сесії організувати комутацію каналу між комп'ютером користувача і сервером, то велику частину часу канал буде простоювати. У той же час комутаційні можливості мережі будуть використовуватися — частина тайм-слотів чи частотних смуг комутаторів буде зайнята і недоступна іншим користувачам мережі.

При комутації пакетів всі передані користувачем мережі повідомлення розбиваються у вихідному вузлі на порівняно невеликі частини, які називаються пакетами. Нагадаємо, що повідомленням називається логічно завершена порція даних — запит на передачу файлу, відповідь на цей запит, що містить весь файл, і т.п. Повідомлення можуть мати довільну довжину, від декількох байт до багатьох мегабайт. Навпроти, пакети звичайно теж можуть мати перемінну довжину, але у вузьких межах, наприклад від 46 до 1500 байт. Кожен пакет забезпечується заголовком, у якому вказується адресна інформація, необхідна для доставки пакета вузлу призначення, а також номер пакета, що буде використовуватися вузлом призначення для зборки повідомлення (мал. 2.29). Пакети транспортуються в мережі як незалежні інформаційні блоки. Комутатори мережі приймають пакети від кінцевих вузлів і на підставі адресної інформації передають їх один одному, а  на при кінці — вузлу призначення.

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

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

Більш висока ефективність мереж з комутацією пакетів у порівнянні з мережами з комутацією каналів (при рівній пропускній здатності каналів зв'язки) була доведена в 60-і роки як експериментально, так і за допомогою імітаційного моделювання. Тут доречна аналогія з мультипрограмними операційними системами. Кожна окрема програма в такій системі виконується довше, ніж в одно програмній системі, коли програмі виділяється весь процесорний час, поки вона не завершить своє виконання. Однак загальне число програм, виконуваних за одиницю часу, у мультипрограмній системі більше, ніж в одно програмній.

 
Мал.2.30 Згладжування пульсацій трафіка в мережах з комутацією пакетів

Віртуальні канали в мережах з комутацією пакетів

Описаний вище режим передачі пакетів між двома кінцевими вузлами мережі припускає незалежну маршрутизацію кожного пакета. Такий режим роботи мережі називається дейтаграмним, і при його використанні комутатор може змінити маршрут якого-небудь пакета в залежності від стану мережі — працездатності каналів і інших комутаторів, довжини черг пакетів у сусідніх комутаторах і т.п.

Існує й інший режим роботи мережі — передача пакетів по віртуальному каналу (virtual circuit чи virtual channel). В цьому випадку перед тим, як почати передачу даних між двома кінцевими вузлами, повинний бути установлений віртуальний канал, що являє собою єдиний маршрут, що з'єднує ці кінцеві вузли. Віртуальний канал може бути динамічним чи постійним. Динамічний віртуальний канал встановлюється при передачі в мережу спеціального пакета - запиту на встановлення з'єднання. Цей пакет проходить через комутатори і "прокладає" віртуальний канал. Це означає, що комутатори запам'ятовують маршрут для даного з'єднання і при надходженні наступних пакетів даного з'єднання відправляють їх завжди по прокладеному маршруту. Постійні віртуальні канали створюються адміністраторами мережі шляхом ручного настроювання комутаторів.

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

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

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

Пропускна здатність мереж з комутацією пакетів

Однією з відмінностей методу комутації пакетів від методу комутації каналів є невизначеність пропускної здатності з'єднання між двома абонентами. У методі комутації каналів після утворення складеного каналу пропускна здатність мережі при передачі даних між кінцевими вузлами відома — це пропускна здатність каналу. Дані після затримки, зв'язаної з встановленням каналу, починають передаватися на максимальній для каналу швидкості (мал. 2.31, а). Час передачі повідомлення в мережі з комутацією каналів Тк.к. дорівнює сумі затримки поширення сигналу по лінії зв'язку Тз.р. і затримки передачі повідомлення Тз.п.. Затримка поширення сигналу залежить від швидкості поширення електромагнітних хвиль у конкретному фізичному середовищі, що коливається від 0,6 до 0,9 швидкості світла у вакуумі. Час передачі повідомлення дорівнює V/C, де V — обсяг повідомлення в бітах, а С — пропускна здатність каналу в бітах за секунду.

У мережі з комутацією пакетів спостерігається принципово інша картина.

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

По-друге, додатковий час витрачається в кожному комутаторі. Тут затримки складаються з часу буферизації пакета tб.п. (комутатор не може почати передачу пакета, не прийнявши його цілком у свій буфер) і часу комутації tк. Час буферизації дорівнює часу прийому пакета з бітовою швидкістю протоколу. Час комутації складається з часу чекання пакета в черзі і часі переміщення пакета у вихідний порт. Якщо час переміщення пакета фіксований і звичайно невеликий (від декількох мікросекунд до декількох десятків мікросекунд), то час очікування пакета в черзі коливається в дуже широких межах і заздалегідь невідомий, тому що залежить від поточної завантаження мережі пакетами.

Проведемо грубу оцінку затримки в передачі даних у мережах з комутацією пакетів у порівнянні з мережами з комутацією каналів на найпростішому прикладі. Нехай тестове повідомлення, яке потрібно передати в обох видах мереж, складає 200 Кбайт. Відправник знаходиться від одержувача на відстані 5000 км. Пропускна здатність ліній зв'язку складає 2 Мбіт/с. Час передачі даних по мережі з комутацією каналів складається з часу поширення сигналу, що для відстані 5000 км можна оцінити приблизно в 25 мс, і часу передачі повідомлення, що при пропускній здатності 2 Мбіт/с і довжині повідомлення 200 Кбайт дорівнює приблизно 800 мс, тобто всього передача даних займе 825 мс.

Оцінимо додатковий час, що буде потрібен для передачі цього повідомлення по мережі з комутацією пакетів. Будемо вважати, що шлях від відправника до одержувача пролягає через 10 комутаторів. Вихідне повідомлення розбивається на пакети в 1 Кбайт, всього 200 пакетів. Спочатку оцінимо затримку, що виникає у вихідному вузлі. Припустимо, що частка службової інформації, розміщеної в заголовках пакетів, стосовно загального обсягу повідомлення складає 10 %. Отже, додаткова затримка, зв'язана з передачею заголовків пакетів, складає 10% від часу передачі цілого повідомлення, тобто 80 мс. Якщо прийняти інтервал між відправленням пакетів рівним 1 мс, тоді додаткові втрати за рахунок інтервалів складуть 200 мс. Разом, у вихідному вузлі через пакетування повідомлення при передачі виникла додаткова затримка в 280 мс.

Кожний з 10 комутаторів вносить затримку комутації, що може мати великий розкид, від часток до тисяч мілісекунд. У даному прикладі приймемо, що на комутацію в середньому витрачається 20 мс. Крім того, при проходженні повідомлень через комутатор виникає затримка буферизації пакета. Ця затримка при величині пакета 1 Кбайт і пропускної здатності лінії 2 Мбіт/с дорівнює 4 мс. Загальна затримка, внесена 10 комутаторами, складе приблизно 240 мс. У результаті додаткова затримка, створена мережею з комутацією пакетів, склала 520 мс. З огляду на, що вся передача даних у мережі з комутацією каналів зайняла 825 мс, цю додаткову затримку можна вважати істотною.

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

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

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

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


Попередня Перша Наступна