Рівень представлення моделі OSI. Мережева модель OSI. Опис рівнів мережевої моделі

З того, що протокол є угодою, прийнятою двома взаємодіючими об'єктами, в даному випадку двома працюючими в мережі комп'ютерами, зовсім не випливає, що він обов'язково є стандартним. Але на практиці при реалізації мереж зазвичай використовуються стандартні протоколи. Це можуть бути фірмові, національні або міжнародні стандарти.

На початку 80-х років низка міжнародних організацій зі стандартизації – ISO, ITU-T та деякі інші – розробили модель, яка відіграла значну роль у розвитку мереж. Ця модель називається моделлю ISO/OSI.

Модель взаємодії відкритих систем (Open System Interconnection, OSI) визначає різні рівні взаємодії систем у мережах з комутацією пакетів, дає їм стандартні імена та вказує, які функції має виконувати кожен рівень.

Модель OSI була розроблена на підставі великого досвіду, отриманого при створенні комп'ютерних мереж, в основному глобальних, у 70-ті роки. Повний опис цієї моделі займає понад 1000 сторінок тексту.

У моделі OSI (рис. 11.6) засоби взаємодії діляться на сім рівнів: прикладний, представницький, сеансовий, транспортний, мережевий, канальний та фізичний. Кожен рівень має справу з певним аспектом взаємодії мережевих пристроїв.


Мал. 11.6.

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

Слід також мати на увазі, що програма може взяти на себе функції деяких верхніх рівнів моделі OSI. Наприклад, деякі СУБД мають вбудовані кошти віддаленого доступудо файлів. У цьому випадку програма, виконуючи доступ до віддалених ресурсів, не використовує системну файлову службу; воно обходить верхні рівні моделі OSI і звертається безпосередньо до системних засобів, відповідальних за транспортуванняповідомлень через мережу, які розміщуються на нижніх рівнях моделі OSI .

Отже, нехай додаток звертається із запитом до прикладного рівня, наприклад файлової служби . З цього запиту програмне забезпечення прикладного рівня формує повідомлення стандартного формату. Звичайне повідомлення складається з заголовка та поля даних. Заголовок містить службову інформацію, яку необхідно передати через мережу прикладного рівня машини-адресата, щоб повідомити, яку роботу треба виконати. У нашому випадку заголовок, очевидно, повинен містити інформацію про місцезнаходження файлу та тип операції, яку необхідно виконати. Поле даних повідомлення може бути порожнім або містити будь-які дані, наприклад, які потрібно записати у віддалений файл . Але для того, щоб доставити цю інформацію за призначенням, доведеться вирішити ще багато завдань, відповідальність за які несуть рівні, що нижче.

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

Модель Open Systems Interconnection (OSI)– це скелет, фундамент та база всіх мережевих сутностей. Модель визначає мережеві протоколи, розподіляючи їх у 7 логічних рівнів. Важливо, що в будь-якому процесі управління мережевою передачею переходить від рівня до рівня, послідовно підключаючи протоколи на кожному з рівнів.

Відео: модель OSI за 7 хвилин

Нижні рівні відповідають за фізичні параметри передачі, такі як електричні сигнали. Так - так, сигнали в проводах передаються за допомогою подання в струми:) Струми подаються у вигляді послідовності одиниць і нулів (1 і 0), потім дані декодуються і маршрутизуються по мережі. Вищі рівні охоплюють запити, пов'язані з поданням даних. Умовно кажучи, вищі рівні відповідають за мережеві дані з погляду користувача.

Модель OSI була спочатку придумана як стандартний підхід, архітектура або патерн, який би описував мережеву взаємодію будь-якого мережного додатка. Давайте розберемося детальніше?


#01: Фізичний (physical) рівень

На першому рівні моделі OSIвідбувається передача фізичних сигналів (струмів, світла, радіо) від джерела до одержувача. На цьому рівні ми оперуємо кабелями, контактами в роз'ємах, кодуванням одиниць та нулів, модуляцією тощо.

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

Зазначимо, що як носій даних можуть виступати не тільки електричні струми. Радіочастоти, світлові або інфрачервоні хвилі використовуються також у сучасних мережах.

Мережеві пристрої, які відносять до першого рівня це концентратори та репітери – тобто «дурні» залозки, які можуть просто працювати з фізичним сигналом, не вникаючи у його логіку (не декодуючи).

#02: Канальний (data Link) рівень

Уявіть, ми отримали фізичний сигнал першого рівня – фізичного. Це набір напруг різної амплітуди, хвиль чи радіочастот. При отриманні, на другому рівні перевіряються та виправляються помилки передачі. На другому рівні ми оперуємо поняттям "фрейм", або як ще кажуть "кадр". Тут виникають перші ідентифікатори – MAC – адреси. Вони складаються з 48 біт і виглядають приблизно так: 00:16:52:00:1f:03.

Канальний рівень складний. Тому його умовно кажучи ділять на два підрівні: управління логічним каналом (LLC, Logical Link Control) і управління доступом до середовища (MAC, Media Access Control).

На цьому рівні мешкають такі пристрої як комутатори та мости. До речі! Стандарт Ethernet також тут. Він затишно розташувався на першому та другому (1 та 2) рівнях моделі OSI.

#03: Мережевий (network) рівень

Ідемо вгору! Мережевий рівень запроваджує термін «маршрутизація» і, відповідно, IP – адресу. До речі, для перетворення IP-адрес в MAC-адреси і назад використовується протокол ARP.

Саме на цьому рівні відбувається маршрутизація трафіку як така. Якщо ми хочемо потрапити на сайт сайт, то ми відправляємо , отримуємо відповідь як IP – адреси і підставляємо їх у пакет. Так – так, якщо на другому рівні ми використовуємо термін фрейм/кадр, як ми говорили раніше, то ми використовуємо пакет.

З пристроїв тут живе його величність маршрутизатор:)

Процес, коли дані передаються з верхніх рівнів на нижні називається інкапсуляцієюданих, а коли навпаки, нагору, з першого, фізичного до сьомого, цей процес називається декапсуляцієюданих
#04: Транспортний (transport) рівень

Транспортний рівень, як можна зрозуміти з назви, забезпечує передачу даних через мережу. Тут дві основні рок – зірки – TCP та UDP. Різниця в тому, що різний транспорт застосовується до різної категорії трафіку. Принцип такий:

  • Трафік чутливий до втрат- немає проблем, TCP (Transmission Control Protocol)! Він забезпечує контроль над передачею даних;
  • Трохи втратимо – не страшно- за фактом, зараз, коли ви читаєте цю статтю, кілька пакетів могли й загубитися. Але це не відчувається для вас як для користувача. UDP (User Datagram Protocol) вам підійде. А якби це була телефонія? Втрата пакетів там критична, оскільки голос у реальному часі почне просто «квакати»;
#05: Сеансовий (session) рівень

Попросіть будь-якого мережевого інженера пояснити вам рівень сеансу. Йому буде важко це зробити, інфа 100%. Справа в тому, що у повсякденній роботі мережевий інженер взаємодіє з першими чотирма рівнями – фізичним, канальним, мережним та транспортним. Інші, чи звані «верхні» рівні ставляться більше роботи розробників софта:) Але ми спробуємо!

Сеансовий рівень займається тим, що керує з'єднаннями, чи просто кажучи, сесіями. Він їх розриває. Пам'ятайте про « НЕ БУЛО ЖОДНОГО РОЗРИВУ»? Ми пам'ятаємо. Так ось, це п'ятий рівень постарався:)

#06 Рівень вистави (presentation)

На шостому рівні відбувається перетворення форматів повідомлень, таке як кодування або стиснення. Тут живуть JPEG та GIF, наприклад. Також рівень відповідальний за передачу потоку на четвертий (транспортний рівень).

#07 Рівень програми (application)

На сьомому поверсі, на самій вершині айсберга, живе рівень додатків! Тут знаходяться мережеві служби, які дозволяють нам, як кінцевим користувачам, серфити простори інтернету. Погляньте, за яким протоколом у вас відкрита наша база знань? Вірно, HTTPS. Цей хлопець із сьомого поверху. Ще тут живуть прості HTTP, FTP і SMTP.

Чи корисна вам ця стаття?

Будь ласка, розкажіть чому?

