Простий посібник з мережевої моделі OSI для початківців
Розповідаємо, як улаштована модель та яка її роль при побудові мереж.
Ця інструкція є частиною курсу «Як працюють мережеві протоколи».
Дивитись весь курс
Модель OSI є еталонною. Повна назва моделі виглядає як "Basic Reference Model Open Systems Interconnection model", де Basic Reference Model - це якраз зразкова модель. Сама модель складається із семи рівнів. Спочатку розглянемо загальну інформацію, а потім перейдемо до окремих аспектів.
Принцип влаштування мережевої моделі
Мережева модель OSI має сім рівнів, ієрархічно розташованих від більшого до меншого. Найвищим є сьомий (прикладний), а найнижчим — перший (фізичний). Модель OSI розроблялася ще у 1970-х роках, щоб описати архітектуру та принципи роботи мереж передачі даних.
У процесі передачі даних завжди беруть участь пристрій-відправник, пристрій-одержувач, а також самі дані, які мають бути передані та отримані. З погляду рядового користувача завдання елементарне - потрібно взяти та надіслати ці дані. Все, що відбувається при надсиланні та прийомі даних, детально описує семирівневу модель OSI.
На сьомому рівні інформація представляється як даних, першому — як біт. Процес, коли інформація відправляється і переходить із даних у біти, називається інкапсуляцією. Зворотний процес, коли інформація, отримана в бітах на першому рівні, переходить у дані на сьомому, називається декапсуляцією. На кожному із семи рівнів інформація подається у вигляді блоків даних протоколу - PDU (Protocol Data Unit).
Розглянемо на прикладі: користувач 1 відправляє картинку, яка обробляється на сьомому рівні у вигляді даних, дані повинні пройти всі рівні до самого нижнього (першого), де будуть представлені як біти. Цей процес називається інкапсуляцією. Комп'ютер користувача 2 приймає біти, які мають стати стати даними. Цей зворотний процес називається декапсуляцією. Що відбувається з інформацією на кожному з семи рівнів, як і де біти переходять у дані, ми розберемо в цій статті.
Перший, фізичний рівень (physical layer, L1)
Почнемо з найнижчого рівня. Він відповідає за обмін фізичними сигналами між фізичними пристроями, "залізом". Комп'ютерне залізо не розуміє, що таке картинка або на ній зображено, «залізу» картинка зрозуміла лише у вигляді набору нулів і одиниць, тобто біт.
Кожен рівень має свої PDU (Protocol Data Unit), представлені у тій формі, яка зрозуміла цьому рівні і, можливо, наступному до перетворення. Робота з чистими даними відбувається лише на рівнях з п'ятого до сьомого.
Пристрої фізичного рівня оперують бітами. Вони передаються кабелями (наприклад, через оптоволокно) чи без — наприклад, через Bluetooth чи IRDA, Wi-Fi, GSM, 4G тощо.
Другий рівень, канальний (data link layer, L2)
Коли два користувача знаходяться в одній мережі, що складається лише з двох пристроїв, це ідеальний випадок. Але що якщо цих пристроїв більше?
Другий рівень вирішує проблему адресації під час передачі інформації. Канальний рівень отримує біти і перетворює їх на кадри (frame, також «фрейми»). Завдання тут - сформувати кадри з адресою відправника та одержувача, після чого відправити їх по мережі.
У канального рівня є два підрівні - це MAC і LLC.MAC (Media Access Control, контроль доступу до середовища) відповідає за присвоєння фізичних MAC-адрес, а LLC (Logical Link Control, контроль логічного зв'язку) займається перевіркою та виправленням даних, керує їхньою передачею. Для спрощення ми вказуємо LLC на другому рівні моделі, але, якщо бути точними, LLC не можна віднести повністю ні до першого, ні другого рівня — він між.
На другому рівні OSI працюють комутатори, їх завдання — передати сформовані кадри від одного пристрою до іншого, використовуючи як адреси лише фізичні MAC-адреси.
На каналі активно використовується протокол ARP (Address Resolution Protocol — протокол визначення адреси). За допомогою нього 64-бітові MAC-адреси зіставляються з 32-бітними IP-адресами і навпаки, тим самим забезпечується інкапсуляція та декапсуляція даних.
Третій рівень, мережевий (network layer, L3)
На третьому рівні з'являється нове поняття – маршрутизація. Для цього завдання було створено пристрої третього рівня — маршрутизатори (їх ще називають роутерами). Маршрутизатори отримують MAC-адресу від комутаторів з попереднього рівня та займаються побудовою маршруту від одного пристрою до іншого з урахуванням усіх потенційних несправностей у мережі.
Четвертий рівень, транспортний (transport layer, L4)
Усі сім рівнів моделі OSI можна умовно поділити на дві групи:
Рівні групи Media Layers (L1, L2, L3) займаються передачею інформації (кабель або бездротова мережа), використовуються мережними пристроями, такими як комутатори, маршрутизатори і т.п. Рівні групи Host Layers (L4, L5, L6, L7) використовуються безпосередньо на пристроях, будь то стаціонарні комп'ютери або мобільні пристрої.
Четвертий рівень - це посередник між Host Layers і Media Layers, що належить швидше першим, ніж останнім. Його головним завданням є транспортування пакетів. При транспортуванні можливі втрати, але деякі типи даних більш чутливі до втрат, ніж інші. Наприклад, якщо в тексті загубляться голосні, то буде складно зрозуміти сенс, а якщо з відеопотоку пропаде пара кадрів, то це практично ніяк не позначиться на кінцевому користувачеві. Тому під час передачі даних, найбільш чутливих до втрат на транспортному рівні, використовується протокол TCP, який контролює цілісність доставленої інформації.
Для мультимедійних файлів невеликі втрати не такі важливі, набагато критичнішою буде затримка. Для передачі даних, найбільш чутливих до затримок, використовується протокол UDP, що дозволяє організувати зв'язок без встановлення з'єднання.
При передачі протоколу TCP дані діляться на сегменти. Сегмент – це частина пакету. Коли надходить пакет даних, який перевищує пропускну спроможність мережі, пакет ділиться на сегменти допустимого розміру. p align="justify"> Сегментація пакетів також потрібна в ненадійних мережах, коли існує велика ймовірність того, що великий пакет буде втрачений. При передачі даних протоколу UDP пакети даних діляться вже на датаграми. Датаграма (datagram) - це також частина пакету, але її не можна плутати із сегментом.
Головна відмінність датаграм – в автономності. Кожна датаграма містить усі необхідні заголовки, щоб дійти кінцевого адресата, тому вони залежать від мережі, можуть доставлятися різними маршрутами й у різному порядку. При втраті датаграм або сегментів виходять "биті" шматки даних, які не вдасться коректно обробити.
Перші чотири рівні – спеціалізація мережевих інженерів. З останніми трьома вони не так часто стикаються, бо п'ятим, шостим та сьомим займаються розробники.
Чотири варіанти захисту від DDoS-атак
Від безкоштовного базового захисту до рішень із захистом веб-додатків.
П'ятий рівень, сеансовий (session layer, L5)
П'ятий рівень оперує чистими даними. Крім п'ятого, чисті дані використовуються також на шостому та сьомому рівні. Сеансовий рівень відповідає за підтримку сеансу чи сесії зв'язку. П'ятий рівень надає послугу наступному: керує взаємодією між програмами, відкриває можливості синхронізації завдань, завершення сеансу, обміну інформацією.
Служби сеансового рівня найчастіше застосовуються серед додатків, потребують віддаленого виклику процедур, тобто. щоб вимагати виконання дій на віддалених комп'ютерах або незалежних системах на одному пристрої (за наявності кількох ОС).
Прикладом роботи п'ятого рівня може бути відеодзвінок по мережі. Під час відеозв'язку необхідно, щоб два потоки даних (аудіо та відео) йшли синхронно. Коли до розмови двох людей додасться третя — вийде вже конференція. Завдання п'ятого рівня зробити так, щоб співрозмовники могли зрозуміти, хто зараз говорить.
Шостий рівень, подання даних (presentation layer, L6)
Про завдання рівня уявлення знову свідчить його назва. Шостий рівень відповідає за перетворення протоколів та кодування/декодування даних. Шостий рівень також займається представленням картинок (JPEG, GIF і т.д.), а також відео-аудіо (MPEG, QuickTime). А також → шифруванням даних, коли під час передачі їх необхідно захистити.
Сьомий рівень, прикладний (application layer)
Сьомий рівень іноді ще називають рівень додатків, але щоб не заплутатися, можна використовувати оригінальну назву — application layer. Прикладний рівень - це те, з чим взаємодіють користувачі, свого роду графічний інтерфейс усієї моделі OSI, з іншими він взаємодіє щонайменше.
Усі послуги, які отримують сьомий рівень від інших, використовуються для доставки даних до користувача. Протоколам сьомого рівня не потрібно забезпечувати маршрутизацію або гарантувати доставку даних, коли про це вже подбали попередні шість. Завдання сьомого рівня – використовувати свої протоколи, щоб користувач побачив дані у зрозумілому йому вигляді.
Критика моделі OSI
Семирівнева модель була прийнята як стандарт ISO/IEC 7498, що діє до сьогодні, однак, модель має свої недоліки. Серед основних недоліків говорять про невідповідний час, погану технологію, пізню імплементацію, невдалу політику.
Перший недолік - це невідповідний час. На розробку моделі було витрачено невиправдано багато часу, але розробники не приділили достатньо уваги існуючим на той час стандартам. У зв'язку з цим модель звинувачують у тому, що вона не відображає дійсності. У таких твердженнях є частка істини, адже вже на момент появи OSI інші компанії були більше готові працювати з моделлю TCP/IP, що набула широкого поширення.
Другим недоліком називають погану технологію. Як основний аргумент на користь того, що OSI - це погана технологія, наводять поширеність стека TCP/IP. Протоколи OSI часто дублюють один одного, функції розподілені за рівнями нерівнозначно, а одні й самі завдання можуть бути вирішені на різних рівнях.Навіть початковий опис архітектури у роздрукованому вигляді має товщину один метр.
Поділ на сім рівнів був скоріше політичним, ніж технічним. При побудові мереж насправді іноді можна обійтися без рівнів 5 і 6, також у поодиноких випадках можна лише першими чотирма рівнями.
Крім того, на відміну від TCP/IP, OSI ніколи не асоціювалася з UNIX. Домогтися широкого поширення OSI не вдалося тому, що вона проектувалася як закрита модель, що просувається Європейськими телекомунікаційними компаніями та урядом США. Стек протоколів TCP/IP спочатку був відкритий всім, що дозволило йому набрати популярності серед прихильників відкритого програмного коду.
Навіть незважаючи на те, що основні проблеми архітектури OSI були політичними, репутація була заплямована і модель не набула поширення. Проте, у мережевих технологіях, під час роботи з комутацією навіть сьогодні зазвичай використовують модель OSI.
Запустіть квіз-бота в Telegram та прокачайте свої знання в IT
Відповідайте на запитання, беріть участь у міні-іграх та отримуйте за це призи.
Висновок: роль моделі OSI при побудові мереж
Ми розглянули принципи побудови мережевої моделі OSI. На кожному із семи рівнів моделі виконується своє завдання. Насправді архітектура OSI складніша, ніж ми описали. Існують й інші рівні, наприклад восьмий — так називають самого користувача.
Як ми згадували вище, оригінальний опис усіх принципів побудови мереж у рамках цієї моделі, якщо його роздрукувати, матиме товщину в один метр. Але компанії активно використовують OSI як стандарт. Ми перерахували лише основну структуру словами, зрозумілими початківцям.
Модель OSI є інструментом при діагностиці мереж.Якщо в мережі щось не працює, то набагато простіше визначити рівень, на якому сталася проблема, ніж намагатися перебудувати всю мережу заново.
Знаючи архітектуру мережі, набагато простіше її будувати та діагностувати. Як не можна збудувати будинок, не знаючи його архітектури, так неможливо збудувати мережу, не знаючи моделі OSI. При проектуванні важливо враховувати все. Важливо врахувати взаємодію кожного рівня з іншими, наскільки забезпечується безпека, шифрування даних всередині мережі, який приріст користувачів витримає мережу без обвалення, чи можливо перенести мережу на іншу машину і т.д. Кожен із перелічених критеріїв вкладається у функції одного із семи рівнів.
Мережеві протоколи: базові поняття та опис найбільш затребуваних правил
Посібник зі стеку протоколів TCP/IP для початківців
Модель OSI
Сеансовий рівень (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.
Мережезалежні та мережонезалежні рівні
Функції всіх рівнів моделі OSI можуть бути віднесені до однієї з двох груп: або до функцій, що залежать від конкретної технічної реалізації мережі, або до функцій, орієнтованих на роботу з програмами.
Три нижніх рівнів — фізичний, канальний та мережевий — є сетезалежними, тобто протоколи цих рівнів тісно пов'язані з технічною реалізацією мережі та використовуваним комунікаційним обладнанням. Наприклад, перехід на обладнання FDDI означає повну зміну протоколів фізичного та канального рівнів у всіх вузлах мережі.
Три верхніх рівня — прикладний, представницький та сеансовий — орієнтовані на додатки та мало залежать від технічних особливостей побудови мережі. На протоколи цих рівнів не впливають будь-які зміни в топології мережі, заміна обладнання або перехід на іншу мережну технологію. Так, перехід від Ethernet до високошвидкісної технології 100VG-AnyLAN не вимагатиме жодних змін у програмних засобах, що реалізують функції прикладного, представницького та сеансового рівнів.
Транспортний рівень проміжний, він приховує всі деталі функціонування нижніх рівнів від верхніх. Це дозволяє розробляти програми, які не залежать від технічних засобів безпосереднього транспортування повідомлень.
На рис. 11.9 показано рівні моделі OSI, на яких працюють різні елементи мережі. Комп'ютер із встановленою у ньому мережевий ОС взаємодіє з іншим комп'ютером з допомогою протоколів всіх семи рівнів.Це взаємодію комп'ютери здійснюють опосередковано, через різні комунікаційні пристрої: концентратори, модеми, мости, комутатори, маршрутизатори, мультиплексори. Залежно від типу комунікаційний пристрій може працювати або тільки на фізичному рівні (повторювач), або на фізичному та канальному (міст), або на фізичному, канальному та мережному, іноді захоплюючи і транспортний рівень (маршрутизатор). На рис. 11.10 показано відповідність функцій різних комунікаційних пристроїв рівням моделі OSI.
Мал. 11.10. Відповідність функцій різних пристроїв мережі рівням моделі OSI.
Модель OSI представляє хоч і дуже важливу, але лише одну з багатьох моделей комунікацій. Ці моделі та пов'язані з ними стеки протоколів можуть відрізнятися кількістю рівнів, їх функціями, форматами повідомлень, службами, що підтримуються на верхніх рівнях, та іншими параметрами.