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

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

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

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

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

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

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

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

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

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

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

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

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