Нам шкода, що стаття не була корисною для вас: (Будь ласка, якщо не утруднить, вкажіть з якої причини? Ми будемо дуже вдячні за докладну відповідь. Дякую, що допомагаєте нам стати кращими!

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

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

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

шеф-редактор

Модель

З того, що протокол є угодою, прийнятою двома взаємодіючими об'єктами, в даному випадку двома працюючими в мережі комп'ютерами, зовсім не випливає, що він обов'язково є стандартом. Але на практиці при реалізації мереж прагнуть використати стандартні протоколи. Це можуть бути фірмові, національні чи міжнародні стандарти.

Міжнародна Організація зі Стандартів (International Standards Organization, ISO) розробила модель, яка чітко визначає різні рівні взаємодії систем, дає їм стандартні імена та вказує, яку роботу має виконувати кожен рівень. Ця модель називається моделлю взаємодії відкритих систем (Open System Interconnection, OSI) або ISO/OSI.

У моделі OSI взаємодія поділяється на сім рівнів чи верств (рис. 1.1). Кожен рівень має справу з одним певним аспектом взаємодії. Таким чином, проблема взаємодії декомпозована на 7 приватних проблем, кожна з яких може бути вирішена незалежно від інших. Кожен рівень підтримує інтерфейси з вищими та нижчими рівнями.

Мал. 1.1. Модель взаємодії відкритих систем ISO/OSI

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

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

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

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

Крім терміну "повідомлення" (message) існують інші назви, використовувані мережевими фахівцями для позначення одиниці обміну даними. У стандартах ISO для протоколів будь-якого рівня використовується термін "протокольний блок даних" - Protocol Data Unit (PDU). Крім цього часто використовуються назви кадр (frame), пакет (packet), дейтаграма (datagram).

Функції рівнів моделі ISO/OSI

Фізичний рівень. Цей рівень має справу з передачею бітів по фізичних каналах, таких, наприклад, як коаксіальний кабель, кручена пара або оптоволоконний кабель. До цього рівня відносяться характеристики фізичних середовищ передачі даних, такі як смуга пропускання, схибленість, хвилевий опір та інші. На цьому рівні визначаються характеристики електричних сигналів, такі як вимоги до фронтів імпульсів, рівням напруги або струму переданого сигналу, тип кодування, швидкість передачі сигналів. Крім цього, тут стандартизуються типи роз'ємів та призначення кожного контакту.

Функції фізичного рівня реалізуються у всіх пристроях, підключених до мережі. З боку комп'ютера функції фізичного рівня виконуються мережним адаптером чи послідовним портом.

Прикладом протоколу фізичного рівня може служити специфікація 10Base-T технології Ethernet, яка визначає як кабель, що використовується, неекрановану кручена пара категорії 3 з хвильовим опором 100 Ом, роз'єм RJ-45, максимальну довжинуфізичного сегмента 100 метрів, манчестерський код для представлення даних на кабелі, та інші характеристики середовища та електричних сигналів.

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

У протоколах канального рівня, що використовуються в локальних мережах, закладено певну структуру зв'язків між комп'ютерами та способи їх адресації. Хоча канальний рівень і забезпечує доставку кадру між будь-якими двома вузлами локальної мережі, він це робить тільки в мережі з певною топологією зв'язків, саме тією топологією, для якої він був розроблений. До таких типових топологій, що підтримуються протоколами канального рівня локальних мереж, відносяться загальна шина, кільце та зірка. Прикладами протоколів канального рівня є Ethernet, Token Ring, FDDI, 100VG-AnyLAN.

У локальних мережах протоколи канального рівня використовуються комп'ютерами, мостами, комутаторами та маршрутизаторами. У комп'ютерах функції канального рівня реалізуються спільними зусиллями мережевих адаптерів та його драйверів.

У глобальних мережах, які рідко мають регулярну топологію, канальний рівень забезпечує обмін повідомленнями між двома сусідніми комп'ютерами, з'єднаними індивідуальною лінією зв'язку. Прикладами протоколів "точка - точка" (як часто називають такі протоколи) можуть бути поширені протоколи PPP і LAP-B.

Цей рівень служить для утворення єдиної транспортної системи, що об'єднує кілька мереж з різними принципами передачі між кінцевими вузлами. Розглянемо функції мережного рівня з прикладу локальних мереж. Протокол канального рівня локальних мереж забезпечує доставку даних між будь-якими вузлами лише у мережі з відповідною типовою топологією. Це дуже жорстке обмеження, яке дозволяє будувати мережі з розвиненою структурою, наприклад, мережі, які об'єднують кілька мереж підприємства у єдину мережу, чи високонадійні мережі, у яких існують надлишкові зв'язки між вузлами. Для того, щоб, з одного боку, зберегти простоту процедур передачі для типових топологій, а з іншого боку, допустити використання довільних топологій, використовується додатковий мережевий рівень. На цьому рівні запроваджується поняття "мережа". У цьому випадку під мережею розуміється сукупність комп'ютерів, з'єднаних між собою відповідно до однієї зі стандартних типових топологій і використовують передачі даних один із протоколів канального рівня, визначений для цієї топології.

Таким чином, усередині мережі доставка даних регулюється канальним рівнем, а ось доставкою даних між мережами займається мережний рівень.

Повідомлення мережевого рівня прийнято називати пакетами (packets). Під час організації доставки пакетів на мережному рівні використовується поняття "номер мережі". У цьому випадку адреса одержувача складається з номера мережі та номера комп'ютера в мережі.

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

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

На мережному рівні визначається два види протоколів. Перший вид відноситься до визначення правил передачі пакетів з даними кінцевих вузлів від вузла до маршрутизатора та між маршрутизаторами. Саме ці протоколи зазвичай мають на увазі, коли говорять про протоколи мережного рівня. До мережного рівня відносять і інший вид протоколів, які називаються протоколами обміну маршрутною інформацією. За допомогою цих протоколів маршрутизатори збирають інформацію про топологію міжмережевих з'єднань. Протоколи мережного рівня реалізуються програмними модулями операційної системи, а також програмними та апаратними засобами маршрутизаторів.

Прикладами протоколів мережного рівня є протокол міжмережевого взаємодії IP стека TCP/IP і протокол міжмережевого обміну пакетами IPX стека Novell.

Транспортний рівень. На шляху від відправника до одержувача пакети можуть бути спотворені або загублені. Хоча деякі програми мають власні засоби обробки помилок, існують і такі, які вважають за краще відразу мати справу з надійним з'єднанням. Робота транспортного рівня полягає в тому, щоб забезпечити додаткам або верхнім рівням стека - прикладному та сеансовому - передачу даних з тим ступенем надійності, який їм потрібний. Модель OSI визначає п'ять класів сервісу, що надаються транспортним рівнем. Ці види сервісу відрізняються якістю послуг, що надаються: терміновістю, можливістю відновлення перерваного зв'язку, наявністю засобів мультиплексування декількох з'єднань між різними прикладними протоколами через загальний транспортний протокол, а головне - здатністю до виявлення та виправлення помилок передачі, таких як спотворення, втрата та дублювання пакетів.

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

Як правило, всі протоколи, починаючи з транспортного рівня та вище, реалізуються програмними засобамикінцевих вузлів мережі – компонентами їх мережевих операційних систем. Як приклад транспортних протоколів можна навести протоколи TCP та UDP стека TCP/IP та протокол SPX стека Novell.

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

Цей рівень забезпечує гарантію того, що інформація, що передається прикладним рівнем, буде зрозуміла прикладному рівню в іншій системі. При необхідності рівень подання виконує перетворення форматів даних на деякий загальний формат подання, а на прийомі відповідно виконує зворотне перетворення. Таким чином, прикладні рівні можуть подолати, наприклад, синтаксичні відмінності у поданні даних. На цьому рівні може виконуватися шифрування та дешифрування даних, завдяки якому секретність обміну даними забезпечується одночасно для всіх прикладних сервісів. Прикладом протоколу, що працює на рівні подання, є протокол SSL (Secure Socket Layer), який забезпечує секретний обмін повідомленнями для протоколів прикладного рівня стека TCP/IP.

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

Існує дуже велика різноманітність протоколів прикладного рівня. Наведемо як приклади хоча б кілька найбільш поширених реалізацій файлових сервісів: NCP в операційній системі Novell NetWare, SMB Microsoft Windows NT, NFS, FTP і TFTP, що входять до стек TCP/IP.

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

Характеристика популярних стеків комунікаційних протоколів

Отже, взаємодія комп'ютерів у мережах відбувається відповідно до певних правил обміну повідомленнями та їх форматами, тобто відповідно до певних протоколів. Ієрархічно організована сукупність протоколів, вирішальних задачвзаємодія вузлів мережі називається стеком комунікаційних протоколів.

Існує досить багато стеків протоколів, які широко застосовуються в мережах. Це і стеки, що є міжнародними та національними стандартами, і фірмові стеки, що набули поширення завдяки поширенню обладнання тієї чи іншої фірми. Прикладами популярних стеків протоколів можуть бути стек IPX/SPX фірми Novell, стек TCP/IP, використовуваний в мережі Internetта в багатьох мережах на основі операційної системи UNIX, стек OSI міжнародної організації зі стандартизації, стек DECnet корпорації Digital Equipment та деякі інші.

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

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

Комп'ютери реалізують комунікаційні протоколи як відповідних програмних елементів мережевий операційної системи, наприклад, протоколи канального рівня, зазвичай, виконані як драйверів мережевих адаптерів, а протоколи верхніх рівнів як серверних і клієнтських компонент мережевих сервісів.

Вміння добре працювати серед тієї чи іншої операційної системи є важливою характеристикою комунікаційного устаткування. Часто можна прочитати в рекламі мережевого адаптера чи концентратора, що він розроблявся спеціально для роботи у мережі NetWare чи UNIX. Це означає, що розробники апаратури оптимізували її характеристики стосовно тих протоколів, які використовуються в цій мережній операційній системі, або до даної версії їх реалізації, якщо ці протоколи використовуються в різних ОС. Через особливості реалізації протоколів у різних ОС, як одну з характеристик комунікаційного обладнання використовується його сертифікованість на можливість роботи в середовищі даної ОС.

На нижніх рівнях - фізичному та канальному - практично у всіх стеках використовуються одні й самі протоколи. Це добре стандартизовані протоколи Ethernet, Token Ring, FDDI та деякі інші, які дозволяють використовувати у всіх мережах одну й ту саму апаратуру.

Протоколи мережного та більш високих рівнів існуючих стандартних стеків відрізняються великою різноманітністю та, як правило, не відповідають рекомендованому моделлю ISO розбиття на рівні. Зокрема, у цих стеках функції сеансового та представницького рівня найчастіше поєднані із прикладним рівнем. Така невідповідність пов'язана з тим, що модель ISO з'явилася як результат узагальнення існуючих і реально використовуваних стеків, а не навпаки.

Стек OSI

Слід розрізняти стек протоколів OSI та модель OSI. У той час, як модель OSI концептуально визначає процедуру взаємодії відкритих систем, декомпозируя задачу на 7 рівнів, стандартизує призначення кожного рівня і вводить стандартні назви рівнів, стек OSI - це набір цілком конкретних специфікацій протоколів, що утворюють узгоджений стек протоколів. Цей стек протоколів підтримує уряд США у своїй програмі GOSIP. Усе комп'ютерні мережі, які встановлюються в урядових установах після 1990 року, повинні безпосередньо підтримувати стек OSI, або забезпечувати кошти для переходу на цей стек у майбутньому. Тим не менш, стек OSI більш популярний у Європі, а не в США, тому що в Європі менше встановлено старих мереж, які використовують власні протоколи. У Європі також відчувається велика потреба у загальному стеку, оскільки тут є багато різних країн.

Це міжнародний незалежний від виробників стандарт. Він може забезпечити взаємодію між корпораціями, партнерами та постачальниками. Ця взаємодія ускладнюється через проблеми з адресацією, ім'ям та безпекою даних. Всі ці проблеми у стеку OSI частково вирішені. Протоколи OSI вимагають великих витрат обчислювальної потужності центрального процесоращо робить їх більш підходящими для потужних машин, а не для мереж персональних комп'ютерів. Більшість організацій поки що лише планують перехід до стеку OSI. З тих, хто працює у цьому напрямку, можна назвати Військово-морське відомство США та мережу NFSNET. Одним із найбільших виробників, що підтримують OSI, є компанія AT&T. Її мережа Stargroup повністю базується на стеку OSI.

З цілком очевидних причин стек OSI на відміну інших стандартних стеків повністю відповідає моделі взаємодії OSI, він включає специфікації всім семи рівнів моделі взаємодії відкритих систем (рис. 1.3).


Мал. 1.3. Стек OSI

на Стек OSI підтримує протоколи Ethernet, Token Ring, FDDI, а також протоколи LLC, X.25 та ISDN. Ці протоколи будуть детально обговорені в інших розділах посібника.

Сервіси мережевого, транспортного та сеансовогорівнівтакож є в стеку OSI, але вони мало поширені. На мережному рівні реалізовані протоколи без встановлення з'єднань, і з встановленням з'єднань. Транспортний протокол стека OSI відповідно до функцій, визначених для нього в моделі OSI, приховує різницю між мережевими сервісами з встановленням з'єднання і без встановлення з'єднання, так що користувачі отримують потрібну якість обслуговування незалежно від мережевого рівня. Щоб забезпечити це, транспортний рівень вимагає, щоб користувач поставив потрібну якість обслуговування. Визначено 5 класів транспортного сервісу, від нижчого класу 0 до вищого класу 4, які відрізняються ступенем стійкості до помилок та вимог до відновлення даних після помилок.

Сервіси прикладного рівня включають передачу файлів, емуляцію терміналу, службу каталогів та пошту. З них найбільш перспективними є служба каталогів (стандарт Х.500), електронна пошта (Х.400), протокол віртуального терміналу (VT), протокол передачі, доступу та управління файлами (FTAM), протокол пересилання та управління роботами (JTM). Останнім часом ISO сконцентрувало свої зусилля саме на сервісах верхнього рівня.

X.400

- це сімейство рекомендацій Міжнародного консультативного комітету з питань телеграфії та телефонії (CCITT), в яких описуються системи пересилання електронних повідомлень. На сьогоднішній день рекомендації X.400 є найпопулярнішим протоколом обміну повідомленнями. Рекомендації Х.400 описують модель системи обміну повідомленнями, протоколи взаємодії між усіма компонентами цієї системи, а також безліч видів повідомлень і можливості, якими володіє відправник по кожному виду повідомлень, що відправляються.

Рекомендації X.400 визначають наступний мінімально необхідний набір послуг, що надаються користувачам: управління доступом, ведення унікальних системних ідентифікаторів повідомлень, повідомлення про доставку або нестачу повідомлення із зазначенням причини, індикація типу змісту повідомлення, індикація перетворення вмісту повідомлення, часові позначки при передачі та доставці, вибір категорії доставки (термінова, несрочна, нормальна), багатоадресна доставка, затримана доставка (до певного моменту часу), перетворення вмісту для взаємодії з несумісними поштовими системами, наприклад, зі службами телексного та факсимільного зв'язків, запит про те, чи доставлено конкретне повідомлення, списки розсилки, які можуть мати вкладену структуру, засоби захисту повідомлень від несанкціонованого доступу, що базуються на асиметричній криптосистемі публічних ключів.

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

Над базою даних імен та адрес визначено такі операції:

  • читання - отримання адреси за відомим ім'ям,
  • запит - отримання імені за відомими атрибутами адреси,
  • модифікація, що включає видалення та додавання записів у базі даних.

Основні проблеми реалізації рекомендацій X.500 виникають із масштабності цього проекту, що претендує на роль всесвітньої довідкової служби. Тому програмне забезпечення, що реалізує рекомендації X.500, виходить дуже громіздким і висуває високі вимоги до продуктивності апаратури.

Протокол VTвирішує проблему несумісності різних протоколів емуляції терміналів. Зараз користувачеві персонального комп'ютера, сумісного з IBM PC, для одночасної роботи з комп'ютерами VAX, IBM 3090 та HP9000 потрібно придбати три різні програмидля емуляції терміналів різних типівта тих, що використовують різні протоколи. Якби кожен хост-комп'ютер мав у своєму складі програмне забезпечення протоколу емуляції терміналу ISO, то й користувачеві знадобилася б тільки одна програма, що підтримує протокол VT. У своєму стандарті ISO акумулювала поширені функції емуляції терміналів.

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

Протокол пересилання та управління роботами JTMдозволяє користувачам пересилати роботи, які мають бути виконані на хост-комп'ютері. Мова управління завданнями, яка забезпечує передачу робіт, вказує хост-комп'ютеру, які дії та з якими програмами та файлами мають бути виконані. Протокол JTM підтримує традиційну пакетну обробку, обробку транзакцій, введення віддалених завдань та доступ до розподілених баз даних.

Стек TCP/IP

Стек TCP/IP, званий також стеком DoD і стеком Internet, одна із найпопулярніших і перспективних стеків комунікаційних протоколів. Якщо в даний час він поширений в основному в мережах з ОС UNIX, то реалізація його в останніх версіяхмережевих операційних систем для персональних комп'ютерів (Windows NT, NetWare) є гарною передумовою швидкого зростання кількості установок стека TCP/IP.

Стек був розроблений з ініціативи Міністерства оборони США (Department of Defence, DoD) понад 20 років тому для зв'язку експериментальної мережі ARPAnet з іншими сателітними мережами як набір загальних протоколів для різнорідного обчислювального середовища. Мережа ARPA підтримувала розробників та дослідників у військових галузях. У мережі ARPA зв'язок між двома комп'ютерами здійснювався з використанням протоколу Internet Protocol (IP), який і до сьогодні є одним з основних у стеку TCP/IP і фігурує у назві стека.

Великий внесок у розвиток стека TCP/IP зробив університет Берклі, реалізувавши протоколи стека у своїй версії ОС UNIX. Широке поширення ОС UNIX призвело і до поширення протоколу IP та інших протоколів стека. На цьому ж стеку працює всесвітня інформаційна мережа Internet, чий підрозділ Internet Engineering Task Force (IETF) робить основний внесок у вдосконалення стандартів стека, що публікуються у формі специфікацій RFC.

Оскільки стек TCP/IP розробили до появи моделі взаємодії відкритих систем ISO/OSI, хоча він також має багаторівневу структуру, відповідність рівнів стека TCP/IP рівням моделі OSI досить умовно.

Структура протоколів TCP/IP наведено малюнку 1.4. Протоколи TCP/IP поділяються на 4 рівні.

Мал. 1.4. Стек TCP/IP

Найнижчий ( рівень IV ) - рівень між мережевих інтерфейсів- відповідає фізичному та канальному рівням моделі OSI. Цей рівень у протоколах TCP/IP не регламентується, але підтримує всі популярні стандарти фізичного та канального рівня: для локальних каналів це Ethernet, Token Ring, FDDI, для глобальних каналів – власні протоколи роботи на аналогових комутованих та виділених лініях SLIP/PPP, які встановлюють з'єднання типу "крапка - точка" через послідовні канали глобальних мереж, та протоколи територіальних мереж X.25 та ISDN. Розроблено також спеціальну специфікацію, що визначає використання технології ATM як транспорт канального рівня.

Наступний рівень ( рівень III ) - це рівень міжмережевої взаємодії, який займається передачею дейтаграм з використанням різних локальних мереж, територіальних мереж X.25, ліній спеціального зв'язку тощо. Як основний протокол мережевого рівня (у термінах моделі OSI) у стеку використовується протокол IP, який спочатку проектувався як протокол передачі пакетів у складових мережах, що з великої кількості локальних мереж, об'єднаних як локальними, і глобальними зв'язками. Тому протокол IP добре працює в мережах зі складною топологією, раціонально використовуючи наявність у них підсистем та економно витрачаючи пропускну спроможністьнизькошвидкісних ліній зв'язку. Протокол IP є дейтаграмним протоколом.

До рівня міжмережевої взаємодії відносяться і всі протоколи, пов'язані зі складанням та модифікацією таблиць маршрутизації, такі як протоколи збору маршрутної інформації RIP(Routing Internet Protocol) та OSPF(Open Shortest Path First), а також протокол міжмережевих керуючих повідомлень ICMP(Internet Control Message Protocol). Останній протокол призначений для обміну інформацією про помилки між маршрутизатором та шлюзом, системою-джерелом та системою-приймачем, тобто для організації зворотнього зв'язку. За допомогою спеціальних пакетів ICMP повідомляється про неможливість доставки пакета, про перевищення часу життя або тривалість складання пакету з фрагментів, про аномальні величини параметрів, про зміну маршруту пересилання та типу обслуговування, про стан системи тощо.

Наступний рівень ( рівень II) називається основним. На цьому рівні функціонують протокол керування передачею TCP(Transmission Control Protocol) та протокол дейтаграм користувача UDP(User Datagram Protocol). Протокол TCP забезпечує стійке віртуальне з'єднання між віддаленими прикладними процесами. Протокол UDP забезпечує передачу прикладних пакетів дейтаграмним методом, тобто без встановлення віртуального з'єднання, тому вимагає менших накладних витрат, ніж TCP.

Верхній рівень ( рівень I) називається прикладним. За довгі роки використання в мережах різних країн та організацій стек TCP/IP накопичив велику кількість протоколів та сервісів прикладного рівня. До них відносяться такі протоколи, що широко використовуються, як протокол копіювання файлів FTP, протокол емуляції терміналу telnet, поштовий. протокол SMTP, що використовується в електронній пошті мережі Internet та її російської гілки РЕЛКОМ, гіпертекстові послуги доступу до віддаленої інформації, такі як WWW та багато інших. Зупинимося докладніше на деяких з них, найбільш тісно пов'язаних з тематикою даного курсу.

Протокол SNMP(Simple Network Management Protocol) використовується для організації мережевого керування. Проблема управління поділяється тут на дві задачі. Перше завдання пов'язані з передачею інформації. Протоколи передачі інформації, що управляє, визначають процедуру взаємодії сервера з програмою-клієнтом, що працює на хості адміністратора. Вони визначають формати повідомлень, якими обмінюються клієнти та сервери, а також формати імен та адрес. Друге завдання пов'язані з контрольованими даними. Стандарти регламентують, які дані повинні зберігатися та накопичуватися у шлюзах, імена цих даних та синтаксис цих імен. У стандарті SNMP визначено специфікацію інформаційної базиданих управління мережею. Ця специфікація, відома як база даних MIB (Management Information Base), визначає елементи даних, які хост або шлюз повинен зберігати, і допустимі операції над ними.

Протокол пересилання файлів FTP(File Transfer Protocol) реалізує віддалений доступ до файлу. Для того, щоб забезпечити надійну передачу, FTP використовує як транспорт протокол з встановленням з'єднань - TCP. Крім пересилання файлів протокол, FTP пропонує інші послуги. Так користувачеві надається можливість інтерактивної роботиз віддаленою машиною, наприклад, він може роздрукувати вміст її каталогів, FTP дозволяє користувачеві вказувати тип і формат даних, що запам'ятовуються. Нарешті, FTP виконує автентифікацію користувачів. Перш ніж отримати доступ до файлу, відповідно до протоколу користувачі повинні повідомити своє ім'я та пароль.

У стеку TCP/IP протокол FTP пропонує найбільш широкий набір послуг для роботи з файлами, проте він є найскладнішим для програмування. Програми, яким не потрібні всі можливості FTP, можуть використовувати інший, більш економічний протокол - найпростіший протокол пересилання файлів TFTP(Trivial File Transfer Protocol). Цей протокол реалізує лише передачу файлів, причому як транспорт використовується більш простий, ніж TCP, протокол без встановлення з'єднання - UDP.

Протокол telnetзабезпечує передачу потоку байтів між процесами, а також між процесом та терміналом. Найчастіше цей протокол використовується для емуляції терміналу віддаленої ЕОМ.

Стек IPX/SPX

Цей стек є оригінальним стеком протоколів фірми Novell, яку вона розробила для своєї мережної операційної системи NetWare ще на початку 80-х років. Протоколи Internetwork Packet Exchange (IPX) та Sequenced Packet Exchange (SPX), які дали ім'я стеку, є прямою адаптацією протоколів XNS фірми Xerox, поширених значно меншою мірою, ніж IPX/SPX. За кількістю установок протоколи IPX/SPX лідирують, і це зумовлено тим, що сама ОС NetWare займає лідируючу позицію з часткою установок у світовому масштабі приблизно 65%.

Сімейство протоколів фірми Novell та їх відповідність моделі ISO/OSI представлено малюнку 1.5.

Мал. 1.5. Стек IPX/SPX

на фізичному та канальному рівнях у мережах Novell використовуються всі популярні протоколи цих рівнів (Ethernet, Token Ring, FDDI та інші).

на мережевому рівні у стеку Novell працює протокол IPX, а також протоколи обміну маршрутною інформацією RIPі NLSP(Аналог протоколу OSPF стека TCP/IP). IPX є протоколом, який займається питаннями адресації та маршрутизації пакетів у мережах Novell. Маршрутні рішення IPX ґрунтуються на адресних полях у заголовку його пакета, а також на інформації, що надходить від протоколів обміну маршрутною інформацією. Наприклад, IPX використовує інформацію, що постачається протоколом RIP, або протоколом NLSP (NetWare Link State Protocol) для передачі пакетів комп'ютера призначення або наступному маршрутизатору. Протокол IPX підтримує лише дейтаграмний метод обміну повідомленнями, за рахунок чого бюджетно споживає обчислювальні ресурси. Отже, протокол IPX забезпечує виконання трьох функцій: завдання адреси, встановлення маршруту та розсилку дейтаграм.

Транспортному рівню моделі OSI у стеку Novell відповідає протокол SPX, який здійснює передачу повідомлень із встановленням з'єднань.

На верхніх прикладному, представницькому та сеансовому рівняхпрацюють протоколи NCP та SAP. Протокол NCP(NetWare Core Protocol) є протоколом взаємодії сервера NetWare та оболонки робочої станції. Цей протокол прикладного рівня реалізує архітектуру клієнт-сервер на найвищих рівнях моделі OSI. За допомогою функцій цього протоколу робоча станція здійснює підключення до сервера, відображає каталоги сервера на локальні літери дисководів, переглядає файлову систему сервера, копіює видалені файли, змінює їх атрибути тощо, а також здійснює поділ мережевого принтераміж робітничими станціями.

(Service Advertising Protocol) - протокол оголошення про сервіс - концептуально подібний до протоколу RIP. Подібно до того, як протокол RIP дозволяє маршрутизаторам обмінюватися маршрутною інформацією, протокол SAP дає можливість мережевим пристроям обмінюватися інформацією про наявні мережеві сервіси.

Сервери та маршрутизатори використовують SAP для оголошення про свої сервісні послуги та мережні адреси. Протокол SAP дозволяє мережевим пристроям постійно коригувати дані про те, які сервісні послуги є зараз у мережі. При старті сервери використовують SAP для оповіщення решти мережі про свої послуги. Коли сервер завершує роботу, він використовує SAP для того, щоб сповістити мережу про припинення дії своїх послуг.

У мережах Novell сервери NetWare 3.x щохвилини розсилають широкомовні пакети SAP. Пакети SAP значною мірою засмічують мережу, тому одним із основних завдань маршрутизаторів, що виходять на глобальні зв'язки, є фільтрація трафіку SAP-пакетів та RIP-пакетів.

Особливості стека IPX/SPX обумовлені особливостями ОС NetWare, а саме її орієнтацією ранніх версій(До 4.0) на роботу в локальних мережах невеликих розмірів, що складаються з персональних комп'ютерів зі скромними ресурсами. Тому Novell були потрібні протоколи, на реалізацію яких була потрібна мінімальна кількість оперативної пам'яті(обмеженої в IBM-сумісних комп'ютерах під керуванням MS-DOS 640 Кбайтами) і які швидко працювали на процесорах невеликої обчислювальної потужності. В результаті, протоколи стека IPX/SPX донедавна добре працювали в локальних мережах і не дуже - у великих корпоративних мережах, оскільки надто перевантажували повільні глобальні зв'язки широкомовними пакетами, які інтенсивно використовуються кількома протоколами цього стеку (наприклад, для встановлення зв'язку між клієнтами) та серверами).

Ця обставина, а також той факт, що стек IPX/SPX є власністю фірми Novell і на його реалізацію потрібно отримувати ліцензію, довгий час обмежували поширеність його тільки мережами NetWare. Однак на момент випуску версії NetWare 4.0, Novell внесла і продовжує вносити у свої протоколи серйозні зміни, спрямовані на пристосування їх до роботи в корпоративних мережах. Зараз стек IPX/SPX реалізований у NetWare, а й у кількох інших популярних мережевих ОС - SCO UNIX, Sun Solaris, Microsoft Windows NT.

Стек NetBIOS/SMB

Фірми Microsoft та IBM спільно працювали над мережними засобами для персональних комп'ютерів, тому стек протоколів NetBIOS/SMB є спільним дітищем. Кошти NetBIOS з'явилися в 1984 році як мережеве розширення стандартних функцій базової системи вводу/виводу (BIOS) IBM PC для мережевої програми PC Network фірми IBM, яка прикладному рівні (рис. 1.6) використовувала реалізації мережевих сервісів протокол SMB (Server Message Block).

Мал. 1.6. Стек NetBIOS/SMB

Протокол NetBIOSпрацює на трьох рівнях моделі взаємодії відкритих систем: мережевому, транспортному та сеансовому. NetBIOS може забезпечити сервіс вищого рівня, ніж протоколи IPX і SPX, проте має здатність до маршрутизації. Таким чином, NetBIOS не є мережевим протоколом у строгому значенні цього слова. NetBIOS містить багато корисних мережевих функцій, які можна віднести до мережного, транспортного та сеансового рівнів, проте з його допомогою неможлива маршрутизація пакетів, тому що в протоколі обміну кадрами NetBIOS не вводиться таке поняття як мережа. Це обмежує застосування протоколу NetBIOS локальними мережами, які не розділені на підмережі. NetBIOS підтримує як дейтаграмний обмін, і обмін із встановленням з'єднань.

Протокол SMB, Що відповідає прикладному та представницькому рівням моделі OSI, регламентує взаємодію робочої станції з сервером. У функції SMB входять такі операції:

  • Управління сесіями. Створення та розрив логічного каналу між робочою станцією та мережевими ресурсами файлового сервера.
  • Файловий доступ. Робоча станція може звернутися до файл-сервера із запитами на створення та видалення каталогів, створення, відкриття та закриття файлів, читання та запис у файли, перейменування та видалення файлів, пошук файлів, отримання та встановлення файлових атрибутів, блокування записів.
  • Сервіс друку. Робоча станція може ставити файли в чергу для друку на сервері та отримувати інформацію про чергу друку.
  • Сервіс повідомлень. SMB підтримує просту передачу повідомлень з такими функціями: надіслати просте повідомлення; надіслати широкомовне повідомлення; надіслати початок блоку повідомлень; надіслати текст блоку повідомлень; надіслати кінець блоку повідомлень; переслати ім'я користувача; скасувати пересилання; отримати ім'я машини.

Через велику кількість програм, що використовують функції API, що надаються NetBIOS, у багатьох мережних ОС ці функції реалізовані у вигляді інтерфейсу до своїх транспортних протоколів. NetWare має програму, яка емулює функції NetBIOS на основі протоколу IPX, існують програмні емулятори NetBIOS для Windows NT і стека TCP/IP.

Навіщо нам це цінне знання? (Editorial)

Якось задав мені один колега каверзне питання. Ну ось, каже, знаєш ти, що таке модель OSI... І для чого тобі це потрібно, яка від цього знання практична користь: хіба що повипендрюватись перед чайниками? Неправда, користь від цього знання є системним підходом при вирішенні багатьох практичних властивостей завдань. Наприклад:

  • troubleshooting (
виявлення та усунення несправностей)

Приходить до вас як до адміністратору (досвідченому сетевику) користувач (просто приятель) і каже - у мене тут "не з'єднує". Нема, каже, сіті і все тут. Починаєте розбиратися. Так ось, виходячи з опеньки спостереження за ближніми своїми, я помітила, що дії людини, "не усвідомлює модель OSI в серці своєму", відрізняються характерною хаотичність: то провід смикає, то раптом у браузері щось поколупає. І призводить це часто до того, що рухаючись без напряму такий "фахівець" посмикує будь-що і будь-де, крім як в області несправності, вбивши купу свого і чужого часу. При усвідомленні існування рівнів взаємодії рух буде більш послідовним. І хоча відправна точка може бути різною (у кожній книзі рекомендації, що мені траплялася, дещо відрізнялися), загальна логічна посилка пошуку несправності така - якщо на рівні Х взаємодія здійснюється коректно, то і на рівні Х-1 швидше за все теж все в порядку. Принаймні для кожного конкретного моментучасу. Виробляючи траблшутинг в IP-мережах особисто я починаю "копати" від другого рівня стека DOD, він же третій рівень OSI, він Internet Protocol. У перших тому, що найлегше зробити "поверхневий огляд пацієнта" (пацієнт швидше пінгується, ніж не пінгується), ну і по друге, якщо, слава ті Господи, пінгується, можна відкинути малоприємні маніпуляції з тестуванням кабелю, мережевих карт і розбирань та іншими приємними речами;) Хоча в особливо важких випадках доведеться починати все-таки з рівня першого, причому найсерйознішим чином.

  • порозуміння з колегами

Для ілюстрування цього пункту наведу вам як приклад таку байку з життя. Якось знайомі мої з однієї невеликої фірми покликали мене в гості допомогти розібратися, чому мережа погано працює, і дати якісь рекомендації щодо цього. Приходжу я до контори. А у них там виявляється навіть адмін є, званий за старою доброю традицією "програміст" (а взагалі-то він FoxPro в основному займається;) - старе доперебудовне загартування IT-фахівець. Ну, я в нього питаю, що у вас за мережу? Він: "У сенсі? Ну просто мережа". Мережа загалом як мережа. Ну я навідуюча питання: на мережевому рівні який протокол використовується? Він: "А це ДЕ?" Я уточнюю: "Ну IP або IPX або що там у вас..." "О" - каже, - "здається так: IPX/ще-там-что-то!" До речі, "ще-там-что-то", як ви могли помітити, від мережевого рівня трохи вище розташований, ну та не суть ... Що характерно, він цю мережу побудував і навіть погано бідно супроводжував. Не дивно що вона зачахла-то... ;) А знав би про OSI - у 5 хвилин би схемку подряпав - від 10Base-2 до прикладних програм. І не довелося б під стіл лазити - коаксіальні дроти оглядати.

  • вивчення нових технологій

На цьому важливому аспекті я вже зупинялася в передмові і ще раз повторюся: при вивченні нового протоколу слід в першу чергу розібратися: а) в якому стеку(ах) протоколів його місце і б) в якій саме частині стека і з ким взаємодіє знизу з ним зверху може ... :) І повна ясність у голові від цього настане. А формати повідомлень та API різнякі - ну це вже справа техніки:)

