Інкапсуляція й декапсуляція

Модуль 1Урок 3 з 50Безкоштовний модуль

Коли повідомлення спускається стеком протоколів, кожен шар додає власний заголовок (заголовок) — службову «наклейку» з інформацією для свого рівня. На приймачі шари знімають ці наклейки по черзі — спочатку фізичний, потім канальний, мережевий, транспортний. Додавання обгортки називають інкапсуляція; зняття — деінкапсуляція. Без цього маршрутизатор не знав би, куди пересилати пакет, а TCP — якому процесу передати дані.

Інкапсуляція на відправнику

Уявіть лист у конверті, конверт у пакеті, пакет у контейнері — кожен рівень додає адресу та інструкції для своєї служби. Прикладний шар передає HTTP-повідомлення у транспортний шар; TCP додає сегмент заголовок з портами 443 і номерами байтів; IP додає пакет заголовок з адресами 203.0.113.5 → 198.51.100.10; Ethernet додає кадр заголовок з MAC-адресами; фізичний шар передає біти по кабелю. Разом виходить «матрьошка» з даних всередині.

Інкапсуляція на відправнику: кожен шар додає заголовок; на одержувачі — деінкапсуляція у зворотному порядку.

Невеликий HTTP-запит на кшталт GET / HTTP/1.1 — лише кілька десятків байт корисного навантаження. Але транспортний, мережевий і канал додають свої заголовки: типово ~20 байт TCP, ~20 байт IP, ~14 байт Ethernet. Повний кадр на дроті виходить помітно більший за «голий» текст запиту — накладні витрати шарів реальний і рахується в пропускній здатності.

Приклад

MTU (Maximum Transmission Unit) на Ethernet часто 1500 байт — це максимум корисного навантаження в одному IP-пакеті без фрагментації. Якщо HTTP-відповідь 6821 байт, транспортний шар розібʼє її на кілька сегмент, мережевий шар — на кілька пакет. Кожен несе свої заголовки — тому «швидкість лінії 100 Мбіт/с» не дорівнює «6821 байт за один раз».

Деінкапсуляція на одержувачі

На сервері NIC приймає біти, канальний шар зчитує MAC і передає вгору, мережевий шар дивиться IP-адресу «це для нас», транспортний шар за портом 443 віддає дані процесу nginx, прикладний шар парсить HTTP. Кожен шар знімає свій заголовок і передає решту вище. Якщо контрольна сума у TCP не сходиться — сегмент відкидають, не турбуючи HTTP.

Порада

Проміжні маршрутизатори роблять часткову деінкапсуляція: знімають канальний заголовок, дивляться IP-заголовок, обирають наступний стрибок, знову інкапсулювати у новий кадр для іншого інтерфейсу. Дані прикладного шару вони не читають — principle близький до «dumb core, smart edge».

Заголовок, кінцевик і порядок

Заголовок зазвичай на початку PDU (Протокол Дані Unit) шару. Кінцевик — рідше, наприклад у деяких канальних протоколах для контрольної суми в кінці. Порядок на відправнику: дані → транспортний → мережевий → канал → фізичний. На приймачі — навпаки. Помилка на одному шарі не завжди доходить до верхнього: битий Wi‑Fi кадр відкинуть на канальний шар, і браузер навіть не дізнається про спробу.

Деінкапсуляція іде у зворотному порядку: канал знімає ~14 байт Ethernet-заголовок, мережевий — ~20 байт IP, транспортний — ~20 байт TCP. Кожен шар передає решту вище, доки прикладний не отримає чистий HTTP-запит. Проміжний маршрутизатор знімає лише канальний заголовок, дивиться IP і знову інкапсулювати у новий кадр — прикладний дані не читає.

Що запамʼятати

Інкапсуляція — кожен шар обгортає дані від верхнього своїм заголовком (іноді кінцевик). Деінкапсуляція — зняття обгорток на приймачі або в маршрутизаторі. Заголовки несуть порти, IP, MAC, номери sequence — те, що потрібно саме цьому рівню. MTU 1500 на Ethernet нагадує: великі повідомлення дробляться, накладні витрати реальний.

Перевірка

4 питання

Кілька питань за матеріалом уроку. Спроб — скільки завгодно.

1.Що таке інкапсуляція у мережах?
2.Типовий MTU Ethernet без VLAN?
3.Хто знімає TCP-заголовок на сервері?
4.Чому проміжний маршрутизатор не читає HTTP-тіло?