Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арсенюк (2008) - Комп'ютерні мережі. Частина 1.doc
Скачиваний:
35
Добавлен:
19.11.2019
Размер:
6.63 Mб
Скачать

3 Протоколи та архітектури

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

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

Організація взаємодії між пристроями у мережі є складною задачею, для розв’язання якої використовується універсальний прийом декомпозиції  розбиття складної задачі на простіші задачі-модулі. При цьому слід чітко визначити функції кожного модуля, які вирішують окрему задачу та інтерфейсів між ними. В результаті досягається логічне спрощення задачі та з’являється можливість модифікації окремих модулів без зміни іншої частини системи [1, 3, 4, 12, 16].

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

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

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

Рисунок 3.1  Модель взаємодії двох вузів

ережі.

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

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

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

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

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

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

3.2 Модель взаємодії відкритих систем ISO/OSI

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

На початку 80-х років ряд міжнародних організацій зі стандартизації ISО, ITU-T та деякі інші розробили модель, яка зіграла значну роль у розвитку мереж. Ця модель називається моделлю взаємодії відкритих систем (Open System Interconnection, OSI) або моделлю OSI. Модель OSI визначає різні рівні взаємодії систем, дає їм стандартні імена і вказує, які функції повинен виконувати кожний рівень. Ця модель була розроблена на основі великого досвіду, отриманого при створенні КМ, в основному глобальних, у 70-ті роки. Повний опис цієї моделі займає більше за 1000 сторінок тексту [1  4, 8, 12].

У

Рисунок 3.2  Модель взаємодії відкритих систем ISO/OSI

моделі OSI (рис. 3.2) засоби взаємодії діляться на сім рівнів: прикладний, представницький, сеансовий, транспортний, мережевий, канальний та фізичний. Кожний рівень має справу з одним певним аспектом взаємодії мережевих пристроїв [1].

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

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

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

Після формування повідомлення рівень застосувань надсилає його вниз по стеку до представницького рівню. Протокол представницького рівня на основі інформації, отриманої із заголовка прикладного рівня, виконує потрібні дії і додає до повідомлення власну службову інформацію  заголовок представницького рівня, в якому містяться вказівки протоколу представницького рівня вузлу призначення. Це повідомлення передається вниз сеансовому рівню, який додає свій заголовок і т. д. (Деякі реалізації протоколів додають службову інформацію не лише на початку повідомлення а й в кінці, у вигляді кінцевика) Нарешті, повідомлення досягає нижнього, фізичного рівня, який і передає його по лініях зв’язку до комп’ютера призначення. До цього моменту повідомлення “накопичує” заголовки усіх рівнів (рис. 3.3). Такий процес називається інкапсуляцією.

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

Рисунок 3.3  Вкладеність повідомлень різних рівнів

Поряд з терміном повідомлення (message) використовують й інші терміни для позначення одиниць даних в процедурах обміну. У стандартах ISO для позначення одиниць даних, з якими мають справу, протоколи різних рівнів, використовується загальна назва протокольний блок даних,(Protocol Data Unit, PDU). Для позначення блоків даних певних рівнів використовуються спеціальні назви:

  • сегмент (segment)  PDU транспортного рівня (ТСР-сегмент),

  • дейтаграма (datagram)  PDU транспортного рівня (UDP-дейтаграма),

  • пакет (packet)  PDU мережевого рівня,

  • кадр (frame)  PDU канального рівня.

Отже, ТСР-сегмент або UDP-дейтаграма інкапсулюється у пакет, а пакет  у кадр.

В моделі OSI розрізнюються два основних типи протоколів:

  • із встановленням з'єднання (connection-oriented) тут перед обміном даними відправник і одержувач повинні спочатку встановити з’єднання і, можливо, вибрати деякі параметри протоколу, що будуть використовуватись під час обміну даними. Після завершення діалогу вузли повинні розірвати це з’єднання. Як приклад взаємодії, заснований на встановленні з’єднання можна навести телефон [1].

  • без попереднього встановлення з’єднання (connectionless) або дейтаграмні протоколи  тут відправник просто надсилає повідомлення, коли воно готове. Як приклад зв’язку без попереднього встановлення з’єднання можна навести опускання листа у поштову скриню.

Під час взаємодії комп’ютерів використовуються протоколи обох типів.