Олександр Горячов, Олексій Нісковський

Для того, щоб сервери та клієнти мережі могли спілкуватися, вони повинні працювати з використанням одного протоколу обміну інформацією, тобто повинні говорити однією мовою. Протокол визначає набір правил організації обміну інформацією всіх рівнях взаємодії мережевих об'єктів.

Існує еталонна модель взаємодії відкритих систем (Open System Interconnection Reference Model), яка часто називається моделлю OSI. Ця модель розроблена Міжнародною організацією зі стандартизації (International Organization for Standardization, ISO). Модель OSI визначає схему взаємодії мережевих об'єктів, визначає перелік завдань та правила передачі даних. Вона включає сім рівнів: фізичний (Physical - 1), канальний (Data-Link - 2), мережевий (Network - 3), транспортний (Transport - 4), сеансовий (Session - 5), подання даних (Presentation - 6) ) та прикладної (Application - 7). Вважається, що два комп'ютери можуть взаємодіяти один з одним на конкретному рівні моделі OSI, якщо їх програмне забезпечення, що реалізує мережеві функції цього рівня, однаково інтерпретує ті самі дані. У цьому випадку встановлюється пряма взаємодія між двома комп'ютерами, яка називається «точка-точка».

Реалізації моделі OSI протоколами називаються стеками (наборами) протоколів. В рамках одного конкретного протоколу неможливо реалізувати всі функції OSI. Зазвичай завдання конкретного рівня реалізуються одним чи кількома протоколами. На одному комп'ютері мають працювати протоколи з одного стека. При цьому комп'ютер одночасно може використовувати декілька стеків протоколів.

