Стек протоколів

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

Стек протоколів або мережевий стек є реалізацією набору протоколів комп'ютерної мережі або сімейства протоколів. Деякі з цих термінів використовуються як взаємозамінні, але, строго кажучи, набір — це визначення протоколів зв'язку, а стек — це їхня програмна реалізація.[1]

Стек протоколів моделі OSI

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

Загальний опис набору протоколів

ред.
  T ~ ~ ~ T
 [A]     [B]_____[C]

Уявіть собі три комп'ютери: A, B і C. A і B мають радіообладнання та можуть спілкуватися через радіохвилі за допомогою відповідного мережевого протоколу (наприклад, IEEE 802.11). B і C з'єднані за допомогою кабелю, використовуючи його для обміну даними (знову ж таки, за допомогою протоколу, наприклад , Point-to-Point Protocol). Однак жоден із цих двох протоколів не зможе передавати інформацію від A до C, оскільки концептуально ці комп'ютери знаходяться в різних мережах. Для їх з'єднання потрібен міжмережевий протокол.

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

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

У практичній реалізації стеки протоколів часто діляться на три основні секції: медіа, транспорт і програми. Конкретна операційна система або платформа часто матиме два чітко визначені програмні інтерфейси: один між медіа- та транспортним рівнями, а другий — між транспортними рівнями та програмами. Інтерфейс медіа-транспорт визначає, як програмне забезпечення транспортного протоколу використовує певні типи носіїв і апаратного забезпечення та пов'язане з драйвером пристрою. Наприклад, цей рівень інтерфейсу визначатиме, як транспортне програмне забезпечення TCP/IP спілкуватиметься з контролером мережевого інтерфейсу. Приклади цих інтерфейсів включають ODI та NDIS у середовищі Microsoft Windows та DOS. Інтерфейс програми-транспорту визначає, як прикладні програми використовують транспортні рівні. Наприклад, цей рівень інтерфейсу визначатиме, як програма веб-браузера спілкуватиметься з транспортним програмним забезпеченням TCP/IP. Приклади цих інтерфейсів включають сокети Berkeley і System V STREAMS в Unix-подібних середовищах, а також Winsock для Microsoft Windows.

Приклади

ред.
 
Стек мережевого протоколу, який використовався програмним забезпеченням Amiga
Example protocol stack and corresponding layers
Protocol Layer
HTTP Application
TCP Transport
IP Internet or network
Ethernet Link or data link
IEEE 802.3ab Physical

Охоплюючий шар

ред.

Важливою особливістю багатьох співтовариств взаємодії на основі спільного стеку протоколів є охоплюючий шар, термін, введений Девідом Кларком[3]

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

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

Див. також

ред.

Список літератури

ред.
  1. What is a protocol stack?. WEBOPEDIA. 24 September 1997. Процитовано 21 лютого 2010. A [protocol stack is a] set of network protocol layers that work together. The OSI Reference Model that defines seven protocol layers is often called a stack, as is the set of TCP/IP protocols that define communication over the Internet.
  2. Georg N. Strauß (9 січня 2010). The OSI Model, Part 10. The Application Layer. Ika-Reutte. Архів оригіналу за 20 березня 2012. Процитовано 21 лютого 2010. The Application layer is the topmost layer of the OSI model, and it provides services that directly support user applications, such as database access, e-mail, and file transfers.
  3. David Clark (1997). Interoperation, Open Interfaces, and Protocol Architecture. National Research Council. ISBN 9780309060363.