наприклад, мережевої карти або концентратора, збій прикладного або системного програмного забезпечення, виникнення помилки в самих переданих даних, втрату частини транслюється інформації або її спотворення. Звідси випливає, що в локальній мережі необхідно забезпечити жорсткий контроль для відстеження всіх цих помилок, і більше того, організувати чітку роботу як апаратних, так і програмних компонентів мережі. Покласти всі ці завдання на один-єдиний протокол практично неможливо. Як бути?
Вихід знайшовся в поділі протоколів на ряд концептуальних рівнів, кожен з яких забезпечує інтерфейс між різними модулями програмного забезпечення, встановленого на працюючих в мережі комп'ютерах. Таким чином, механізм передачі будь-якого пакету інформації через мережу від клієнтської програми, що працює на о/ЩОМ комп'ютері, клієнтської програмі, що працює на іншому комп'ютері, можна умовно представити у вигляді послідовної пересилки цього пакету зверху вниз від якогось протоколу верхнього рівня, що забезпечує взаємодію з користувальницькою додатком, протоколу нижнього рівня, організовує інтерфейс з мережею, його трансляції на комп'ютер-одержувач і зворотної передачі протоколу верхнього рівня вже на віддаленій машині (рис. 2).
Концептуальна модель багаторівневої системи протоколів
Малюнок 2 Концептуальна модель багаторівневої системи протоколів
Згідно такою схемою, кожен з рівнів подібної системи забезпечує власний набір функцій при передачі інформації по локальній мережі.
Наприклад, можна припустити, що протокол верхнього рівня, що здійснює безпосередню взаємодію з клієнтськими програмами, транслює дані протоколу нижчого рівня, «відповідає» за роботу з апаратними пристроями мережі, перетворюючи їх у «зрозумілу» для нього форму. Той, у свою чергу, передає їх протоколу, здійснюючому безпосередньо пересилку інформації на інший комп'ютер. На віддаленому комп'ютері прийом даних здійснює аналогічний протокол «нижнього» рівня і контролює коректність прийнятих даних, тобто визначає, чи слід транслювати їх протоколом, розташованому вище в ієрархічній структурі, або запросити повторну передачу. У цьому випадку взаємодія здійснюється тільки між протоколами нижнього рівня, верхні рівні ієрархії в даному процесі не задіяні. У разі якщо інформація була передана без спотворень, вона транслюється вгору через сусідні рівні протоколів до тих пір, поки не досягне програми-одержувача. При цьому кожен з рівнів не тільки контролює правильність трансляції даних на основі аналізу вмісту пакета інформації, а й визначає подальші дії виходячи з відомостей про його призначення. Наприклад, один з рівнів «відповідає» за вибір пристрою, з якого здійснюється отримання і через яке передаються дані в мережу, інший «вирішує», чи передавати інформацію далі по мережі, або вона призначена саме цього комп'ютера, третій «вибирає» програму, якою адресована прийнята інформація. Подібний ієрархічний підхід дозволяє не тільки розділити функції між різними модулями мережевого програмного забезпечення, що значно полегшує контроль роботи всієї системи в цілому, але і дає можливість виробляти корекцію помилок на тому рівні ієрархії, на якому вони виникли. Кожну з подібних ієрархічних систем, що включають певний набір протоколів різного рівня, прийнято називати стеком протоколів.
Цілком очевидно, що між теорією і практикою, тобто між концептуальною моделлю стека протоколів і його практичною реалізацією існує значна різниця.
На практиці прийнято кілька різних варіантів дроблення стека протоколів на функціональні рівні, кожен з яких виконує своє коло завдань. Ми зупинимося на одному з цих варіантів, що представляється найбільш універсальним. Дана схема включає чотири функціональних рівня, і так само, як і попередня діаграма, описує не конкретний механізм роботи якого-небудь стека протоколів, а загальну модель, яка допоможе краще зрозуміти принцип дії подібних систем (рис. 2.2).
Самий верхній в ієрархічній системі, прикладний рівень стека протоколів забезпечує інтерфейс з програмним забезпеченням, організуючим роботу користувача в мережі. При запуску будь-якої програми, для функціонування якої потрібно діалог з мережею, ця програма викликає відповідний протокол прикладного рівня. Даний протокол передає програмою інформацію з мережі в доступному для обробки форматі, тобто у вигляді системних повідомлень або у вигляді потоку байтів. У точності таким же чином користувальницькі додатки можуть отримувати потоки даних і керуючі повідомлення - як від самої операційної системи, так і від інших запущених на комп'ютері програм. Тобто, узагальнюючи, можна сказати, що протокол прикладного рівня виступає в ролі свого роду посередника між мережею і програмним забезпеченням, перетворюючи трансльовану через мережу інформацію в «зрозумілу» програмою-од...