Розглянемо завдання, розв'язувані кожному з рівнів моделі OSI.

Фізичний рівень

На цьому рівні моделі OSI визначаються такі характеристики мережевих компонентів: типи з'єднань середовищ передачі даних, фізичні топології мережі, способи передачі даних (з цифровим або аналоговим кодуванням сигналів), види синхронізації даних, що подаються, поділ каналів зв'язку з використанням частотного і тимчасового мультиплексування.

Реалізації протоколів фізичного рівня моделі OSI координують правила передачі бітів.

Фізичний рівень не включає опис середовища передачі. Проте реалізації протоколів фізичного рівня є специфічними для конкретного середовища передачі. З фізичним рівнем зазвичай асоціюється підключення наступного мережного обладнання:

  • концентраторів, хабів та повторювачів, що регенерують електричні сигнали;
  • сполучних роз'ємів середовища передачі, що забезпечують механічний інтерфейс для зв'язку пристрою із середовищем передачі;
  • модемів та різних перетворювальних пристроїв, що виконують цифрові та аналогові перетворення.

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

Першою в базовому наборіє шинна (bus) топологія. У цьому випадку всі мережні пристрої та комп'ютери підключаються до загальної шини передачі даних, яка найчастіше формується за допомогою коаксіального кабелю. Кабель, який формує загальну шину, називається магістральним (backbone). Від кожного пристрою, підключеного до шини, сигнал передається в обидві сторони. Для видалення сигналу з кабелю на кінцях шини слід використовувати спеціальні переривники (terminator). Механічне пошкодження магістралі позначається роботі всіх пристроїв, підключених до неї.

