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

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

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

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

Когда вы отправляете 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Пакет (packet)
BКадр (frame)
CСегмент (segment)
DБит (bit)
3. Что происходит с данными на приёмной стороне?
AДанные снова инкапсулируются
BДекапсуляция: каждый уровень снимает свой заголовок снизу вверх
CЗаголовки остаются и передаются приложению
DДанные шифруются заново