5.7 KiB
status, type, tags, created, updated, aliases
| status | type | tags | created | updated | aliases | |||
|---|---|---|---|---|---|---|---|---|
| stable | concept |
|
2025-12-17 | 2026-05-07 |
|
Инкапсуляция Данных
Согласно моделям Модель OSI и TCP/IP данные передаются последовательно от приложения ниже по уровням, далее по физическому уровню от отправителя к получателю, а у получателя последовательно вверх к уровню приложения. Процесс "спуска" сверху вниз называется инкапсуляцией, а "подъем" снизу вверх - деинкапсуляцией
Инкапсуляция
Инкапсуляция данных - это процесс добавления к исходным данным, полученным с уровня приложения (L7), некоторой дополнительной служебной информации, которая позволяет надлежащим образом обрабатывать и передавать исходную информацию. Добавляться информация может как в заголовок (header), так и в конец (footer, trailer) данных.
Деинкапсуляция
Деинкапсуляция данных - процесс, очевидно, обратный инкапсуляции. Информация, полученная на уровне n в процессе инкапсуляции, обрабатывается тем же уровнем n в процессе деинкапсуляции и эта информация удаляется из данных.
Процесс Инкапсуляции
- Приложение получает какие-то данные (имеются ввиду L7+L6+L5), обрабатывает, инкапсулирует (как - не столь важно, это зависит от приложения, притом не обязательно, добавляя headers).
- Транспортный (L4) уровень получает поток данных и разделяет на несколько частей. К каждой части добавляет заголовок, теперь это "сегменты данных". Заголовки содержат информацию о последовательности, что позволяет получателю собрать сегменты в полноценный поток данных.
- Сетевой (L3) уровень получает сегменты данных, добавляя им заголовок, содержащий служебную информацию о маршрутизации для правильной доставки данных. Теперь сегмент называется пакетом или дейтаграммой (datagram).
- Канальный (L2) уровень берет пакет и добавляет к нему заголовок, содержащий информацию для коммутации конкретным аппаратным компонентам, а также нижний футер, содержащий информацию, связанную с обнаружением ошибок. Здесь данные называются фреймом (frame) данных.
- Физический (L1) уровень работает с фреймами, преобразуя их в физический сигнал.
Процесс Деинкапсуляции
- L1 принимает физический сигнал и преобразовывает в фреймы данных.
- L2 проверяет заголовок фрейма, правильно ли он пришел (если нет - выбрасываем), дальше проверяет футер, если есть ошибка, то запрашивается повторная передача данных, иначе, пересылает выше.
- L3 получает пакет и смотрит на заголовок (проверка правильности маршрутизации), если всё нормально, то сегмент данных пересылается дальше.
- L4 проверяет заголовок сегмента, затем собирает все сегменты в нужном порядке для формирования потока данных.
- L5+L6+L7 преобразуют поток данных по правилам конкретного ПО и выдают конечному пользователю.
Сегментирование данных
Сегментирование - процесс разбиение сообщения на более мелкие единицы. Мультиплексирование - процесс получение нескольких потоков сегментированных данных.
Сегментация имеет два основных преимущества:
- Высокая скорость - нет нужны отправлять весь файл по одному каналу связи, можно отправить много сегментов по многим каналам.
- Большая эффективность - при потере одного сегмента не надо перекачивать весь файл, а нужно заново скачать только этот сегмент.