Кільцева топологія передбачає з'єднання всіх мережевих пристроїв та комп'ютерів у фізичне кільце (ring). У цій топології інформація завжди передається по кільцю в один бік – від станції до станції. Кожен мережний пристрій повинен мати приймач інформації на вхідному кабелі та передавач на вихідному. Механічне пошкодження середовища передачі інформації в одинарному кільці вплине на роботу всіх пристроїв, проте мережі, побудовані з використанням подвійного кільця, як правило, мають запас від стійкості до відмови та функції самовідновлення. У мережах, побудованих на подвійному кільці, та сама інформація передається по кільцю в обидві сторони. У разі пошкодження кабелю кільце продовжуватиме працювати в режимі одинарного кільця на подвійній довжині (функції самовідновлення визначаються апаратними засобами).

Наступною топологією є зіркоподібна топологія або зірка (star). Вона передбачає наявність центрального пристрою, до якого променями (окремими кабелями) підключаються інші мережеві пристрої та комп'ютери. Мережі, побудовані на зіркоподібній топології, мають одиночну точку відмови. Цією точкою є центральний пристрій. У разі виходу з ладу центрального пристрою решта учасників мережі не зможуть обмінюватися інформацією між собою, оскільки весь обмін здійснювався тільки через центральний пристрій. Залежно від типу центрального пристрою сигнал, що приймається з одного входу, може транслюватися (з посиленням або без) на всі виходи або на конкретний вихід, до якого підключено пристрій - одержувач інформації.

Повнозв'язана (mesh) топологія має високу стійкість до відмови. При побудові мереж із подібною топологією кожен із мережевих пристроїв або комп'ютерів з'єднується з кожним іншим компонентом мережі. Ця топологія має надмірність, за рахунок чого здається непрактичною. Дійсно, у малих мережах ця топологія застосовується рідко, проте у великих корпоративних мережах пов'язана топологія може використовуватися для поєднання найважливіших вузлів.

Розглянуті топології найчастіше будуються із застосуванням кабельних з'єднань.

Існує ще одна топологія, яка використовує бездротові з'єднання, - Стільникова (cellular). У ній мережеві пристрої та комп'ютери об'єднуються в зони - комірки (cell), взаємодіючи тільки з приймально-передавальним пристроєм комірки. Передача інформації між осередками здійснюється приймально-передаючими пристроями.

Канальний рівень

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

Протоколами канального рівня визначаються:

  • правила організації бітів фізичного рівня (двійкові одиниці та нулі) до логічних груп інформації, які називаються кадрами (frame), або кадрами. Фрейм є одиницею даних канального рівня, що складається з безперервної послідовності згрупованих бітів, що має заголовок та закінчення;
  • правила виявлення (і іноді виправлення) помилок під час передачі;
  • правила керування потоками даних (для пристроїв, що працюють на цьому рівні моделі OSI, наприклад мостів);
  • правила ідентифікації комп'ютерів у мережі за їх фізичними адресами.

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

З канальним рівнем зазвичай пов'язані такі мережні з'єднувальні пристрої:

  • мости;
  • інтелектуальні концентратори;
  • комутатори;
  • мережні інтерфейсні плати (мережеві інтерфейсні карти, адаптери тощо).

Функції канального рівня поділяються на два підрівні (табл. 1):

  • керування доступом до середовища передачі (Media Access Control, MAC);
  • керування логічним з'єднанням (Logical Link Control, LLC).

Підрівень MAC визначає такі елементи канального рівня, як логічна топологія мережі, метод доступу до середовища передачі інформації та правила фізичної адресації між об'єктами мережі.

