5. Лекція: Модель OSI. Нижні рівні
У мережі проводиться безліч операцій, що забезпечують передачу даних від комп'ютера до комп'ютера. Користувача не цікавить, як саме це відбувається, йому необхідний доступ до додатка або комп'ютерного ресурсу, розташованого в іншому комп'ютері мережі. Насправді ж вся передавана інформація минає багато етапів обробки.
Перш за все, вона розбивається на блоки, кожен з яких забезпечується інформацією, що управляє. Отримані блоки оформляються у вигляді мережевих пакетів, потім ці пакети кодуються, передаються за допомогою електричних або світлових сигналів по мережі відповідно до вибраного методу доступу, потім з прийнятих пакетів знов відновлюються укладені в них блоки даних, блоки з'єднуються в дані, які і стають доступні іншому застосуванню. Це, звичайно, спрощений опис процесів, що відбуваються.
Частка з вказаних процедур реалізується тільки програмно, інша частка – апаратний, а якісь операції можуть виконуватися як програмами, так і апаратурою.
Упорядкувати всі виконувані процедури, розділити їх на рівні і підрівні, що взаємодіють між собою, якраз і покликані моделі мереж. Ці моделі дозволяють правильно організувати взаємодію як абонентам усередині однієї мережі, так і самим різним мережам на різних рівнях. В даний час найбільшого поширення набула так звана еталонна модель обміну інформацією відкритої системи OSI (Open System Interchange). Під терміном "відкрита система" розуміється не замкнута в собі система, що має можливість взаємодії з якимись іншими системами (на відміну від закритої системи).
Еталонна модель OSI
Модель OSI була запропонована Міжнародною організацією стандартів ISO (International Standarts Organization) в 1984 році. З тих пір її використовують (більш менш строго) всі виробники мережевих продуктів. Як і будь-яка універсальна модель, OSI досить громіздка, надлишкова, і не дуже гнучка. Тому реальні мережеві засоби, пропоновані різними фірмами, не обов'язково дотримуються прийнятого розділення функцій. Проте знайомство з моделлю OSI дозволяє краще зрозуміти, що ж відбувається в мережі.
Всі мережеві функції в моделі розділені на 7 рівнів (рис. 5.1). При цьому вищестоящі рівні виконують складніші, глобальніші завдання, для чого використовують в своїх цілях нижчестоячі рівні, а також управляють ними. Мета нижчестоячого рівня – надання послуг вищестоящому рівню, причому вищестоящому рівню не важливі деталі виконання цих послуг. Нижчестоячі рівні виконують простіші і конкретніші функції. У ідеалі кожен рівень взаємодіє тільки з тими, які знаходяться поряд з ним (вище і нижче за нього). Верхній рівень відповідає прикладному завданню, застосуванню, що працює в даний момент, нижний – безпосередній передачі сигналів по каналу зв'язку.
Модель OSI відноситься не лише до локальних мереж, але і до будь-яких мереж зв'язку між комп'ютерами або іншими абонентами. Зокрема, функції мережі Інтернет також можна поділити на рівні відповідно до моделі OSI. Принципові відзнаки локальних мереж від глобальних, з погляду моделі OSI, спостерігаються тільки на нижніх рівнях моделі.
Мал. 5.1.  Сім рівнів моделі OSI
Функції, що входять в показаних на рис. 5.1 рівні, реалізуються кожним абонентом мережі. При цьому кожен рівень на одному абонентові працює так, як ніби він має прямий зв'язок з відповідним рівнем іншого абонента. Між однойменними рівнями абонентів мережі існує віртуальний (логічна) зв'язок, наприклад, між прикладними рівнями абонентів, що взаємодіють по мережі. Реальний же, фізичний зв'язок (кабель, радіоканал) абоненти однієї мережі мають тільки на самому нижньому, першому, фізичному рівні. У передавальному абонентові інформація минає всі рівні, зачинаючи з верхнього і закінчуючи нижним. У приймаючому абонентові отримана інформація здійснює зворотний шлях: від нижнього рівня до верхнього (рис. 5.2).
Мал. 5.2.  Шлях інформації від абонента до абонента
Дані, які необхідно передати по мережі, на шляху від верхнього (сьомого) рівня до нижнего (першого) минають процес інкапсуляції (рис. 4.6). Кожен нижченаведений рівень не лише проводить обробку даних, що приходять з більш високого рівня, але і забезпечує їх своїм заголовком, а також службовою інформацією. Такий процес обростання службовою інформацією триває до останнього (фізичного) рівня. На фізичному рівні вся ця багатооболонкова конструкція передається по кабелю приймачу. Там вона проробляє зворотну процедуру декапсуляції, тобто при передачі на вищестоящий рівень забирається одна з оболонок. Верхнього сьомого рівня досягають вже дані, звільнені від всіх оболонок, тобто від всієї службової інформації нижчестоячих рівнів. При цьому кожен рівень приймаючого абонента проводить обробку даних, отриманих з нижченаведеного рівня відповідно до прибираної їм службовою інформацією.
Якщо на шляху між абонентами в мережі включаються якісь проміжні пристрої (наприклад, трансивери, репітери, концентратори, комутатори, маршрутизатори), то і вони теж можуть виконувати функції, що входять в нижні рівні моделі OSI. Чим більше складність проміжного пристрою, тим більше рівнів воно захоплює. Але будь-який проміжний пристрій повинен приймати і повертати інформацію на нижньому, фізичному рівні. Всі внутрішні перетворення даних повинні проводитися двічі і в протилежних напрямах (рис. 5.3). Проміжні мережеві пристрої на відміну від повноцінних абонентів (наприклад, комп'ютерів) працюють тільки на нижніх рівнях і до того ж виконують двостороннє перетворення.
Мал. 5.3.  Включення проміжних пристроїв між абонентами мережі
Розгледимо докладніше за функцію різних рівнів.
Прикладний (7) рівень (Application Layer) або рівень додатків забезпечує послуги, що безпосередньо підтримують додатки користувача, наприклад, програмні засоби передачі файлів, доступу до баз даних, засоби електронної пошти, службу реєстрації на сервері. Цей рівень управляє рештою всіх шести рівнів. Наприклад, якщо користувач працює з електронними таблицями Excel і вирішує зберегти робочий файл в своїй директорії на мережевому файл-сервере, то прикладний рівень забезпечує переміщення файлу з робочого комп'ютера на мережевий диск прозоро для користувача.
Представницький (6) рівень (Presentation Layer) або рівень представлення даних визначає і перетворить формати даних і їх синтаксис у форму, зручну для мережі, тобто виконує функцію перекладача. Тут же проводиться шифрування і дешифрування даних, а при необхідності – і їх стискування. Стандартні формати існують для текстових файлів (ASCII, EBCDIC, HTML), звукових файлів (MIDI, MPEG, WAV), малюнків (JPEG, GIF, TIFF), відео (AVI). Всі перетворення форматів робляться на представницькому рівні. Якщо дані передаються у вигляді двійкової коди, то перетворення формату не вимагається.
Сеансовий (5) рівень (Session Layer) управляє проведенням сеансів зв'язку (тобто встановлює, підтримує і припиняє зв'язок). Цей рівень передбачає три режими установки сеансів: сімплексний (передача даних в одному напрямі), напівдуплексний (передача даних по черзі в двох напрямах) і повнодуплексний (передача даних одночасно в двох напрямах). Сеансовий рівень може також вставляти в потік даних спеціальні контрольні крапки, які дозволяють контролювати процес передачі при розриві зв'язку. Цей же рівень розпізнає логічні імена абонентів, контролює надані їм права доступу.
Транспортний (4) рівень (Transport Layer) забезпечує доставку пакетів без помилок і втрат, а також в потрібній послідовності. Тут же проводиться розбиття на блоки передаваних даних, що поміщаються в пакети, і відновлення даних, що приймаються, з пакетів. Доставка пакетів можлива як зі встановленням з'єднання (віртуального каналу), так і без. Транспортний рівень є прикордонним і єднальним між верхніми трьома, сильно залежними від додатків, і трьома нижніми рівнями, сильно прив'язаними до конкретної мережі.
Мережевий (3) рівень (Network Layer) відповідає за адресацію пакетів і переказ логічних імен (логічних адрес, наприклад, IP-адресов або IPX-адресов) у фізичні мережеві MAC-адреса (і назад). На цьому ж рівні вирішується завдання вибору маршруту (шляхи), по якому пакет доставляється за призначенням (якщо в мережі є декілька маршрутів). На мережевому рівні діють такі складні проміжні мережеві пристрої, як маршрутизатори.
Канальний (2) рівень або рівень управління лінією передачі (Data link Layer) відповідає за формування пакетів (кадрів) стандартного для даної мережі (Ethernet, Token-Ring, FDDI) вигляду, що включають початкове і кінцеве поля, що управляють. Тут же проводиться управління доступом до мережі, виявляються помилки передачі шляхом підрахунку контрольних сум, і проводиться повторна пересилка приймачу помилкових пакетів. Канальний рівень ділиться на два підрівні: верхній LLC і нижній MAC. На канальному рівні працюють такі проміжні мережеві пристрої, як, наприклад, комутатори.
Фізичний (1) рівень (Physical Layer) – це самий нижній рівень моделі, який відповідає за кодування передаваної інформації в рівні сигналів, прийняті у використовуваній середі передачі, і зворотне декодування. Тут же визначаються вимоги до з'єднувачів, роз'ємів, електричного узгодження, заземлення, захисту від перешкод і так далі На фізичному рівні працюють такі мережеві пристрої, як трансивери, репітери і репитерные концентратори.
Більшість функцій двох нижніх рівнів моделі (1 і 2) зазвичай реалізується апаратний (частка функцій рівня 2 – програмним драйвером мережевого адаптера). Саме на цих рівнях визначається швидкість передачі і топологія мережі, метод управління обміном і формат пакету, тобто те, що має безпосереднє відношення до типа мережі, наприклад, Ethernet, Token-Ring, FDDI, 100VG-AnyLAN. Вищі рівні, як правило, не працюють безпосередньо з конкретною апаратурою, хоча рівні 3, 4 і 5 ще можуть враховувати її особливості. Рівні 6 і 7 ніяк не пов'язані з апаратурою, заміни одного типа апаратури на іншій вони не помічають.
Як вже наголошувалося, в рівні 2 (канальному) нерідко виділяють два підрівні (sublayers) LLC і MAC (рис. 5.4):
Верхній підрівень (LLC – Logical Link Control) здійснює управління логічним зв'язком, тобто встановлює віртуальний канал зв'язку. Строго кажучи, ці функції не пов'язані з конкретним типом мережі, але частка з них все ж покладається на апаратуру мережі (мережевий адаптер). Інша частка функцій підрівня LLC виконується програмою драйвера мережевого адаптера. Підрівень LLC відповідає за взаємодію з рівнем 3 (мережевим).
Нижній підрівень (MAC – Media Access Control) забезпечує безпосередній доступ до середи передачі інформації (каналу зв'язку). Він безпосередньо пов'язаний з апаратурою мережі. Саме на підрівні MAC здійснюється взаємодія з фізичним рівнем. Тут проводиться контроль стану мережі, повторна передача пакетів задане число разів при колізіях, прийом пакетів і перевірка правильності передачі.
Окрім моделі OSI існує також модель IEEE Project 802, прийнята в лютому 1980 року (звідси і число 802 в назві), яку можна розглядувати як модифікацію, розвиток, уточнення моделі OSI. Стандарти, визначувані цією моделлю (так звані 802-спецификации) відносяться до нижніх двох рівнів моделі OSI і діляться на дванадцять категорій, кожною з яких привласнений свій номер:
Мал. 5.4.  Підрівні LLC і MAC канального рівня
802.1 – об'єднання мереж за допомогою мостів і комутаторів
802.2 – управління логічним зв'язком на підрівні LLC.
802.3 – локальна мережа з методом доступу CSMA/CD і топологією шина (Ethernet).
802.4 – локальна мережа з топологією шина і маркерним доступом (Token-Bus).
802.5 – локальна мережа з топологією кільце і маркерним доступом (Token-Ring).
802.6 – міська мережа (Metropolitan Area Network, MAN) з відстанями між абонентами більше 5 км.
802.7 – широкосмугова технологія передачі даних.
802.8 – оптоволоконна технологія.
802.9 – інтегровані мережі з можливістю передачі мови і даних.
802.10 – безпека мереж, шифрування даних.
802.11 – безпровідна мережа по радіоканалу (WLAN – Wireless LAN).
802.12 – локальна мережа з централізованим управлінням доступом по пріоритетах запитів і топологією зірка (100VG-AnyLAN).
Апаратура локальних мереж
Апаратура локальних мереж забезпечує реальний зв'язок між абонентами. Вибір апаратури має найважливіше значення на етапі проектування мережі, оскільки вартість апаратури складає найбільш істотну частку від вартості мережі в цілому, а заміна апаратури пов'язана не лише з додатковими витратами, але частенько і з трудомісткими роботами. До апаратури локальних мереж відносяться:
кабелі для передачі інформації;
роз'єми для приєднання кабелів;
терминаторы, що погоджують;
мережеві адаптери;
репітери;
трансивери;
концентратори;
мости;
маршрутизатори;
шлюзи.
Про перші три компоненти мережевої апаратури вже мовилося в попередніх розділах. А зараз слід зупинитися на функціях решти компонентів.
Мережеві адаптери (вони ж контроллери, карти, плати, інтерфейси, NIC – Network Interface Card) – це основна частка апаратури локальної мережі. Призначення мережевого адаптера – сполучення комп'ютера (або іншого абонента) з мережею, тобто забезпечення обміну інформацією між комп'ютером і каналом зв'язку відповідно до прийнятих правил обміну. Саме вони реалізують функції двох нижніх рівнів моделі OSI. Як правило, мережеві адаптери виконуються у вигляді плати (рис. 5.5), що вставляється в слоти розширення системної магістралі (шини) комп'ютера (частіше всього PCI, ISA або PC-Card). Плата мережевого адаптера зазвичай має також один або декілька зовнішніх роз'ємів для підключення до неї кабелю мережі.
Мал. 5.5.  Плата мережевого адаптера
Наприклад, мережеві адаптери Ethernet можуть випускатися з наступними наборами роз'ємів:
TPO – роз'їм RJ-45 (для кабелю на витих парах за стандартом 10BASE-T).
TPC – роз'єми RJ-45 (для кабелю на витих парах 10BASE-T) і BNC (для коаксіального кабелю 10BASE2).
TP – роз'їм RJ-45 (10BASE-T) і трансиверный роз'їм AUI.
Combo – роз'єми RJ-45 (10BASE-T), BNC (10BASE2), AUI.
Coax – роз'єми BNC, AUI.
FL – роз'їм ST (для оптоволоконного кабелю 10BASE-FL).
Функції мережевого адаптера діляться на магістральних і мережевих. До магістральних відносяться ті функції, які здійснюють взаємодію адаптера з магістраллю (системною шиною) комп'ютера (тобто пізнання своєї магістральної адреси, пересилка даних в комп'ютер і з комп'ютера, вироблення сигналу переривання комп'ютера і так далі). Мережеві функції забезпечують спілкування адаптера з мережею.
До основних мережевих функцій адаптерів відносяться:
гальванічна розв'язка комп'ютера і кабелю локальної мережі (для цього зазвичай використовується передача сигналів через імпульсні трансформатори);
перетворення логічних сигналів в мережевих (електричні або світлові) і назад;
кодування і декодування мережевих сигналів, тобто пряме і зворотне перетворення мережевих код передачі інформації (наприклад, манчестерський код);
пізнання пакетів, що приймаються (вибір зі всіх пакетів, що приходять, тих, які адресовані даному абонентові або всім абонентам мережі одночасно);
перетворення паралельної коди в послідовний при передачі і зворотне перетворення при прийомі;
буферизація передаваної інформації, що приймається, в буферній пам'яті адаптера;
організація доступу до мережі відповідно до прийнятого методу управління обміном;
підрахунок контрольної суми пакетів при передачі і прийомі.
Типовий алгоритм взаємодії комп'ютера з мережевим адаптером виглядає таким чином.
Якщо комп'ютер хоче передати пакет, то він спочатку формує цей пакет в своїй пам'яті, потім пересилає його в буферну пам'ять мережевого адаптера і дає команду адаптеру на передачу. Адаптер аналізує поточний стан мережі і при першій же нагоді видає пакет в мережу (виконує управління доступом до мережі). При цьому він проводить перетворення інформації з буферної пам'яті в послідовний вигляд для побитной передачі по мережі, підраховує контрольну суму, кодує біти пакету в мережевий код і через вузол гальванічної розв'язки видає пакет в кабель мережі. Буферна пам'ять в даному випадку дозволяє звільнити комп'ютер від контролю стану мережі, а також забезпечити потрібний для мережі темп видачі інформації.
Якщо по мережі приходить пакет, то мережевий адаптер через вузол гальванічної розв'язки приймає біти пакету, проводить їх декодування з мережевої коди і порівнює мережеву адресу приймача з пакету зі своєю власною адресою. Адреса мережевого адаптера, як правило, встановлюється виробником адаптера. Якщо адреса збігається, то мережевий адаптер записує пакет, що прийшов, в свою буферну пам'ять і повідомляє комп'ютер (зазвичай – сигналом апаратного переривання) про те, що прийшов пакет і його треба читати. Одночасно із записом пакету робиться підрахунок контрольної суми, що дозволяє до кінця прийому зробити вивід, чи є помилки в цьому пакеті. Буферна пам'ять в даному випадку знову ж таки дозволяє звільнити комп'ютер від контролю мережі, а також забезпечити високий ступінь готовності мережевого адаптера до прийому пакетів.
Найчастіше мережеві функції виконуються спеціальними мікросхемами високого ступеня інтеграції, що дає можливість понизити вартість адаптера і зменшити майдан його плати.
Деякі адаптери дозволяють реалізувати функцію видаленого завантаження, тобто підтримувати роботу в мережі бездисковых комп'ютерів, що завантажують свою операційну систему прямо з мережі. Для цього до складу таких адаптерів включається постійна пам'ять з відповідною програмою завантаження. Правда, не всі мережеві програмні засоби підтримують даний режим роботи.
Мережевий адаптер виконує функції першого і другого рівнів моделі OSI (рис. 5.6).
Мал. 5.6.  Функції мережевого адаптера в моделі OSI
Решта всіх апаратних засобів локальних мереж (окрім адаптерів) має допоміжний характер, і без них часто можна обійтися. Це мережеві проміжні пристрої.
Трансивери або приймачі (від англійського TRANsmitter + reCEIVER) служать для передачі інформації між адаптером і кабелем мережі або між двома сегментами (частями) мережі. Трансивери підсилюють сигнали, перетворять їх рівні або перетворять сигнали в іншу форму (наприклад, з електричної в світлову і назад). Трансиверами також часто називають вбудовані в адаптер приймачі.
Репітери або повторители (repeater) виконують простішу функцію, ніж трансивери. Вони не перетворять ні рівні сигналів, ні їх фізичну природу, а тільки відновлюють ослаблені сигнали (їх амплітуду і форму), приводячи їх до початкового вигляду. Мета такої ретрансляції сигналів полягає виключно в збільшенні довжини мережі (рис. 5.7).
Мал. 5.7.  З'єднання репітером двох сегментів мережі
Проте часто репітери виконують і деякі інші, допоміжні функції, наприклад, гальванічну розв'язку сегментів, що сполучаються, і крайове узгодження. Репітери так само як трансивери не проводять ніякої інформаційної обробки сигналів, що проходять через них.
Мал. 5.8.  Структура репитерного концентратора
Концентратори (хабы, hub), як випливає з їх назви, служать для об'єднання в мережу декількох сегментів. Концентраторами (або репитерные концентратори) є декілька зібраних в єдиному конструктиві репітерів, вони виконують ті ж функції, що і репітери (рис. 5.8).
Перевага подібних концентраторів в порівнянні з окремими репітерами в тому, що всі точки підключення зібрані в одному місці, це спрощує реконфігурацію мережі, контроль і пошук несправностей. До того ж всі репітери в даному випадку харчуються від єдиного якісного джерела живлення.
Концентратори інколи втручаються в обмін, допомагаючи усувати деякі явні помилки обміну. У будь-якому випадку вони працюють на першому рівні моделі OSI, оскільки мають справу тільки з фізичними сигналами, з бітами пакету і не аналізують вміст пакету, розглядуючи пакет як єдине ціле (рис. 5.9). На першому ж рівні працюють і трансивери, і репітери.
Випускаються також зовсім прості концентратори, які сполучають сегменти мережі без відновлення форми сигналів. Вони не збільшують довжину мережі.
Комутатори (свіч, що комутують концентратори, switch), як і концентратори, служать для з'єднання сегментів в мережу. Вони також виконують складніші функції, проводячи сортування пакетів, що поступають на них.
Комутатори передають з одного сегменту мережі в іншій не всі пакети, що поступають на них, а тільки ті, які адресовані комп'ютерам з іншого сегменту. Пакети, передавані між абонентами одного сегменту, через комутатор не минають. При цьому сам пакет комутатором не приймається, а тільки пересилається. Інтенсивність обміну в мережі знижується унаслідок розділення навантаження, оскільки кожен сегмент працює не лише зі своїми пакетами, але і з пакетами, що прийшли з інших сегментів.
Мал. 5.9.  Функції концентраторів, репітерів і трансиверів в моделі OSI
Комутатор працює на другому рівні моделі OSI (підрівень MAC), оскільки аналізує МАС-адреса усередині пакету (рис. 5.10). Природно, він виконує і функції першого рівня.
Мал. 5.10.  Функції комутаторів в моделі OSI
Останнім часом обсяг випуску комутаторів сильно виріс, ціна на них впала, тому комутатори поступово витісняють концентратори.
Мости (bridge), маршрутизатори (router) і шлюзи (gateway) служать для об'єднання в одну мережу декілька різнорідних мереж з різними протоколами обміну нижнього рівня, зокрема, з різними форматами пакетів, методами кодування, швидкістю передачі і так далі В результаті їх застосування складна і неоднорідна мережа, що містить в собі різні сегменти, з погляду користувача виглядає найзвичайнішою мережею. Забезпечується прозорість мережі для протоколів високого рівня. Всі вони набагато дорожчі, ніж концентратори, оскільки від них вимагається досить складна обробка інформації. Реалізуються вони зазвичай на базі комп'ютерів, підключених до мережі за допомогою мережевих адаптерів. По суті, вони є спеціалізовані абоненти (вузли) мережі.
Мости – найбільш прості пристрої, службовці для об'єднання мереж з різними стандартами обміну, наприклад, Ethernet і Arcnet, або декількох сегментів (часток) однієї і тієї ж мережі, наприклад, Ethernet (рис. 5.11). У останньому випадку міст, як і комутатор, тільки розділяє навантаження сегментів, підвищуючи тим самим продуктивність мережі в цілому. На відміну від комутаторів мости приймають пакети, що поступають, цілком і у разі потреби проводять їх просту обробку. Мости, як і комутатори, працюють на другому рівні моделі OSI (рис. 5.10), але на відміну від них можуть захоплювати також і верхній підрівень LLC другого рівня (для зв'язку різнорідних мереж). Останнім часом мости швидко витісняються комутаторами, які стають більш функціональними.
Мал. 5.11.  Включення моста
Маршрутизатори здійснюють вибір оптимального маршруту для кожного пакету з метою уникнення надмірного навантаження окремих ділянок мережі і обходу пошкоджених ділянок. Вони застосовуються, як правило, в складних розгалужених мережах, що мають декілька маршрутів між окремими абонентами. Маршрутизатори не перетворять протоколи нижніх рівнів, тому вони сполучають тільки сегменти однойменних мереж.
Маршрутизатори працюють на третьому рівні моделі OSI, оскільки вони аналізують не лише MAC-адреса пакету, але і IP-адреса, тобто більш глибоко проникають в інкапсульований пакет (рис. 5.12).
Мал. 5.12.  Функції маршрутизатора в моделі OSI
Існують також гібридні маршрутизатори (brouter), що є гібридом моста і маршрутизатора. Вони виділяють пакети, яким потрібна маршрутизація і обробляють їх як маршрутизатор, а для решти пакетів служать звичайним мостом.
Шлюзи – це пристрою для з'єднання мереж з протоколами, що сильно відрізняються, наприклад, для з'єднання локальних мереж з великими комп'ютерами або з глобальними мережами. Це найдорожчі і рідко вживані мережеві пристрої. Шлюзи реалізують зв'язок між абонентами на верхніх рівнях моделі OSI (з четвертого по сьомій). Відповідно, вони повинні виконувати і всі функції нижчестоячих рівнів.
Докладніше проміжні мережеві пристрої розгледять в розділах, присвячених конкретним стандартним локальними мережами.