Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
додатковий матерыал 2.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
223 Кб
Скачать
☆

Багаторівневий підхід. Протокол. Інтерфейс. Стек протоколів

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

При декомпозиції часто використовують багаторівневий підхід. Він полягає в наступному. Всю безліч модулів розбивають на рівні. Рівні утворять ієрархію, тобто є вищележащі і нижчележащі рівні (рис. 3.2). Безліч модулів, що складають кожний рівень, сформована таким чином, що для виконання своїх задач вони звертаються із запитами тільки до модулів безпосередньо примикаючого нищележащего рівня. З іншого боку, результати роботи всіх модулів, що належать деякому рівню, можуть бути передані тільки модулям сусіднього вищележащего рівня. Така ієрархічна декомпозиція задачі передбачає чітке визначення функції кожного рівня і інтерфейсів між рівнями. Інтерфейс визначає набір функцій, які нищележащий рівень надає вищележащему. Внаслідок ієрархічної декомпозиції досягається відносна незалежність рівнів, а значить, і можливість їх легкої заміни.

Рисунок 3.2 – Багаторівневий підхід - створення ієрархії задач

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

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

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

Рисунок 3.3 – Взаємодія двох вузлів

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

Засоби кожного рівня повинні відпрацьовувати, по-перше, свій власний протокол, а по-друге, інтерфейси з сусідніми рівнями.

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

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

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

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

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