Абревіатура MAC також використовується при визначенні фізичної адреси мережного пристрою: фізична адреса пристрою (яка визначається всередині мережевого пристрою або мережної карти на етапі виробництва) часто називають MAC-адресою цього пристрою. Для великої кількості мережевих пристроїв, особливо мережевих карток, існує можливість програмно змінити MAC-адресу. При цьому необхідно пам'ятати, що канальний рівень моделі OSI накладає обмеження на використання MAC-адрес: в одній фізичній мережі (сегмент більше за розміром мережі) не може бути двох або більше пристроїв, що використовують однакові MAC-адреси. Для визначення фізичної адреси мережного об'єкта можна використовувати поняття «адреса вузла» (node ​​address). Адреса вузла найчастіше збігається з MAC-адресою або логічно визначається при програмному перепризначенні адреси.

Підрівень LLC визначає правила синхронізації передачі та сервісу з'єднань. Цей рівень канального рівня тісно взаємодіє з мережевим рівнем моделі OSI і відповідає за надійність фізичних (з використанням MAC-адрес) сполук. Логічна топологія (logical topology) мережі визначає спосіб і правила (послідовність) передачі між комп'ютерами в мережі. Мережеві об'єкти передають дані залежно від логічної топології мережі. Фізична топологія визначає фізичний шлях даних; у деяких випадках фізична топологія не відбиває спосіб функціонування мережі. Фактичний шлях даних визначається логічною топологією. Для передачі даних логічним шляхом, який може відрізнятися від шляху у фізичному середовищі, використовуються мережні пристрої підключення та схеми доступу до середовища передачі. Гарний прикладвідмінностей між фізичною та логічною топологіями - мережа Token Ring фірми IBM. У локальних мережах Token Ring часто використовується мідний кабель, який прокладається у зіркоподібну схему із центральним розгалужувачем (хабом). На відміну від нормальної зіркоподібної топології хаб не пересилає вхідні сигнали всім іншим підключеним пристроям. Внутрішня схема хаба послідовно надсилає кожен вхідний сигнал наступного пристроюу наперед визначеному логічному кільці, тобто за круговою схемою. Фізичною топологією цієї мережі є зірка, а логічною – кільце.

Ще одним прикладом відмінностей між фізичною та логічною топологіями може бути мережа Ethernet. Фізична мережа може бути побудована з використанням мідних кабелів та центрального хаба. Утворюється фізична мережа, виконана за топологією зірки. Однак технологія Ethernet передбачає передачу інформації від одного комп'ютера до інших, що знаходяться в мережі. Хаб повинен ретранслювати прийнятий з одного порту сигнал на всі інші порти. Утворена логічна мережа із шинною топологією.

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

  • у логічних шинних топологіях кожен сигнал приймається всіма пристроями;
  • в логічних кільцевих топологіях кожен пристрій отримує ті сигнали, які були надіслані саме йому.

Також важливо знати, як мережні пристрої отримують доступ до середовища передачі інформації.

Доступ до середовища передачі

Логічні топології використовують спеціальні правила, що керують дозволом на передачу інформації іншим мережевим об'єктам. Процес керування контролює доступ до середовища передачі даних. Розглянемо мережу, де всім пристроям дозволено функціонувати без будь-яких правил отримання доступу до середовища передачі. Всі пристрої в такій мережі передають інформацію з готовністю даних; ці передачі можуть іноді накладатися у часі. В результаті накладання сигнали спотворюються, відбувається втрата даних, що передаються. Така ситуація називається колізією (collision). Колізії не дозволяють організувати надійну та ефективну передачу інформації між мережевими об'єктами.

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

Мережа не може нормально працювати доти, доки всі мережеві об'єкти не зможуть контролювати колізії, керувати ними або усувати їхній вплив. У мережах потрібен деякий метод зниження кількості колізій, інтерференції (накладання) одночасних сигналів.

Існують стандартні методи доступу до середовища передачі, що описують правила, за якими здійснюється керування дозволом на передачу інформації для мережних пристроїв: змагання, передача маркера та опитування.

Перед тим як вибрати протокол, в якому реалізовано один із цих методів доступу до середовища передачі даних, слід звернути особливу увагу на такі фактори:

  • характер передач - безперервний чи імпульсний;
  • кількість передачі даних;
  • необхідність передачі в суворо певні інтервали часу;
  • кількість активних пристроїв у мережі.

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

Змагання.Системи з урахуванням змагання (конкуренції) припускають, що доступом до середовища передачі реалізується з урахуванням принципу «перший прийшов - першим обслужений». Іншими словами, кожен мережевий пристрій виборює контроль над середовищем передачі. Системи, що використовують метод змагання, розроблені таким чином, щоб усі пристрої в мережі могли передавати дані лише за необхідності. Ця практика зрештою призводить до часткової або повної втрати даних, тому що насправді відбуваються колізії. У міру додавання до мережі кожного нового пристрою кількість колізій може зростати у геометричній прогресії. Збільшення кількості колізій знижує продуктивність мережі, а разі повного насичення середовища передачі - знижує працездатність мережі до нуля.

Для зниження кількості колізій розроблено спеціальні протоколи, у яких реалізовано функцію прослуховування середовища передачі до початку передачі даних станцією. Якщо станція, що прослуховує, виявляє передачу сигналу (від іншої станції), то вона утримується від передачі інформації і намагатиметься повторити її пізніше. Ці протоколи називаються протоколами множинного доступу з контролем несучої (Carrier Sense Multiple Access, CSMA). Протоколи CSMA значно знижують кількість колізій, але не усувають їх повністю. Колізії проте відбуваються, коли дві станції опитують кабель: не виявляють жодних сигналів, вирішують, що середовище передачі вільне, а потім одночасно починають передачу даних.

Прикладами таких змагальних протоколів є:

  • множинний доступ із контролем несучої/виявленням колізій (Carrier Sense Multiple Access/Collision Detection, CSMA/CD);
  • множинний доступ з контролем несучої/запобігання колізій (Carrier Sense Multiple Access/Collision Avoidance, CSMA/CA).

Протоколи CSMA/CD.Протоколи CSMA/CD не лише прослуховують кабель перед передачею, але також виявляють колізії та ініціалізують повторні передачі. При виявленні колізії станції, що передавало дані, ініціалізують спеціальні внутрішні таймери випадковими значеннями. Таймери починають зворотний відлік, і при досягненні нуля станції повинні спробувати повторити передачу даних. Оскільки таймери були ініціалізовані випадковими значеннями, то одна зі станцій намагатиметься повторити передачу даних раніше за іншу. Відповідно, друга станція визначить, що середовище передачі вже зайняте, і дочекається її звільнення.

Прикладами протоколів CSMA/CD є Ethernet version 2 (Ethernet II, розроблений у корпорації DEC) та IEEE802.3.

Протоколи CSMA/CA. CSMA/CA використовує такі схеми, як доступ із квантуванням часу (time slicing) або надсилання запиту отримання доступу до середовища. При використанні квантування часу кожна станція може передавати інформацію тільки в певні для цієї станції моменти часу. При цьому в мережі має реалізовуватись механізм управління квантами часу. Кожна нова станція, що підключається до мережі, повідомляє про свою появу, тим самим ініціюючи процес перерозподілу квантів часу для передачі інформації. У разі використання централізованого управління доступом до середовища передачі кожна станція формує спеціальний запит на передачу, який адресується керуючій станції. Центральна станція регулює доступ до середовища передачі всім мережевих об'єктів.

Прикладом CSMA/CA є протокол LocalTalk фірми Apple Computer.

Системи на основі методу змагання найбільше підходять для використання при імпульсному трафіку (при передачі великих файлів) у мережах із відносно невеликою кількістю користувачів.

Системи із передачею маркера.У системах з передачею маркера (token passing) невеликий кадр (маркер) передається у порядку від одного пристрою до іншого. Маркер - це спеціальне повідомлення, яке передає тимчасове керування середовищем передачі пристрою, що володіє маркером. Передача маркера розподіляє керування доступом між пристроями мережі.

Кожен пристрій знає, від якого пристрою він отримує маркер і який пристрій повинен передати. Зазвичай, такими пристроями є найближчі сусіди власника маркера. Кожен пристрій періодично отримує контроль над маркером, виконує свої дії (передає інформацію), а потім передає маркер для використання наступного пристрою. Протоколи обмежують час контролю маркера кожним пристроєм.

Є кілька протоколів передачі маркера. Двома стандартами мереж, що використовують передачу маркера, є IEEE 802.4 Token Bus та IEEE 802.5 Token Ring. У мережі Token Bus використовується керування доступом із передачею маркера та фізична чи логічна шинна топологія, тоді як у мережі Token Ring використовується керування доступом із передачею маркера та фізична чи логічна кільцева топологія.

Мережі з передачею маркера слід використовувати за наявності пріоритетного трафіку, що залежить від часу, типу цифрових аудіо- або відеоданих, або ж за наявності дуже великої кількості користувачів.

Опитування.Опитування (polling) - це метод доступу, у якому виділяється один пристрій (званий контролером, первинним, чи «майстер»-пристроєм) як арбітра доступу до середовища. Цей пристрій опитує всі інші пристрої (вторинні) в певному порядку, щоб дізнатися, чи мають вони інформацію для передачі. Щоб отримати дані від вторинного пристрою, первинний пристрій надсилає йому відповідний запит, а потім отримує дані від вторинного пристрою і направляє їх одержувачу пристрою. Потім первинний пристрій опитує інший вторинне пристрій, приймає дані від нього, і так далі. Протокол обмежує кількість даних, яку може передати після опитування кожен вторинний пристрій. Опитувальні системи ідеальні для мережних пристроїв, чутливих до часу, наприклад, автоматизації обладнання.

Цей рівень також забезпечує обслуговування з'єднань. Існує три типи сервісу з'єднань:

  • сервіс без підтвердження та без встановлення з'єднань (unacknowledged connectionless) - посилає та отримує фрейми без управління потоком та без контролю помилок чи послідовності пакетів;
  • сервіс, орієнтований на з'єднання (connection-oriented), - забезпечує управління потоком, контроль помилок та послідовності пакетів у вигляді видачі квитанцій (підтверджень);
  • сервіс з підтвердженням без встановлення з'єднання (acknowledged connectionless) – використовує квитанції для управління потоком та контролю помилок при передачах між двома вузлами мережі.

