Инкапсуляция: как данные оборачиваются по уровням

Понимаем, как данные «оборачиваются» заголовками при спуске по уровням и разворачиваются на приёмнике.

Инкапсуляция — это процесс, при котором каждый уровень добавляет к данным свой заголовок (и иногда хвост), оборачивая то, что пришло сверху, как письмо в конверт.

Матрёшка из заголовков

Когда вы отправляете HTTP-запрос, данные не летят «голыми». На каждом уровне к ним приклеивается служебная информация — заголовок (header). Сверху вниз это выглядит как вложение конвертов друг в друга:

Прикладной:   [ HTTP-данные ]
Транспортный: [ TCP-заголовок | HTTP-данные ]                  -> сегмент
Сетевой:      [ IP-заголовок  | TCP | HTTP-данные ]            -> пакет
Канальный:    [ Ethernet | IP | TCP | HTTP-данные | CRC ]      -> кадр
Физический:   1010101011100101...                              -> биты/сигнал

Каждый уровень видит то, что пришло сверху, как непрозрачную «полезную нагрузку» (payload) и не вникает в её содержимое. Он лишь добавляет свой заголовок с нужной ему информацией: транспортный — номера портов, сетевой — IP-адреса, канальный — MAC-адреса.

Терминология: как называют данные на каждом уровне

Это любимый вопрос на собеседовании. У «единицы данных» на каждом уровне своё имя:

УровеньИмя единицы данных (PDU)Что добавляется
Прикладнойданные / сообщение (data)
Транспортныйсегмент (TCP) / датаграмма (UDP)порты, номера последовательности
Сетевойпакет (packet)IP-адреса источника и назначения
Канальныйкадр (frame)MAC-адреса, контрольная сумма
Физическийбиты (bits)

Декапсуляция на приёмнике

На принимающей стороне всё происходит в обратном порядке — декапсуляция. Кадр приходит на канальный уровень, тот снимает свой заголовок и отдаёт пакет наверх; сетевой снимает IP-заголовок и отдаёт сегмент; транспортный — отдаёт данные приложению. Каждый уровень «вскрывает свой конверт» и не трогает чужие.

Аналогия с почтой

Письмо (данные) кладут в конверт с адресом квартиры (порт), конверт — в коробку с адресом дома и улицы (IP), коробку грузят в машину с маршрутным листом (MAC до следующего узла). Почтальон на каждом этапе читает только «свой» адрес. Получатель вскрывает всё в обратном порядке и достаёт письмо.

Почему это важно на практике

  • MTU и фрагментация: у кадра есть максимальный размер (обычно 1500 байт). Если данные больше — их режут на части. Отсюда понятие MTU, которое всплывает при настройке VPN.
  • Накладные расходы: каждый заголовок — это лишние байты. Поэтому слать миллион крошечных запросов дороже, чем один большой.
  • Инструменты: Wireshark показывает именно эту матрёшку — вы видите вложенные заголовки Ethernet → IP → TCP → HTTP.

Итог

  • Инкапсуляция — добавление заголовка на каждом уровне при спуске вниз.
  • Единицы данных: данные → сегментпакеткадр → биты.
  • На приёме идёт обратный процесс — декапсуляция.
  • Каждый уровень читает только свой заголовок и не вникает в payload.
Проверьте себя
1. Что такое инкапсуляция в сетях?
AШифрование данных перед отправкой
BДобавление каждым уровнем своего заголовка к данным, пришедшим сверху
CСжатие данных для экономии трафика
DРазбиение файла на части для скачивания
2. Как называется единица данных на сетевом уровне?
AКадр (frame)
BСегмент (segment)
CПакет (packet)
DБит (bit)
3. Что происходит с данными на приёмной стороне?
AДекапсуляция: каждый уровень снимает свой заголовок снизу вверх
BДанные снова инкапсулируются
CЗаголовки остаются и передаются приложению
DДанные шифруются заново
Поддержать проект