vault backup: 2026-05-24 15:03:28
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
---
|
||||
status: stable
|
||||
type: concept
|
||||
tags:
|
||||
- network
|
||||
- networking
|
||||
created: 2025-12-17
|
||||
updated: 2026-05-07
|
||||
title: Инкапсуляция Данных
|
||||
---
|
||||
|
||||
# Инкапсуляция Данных
|
||||
Согласно моделям [[Модель OSI|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. Большая эффективность - при потере одного сегмента не надо перекачивать весь файл, а нужно заново скачать только этот сегмент.
|
||||
Reference in New Issue
Block a user