Постараюся максимально простою мовою описати, що за звір такий – OSI і кому він потрібен. Якщо ви бажаєте пов’язати своє життя з інформаційними технологіями та знаходитесь в самому початку шляху, то розуміння роботи OSI просто життєво необхідно, це вам будь-профі скаже.

Как работает модель OSI

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

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

Нижче представлена найбільш відома і найбільш зрозуміла схема моделі OSI. У статті будуть ще малюнки, але перший пропоную вважати основним:

Таблиця складається з двох колонок, на початковому етапі нас цікавить лише права. Читати таблицю будемо знизу вгору (а як інакше :)). Насправді це не моя примха, а роблю так для зручності засвоєння інформації – від простого до складного. Поїхали!

У правій частині вищезазначеної таблиці знизу вгору показн шлях даних, переданих по мережі (наприклад, від вашого домашнього роутера до вашого комп’ютера). Уточнення – якщо читати рівні OSI знизу вгору, то це буде шлях даних на приймаючій стороні, якщо зверху вниз, то навпаки – відправляє. Сподіваюся, поки що зрозуміло. Щоб остаточно розвіяти сумніви, ось вам ще схемка для наочності:

Щоб простежити шлях даних і відбуваються з ними зміни за рівнями, достатньо уявити, як вони рухаються вздовж синьої лінії на схемі, спочатку рухаючись зверху вниз по рівнях OSI від першого комп’ютера, потім знизу вгору до другого. Тепер більш детально розберемо кожний з рівнів.

1) Фізичний (phisical) – до нього відноситься так звана “середовище передачі даних”, тобто дроти, оптичний кабель, радіохвиля (у разі бездротових з’єднань) і подібні. Наприклад, якщо ваш комп’ютер підключений до інтернету по кабелю, то за якість передачі даних на першому, фізичному рівні, відповідають дроти, контакти на кінці проводу, контакти роз’єму мережевої карти комп’ютера, а також внутрішні електричні схеми на платах комп’ютера. У мережевих інженерів є поняття “проблема з фізикою” – це означає, що фахівець угледів винуватцем “непередачі” даних пристрій фізичного рівня, наприклад десь обірваний мережевий кабель, або низький рівень сигналу.

2) Канальний (datalink) – тут вже набагато цікавіше. Для розуміння канального рівня нам доведеться спочатку засвоїти поняття MAC-адреси, оскільки саме він буде головною дійовою особою в цій главі :). MAC-адресу ще називають “фізичною адресою”, “апаратним адресою”. Він являє собою набір з 12-и символів в шістнадцятковій системі числення, розділені на 6 октетів тире або двокрапкою, наприклад 08:00:27:b4:88:c1. Потрібен він для однозначної ідентифікації мережевого пристрою в мережі. Теоретично, MAC-адреса є глобально унікальним, тобто ніде у світі такої адреси бути не може і він “зашивається” мережеве пристрій на стадії виробництва. Однак, є нескладні способи його змінити на довільний, так до того ж деякі недобросовісні і маловідомі виробники не гребують тим, що клепають наприклад, партію з 5000 мережевих карт з рівно одним і тим же повне mac ‘ ом. Відповідно, якщо як мінімум два таких “брати-акробати” з’являться в одній локальній мережі, почнуться конфлікти і проблеми.

Отже, на канальному рівні дані обробляються мережевим пристроєм, який цікавить лише одне – наш горезвісний MAC-адресу, тобто його цікавить адресат доставки. До пристроїв канального рівня відносяться, наприклад, світчі (вони ж комутатори) – вони тримають у своїй пам’яті MAC-адреси мережевих пристроїв, з якими у них є безпосередня, пряма зв’язок і при отриманні даних на свій приймає порт звіряють MAC-адреси даних з MAC-адресами, наявними в пам’яті. Якщо є збіги, то дані передаються адресату, інші просто ігноруються.

3) Мережний (network) – “священний” рівень, розуміння принципу функціонування якого здебільшого і робить мережевого інженера таким. Тут вже править залізною рукою “IP-адреса”, тут він – основа основ. Завдяки ниличию IP-адреси стає можливим передача даних між комп’ютерами, які не входять в одну локальну мережу. Передача даних між різними локальними мережами називається маршрутизацією, а пристрої, що дозволяють це робити – маршрутизаторами (вони ж роутери, хоча в останні роки поняття роутера сильно извратилось).

Отже, IP-адреса – якщо не вдаватися в деталі, то це якийсь набір 12 цифр в десятеричной (“звичайної”) системі числення, розділені на 4 октету, розділених крапкою, який присваиватеся мережного пристрою при підключенні до мережі. Тут треба трохи заглибитися: наприклад, багатьом відома адреса з ряду 192.168.1.23. Цілком очевидно, що тут ніяк не 12 цифр. Однак, якщо написати адресу в повному форматі, все стає на свої місця – 192.168.001.023. Ще глибше копати не будемо на цьому етапі, оскільки IP-адресація – це окрема тема для розповіді і показу.

4) Транспортний рівень (transport) – як випливає з назви, потрібен саме для доставки та надсилання даних до адресата. Провівши аналогію з нашої багатостраждальної поштою, то IP-адреса власне адресу доставки або отримання, а транспортний протокол – це листоноша, який вміє читати і знає, як доставити лист. Протоколи бувають різні, для різних цілей, але сенс у них один – доставка.

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

5) Сеансовий (session) – управляє відкриттям, закриттям сеансу передачі даних, перевіряє права доступу, контролиует синхронізацію початку і закінчення передачі. Наприклад, якщо ви качаєте який-небудь файл з інтернету, то ваш браузер (або через що ви там завантажуєте) надсилає запит серверу, на якому знаходиться файл. На цьому моменті включаються сеансові протоколи, які і забезпечують успішне завантаження файлу, після чого по ідеї автоматично выключаютя, хоча є варіанти.

6) Представницький (presentation) – готує дані до обробки кінцевим додатком. Наприклад, якщо це текстовий файл, то потрібно перевірити кодування (щоб не вийшло “крякозябров”), можливо розпакувати з архіву…. але тут якраз явно простежується те, про що я писав раніше – дуже важко відрізнити, де закінчується представницький рівень, а де починається наступний:

7) Прикладної (Додатка (application)) – як видно з назви, рівень додатків, які користуються отриманими даними і ми бачимо результат праць усіх рівнів моделі OSI. Наприклад, ви читаєте цей текст, тому що його відкрив вірною кодуванні, потрібне шрифтом і т. д. ваш браузер.

І ось тепер, коли у нас є хоча б загальне розуміння технології процесу, вважаю за необхідне розповісти про те, що таке біти, кадри, пакети, блоки і дані. Якщо пам’ятаєте, на початку статті я просив вас не звертати увагу на ліву колонку в основній таблиці. Отже, настав її час! Зараз ми пробіжимося знову по всім рівням моделі OSI і побачимо, як прості біти (нулі і одиниці) перетворюються в дані. Йти будемо так само знизу вгору, щоб не порушувати послідовності засвоєння матеріалу.

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

На канальному рівні ми маємо так званий кадр. Якщо грубо, то це пачка байт, від 64 до 1518-і в одній пачці, кожна з яких має додаткову “обв’язку” – заголовок, у якому записані MAC-адреси одержувача та відправника, а також технічна інформація.

На мережевому рівні до всього цього добра ще додаються IP-адреси одержувача і відправника і називається це пакет.

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

НАПИСАТИ ВІДПОВІДЬ

Please enter your comment!
Please enter your name here