Еталонні моделі OSI та TCP/IP
Last updated
Last updated
Ми опишемо два важливі архітектурні типи - еталонні моделі OSI і TCP/IP. Незважаючи на те, що протоколи, пов'язані з еталонною моделлю OSI, зараз не використовуються, сама модель досі дуже актуальна, а властивості її рівнів, які будуть обговорюватися в цьому розділі, дуже важливі. У еталонній моделі TCP/IP все навпаки: сама модель зараз майже не використовується, а її протоколи є чи не найпоширенішими. Виходячи з цього, ми обговоримо подробиці щодо обох моделей. До того ж іноді доводиться більше дізнаватися з поразок, аніж із перемог.
Еталонна модель OSI
Ця модель заснована на розробці Міжнародної організації зі стандартизації (ISO) і є першим кроком до міжнародної стандартизації протоколів, що використовуються на різних рівнях (Day та Zimmerman, 1983). Потім її було переглянуто 1995 року (Day, 1995). Ця структура називається еталонною моделлю взаємодії відкритих систем ISO (ISO OSI (Open System Interconnection) Reference Model), оскільки вона пов'язує відкриті системи, тобто системи, відкриті для зв'язку з іншими системами. Для стислості ми називатимемо цю модель просто «модель OSI».
Модель OSI має сім рівнів. Поява саме такої структури була зумовлена такими міркуваннями:
Рівень має створюватися за необхідності окремого рівня абстракції;
Кожен рівень має виконувати строго певну функцію;
Вибір функцій кожного рівня має здійснюватися з урахуванням створення стандартизованих міжнародних протоколів;
Межі між рівнями повинні вибиратися так, щоб потік даних між інтерфейсами був мінімальним;
Кількість рівнів має бути досить великою, щоб різні функції не об'єднувалися в одному рівні без необхідності, але не надто високою, щоб архітектура не ставала громіздкою.
Нижче ми обговоримо кожен рівень моделі, починаючи з нижнього. Зверніть увагу: модель OSI не є мережевою архітектурою, оскільки вона не описує служби та протоколи, які використовуються на кожному рівні. Вона просто визначає, що має робити кожен рівень. Проте ISO також розробила стандарти для кожного рівня, хоча ці стандарти не входять до самої еталонної моделі. Кожен із них був опублікований як окремий міжнародний стандарт. Ця модель (частково) широко використовується, хоча пов'язані з нею протоколи довго забули.
Фізичний рівень займається реальною передачею необроблених бітів каналом зв'язку. При розробці мережі необхідно переконатися, що коли одна сторона передає одиницю, то сторона, що приймає, отримує також одиницю, а не нуль. Принциповими питаннями тут є такі: яке напруга має використовуватися відображення одиниці, яке для нуля; скільки мікросекунд триває біт; чи може передача проводитись одночасно у двох напрямках; як встановлюється початковий зв'язок і як він припиняється, коли обидві сторони закінчили свої завдання; з якої кількості дротів повинен складатися кабель та яка функція кожного дроту. Питання розробки в основному пов'язані з механічними, електричними та процедурними інтерфейсами, а також з фізичним носієм, що лежить нижче за фізичний рівень.
Основне завдання рівня передачі даних- бути здатним передавати «сирі» дані фізичного рівня за надійною лінією зв'язку, вільної від невиявлених помилок, і маскувати реальні помилки, отже мережевий рівень їх бачить. Це завдання виконується за допомогою розбиття вхідних даних на кадри, звичайний розмір яких коливається від кількох сотень до кількох тисяч байт. Кадри даних передаються послідовно з обробкою кадрів підтвердження, що надсилаються назад одержувачем. Ще одна проблема, що виникає на рівні передачі даних (а також і на більшій частині вищих рівнів) - як не допустити ситуації, коли швидкий передавач завалює приймач даними. Може бути передбачений механізм регуляції, який інформував би передавач про наявність вільного місця в буфері приймача на поточний момент. У широкомовних мережах існує ще одна проблема рівня передачі даних: як керувати доступом до спільно використовуваного каналу. Ця проблема дозволяється введенням спеціального додаткового рівня рівня передачі даних - рівня доступу до носія.
Мережевий рівеньзаймається керуванням операціями підмережі. Найважливішим моментом є визначення маршрутів пересилання пакетів від джерела до пункту призначення. Маршрути можуть бути жорстко задані у вигляді таблиць і рідко змінюватися або, що буває частіше, автоматично змінюватися, щоб уникати компонентів, що відмовили. Крім того, вони можуть задаватися на початку кожного з'єднання, наприклад термінальної сесії, такого як підключення до віддаленої машини. Нарешті, вони можуть бути високою мірою динамічними, тобто обчислюваними заново для кожного пакета з урахуванням поточної завантаженості мережі. Якщо в підмережі одночасно є дуже велика кількість пакетів, то вони можуть закрити дорогу один одному, утворюючи затори у вузьких місцях. Недопущення подібної закупорки також є завданням мережного рівня у поєднанні з вищими рівнями, які адаптують завантаження. У загальному сенсі, мережевий рівень займається наданням певного рівня сервісу (це стосується затримок, часу передачі, питань синхронізації). При подорожі пакета з однієї мережі до іншої також може виникнути ряд проблем. Так, спосіб адресації, що використовується в одній мережі, може відрізнятися від прийнятого в іншій. Мережа може взагалі відмовитися приймати пакети через те, що вони занадто великого розміру. Також можуть відрізнятися протоколи і т. д. Саме мережевий рівень повинен вирішувати всі ці проблеми, дозволяючи об'єднувати різні мережі. У широкомовних мережах проблема маршрутизації дуже проста, тому мережний рівень дуже примітивний чи взагалі відсутня. часу передачі, питань синхронізації). При подорожі пакета з однієї мережі до іншої також може виникнути ряд проблем. Так, спосіб адресації, що використовується в одній мережі, може відрізнятися від прийнятого в іншій. Мережа може взагалі відмовитися приймати пакети через те, що вони занадто великого розміру. Також можуть відрізнятися протоколи і т. д. Саме мережевий рівень повинен вирішувати всі ці проблеми, дозволяючи об'єднувати різні мережі. У широкомовних мережах проблема маршрутизації дуже проста, тому мережний рівень дуже примітивний чи взагалі відсутня. часу передачі, питань синхронізації). При подорожі пакета з однієї мережі до іншої також може виникнути ряд проблем. Так, спосіб адресації, що використовується в одній мережі, може відрізнятися від прийнятого в іншій. Мережа може взагалі відмовитися приймати пакети через те, що вони занадто великого розміру. Також можуть відрізнятися протоколи і т. д. Саме мережевий рівень повинен вирішувати всі ці проблеми, дозволяючи об'єднувати різні мережі. У широкомовних мережах проблема маршрутизації дуже проста, тому мережний рівень дуже примітивний чи взагалі відсутня. що вони надто великого розміру. Також можуть відрізнятися протоколи і т. д. Саме мережевий рівень повинен вирішувати всі ці проблеми, дозволяючи об'єднувати різні мережі. У широкомовних мережах проблема маршрутизації дуже проста, тому мережний рівень дуже примітивний чи взагалі відсутня. що вони надто великого розміру. Також можуть відрізнятися протоколи і т. д. Саме мережевий рівень повинен вирішувати всі ці проблеми, дозволяючи об'єднувати різні мережі. У широкомовних мережах проблема маршрутизації дуже проста, тому мережний рівень дуже примітивний чи взагалі відсутня.
Основна функція транспортного рівня- прийняти дані від сеансового рівня, розбити їх у разі потреби на невеликі частини, передати їх мережному рівню та гарантувати, що ці частини у правильному вигляді прибудуть за призначенням. Крім того, все це повинно бути зроблено ефективно і таким чином, щоб ізолювати вищі рівні від будь-яких змін в апаратній технології з часом. Транспортний рівень також визначає тип сервісу, що надається сеансовому рівню та, зрештою, користувачам мережі. Найбільш популярним різновидом транспортного сполучення є захищений від помилок канал між двома вузлами, що постачає повідомлення або байти в тому порядку, в якому вони були відправлені. Проте транспортний рівень може надавати інші типи сервісів, наприклад, пересилання окремих повідомлень без гарантії дотримання порядку їх доставки або одночасне надсилання повідомлення різним адресатам за принципом широкомовлення. Тип сервісу визначається під час встановлення з'єднання. (Строго кажучи, повністю захищений від помилок канал створити абсолютно неможливо. Говорять лише про такий канал, рівень помилок в якому досить малий, щоб їм можна було знехтувати на практиці.) Транспортний рівень є справжнім наскрізним рівнем, тобто повідомленням від джерела адресату. Іншими словами, програма на машині-джерелі підтримує зв'язок з подібною програмою на іншій машині за допомогою заголовків повідомлень та керуючих повідомлень. На нижчих рівнях для підтримки цього з'єднання встановлюються з'єднання між усіма сусідніми машинами, якими проходить маршрут повідомлень. Відмінність між рівнями з 1-го по 3-й, що діють за принципом ланок ланцюга, і рівнями з 4-го по 7-й, що є наскрізними, проілюстровано на рис. 1.17.
Сеансовий рівень дозволяє користувачам різних комп'ютерів встановлювати сеанси один одного. При цьому надаються різні типи сервісів, серед яких керування діалогом (відстеження черговості передачі даних), керування маркерами (запобігання одночасному виконанню критичної операції декількома системами) та синхронізація (установка службових міток усередині довгих повідомлень, що дозволяють продовжити передачу з того місця, на якому вона обірвалася) , навіть після збою та відновлення).
На відміну від нижчих рівнів, завдання яких - достовірна передача бітів і байтів, рівень подання займається переважно синтаксисом і семантикою інформації, що передається. Щоб було можливе спілкування комп'ютерів з різними внутрішніми уявленнями даних, необхідно перетворювати формати даних один одного, передаючи їх у мережі у певному стандартизованому вигляді. Рівень представлення займається цими перетвореннями, надаючи можливість визначення та зміни структур даних вищого рівня (наприклад записів баз даних).
Прикладний рівень містить набір популярних протоколів, необхідних користувачам. Одним із найпоширеніших є протокол передачі гіпертексту HTTP (HyperText Transfer Protocol), який становить основу технології Всесвітньої павутини. Коли браузер запитує веб-сторінку, він передає її ім'я (адресу) і розраховує на те, що сервер, на якому розташована сторінка, використовуватиме HTTP. Сервер у відповідь надсилає сторінку. Інші прикладні протоколи використовуються передачі файлів, електронної пошти, мережевих розсилок.
Еталонна модель TCP/IP
Розглянемо тепер еталонну модель, що використовується в комп'ютерній мережі ARPANET, яка є бабусею нинішніх мереж, а також її спадкоємиці, всесвітньої мережі Інтернет. ARPANET була дослідницькою мережею, яку фінансує Міністерство оборони США. Зрештою, вона об'єднала сотні університетів та урядових будівель за допомогою виділених телефонних ліній. Коли згодом з'явилися супутникові мережі та радіомережі, виникли великі проблеми при поєднанні з ними інших мереж за допомогою наявних протоколів. Знадобилася нова еталонна архітектура. Таким чином, можливість об'єднувати різні мережі в єдине ціле була однією з головних цілей із самого початку. Пізніше ця архітектура отримала назву еталонної моделі TCP/IP, відповідно до своїх двох основних протоколів. Перший її опис зустрічається у книзі Cerf і Kahn (1974), пізніше перетворюється на стандарт (Braden, 1989). Конструктивні особливості моделі обговорюються у виданні Clark, 1988. Оскільки Міністерство оборони США турбувалося, що цінні хости, маршрутизатори та міжмережові шлюзи можуть бути миттєво знищені, інше важливе завдання полягало в тому, щоб досягти здатності мережі зберігати працездатність за можливих втрат підмережевого обладнання, так щоб при цьому зв'язок не переривався. Інакше кажучи, Міністерство оборони США вимагало, щоб з'єднання не переривалося, поки функціонують приймальна машина і передає машини, навіть якщо деякі проміжні машини чи лінії зв'язку раптово вийшли з ладу. Крім того, від архітектури потрібна була певна гнучкість, оскільки передбачалося використовувати програми з різними вимогами,
Канальний рівень
Всі ці вимоги призвели до вибору мережі з пакетною комутацією, що базується на рівні без встановлення з'єднання, що працює в різних мережах. Найнижчий рівень моделі, рівень каналу, описує те, як і що канали, такі як послідовні лінії та класичний Ethernet, повинні зробити, щоб задовольнити потреби цього міжмережевого рівня без встановлення з'єднання. Це насправді не рівень взагалі, у нормальному значенні слова, а скоріше інтерфейс між каналами передачі та вузлами. У ранніх матеріалах про модель TCP/IP мало що про це йдеться.
Міжмережевий рівень
Всі ці вимоги зумовили вибір моделі мережі з комутацією пакетів, в основі якої лежав міжмережевий рівень, що не має з'єднань. Він відповідає мережевому рівню OSI. Цей рівень, який називають інтернет-рівнем або міжмережевим рівнем, є основою всієї архітектури. Його завдання полягає в забезпеченні можливості кожного хоста надсилати пакети в будь-яку мережу та незалежно рухатися до пункту призначення (наприклад, в іншій мережі). Вони можуть прибувати зовсім в іншому порядку, ніж були надіслані. Якщо потрібне дотримання порядку відправлення, це завдання виконують верхні рівні. Зверніть увагу, що слово «інтернет» тут використовується у своєму початковому розумінні, незважаючи на те, що цей рівень присутній в Інтернеті. Тут можна побачити аналогію із поштовою системою. Людина може кинути кілька міжнародних листів до поштової скриньки в одній країні, і, якщо пощастить, більша частина з них буде доставлена за правильними адресами в інших країнах. Ймовірно, листи дорогою пройдуть через кілька міжнародних поштових шлюзів, проте це залишиться таємницею для кореспондентів. У кожній країні (тобто в кожній мережі) можуть бути свої марки, свої розміри конвертів і правила доставки, непомітні для користувачів поштової служби. Міжмережевий рівень визначає офіційний формат пакету та протокол IP, з додатковим протоколом ICMP (Internet Control Message Protocol, міжмережевий протокол керування повідомленнями). Завданням міжмережевого протоколу є доставка IP-пакетів до пунктів призначення.
Транспортний рівень
Рівень, розташований над міжмережевим рівнем моделі TCP/IP, зазвичай називають транспортним. Він створений для того, щоб об'єкти одного рангу на приймальних та передавальних хостах могли підтримувати зв'язок, подібно до транспортного рівня моделі OSI. На цьому рівні мають бути описані два наскрізні протоколи. Перший, TCP (Transmission Control Protocol - протокол управління передачею), є надійним протоколом із встановленням з'єднань, що дозволяє без помилок доставляти байтовий потік з однієї машини на іншу машину об'єднаної мережі. Він розбиває вхідний потік байтів на окремі повідомлення та передає їх міжмережевому рівню. На пункті призначення TCP-процес збирає з отриманих повідомлень вихідний потік. Крім того, TCP здійснює керування потоком, щоб швидкий відправник не завалив інформацією повільного одержувача. Другий протокол цього рівня, UDP (User Datagram Protocol - протокол дейтаграм користувача), є ненадійним протоколом без встановлення з'єднання, що не використовує послідовне управління потоком протоколу TCP, а надає своє власне. Він також широко використовується в одноразових клієнт-серверних запитах і додатках, в яких оперативність важливіша за акуратність, наприклад при передачі мови та відео. З часу створення протоколу IP цей протокол було реалізовано у багатьох інших мережах. в яких оперативність важливіша за акуратність, наприклад при передачі мови і відео. З часу створення протоколу IP цей протокол було реалізовано у багатьох інших мережах. в яких оперативність важливіша за акуратність, наприклад при передачі мови і відео. З часу створення протоколу IP цей протокол було реалізовано у багатьох інших мережах.
Прикладний рівень
У моделі TCP/IP немає сеансового рівня та рівня подання. У цих рівнях просто не було потреби, тому вони не були включені в модель. Натомість програми просто включають всі функції сеансів і уявлення, які їм потрібні. Досвід роботи з моделлю OSI довів правоту цієї точки зору: більшість додатків мало потребують цих рівнів. Над транспортним рівнем розташовується прикладний рівень. Він містить усі протоколи високого рівня. До старих протоколів належать протокол віртуального терміналу (TELNET), протокол перенесення файлів (FTP) та протокол електронної пошти (SMTP). З роками було додано багато інших протоколів. Це DNS (Domain Name Service - служба імен доменів), що дозволяє перетворювати імена хостів у мережеві, HTTP, протокол, що використовується для створення сторінок на World Wide Web, а також RTP,
Джерела:
Таненбаум Е., Уезеролл Д. - Комп'ютерні мережі, 1.4 - 1.4.2
Дод. матеріал:
Таненбаум Е., Уезеролл Д. – Комп'ютерні мережі, 1.4.4. "Порівняння еталонних моделей OSI та TCP", 1.4.5. "Критика моделі та протоколів OSI", 1.4.6. "Критика еталонної моделі TCP/IP"