Підрівень LLC канального рівня забезпечує можливість одночасного використання кількох мережевих протоколів (з різних стеків протоколів) під час роботи через один мережний інтерфейс. Іншими словами, якщо в комп'ютері встановлено лише одну мережева картаАле є необхідність працювати з різними мережевими сервісами від різних виробників, то клієнтське мережне програмне забезпечення саме на рівні LLC забезпечує можливість такої роботи.

Мережевий рівень

Мережевий рівень визначає правила доставки даних між логічними мережами, формування логічних адрес мережних пристроїв, визначення, вибір та підтримання маршрутної інформації, функціонування шлюзів (gateways).

Головною метою мережного рівня є вирішення задачі переміщення (доставки) даних у задані точки мережі. Доставка даних на мережному рівні взагалі схожа на доставку даних на канальному рівні моделі OSI, де для передачі даних використовується фізична адресація пристроїв. Однак адресація на канальному рівні відноситься лише до однієї логічної мережі, діє тільки всередині цієї мережі. Мережевий рівень описує методи і засоби передачі між багатьма незалежними (і часто різнорідними) логічними мережами, які, з'єднані разом, формують одну велику мережу. Така мережа називається об'єднаною мережею (internetwork), а процеси передачі між мережами - міжмережевим взаємодією (internetworking).

За допомогою фізичної адресації на канальному рівні дані доставляють усім пристроям, що входять в одну логічну мережу. Кожен мережний пристрій, кожен комп'ютер визначають призначення даних. Якщо дані призначені комп'ютеру, він їх обробляє, якщо ні - ігнорує.

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

Елементи та методи реалізації мережного рівня визначаються таким:

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

На цьому рівні моделі OSI працюють маршрутизатори і деякі комутатори.

Мережевий рівень визначає правила формування логічних адрес (logical network address) мережевих об'єктів. У рамках великої об'єднаної мережі кожен мережевий об'єкт повинен мати унікальну логічну адресу. У формуванні логічної адреси беруть участь два компоненти: логічна адреса мережі, яка є спільною для всіх об'єктів мережі, та логічна адреса мережного об'єкта, яка є унікальною для цього об'єкта. При формуванні логічної адреси мережного об'єкта може використовуватися фізична адреса об'єкта, або визначатися довільна логічна адреса. Використання логічної адресації дозволяє організувати передачу даних між різними логічними мережами.

Кожен мережний об'єкт, кожен комп'ютер може виконувати багато мережевих функцій одночасно, забезпечуючи роботу різних сервісів. Для звернення до сервісів використовується спеціальний ідентифікатор сервісу, який називається порт (port) або сокет (socket). При зверненні до сервісу ідентифікатор сервісу слід за логічним адресою комп'ютера, що забезпечує роботу сервісу.

У багатьох мережах резервуються групи логічних адрес та ідентифікаторів сервісів з метою виконання конкретних заздалегідь визначених та загальновідомих дій. Наприклад, у разі потреби надіслати дані всім мережевим об'єктам відправка буде здійснена на спеціальну broadcast-адресу.

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

Розрізняють три методи комутації передачі даних: комутація каналів, комутація повідомлень і комутація пакетів.

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

Комутація повідомлень дозволяє передавати ціле (нерозбите на частини) повідомлення за принципом «зберегти та передати далі» (store-and-forward). Кожен проміжний пристрій приймає повідомлення, локально його зберігає і при звільненні каналу зв'язку, яким це повідомлення має бути відправлено, відправляє його. Цей метод добре підходить для передачі електронної пошти та організації електронного документообігу.

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

Щоразу при визначенні подальшого шляху даних необхідно вибрати найкращий маршрут. Завдання визначення найкращого шляху називається маршрутизацією (routing). Це завдання виконують маршрутизатори (router). Завдання маршрутизаторів - визначення можливих шляхів передачі, підтримка маршрутної інформації, вибір найкращих маршрутів. Маршрутизація може здійснюватися статичним чи динамічним методом. При завданні статичної маршрутизації мають бути задані всі взаємозв'язки між логічними мережами, які залишаються незмінними. Динамічна маршрутизація передбачає, що маршрутизатор може сам визначати нові шляхи чи модифікувати інформацію про старих. Динамічна маршрутизація використовує спеціальні алгоритми маршрутизації, найбільш поширеними є вектор дистанції (distance vector) і стан каналу (link state). У першому випадку маршрутизатор використовує інформацію про структуру мережі сусідніх маршрутизаторів, з інших рук. У другому випадку маршрутизатор оперує інформацією про власні канали зв'язку та взаємодіє зі спеціальним представницьким маршрутизатором для побудови повної карти мережі.

На вибір найкращого маршруту найчастіше впливають такі чинники, як кількість переходів через маршрутизатори (hop count) і кількість тиків (одиниць часу), необхідні досягнення мережі призначення (tick count).

Сервіс з'єднань мережного рівня працює тоді, коли сервіс з'єднань LLC-підрівня канального рівня моделі OSI не використовується.

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

Транспортний рівень

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

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

Багато протоколів у обчислювальних мережахзабезпечують користувачам можливість роботи з простими іменами природною мовою замість складних і важких для запам'ятовування алфавітно-цифрових адрес. Перетворення адрес на імена і назад (Address/Name Resolution) є функцією ідентифікації або відображення імен та алфавітно-цифрових адрес один в одного. Ця функція може виконуватися кожним об'єктом у мережі або постачальниками спеціального сервісу, які називаються каталоговими серверами ( directory server), серверами імен (name server) тощо. Наступні визначення класифікують методи перетворення адрес/імен:

  • ініціація споживачем сервісу;
  • ініціація постачальником сервісу.

У першому випадку користувач мережі звертається до будь-якого сервісу за його логічним ім'ям, не знаючи точного розташування сервісу. Користувач не знає, чи доступний цей сервіс у Наразі. При зверненні логічне ім'я ставиться у відповідність до фізичного імені, і робоча станція користувача ініціює звернення безпосередньо до сервісу. У другому випадку кожен сервіс повідомляє про себе всіх клієнтів мережі на періодичній основі. Кожен із клієнтів у будь-який час знає, чи доступний сервіс, і вміє звернутися безпосередньо до сервісу.

Методи адресації

Адреси сервісу ідентифікують конкретні програмні процеси, які виконуються на мережевих пристроях. На додаток до цих адрес постачальники сервісу відстежують різні діалоги, які вони ведуть з пристроями, що запитують послуги. Два різні методи діалогу використовують такі адреси:

  • ідентифікатор з'єднання;
  • ідентифікатор транзакції.

Ідентифікатор з'єднання (connection identifier), також званий ID з'єднання (connection ID), портом (port) або сокетом (socket), ідентифікує кожен діалог. За допомогою ідентифікатора з'єднання постачальник з'єднання може зв'язуватися з більш ніж одним клієнтом. Постачальник сервісу звертається до кожного об'єкта комутації за номером, а координації інших адрес нижнього рівня покладається на транспортний рівень. Ідентифікатор з'єднання пов'язаний із конкретним діалогом.

Ідентифікатори транзакцій подібні до ідентифікаторів з'єднань, але оперують одиницями, меншими, ніж діалог. Транзакція складається із запиту та відповіді. Постачальники та споживачі сервісу відстежують відправлення та прибуття кожної транзакції, а не діалогу загалом.

Сеансовий рівень

Сеансовий рівень сприяє взаємодії між пристроями, що запитують та постачають послуги. Сеанси зв'язку контролюються за допомогою механізмів, які встановлюють, підтримують, синхронізують і керують діалогом між об'єктами, що підтримують зв'язок. Цей рівень також допомагає верхнім рівням ідентифікувати доступний мережевий сервіс та з'єднатися з ним.

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

Сеансовий рівень також ініціює діалоги між пристроями-постачальниками сервісу та пристроями-споживачами. Виконуючи цю функцію, сеансовий рівень часто здійснює подання або ідентифікацію кожного об'єкта і координує права доступу до нього.

Сеансовий рівень реалізує управління діалогом з використанням одного із трьох способів спілкування - симплекс (simplex), напівдуплекс (half duplex) та повний дуплекс (full duplex).

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

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

Рівень представлення даних

Основне завдання рівня подання даних - перетворення даних у взаємно узгоджені формати (синтаксис обміну), зрозумілі всім мережним додаткам та комп'ютерам, на яких працюють програми. На цьому рівні також вирішуються завдання компресії та декомпресії даних та їх шифрування.

Під перетворенням розуміється зміна порядку бітів у байтах, порядку байтів у слові, кодів символів та синтаксису імен файлів.

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

Для того, щоб користувачі різних операційних систем могли отримувати інформацію у вигляді файлів з коректними іменами та вмістом, цей рівень забезпечує коректне перетворення синтаксису файлів. Різні операційні системи по-різному працюють зі своїми файловими системами, реалізують різні способи формування імен файлів Інформація у файлах також зберігається у певному кодуванні символів. При взаємодії двох мережевих об'єктів важливо, щоб кожен з них міг інтерпретувати файлову інформацію по-своєму, але зміст інформації не повинен змінюватися.

Рівень представлення даних перетворює дані у взаємно узгоджений формат (синтаксис обміну), зрозумілий всім мережним додаткам та комп'ютерам, на яких працюють програми. Може, крім того, стискати та розгортати, а також шифрувати та розшифровувати дані.

Комп'ютери використовують різні правила подання даних за допомогою двійкових нулів та одиниць. Незважаючи на те, що всі ці правила намагаються досягти спільної мети - представити дані, зрозумілі людині, виробники комп'ютерів і організації, що стандартизують, створили правила, що суперечать один одному. Коли два комп'ютери, які використовують різні набори правил, намагаються зв'язатися один з одним, їм часто буває необхідно виконати деякі перетворення.

Локальні та мережні операційні системи часто шифрують дані для захисту від несанкціонованого використання. Шифрування – це загальний термін, який описує деякі методи захисту даних. Захист часто виконується за допомогою перемішування даних (data scrambling), при якому використовується один або кілька методів з трьох: перестановка, підстановка, метод алгебри.

