Files
SecondBrain/90 Library/Networking/Инкапсуляция данных.md
T
2026-05-31 10:18:48 +03:00

5.7 KiB
Raw Blame History

status, type, tags, created, updated, aliases
status type tags created updated aliases
stable concept
network
networking
2025-12-17 2026-05-07
Инкапсуляция Данных

Инкапсуляция Данных

Согласно моделям Модель OSI и TCP/IP данные передаются последовательно от приложения ниже по уровням, далее по физическому уровню от отправителя к получателю, а у получателя последовательно вверх к уровню приложения. Процесс "спуска" сверху вниз называется инкапсуляцией, а "подъем" снизу вверх - деинкапсуляцией

Инкапсуляция

Инкапсуляция данных - это процесс добавления к исходным данным, полученным с уровня приложения (L7), некоторой дополнительной служебной информации, которая позволяет надлежащим образом обрабатывать и передавать исходную информацию. Добавляться информация может как в заголовок (header), так и в конец (footer, trailer) данных.

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

Деинкапсуляция данных - процесс, очевидно, обратный инкапсуляции. Информация, полученная на уровне n в процессе инкапсуляции, обрабатывается тем же уровнем n в процессе деинкапсуляции и эта информация удаляется из данных.

Процесс Инкапсуляции

  1. Приложение получает какие-то данные (имеются ввиду L7+L6+L5), обрабатывает, инкапсулирует (как - не столь важно, это зависит от приложения, притом не обязательно, добавляя headers).
  2. Транспортный (L4) уровень получает поток данных и разделяет на несколько частей. К каждой части добавляет заголовок, теперь это "сегменты данных". Заголовки содержат информацию о последовательности, что позволяет получателю собрать сегменты в полноценный поток данных.
  3. Сетевой (L3) уровень получает сегменты данных, добавляя им заголовок, содержащий служебную информацию о маршрутизации для правильной доставки данных. Теперь сегмент называется пакетом или дейтаграммой (datagram).
  4. Канальный (L2) уровень берет пакет и добавляет к нему заголовок, содержащий информацию для коммутации конкретным аппаратным компонентам, а также нижний футер, содержащий информацию, связанную с обнаружением ошибок. Здесь данные называются фреймом (frame) данных.
  5. Физический (L1) уровень работает с фреймами, преобразуя их в физический сигнал.

Процесс Деинкапсуляции

  1. L1 принимает физический сигнал и преобразовывает в фреймы данных.
  2. L2 проверяет заголовок фрейма, правильно ли он пришел (если нет - выбрасываем), дальше проверяет футер, если есть ошибка, то запрашивается повторная передача данных, иначе, пересылает выше.
  3. L3 получает пакет и смотрит на заголовок (проверка правильности маршрутизации), если всё нормально, то сегмент данных пересылается дальше.
  4. L4 проверяет заголовок сегмента, затем собирает все сегменты в нужном порядке для формирования потока данных.
  5. L5+L6+L7 преобразуют поток данных по правилам конкретного ПО и выдают конечному пользователю.

Сегментирование данных

 Сегментирование - процесс разбиение сообщения на более мелкие единицы. Мультиплексирование - процесс получение нескольких потоков сегментированных данных.

Сегментация имеет два основных преимущества:

  1. Высокая скорость - нет нужны отправлять весь файл по одному каналу связи, можно отправить много сегментов по многим каналам.
  2. Большая эффективность - при потере одного сегмента не надо перекачивать весь файл, а нужно заново скачать только этот сегмент.