Організація взаємодії між пристроями в мережі є складним завданням. Як відомо, для вирішення складних завдань використовується універсальний прийом - декомпозиція, т. Е. Розбиття однієї складної задачі на трохи більш прості задачі-модулів. Процедура декомпозиції включає в себе чітке визначення функцій кожного модуля, що вирішує окрему задачу, і інтерфейсів між ними. В результаті досягається логічне спрощення задачі, а крім того, з'являється можливість модифікації окремих модулів без зміни іншої частини системи.
При декомпозиції часто використовують багаторівневий підхід. Він полягає в наступному. Всі безліч модулів розбивають на рівні. Рівні утворять ієрархію, т. Е. Є вищележачі і нижележащие рівні. Безліч модулів, що складають кожний рівень, сформована таким чином, що для виконання своїх завдань вони звертаються із запитами тільки до модулів безпосередньо примикає нижчого рівня. C іншого боку, результати роботи всіх модулів, що належать деякому рівню, можуть бути передані тільки модулям сусіднього вищого рівня. Така ієрархічна декомпозиція задачі передбачає чітке визначення функції кожного рівня і інтерфейсів між рівнями. Інтерфейс визначає набір функцій, які пролягає нижче рівень надає вищерозміщений. В результаті ієрархічної декомпозиції досягається відносна незалежність рівнів, а значить, і можливість їх легкої заміни.
Засоби мережевої взаємодії, звичайно, теж можуть бути представлені у вигляді ієрархічно організованої безлічі модулів. При цьому модулі нижнього рівня можуть, наприклад, вирішувати всі питання, пов'язані з надійною передачею електричних сигналів між двома сусідніми вузлами. Модулі більш високого рівня організують транспортування повідомлень в межах всієї мережі, користуючись для цього засобами згаданого нище рівня. А на верхньому рівні працюють модулі, що надають користувачам доступ до різних служб - файлової, друку і т. П. Звичайно, це тільки один з безлічі можливих варіантів розподілу загальної задачі організації мережевої взаємодії на приватні підзадачі.

після розрахунку координат області файлу, що містить необхідні дані, виконується фізичний обмін із зовнішнім пристроєм за допомогою драйвера диска.
Багаторівневі представлення засобів мережевої взаємодії має свою специфіку, пов'язану з тим, що в процесі обміну повідомленнями беруть участь дві машини, т. Е. В даному випадку необхідно організувати узгоджену роботу двох "ієрархій". При передачі повідомлень обидва учасники мережевого обміну повинні прийняти безліч угод. Наприклад, вони повинні узгодити рівні і форму електричних сигналів, спосіб визначення довжини повідомлень, домовитися про методи контролю достовірності і т. П. Іншими словами, угоди повинні бути прийняті для всіх рівнів, починаючи від найнижчого - рівня передачі бітів - до найвищого, реалізовує сервіс для користувачів мережі.
На рис. 9.6 показана модель взаємодії двох вузлів. C кожної сторони засобу взаємодії представлені чотирма рівнями. Процедура взаємодії цих двох вузлів може бути описана у вигляді набору правил взаємодії кожної пари відповідних рівнів обох сторін-учасниць. Формалізовані правила, що визначають послідовність і формат повідомлень, якими обмінюються мережеві компоненти, що лежать на одному рівні, але в різних вузлах, називаються протоколом.
Модулі, що реалізують протоколи сусідніх рівнів і що знаходяться в одному вузлі, також взаємодіють один з одним відповідно до чітко встановлених правил і за допомогою стандартизованих форматів повідомлень. Ці правила прийнято називати інтерфейсом. Інтерфейс визначає набір сервісів,

надається даним рівнем сусідньому рівню. По суті, протокол і інтерфейс виражають одне й те саме поняття, але традиційно в мережах за ними закріпили різні області дії: протоколи визначають правила взаємодії модулів одного рівня в різних вузлах, а інтерфейси - модулів сусідніх рівнів в одному вузлі.
Засоби кожного рівня повинні відпрацьовувати, по-перше, свій власний протокол, а по-друге, інтерфейси з сусідніми рівнями.
Щоб ще раз пояснити поняття «протокол» і «інтерфейс», розглянемо приклад взаємодії двох підприємств, пов'язаних між собою діловим співробітництвом (рис. 9.7). Між підприємствами існують домовленості і угоди, наприклад регулярні поставки продукції одного підприємства іншому. У цьому випадку між ними встановлюється порядок взаємодії, який можна вважати «протоколом рівня директорів». Директора посилають свої повідомлення і заявки через своїх секретарів. Порядок взаємодії директора і секретаря відповідає поняттю межуровневого інтерфейсу «директор - секретар».
Вибір способу передачі документів між підприємствами - це рівень компетенції секретарів, вони можуть вирішувати це питання, не повідомляючи про це своїх начальників, так як їх протокол взаємодії пов'язаний тільки з передачею спільнота-

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