Комунікаційний протокол

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Мережеві протоколи)
Перейти до навігації Перейти до пошуку

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

Комунікаційні системи[ред. | ред. код]

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

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

Протоколи не обов'язково прив'язані до конкретної апаратної платформи і виробника (наприклад, USB, Bluetooth).

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

Стандарти з більшості протоколів розробляються IETF для інтернет комунікацій, та IEEE, або ISO організаціями для інших типів комунікації. ITU-T розробляє телекомунікаційні протоколи та формати для PSTN.

Концепції[ред. | ред. код]

Протоколи для комунікації є тим же, чим є алгоритми для обчислень.

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

Мережева модель OSI[ред. | ред. код]

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

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

Наприклад, один рівень може описувати, як закодувати текст, інший описує, як поводитись з повідомленнями (Simple mail transfer protocol, наприклад), а інший знаходитиме помилки (transmission control protocol), ще один зайнятий адресами (наприклад IP-адресами Internet protocol), а інший відповідає за формування потоків бітів (point-to-point protocol), завдання другого — електричне кодування бітів (V.42 модем).

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

Виявлення та виправлення помилок[ред. | ред. код]

Контрольна сума[ред. | ред. код]

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

Комунікаційні системи виправляють помилки вибірковим пересиланням пошкоджених частин повідомлення. Наприклад, TCP (Transmission Control Protocol), повідомлення розбиваються на пакети, кожен з яких має контрольну суму. Коли контрольна сума не збігається, тоді пакет відкидається. Коли пакет втрачається, одержувач підтверджує усі пакети, що надійшли, крім втраченого. Як наслідок, відправник розуміє, що пройшло вже надто багато часу, а підтвердження ще не надійшло, і він надсилає усі пакети, для яких не отримано підтвердження. У той самий час, відправник затримує потік надсилання, якщо помилка була спричинена переповненням каналу на шляху між одержувачем та відправником. (до уваги: за спрощення: дивіться TCP для більше детального опису)

Загалом, якість TCP значно знижується в умовах високої кількості втрачених пакетів (більше за 0,1 %), через те, що за протоколом необхідно ще раз надіслати пакети. З цієї причини, TCP/IP підключення зазвичай виконуються на якісних мережах, або за протоколом нижчого рівня з можливостями виявлення та виправлення помилок. Такі підключення зазвичай не виправляють бітові помилки від 10−9 до 10−12.

Кодування даних, чутливих до помилок передачі[ред. | ред. код]

Кодування з виявленням помилок (Error detecting coding (EDC)) — кодування, яке дозволяє виявити помилку передачі даних. Таке кодування дещо збільшує довжину даних, що передаються, бо додає службову інформацію.

Кодування з виправленням помилок (Error Correction Coding (ECC)) — таке кодування, котре дозволяє у більшості випадків виправити помилку, або кілька помилок, що виникли у даних. Застосування ECC дозволяє уникнути повторної передачі даних.

Пружність[ред. | ред. код]

Інша форма мережевого дефекту — топологічний дефект, в якому лінія зв'язку від'єднана, або не може використовуватись. Більшість сучасних протоколів періодично надсилають повідомлення для перевірки зв'язку. У телефонах, біт кадрування надсилається кожні 24 bits на T1 лініях. У телефонних системах, коли «синхронізація втрачена», відмовостійкі механізми перенаправляють сигнали, обходячи дефектне обладнання.

Маршрутизація[ред. | ред. код]

Також дуже важливо розрізняти два схожі за назвою, але діаметрально протилежні за властивостями, терміни — маршрутизований протокол та протокол маршрутизації. Ще більша плутанина виникає з оригінальною назвою — routed&routing protocols.

  • Маршрутизований протокол — це будь-який мережний протокол, адреса мережевого рівня якого надає достатньо інформації для доставлення пакету від одного вузла мережі до іншого на основі використовуваної схеми адресації. Такий протокол задає формати полів всередині пакету. Пакети зазвичай передаються від однієї кінцевої системи до іншої. Маршрутизований протокол використовує таблицю маршрутизації для пересилки пакетів.
    Приклади маршрутизованих протоколів — Internet-протокол (IP), протокол міжмережевого пакетного обміну IPX тощо. Легше всього зрозуміти що таке маршрутизовані протоколи, якщо пам'ятати, що це протоколи передачі даних.
  • Протокол маршрутизації — такий протокол, який підтримує маршрутизовані протоколи і надає механізми обміну маршрутною інформацією. Повідомлення протоколу маршрутизації передаються між маршрутизаторами (роутерами). Протокол маршрутизації дозволяє роутерам обмінюватись інформацією між собою для оновлення записів і підтримки таблиці маршрутизації.
    Приклади протоколів маршрутизації: RIP, IGRP, EIGRP, OSPF. Легше зрозуміти, що таке протоколи маршрутизації, якщо пам'ятати, що це протоколи обміну маршрутною інформацією.

Для того, щоб протокол був маршрутизованим, він має включати механізми призначення як номера мережі, так і номера вузла для кожного пристрою в мережі. В деяких протоколах, як, наприклад, IPX необхідно визначати лише адресу мережі, оскільки як адресу пристрою ця технологія використовує фізичну адресу (MAC-адресу) пристрою. Інші протоколи, як IP-протокол, вимагають явного задання повної адреси і маски підмережі.

Мережевий протокол[ред. | ред. код]

Мережевий протоко́л — набір правил, що дозволяє здійснювати з'єднання і обмін даними між двома і більше включеними в мережі пристроями.

Мережеві протоколи використовують мережеву модель OSI. Яка реалізується групою протоколів і правил зв'язку, організованих в кілька рівнів:

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

Перелік мережевих протоколів[ред. | ред. код]

Фізичний рівень[ред. | ред. код]

Канальний рівень[ред. | ред. код]

Мережевий рівень[ред. | ред. код]

Транспортний рівень[ред. | ред. код]

Сеансовий рівень[ред. | ред. код]

Прикладний рівень[ред. | ред. код]

Стеки протоколів[ред. | ред. код]

У комп'ютерних мережах використовують такі стеки протоколів:

Див. також[ред. | ред. код]

Джерела[ред. | ред. код]

  • Комп'ютерні мережі: [навчальний посібник] / А. Г. Микитишин, М. М. Митник, П. Д. Стухляк, В. В. Пасічник. — Львів: «Магнолія 2006», 2013. — 256 с. ISBN 978-617-574-087-3
  • Буров Є. В. Комп'ютерні мережі: підручник / Євген Вікторович Буров. — Львів: «Магнолія 2006», 2010. — 262 с. ISBN 966-8340-69-8
  • Javvin's Protocol Dictionary