Кожен із подібних методів – це просто особливий спосіб захисту даних таким чином, щоб вони могли бути зрозумілі лише тим, хто знає алгоритм шифрування. Шифрування даних може виконуватися як апаратно, і програмно. Однак, наскрізне шифрування даних зазвичай виконується програмним способом і вважається частиною функцій рівня подання даних. Для оповіщення об'єктів про метод шифрування зазвичай застосовується 2 методи - секретні ключі і відкриті ключі.

Методи шифрування із секретним ключем використовують єдиний ключ. Мережні об'єкти, що володіють ключем, можуть шифрувати та розшифровувати кожне повідомлення. Отже, ключ має зберігатися у секреті. Ключ може бути вбудований у мікросхеми обладнання або встановлений адміністратором мережі. При кожній зміні ключа всі пристрої повинні бути модифіковані (бажано не використовувати мережу для передачі нового ключа).

Мережеві об'єкти, що використовують методи шифрування з відкритим ключем, забезпечуються секретним ключем та деяким відомим значенням. Об'єкт створює відкритий ключ, маніпулюючи відомим значенням за допомогою секретного ключа. Об'єкт, який ініціює комунікацію, посилає свій відкритий ключ приймачеві. Інший об'єкт потім математично комбінує власний секретний ключ із переданим йому відкритим ключем для встановлення взаємоприйнятного значення шифрування.

Володіння відкритим ключем мало корисно несанкціонованим користувачам. Складність результуючого ключа шифрування досить велика, щоб його можна було визначити за прийнятний час. Навіть знання власного секретного ключа та чийогось відкритого ключа не надто допоможе визначити інший секретний ключ - через складність логарифмічних обчислень для великих чисел.

Прикладний рівень

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

Сервери надають клієнтам мережі інформацію про те, які види сервісу вони забезпечують. Основні механізми ідентифікації послуг забезпечують такі елементи, як адреси сервісу. Крім того, сервери використовують такі методи представлення свого сервісу, як активне та пасивне представлення сервісу.

При здійсненні активного представлення сервісу (Active service advertisement) кожен сервер періодично надсилає повідомлення (що включають адреси сервісу), оголошуючи про доступність. Клієнти також можуть опитувати мережеві пристрої у пошуках певного типу сервісу. Клієнти мережі збирають уявлення, зроблені серверами, і формують таблиці доступних нині видів сервісу. Більшість мереж, використовують метод активного уявлення, визначають також конкретний період дії уявлень сервісу. Наприклад, якщо мережевий протоколвизначає, що подання сервісу повинні надсилатися кожні п'ять хвилин, то клієнти будуть видаляти по тайм-ауту ті види сервісу, які були представлені протягом останніх п'яти хвилин. Після закінчення тайм-ауту клієнт видаляє сервіс зі своїх таблиць.

Сервери здійснюють пасивне подання сервісу (Passive service advertisement) шляхом реєстрації свого сервісу та адреси в каталозі. Коли клієнти хочуть визначити доступні видисервісу, вони просто запитують каталог про місце розташування потрібного сервісу та про його адресу.

Перш ніж мережевий сервіс може бути використаний, він повинен стати доступним для локальної операційної системи комп'ютера. Існує кілька методів вирішення цього завдання, однак кожен такий метод може бути визначений положенням або рівнем, на якому локальна операційна системарозпізнає мережеву операційну систему. Сервіс, що надається, можна підрозділити на три категорії:

  • перехоплення дзвінків операційної системи;
  • віддалений режим;
  • спільна обробка даних.

При використанні перехоплення викликів ОС (OC Call Interception) локальна операційна система зовсім не підозрює існування мережного сервісу. Наприклад, коли програма DOS намагається читати файл із мережного файл-сервера, він вважає, що цей файл знаходиться на локальному накопичувачі. Насправді спеціальний фрагмент програмного забезпеченняперехоплює запит на читання файлу, перш ніж він досягне локальної операційної системи (DOS), і надсилає запит мережному файловому сервісу.

В іншому випадку, при віддаленому режимі (Remote Operation) роботи локальна операційна система знає про мережу і відповідальна за передачу запитів до мережного сервісу. Однак сервер нічого не знає про клієнта. Для операційної системи сервера всі запити до сервісу виглядають однаково, незалежно від того, чи вони є внутрішніми або передані через мережу.

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

Комп'ютерПрес 6"1999

Для узгодження роботи пристроїв мережі від різних виробників, забезпечення взаємодії мереж, які використовують різне середовище поширення сигналу, створена еталонна модель взаємодії відкритих систем (ВОС). Еталонна модель побудована за ієрархічним принципом. Кожен рівень забезпечує сервіс вищого рівня та користується послугами нижчого рівня.

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

У еталонній моделі OSI вводяться два поняття: протоколі інтерфейс.

Протокол – це набір правил, з урахуванням яких взаємодіють рівні різних відкритих систем.

Інтерфейс – це сукупність засобів та методів взаємодії між елементами відкритої системи.

Протокол визначає правила взаємодії модулів одного рівня різних вузлах, а інтерфейс – модулів сусідніх рівнів одному вузлі.

Усього існує сім рівнів еталонної моделі OSI. Варто зазначити, що у реальних стеках використовується менше рівнів. Наприклад, у популярному TCP/IP використовується лише чотири рівні. Чому так? Пояснимо трохи пізніше. А зараз розглянемо кожен із семи рівнів окремо.

Рівні моделі OSI:

  • фізичний рівень. Визначає вид середовища передачі, фізичні та електричні характеристики інтерфейсів, вид сигналу. Цей рівень має справу з бітами інформації. Приклади протоколів фізичного рівня: Ethernet, ISDN, Wi-Fi.
  • Канальний рівень. Відповідає за доступ до середовища передачі, виправлення помилок, надійну передачу даних. На прийоміотримані з фізичного рівня дані упаковуються в кадри, після чого перевіряється їх цілісність. Якщо помилок немає, дані передаються на мережевий рівень. Якщо помилки є, кадр відкидається і формується запит на повторну передачу. Канальний рівень поділяється на два підрівні: MAC (Media Access Control) та LLC (Locical Link Control). MAC регулює доступ до фізичного середовища, що розділяється. LLC забезпечує обслуговування мережного рівня. На канальному рівні працюють комутатори. Приклади протоколів: Ethernet, PPP.
  • Мережевий рівень. Його основними завданнями є маршрутизація – визначення оптимального шляху передачі, логічна адресація вузлів. Крім того, на цей рівень можуть бути покладені завдання пошуку несправностей в мережі (протокол ICMP). Мережевий рівень працює із пакетами. Приклади протоколів IP, ICMP, IGMP, BGP, OSPF).
  • Транспортний рівень. Призначений для доставки даних без помилок, втрат та дублювання у тій послідовності, як вони були передані. Виконує наскрізний контроль передачі від відправника до одержувача. Приклади протоколів TCP, UDP.
  • Сеансовий рівень. Керує створенням/підтримкою/завершенням сеансу зв'язку. Приклади протоколів: L2TP, RTCP.
  • Представницький рівень. Здійснює перетворення даних на потрібну форму, шифрування/кодування, стиснення.
  • Прикладний рівень. Здійснює взаємодію між користувачем та мережею. Взаємодіє з додатками за клієнта. Приклади протоколів: HTTP, FTP, Telnet, SSH, SNMP.

Після знайомства з стандартною моделлю, розглянемо стек протоколів TCP/IP.

У моделі TCP/IP визначено чотири рівні. Як видно з малюнку вище – один рівень TCP/IP може відповідати кільком рівням моделі OSI.

Рівні моделі TCP/IP:

  • Рівень мережних інтерфейсів. Відповідає двом нижнім рівням моделі OSI: канальному та фізичному. Виходячи з цього, зрозуміло, що даний рівень визначає характеристики середовища передачі (кручена пара, оптичне волокно, радіоефір), вид сигналу, спосіб кодування, доступ до середовища передачі, виправлення помилок, фізичну адресацію (MAC-адреси). У моделі TCP/IP цьому рівні працює протокол Ethrnet та її похідні (Fast Ethernet, Gigabit Ethernet).
  • Рівень міжмережевої взаємодії. Відповідає мережевому рівню моделі OSI. Бере він всі його функції: маршрутизацію, логічну адресація (IP-адреси). На цьому рівні працює протокол IP.
  • Транспортний рівень. Відповідає транспортному рівню OSI. Відповідає за доставку пакетів від джерела до одержувача. на даному рівнізадіяно два протоколи: TCP і UDP. TCP є більш надійним, ніж UDP за рахунок створення попереднього з'єднання запитів на повторну передачу при виникненні помилок. Однак, в той же час, TCP повільніше, ніж UDP.
  • Прикладний рівень. Його головне завдання – взаємодія з додатками та процесами на хостах. Приклади протоколів: HTTP, FTP, POP3, SNMP, NTP, DNS, DHCP.

Інкапсуляція - це метод упаковки пакета даних, при якому незалежні один від одного службові заголовки пакета абстрагуються від заголовків нижчестоящих рівнів шляхом їх включення до вищестоящих рівнів.

Розглянемо на конкретному прикладі. Нехай ми хочемо потрапити із комп'ютера на сайт. Для цього комп'ютер повинен підготувати http-запит на отримання ресурсів веб-сервера, на якому зберігається потрібна нам сторінка сайту. На прикладному рівні до даних браузера додається HTTP-заголовок. Далі на транспортному рівні до нашого пакету додається TCP-заголовок, що містить номери портів відправника та одержувача (80 порт – для HTTP). На мережному рівні формується IP-заголовок, що містить IP-адреси відправника та одержувача. Безпосередньо перед передачею, на канальному рівні додається Ethrnet-заголовок, який містить фізичні (MAC-адреси) відправника та одержувача. Після всіх цих процедур пакет у вигляді біт інформації передається по мережі. На прийомі відбувається зворотна процедура. Web-сервер на кожному рівні перевірятиме відповідний заголовок. Якщо перевірка пройшла вдало, заголовок відкидається і пакет переходить на верхній рівень. В іншому випадку, весь пакет відкидається.




Top