МОДЕЛЬ OSI
Модель OSI
На початку 80-х років ряд міжнародних організацій зі стандартизації – ISO, ITU-T і деякі інші – розробили модель, що відіграла значну роль у розвитку мереж. Ця модель називається моделлю взаємодії відкритих систем (Open System Interconnection, OSI) або моделлю OSI. Модель OSI визначає різноманітні рівні взаємодії систем, дає їм стандартні імена і вказує, які функції повинен виконувати кожний рівень. Модель OSI була розроблена на підставі значного досвіду створення комп'ютерних мереж, в основному глобальних, у 70-ті роки. Повний опис цієї моделі займає більше 1000 сторінок тексту.
У моделі OSI засоби взаємодії діляться на сім рівнів: прикладний, представницький, сеансовий, транспортний, мережевий, канальний і фізичний. Кожний рівень має справу з одним визначеним аспектом взаємодії мережевих пристроїв.
Модель OSI описує тільки системні засоби взаємодії, реалізовані операційною системою, системними утилітами, системними апаратними засобами. Модель не включає засоби взаємодії додатків кінцевих користувачів. Свої власні протоколи взаємодії додатки реалізують, звертаючись до системних засобів. Тому необхідно розрізняти рівень взаємодії додатків і прикладний рівень.
Нехай додаток звертається з запитом до прикладного рівня, наприклад до файлової служби. На підставі цього запиту програмне забезпечення прикладного рівня формує повідомлення стандартного формату. Звичайне повідомлення складається з заголовка і поля даних. Заголовок містить службову інформацію, яку необхідно передати через мережу прикладному рівню машини-адресата, щоб повідомити йому, яку роботу треба виконати. Але для того щоб доставити цю інформацію за призначенням, треба буде розв'язати ще багато завдань, відповідальність за які несуть нижчі рівні.
Після формування повідомлення прикладний рівень спрямовує його вниз по стеку представницькому рівню. Протокол представницького рівня на підставі інформації, отриманої із заголовка прикладного рівня, виконує необхідні дії і додає до повідомлення власну службову інформацію – заголовок представницького рівня, у якому містяться вказівки для протоколу представницького рівня машини-адресата. Отримане в результаті повідомлення передається вниз сеансовому рівню, що у свою чергу добавляє свій заголовок, і т.д. (Деякі реалізації протоколів розміщують службову інформацію не тільки на початку повідомлення у вигляді заголовка, але і наприкінці, у вигляді так званого «кінцевика».) Нарешті, повідомлення досягає нижнього, фізичного рівня, що власне і передає його лініями зв'язку машині-адресату. До цього моменту повідомлення «обростає» заголовками всіх рівнів.
Коли повідомлення надходить мережею до машини-адресата, воно приймається її фізичним рівнем і послідовно переміщається нагору з рівня на рівень. Кожний рівень аналізує й опрацьовує заголовок свого рівня, виконуючи відповідні даному рівню функції, а потім видаляє цей заголовок і передає повідомлення рівню, що лежить вище.
Поряд із терміном повідомлення (message) існують і інші терміни, які використовуються мережевими спеціалістами для позначення одиниць даних у процедурах обміну. У стандартах ISO для позначення одиниць даних, із якими мають справу протоколи різних рівнів, використовується загальна назва протокольний блок даних (Protocol Data Unit, PDU). Для позначення блоків даних визначених рівнів часто використовуються спеціальні назви: кадр (frame), пакет (packet), датаграма (datagram), сегмент (segment).
У моделі OSI розрізняють два основних типи протоколів. У протоколах зі встановленням з'єднання (connection-oriented) перед обміном даними відправник і одержувач повинні спочатку встановити з'єднання і, можливо, вибрати деякі параметри протоколу, що вони будуть використовувати при обміні даними. Після завершення діалогу вони повинні розірвати це з'єднання. Телефон – це приклад взаємодії, заснованої на встановленні з'єднання.
Друга група протоколів – протоколи без попереднього встановлення з'єднання (connectionless). Такі протоколи називаються також датаграмними протоколами. Відправник просто передає повідомлення, коли воно готове. Опускання листа в поштову скриньку – це приклад зв'язку без попереднього встановлення з'єднання. При взаємодії комп'ютерів використовуються протоколи обох типів.
Рівні моделі OSI
Фізичний рівень
Фізичний рівень (Physical layer) має справу з передачею бітів фізичними каналами зв'язку, такими, наприклад, як коаксіальний кабель, скручена пара, оптоволоконний кабель або цифровий територіальний канал. До цього рівня мають відношення характеристики фізичних середовищ передачі даних, такі як смуга пропускання, перешкодозахищеність, хвильовий опір та інші. На цьому ж рівні визначаються характеристики електричних сигналів, що передають дискретну інформацію, наприклад, крутість фронтів імпульсів, рівні напруги або току переданого сигналу, тип кодування, швидкість передачі сигналів. Крім цього, тут стандартизуються типи роз'ємів і призначення кожного контакту.
Функції фізичного рівня реалізуються у всіх пристроях, підключених до мережі. З боку комп'ютера функції фізичного рівня виконуються мережевим адаптером або послідовним портом.
Прикладом протоколу фізичного рівня може служити специфікація 10Base-T технології Ethernet, що визначає в якості використовуваного кабелю неекрановану скручену пару категорії 3 із хвильовим опором 100 Ом, роз'єм RJ-45, максимальну довжину фізичного сегмента 100 метрів, манчестерський код для подання даних у кабелі, а також деякі інші характеристики середовища й електричних сигналів.
Канальний рівень
Однією із задач канального рівня (Data Link layer) є перевірка доступності середовища передачі. Іншою – реалізація механізмів виявлення і корекції помилок. Для цього на канальному рівні біти групуються в набори, іменовані кадрами (frames). Канальний рівень забезпечує коректність передачі кожного кадру, вміщуючи спеціальну послідовність бітів у початок і кінець кожного кадру, для його виділення, а також обчисляє контрольну суму, обробляючи всі байти кадру визначеним способом і додаючи контрольну суму до кадру. Коли кадр приходить мережею, одержувач знову обчислює контрольну суму отриманих даних і порівнює результат із контрольною сумою з кадру. Якщо вони збігаються, кадр вважається правильним і приймається. Якщо ж контрольні суми не збігаються, то фіксується помилка. Канальний рівень може не тільки виявляти помилки, але і виправляти їх за рахунок повторної передачі ушкоджених кадрів. Необхідно відзначити, що функція виправлення помилок не є обов'язковою для канального рівня, тому в деяких протоколах цього рівня вона відсутня, наприклад, в Ethernet і frame relay.
У протоколах канального рівня, які використовуються у локальних мережах, закладена визначена структура зв'язків між комп'ютерами і засоби їх адресації. Хоча канальний рівень і забезпечує доставку кадру між будь-якими двома вузлами локальної мережі, він це робить тільки в мережі з цілком визначеною топологією зв'язків, саме тією топологією, для якої він був розроблений. До таких типових топологій, які підтримуються протоколами канального рівня локальних мереж, відносяться загальна шина, кільце і зірка, а також структури, отримані з них за допомогою мостів і комутаторів. Прикладами протоколів канального рівня є протоколи Ethernet, Token Ring, FDDI, 100VG-AnyLAN.
Мережевий рівень
Мережевий рівень (Network layer) служить для створення єдиної транспортної системи, що об'єднує декілька мереж, причому ці мережі можуть використовувати зовсім відмінні принципи передачі повідомлень між кінцевими вузлами і мати довільну структуру зв'язків. Функції мережевого рівня досить різноманітні. Почнемо їх розгляд на прикладі об'єднання локальних мереж.
Протоколи канального рівня локальних мереж забезпечують доставку даних між будь-якими вузлами тільки в мережі з відповідною типовою топологією, наприклад топологією ієрархічної зірки. Це дуже жорстке обмеження, що не дозволяє будувати мережі з розвиненою структурою, наприклад, мережі, що об'єднують декілька мереж підприємства в одну , або високонадійні мережі, у яких існують надлишкові зв'язки між вузлами. Можна було б ускладнювати протоколи канального рівня для підтримки петлеподібних надлишкових зв'язків, але принцип поділу обов'язків між рівнями призводить до іншого рішення. Щоб, з одного боку, зберегти простоту процедур передачі даних для типових топологій, а з іншого – дозволити використання довільних топологій, вводиться додатковий мережевий рівень.
Транспортний рівень
На шляху від відправника до одержувача пакети можуть бути перекручені або втрачені. Хоча деякі додатки мають власні засоби опрацювання помилок, існують і такі, що працюють безпосередньо з надійним з'єднанням. Транспортний рівень (Transport layer) забезпечує додаткам або верхнім рівням стека – прикладному і сеансовому – передачу даних із тим ступенем надійності, яка їм потрібна. Модель OSI визначає п'ять класів сервісу, наданих транспортним рівнем. Ці види сервісу відрізняються якістю наданих послуг: терміновістю, можливістю відновлення перерваного зв'язку, наявністю засобів мультиплексування декількох з'єднань між різноманітними прикладними протоколами через загальний транспортний протокол, а головне – спроможністю до виявлення і виправлення помилок передачі, таких як перекручування, втрата і дублювання пакетів.
Як правило, усі протоколи, починаючи з транспортного рівня і вище, реалізуються програмними засобами кінцевих вузлів мережі – компонентами їх мережевих операційних систем. Як приклад транспортних протоколів, можна навести протоколи TCP і UDP стека TCP/IP і протокол SPX стека Novell.
Сеансовий рівень
Сеансовий рівень (Session layer) забезпечує керування діалогом: фіксує, яка зі сторін є активною в даний момент, надає засоби синхронізації. Останні дозволяють встановлювати контрольні точки в довгі передачі, щоб у випадку відмови можна було повернутися до останньої контрольної точки, а не починати усе з початку. На практиці деякі додатки використовують сеансовий рівень, і він рідко реалізується у вигляді окремих протоколів, хоча функції цього рівня часто об'єднують із функціями прикладного рівня і реалізують в одному протоколі.
Представницький рівень
Представницький рівень (Presentation layer) має справу з формою подання переданої мережею інформації, не змінюючи при цьому її розміщення. За допомогою засобів даного рівня протоколи прикладних рівнів можуть перебороти синтаксичні розходження в поданны даних або ж розходження в кодах символів, наприклад кодів ASCII і EBCDIC. На цьому рівні може виконуватися шифрування і дешифрування даних, завдяки якому таємність обміну даними забезпечується відразу для всіх прикладних служб. Прикладом такого протоколу є протокол Secure Socket Layer (SSL), що забезпечує секретний обмін повідомленнями для протоколів прикладного рівня стека TCP/IP.
Прикладний рівень
Прикладний рівень (Application layer) – це набір різноманітних протоколів, за допомогою яких користувачі мережі одержують доступ до розподілених ресурсів, таких як файли, принтери або гіпертекстові Web-сторінки, а також організують спільну роботу, наприклад, за допомогою протоколу електронної пошти. Одиниця даних, якою оперує прикладний рівень, називається повідомленням (message).
Існує дуже велика різноманітність служб прикладного рівня. Наведемо як приклад декілька найбільш поширених реалізацій файлових служб: NCP в операційній системі Novell NetWare, SMB у Microsoft Windows NT, NFS, FTP і TFTP, що входять у стек TCP/IP.