что такое инкапсуляция пакетов
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Что такое инкапсуляция данных в сети?
Всякий раз, когда мы отправляем данные из одного узла в другой в компьютерной сети, данные инкапсулируются на стороне отправителя, а деинкапсулируются на стороне получателя. В этой статье мы узнаем, что такое инкапсуляция. Мы также подробно изучим процесс инкапсуляции и деинкапсуляции в моделях OSI и TCP/IP.
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Инкапсуляция данных
Данные инкапсулируются на стороне отправителя, начиная с уровня приложения и заканчивая физическим уровнем. Каждый уровень берет инкапсулированные данные из предыдущего слоя и добавляет некоторую дополнительную информацию для их инкапсуляции и некоторые другие функции с данными. Эти функции могут включать в себя последовательность данных, контроль и обнаружение ошибок, управление потоком, контроль перегрузки, информацию о маршрутизации и так далее.
Деинкапсуляция данных
На рисунке показано, как футер и хедер добавляются и удаляются из данных в процессе инкапсуляции и деинкапсуляции соответственно.
Данные инкапсулируются на каждом уровне на стороне отправителя, а также деинкапсулируются на том же уровне на стороне получателя модели OSI или TCP/IP.
Процесс инкапсуляции (на стороне отправителя)
Шаг 2. Транспортный уровень берет поток данных с верхних уровней и разделяет его на несколько частей. Транспортный уровень инкапсулирует данные, добавляя соответствующий заголовок к каждой части. Эти фрагменты данных теперь называются сегментами данных. Заголовок содержит информацию о последовательности, так что сегменты данных могут быть повторно собраны на стороне получателя.
Шаг 3. Сетевой уровень берет сегменты данных с транспортного уровня и инкапсулирует их, добавляя дополнительный заголовок к сегменту данных. Этот заголовок данных содержит всю информацию о маршрутизации для правильной доставки данных. Здесь инкапсулированные данные называются пакетом данных или дейтаграммой.
Шаг 4: Канальный уровень берет пакет данных или дейтаграмму с сетевого уровня и инкапсулирует ее, добавляя дополнительный заголовок и нижний футер. Заголовок содержит всю информацию о коммутации для правильной доставки данных соответствующим аппаратным компонентам, а футер содержит всю информацию, связанную с обнаружением ошибок и контролем. Здесь инкапсулированные данные называются фреймом данных.
Шаг 5: Физический уровень берет кадры данных с уровня канала передачи данных и инкапсулирует их, преобразовывая их в соответствующие сигналы данных или биты, соответствующие физической среде.
Процесс деинкапсуляции (на стороне получателя)
Шаг 1: Физический уровень принимает инкапсулированные сигналы данных или биты от отправителя и деинкапсулирует их в форме кадра данных, который будет перенаправлен на верхний уровень, то есть на канальный уровень.
Шаг 2: Канальный уровень берет кадры данных с физического уровня. Он деинкапсулирует фреймы данных и проверяет заголовок фрейма, скоммутирован ли фрейм данных на правильное оборудование или нет. Если кадр пришел в неправильное место назначения, он отбрасывается, иначе он проверяет информацию в футере. Если есть какая-либо ошибка в данных, запрашивается повторная передача данных, если нет, то они деинкапсулируются, и пакет данных пересылается на верхний уровень.
Шаг 3. Сетевой уровень принимает пакет данных или дейтаграмму из канального уровня. Он деинкапсулирует пакеты данных и проверяет заголовок пакета, направлен ли пакет в правильное место назначения или нет. Если пакет направляется в неправильный пункт назначения, пакет отбрасывается, если все ок, то он деинкапсулируется, и сегмент данных пересылается на верхний уровень.
Шаг 4: Транспортный уровень берет сегменты данных с сетевого уровня и деинкапсулирует их. Сначала он проверяет заголовок сегмента, а затем повторно собирает сегменты данных для формирования потоков данных, а затем эти потоки данных пересылаются на верхние уровни.
Шаг 5: Уровень приложения, представления и сеанса в модели OSI берет инкапсулированные данные с транспортного уровня, деинкапсулирует их, и данные, относящиеся к конкретному приложению, пересылаются в приложения.
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
4.1.1.3 Интернет в Ethernet
Семенов Ю.А. (ИТЭФ-МФТИ)
Yu. Semenov (ITEP-MIPT)
Для того чтобы пояснить взаимодействие различных систем в сети, рассмотрим сильно упрощенную схему обработки команды ssh vxdesy.desy.de, которая предполагает осуществление удаленного доступа к vx-кластеру в ДЕЗИ, Гамбург (вызов через windows обрабатывается практически аналогично). Сначала ЭВМ выделяет команду ssh и запускает соответствующую программу. Эта программа рассматривает символьный адрес vxdesy.desy.de в качестве параметра команды ssh.
Взаимодействие протоколов при обработке сетевого запроса
Рис. 4.1.1.3.1. Схема обработки сетевого запроса
Сначала определим, что же нужно сделать для решения стоящей задачи? Чтобы обратиться к нужной ЭВМ, система должна знать ее IP-адрес, маску субсети и адрес маршрутизатора или ЭВМ, через которые можно обратиться с запросом на установление канала связи. Рассмотрим решение проблемы поэтапно. Сначала символьный адрес vxdesy.desy.de пересылается серверу имен (DNS-система может располагаться как в ЭВМ пользователя, так и в другой машине), где преобразуется в цифровой IP-адрес, пересылаемый в отклике на DNS-запрос (предварительно надо узнать его MAC-адрес). Но знания IP-адреса недостаточно, надо выяснить, где находится объект с этим адресом. На IP-адрес накладывается сетевая маска (задается при конфигурации рабочей станции), чтобы определить, не является ли данный адрес локальным. Если адрес локален, IP-адрес должен быть преобразован в Ethernet-адрес (MAC), ведь ваша ЭВМ может оперировать только с Ethernet-адресами. Для решения этой задачи посылается широковещательный (обращенный ко всем участникам локальной сети) ARP-запрос. В случае использования IPv6 посылается ND-запрос (Neighbour Detection). Протокол ND позволяет выявить и параметры сетевого шлюза (GW). Если адресат находится в пределах локальной субсети, то он откликнется, прислав Ethernet-адрес своей сетевой карты. Если это не так, что имеет место в приведенном примере, присылается Ethernet-адрес пограничного для данной сети маршрутизатора. Это происходит лишь в случае, если он поддерживает режим proxy-ARP. В противном случае рабочая станция должна воспользоваться IP-адресом маршрутизатора (gateway), заданным при ее конфигурации, и выявить его MAC-адрес с помощью ARP-запроса. Наконец с использованием полученного IP-адреса программа ssh формирует IP-пакет, который вкладывается в Ethernet-кадр и посылается в маршрутизатор узла (ведь именно его адрес она получила в ответ на ARP-запрос в данном примере). Последний анализирует имеющиеся у него маршрутные таблицы и выбирает, по какому из нескольких возможных путей послать указанный пакет. Если адресат внешний, IP-дейтограмма вкладывается в PPP- Ethernet- или какой-то другой кадр (зависит от протокола внешнего канала) и отправляется по каналам Интернет. В реальной жизни все бывает сложней. Во-первых, присланный символьный адрес может быть неизвестен локальной DNS-системе (серверу имен) и она вынуждена посылать запросы вышестоящим DNS-серверам, во-вторых, пограничный маршрутизатор вашей автономной системы может быть непосредственно не доступен (ваша ЭВМ находится, например, в удаленной субсети) и т.д. и т.п. Как система выпутывается из подобных осложнений, будет описано позднее. Следует иметь в виду, что, например, в системе unix все виды Интернет услуг обслуживает демон inetd. Конкретный запрос (Telnet, FTP, Finger и т.д.) поступает именно к нему, inetd резервирует номер порта и запускает соответствующий процесс, после чего переходит в режим ожидания новых запросов. Такая схема позволяет эффективно и экономно работать со стандартными номерами портов (см. раздел 7). Ну а теперь начнем с фундаментальных положений Интернет.
Классы IP-адресов
Таблица. 4.1.1.3.1 Характеристики классов адресов
Структура IP-адресов изображена на рисунке 4.1.1.3.2:
Рис. 4.1.1.3.2. Структура IP-адресов (NetID = идентификатор сети)
Для удобства чтения IP-адреса обычно записываются в десятично-точечной нотации, например: 192.148.166.129 (адрес класса C).
Специальные IP-адреса
Ряд адресов является выделенными для специальных целей:
Рис. 4.1.1.3.2.а. Специальные IP-адреса
Рис. 4.1.1.3.3. Локальная часть IP-адреса
Такая схема обеспечивает необходимую гибкость, дает возможность разделить локальную сеть на субсети. При работе с субсетью необходимо использовать 32-разрядную маску. Разряды маски должны равняться 1, если сеть рассматривает данный бит как часть адреса сети, и 0, если он характеризует адрес ЭВМ в этой сети. Например:
Назначение сетевой маски
255.255.255.254 (десятично-точечное представление)
11111111 11111111 11111111 11111110 (двоичное представление)
описывает маску субсети, в которой работает автор. Алгоритм определения принадлежности IP-адреса субсети с помощью маски достаточно прост, но часто приводит к неэффективному использованию адресного пространства. Если в субсети 50 машин, то маской будет выделен блок из 64-х адресов. 12 адресов при этом не будут использованы.
Вполне возможно, что в будущем список машин субсети будет загружаться в машину при ее первичном подключении к сети, например, DNS-сервером. |
Некоторую информацию о масках в работающей сети можно получить с помощью команды ifconfig (SUN):
le0: flags=863
inet 193.124.224.35 netmask ffffffe0 broadcast 193.124.224.32
lo0: flags=869
inet 127.0.0.1 netmask ffffff00,
Во всех схемах IP-адресации адрес со всеми единицами в секции адрес ЭВМ (host) означает широковещательное обращение ко всем ЭВМ сети. Следует помнить, что широковещательные запросы сильно перегружают сеть, и без особой необходимости их использовать не желательно.
Разбивка сети на субсети имеет целью, среди прочего, ограничение области рассылки широковещательных пакетов (имеются в виду широковещательные МАС-адреса). |
В настоящее время обсуждаются четыре предложения усовершенствования IP-адресации (см. RFC-1454):
Таблица 4.1.1.3.2. Параметры сетевых адресов без классов (взято из книги М.Дж. Мартина «Введение в сетевые технологии»)
Представление без классов | Маска подсети | Число ЭВМ |
/0 | 0.0.0.0 | 0 |
/1 | 128.0.0.0 | 2,14млрд |
/2 | 192.0.0.0 | 1,07млрд |
/3 | 224.0.0.0 | 536млн |
/4 | 240.0.0.0 | 268млн |
/5 | 248.0.0.0 | 134млн |
/6 | 252.0.0.0 | 67млн |
/7 | 254.0.0.0 | 33млн |
/8 | 255.0.0.0 | 16млн |
/9 | 255.128.0.0 | 8млн |
/10 | 255.192.0.0 | 4млн |
/11 | 255.224.0.0 | 2млн |
/12 | 255.240.0.0 | 1млн |
/13 | 255.248.0.0 | 524288 |
/14 | 255.252.0.0 | 262144 |
/15 | 255.254.0.0 | 131072 |
/16 | 255.255.0.0 | 65536 |
/17 | 255.255.128.0 | 32678 |
/18 | 255.255.192.0 | 16384 |
/19 | 255.255.224.0 | 8192 |
/20 | 255.255.240.0 | 4096 |
/21 | 255.255.248.0 | 2048 |
/22 | 255.255.252.0 | 1024 |
/23 | 255.255.254.0 | 512 |
/24 | 255.255.255.0 | 256 |
/25 | 255.255.255.128 | 128 |
/26 | 255.255.255.192 | 64 |
/27 | 255.255.255.224 | 32 |
/28 | 255.255.255.240 | 16 |
/29 | 255.255.255.248 | 8 |
/30 | 255.255.255.252 | 4 |
/31 | 255.255.255.254 | 2 |
/32 | 255.255.255.255 | 1 |
Инкапсуляция пакетов
При формировании пакетов различного уровня используется принцип инкапсуляции (вложения). Так IP-пакеты вкладываются в Ethernet-пакеты (кадры). Всякий пакет имеет заголовок и тело, некоторые из них снабжены контрольной суммой. Схема такого вложения представлена на рисунках 4.1.1.3.4 и 4.1.1.3.5.
Рис. 4.1.1.3.4. cхема вложения пакетов в TCP/IP (в данном примере в поле тип Ethernet кадра будет записан код 0800)
Прикладные программы также как и все протокольное программное обеспечение уровня Интернет и выше работают только с ip-адресами, в то время как уровень сетевого программного обеспечения работает с физическими сетевыми адресами (так Ethernet использует 48-битные адреса).
Обычно при описании сетей используется терминология 7-уровневой модели ISO («стек протоколов»). Так уж получилось, но Интернет лишь с определенными натяжками можно описать, придерживаясь этой схемы.
Ethernet инкапсуляция (RFC 894) (размеры полей указаны в байтах)
Рис. 4.1.1.3.5. Вложение пакетов Интернет в Ethernet- и IEEE 802 пакеты
Рис. 4.1.1.3.6. Структура адресов DSAP и SSAP
Поле CNTL может иметь длину 1 или 2 байта, а его структура соответствовать I, S или U-форматам (см. разделы «Эталонная модель iso» и «x.25»). В однобайтовых полях DSAP и SSAP записывается код типа протокола сетевого уровня. Для протоколов IPX/SPX это и последующее поле содержат код 0xE0. Поле CNTL=03 обозначает нечисловой формат для уровня ethernet 802.2. Эти три байта часто представляют собой код производителя, как правило, совпадающий с первыми тремя байтами адреса отправителя. Иногда они просто делаются равными нулю. Поле тип (2 байта) характеризует используемую версию Ethernet. Из рисунка 4.1.1.3.5 видно, что первые два поля (адреса получателя и отправителя) и последнее поле (CRC) во всех форматах идентичны. При расчете CRC содержимое кадра рассматривается как двоичный полином. Производится деление этого кода на специальный образующий полином. Полученный остаток от деления дополняется по модулю один, результирующий код и считается контрольной суммой CRC. В поле адрес получателя может быть записан код 0xffffffffffff, что указывает на широковещательную адресацию кадра. Адрес отправителя такой код содержать не может. Третье поле может служить для выявления типа используемого протокола. Если в этом поле содержится число более 1500 (десятичное), это указывает на то, что данный кадр имеет формат Ethernet II, а само поле содержит не длину кадра а тип данных. Теперь, надеюсь, читателю понятно, почему кадр Ethernet 802.3 не может содержать более 1500 байт.
Транспортный уровень должен воспринимать данные от нескольких пользовательских программ и пересылать их на более низкий уровень. Многоуровневые протоколы спроектированы так, чтобы слой N по месту назначения получал ту же самую информацию, что была послана слоем N отправителя. Прикладные программы также как и все протокольное программное обеспечение уровня Интернет и выше использует только IP-адреса (32 бита), в то время как уровень сетевого программного обеспечения работает с физическими сетевыми адресами (так Ethernet использует 48-битные адреса).
Когда IP-дейтограмма попадает в ЭВМ, сетевое программное обеспечение передает ее программе IP-уровня. Если адрес места назначения совпадает с IP-адресом ЭВМ, дейтограмма принимается и передается на более высокий уровень для дальнейшей обработки. При несовпадении адресов дейтограмма уничтожается (переадресация дейтограмм для ЭВМ запрещена, это функция маршрутизатора). Хотя можно заставить ЭВМ выполнять задачи маршрутизации, с точки зрения Интернет-философии это плохая идея.
Значения MTU для различных сетей
Таблица 4.1.1.3.3 Значения MTU для различных сетевых стандартов
Сеть | MTU (байт) |
Hyperchannel (Сеть с топологией типа шина, с CSMA/CD-доступом, числом подключений Рассмотрим по фрагментную передачу дейтограммы с длиной в 1300 октетов в предположении, что более 576 октетов за один раз передать нельзя. Рис. 4.1.1.3.6. Пример фрагментации пакета Куда будет направлен Ethernet-кадр, указывает значение для типа в заголовке кадра (рис. 4.1.1.3.5). Если IP-пакет попадает в модуль IP, то содержащиеся в нем данные могут быть переданы либо модулю TCP (Transmission Control Protocol), либо UDP, что определяется полем «протокол» в заголовке IP-пакета. Одним из основополагающих понятий в теории маршрутизации является автономная система (AS). Автономную систему составляет IP-сеть (или система из нескольких IP-сетей), проводящая единую политику внешней маршрутизации и имеющая одного или более операторов. Все AS имеют уникальные номера. Идеология AS позволяет решить проблему безудержного роста размера таблиц маршрутизации. Построение узла Интернет неотделимо от формирования локальной сети, поэтому прежде чем перейти к углубленному описанию протоколов TCP/IP, введем определения некоторых сетевых устройств, без которых построение локальной сети невозможно. Курс по основам компьютерных сетей на базе оборудования Cisco. Этот курс поможет вам подготовиться к экзаменам CCENT/CCNA, так как за его основу взят курс Cisco ICND1.1.16 Принцип инкапсуляции данных, фрагментации и декапсуляции в моделях TCP/IP и OSI 7Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей, напомню, что эти записи основаны на программе Cisco ICND1 и помогут вам подготовиться к экзаменам CCENT/CCNA. Эта запись обобщает информацию, полученную нами в четырех предыдущих. Разобравшись с процессами инкапсуляции и декапсуляции данных, у вас появится представление о том, как работает компьютерная сеть и почему уровни модели передачи данных и их функционал изолированы друг от друга. Перед началом я хотел бы вам напомнить, что ознакомиться с опубликованными материалами первой части нашего курса можно по ссылке: «Основы взаимодействия в компьютерных сетях». 1.16.1 ВведениеЭта тема подводит итог четырем предыдущим и объединяет их воедино, ранее мы разбирались с моделями передачи данных: сначала мы рассмотрели семуровневую модель передачи данных OSI 7, а затем модель стека протоколов TCP/IP, а до этого мы узнали в чем польза от декомпозиции задачи сетевого взаимодействия и в чем разница между протоколами и службами. Мы очень подробно рассмотрели процессы, происходящие на различных уровнях моделей, перечислили устройства и протоколы, которые выполняют функции того или иного уровня, но мы практически не разбирались с тем, что происходит с данными, когда они переходят с одного уровня на другой. И на самом деле, процесс передачи данных с одного уровня на другой очень важен для понимания принципов работы сетевых устройств, компьютерных сетей и протоколов, так как вся суть работы протоколов заключена в заголовках, которые добавляются или убираются в зависимости от того, с какого уровня на какой переходят данные. Процесс добавления заголовка поверх существующего называется инкапсуляция данных, это когда данные движутся с более высокого уровня вниз (то есть при подготовке данных к передаче), процесс снятия заголовка называется декапсуляция данных, это когда данные движутся снизу вверх, то есть при приеме. 1.16.2 Принцип инкапсуляции данных в компьютерной сетиВ других темах мы уже не раз упоминали, что данные, передаваемые по сети, должны пройти процесс обработки как на передающей стороне, так и на принимающей. Когда передающая сторона готовит данные к передаче – это процесс инкапсуляции данных, и наоборот, когда принимающая сторона начинает обрабатывать входящую последовательность бит и формировать из нее сообщения – это процесс декапсуляции. Начнем мы с передающей стороны и посмотрим, что происходит с данными, когда они готовятся к передаче. Процессы инкапсуляции и декапсуляции будем рассматривать на примере модели стека протоколов TCP/IP, можно было бы это сделать и на примере эталонной модели сетевого взаимодействия, но это будет дольше, а принцип один и тот же, с той лишь разницей, что данные в модели OSI 7 никак не фрагментируются при их переходе с седьмого уровня на пятый, с ними просто происходят какие-то изменения (они архивируются, кодируются, шифруются, в общем, как-то преобразуются), но они не разбиваются на сообщения, которые затем будут передаваться по сети, фрагментация начинается только на транспортном уровне. В обеих моделях передачи данных на каждом уровне, начиная с транспортного, и кроме физического, идет процесс инкапсуляции данных, то есть на каждом уровне к имеющимся данным добавляется заголовок и при необходимости к данным может быть добавлена метка конца. На транспортном уровне еще происходит процесс фрагментации данных, то есть разбиение больших данных, которые отправляет пользователь, на маленькие сообщения, которые удобно передавать по сети (фрагментация может происходит еще и на сетевом уровне, но это не совсем стандартная ситуация, поэтому сейчас мы ее не рассматриваем). На физическом уровне модели передачи данных упакованные в несколько слоев сообщения превращаются в последовательность бит, чтобы затем отправиться в среду передачи данных. Что содержится в заголовках, которыми упаковываются данные? Это зависит от уровня модели передачи данных и того протокола, чей заголовок добавляется к сообщению, самые важные для нас протоколы и заголовки мы рассмотрим (IPv4, IPv6, TCP, UDP, Ethernet), но если говорить в общем, то заголовки содержат служебную информацию, которая помогает устройствам компьютерной сети определить: кому принадлежит данное сообщение, куда его дальше отправить, не повредилось ли сообщение, какое сообщение в полученной последовательности является первым, а какое вторым и многое другое. Принцип инкапсуляции данных для модели стека протоколов TCP/IP показан ниже на Рисунке 1.16.1. Рисунок 1.16.1 Принцип инкапсуляции данных в модели стека протоколов TCP/IP Здесь у нас есть пользователь, который хочет отправить свое другу сообщение: «Привет, Вася!». Этот пользователь открывает почтовый клиент, вводит сообщение и нажимает кнопку «Отправить». Пока пользователь вводит сообщение и пока его обрабатывает почтовый клиент, оно представлено в виде «Пользовательских данных», как только это сообщение попадет на транспортный уровень, он превратится в сегмент или дейтаграмму (в зависимости от протокола, который будет использован для передачи: TCP или UDP), более того, если пользовательские данные будут слишком большими, то на транспортном уровне будет выполнена фрагментация, то есть данные пользователя будут разбиты на сообщения поменьше и к каждому сообщению будет добавлен заголовок транспортного уровня, по которому принимающая сторона сможет снова собрать сообщение, которое послал пользователь, а также определить: какому приложение следует отправить полученные данные на обработку. После того, как транспортный уровень закончит свои операции, он передаст получившиеся сообщения на сетевой уровень, сетевой уровень поверх заголовка транспортного уровня добавит свой заголовок и получится пакет, то есть для сетевого уровня данными уже являются сегменты и дейтаграммы, которые приходят к нему с транспортного уровня. По заголовку сетевого уровня маршрутизаторы/роутеры смогут составить маршрут, по которому будет двигаться пакет в компьютерной сети. Далее пакеты спустятся на канальный уровень, для канального уровня данными уже являются пакеты. На канальном уровне поверх заголовка сетевого уровня будет добавлен заголовок канального уровня, но, кроме того, после того, как будет добавлен заголовок, клиентский компьютер посчитает контрольную сумму получившейся конструкции и запишет ее после пользовательских данных, чтобы принимающее устройство смогло проверить: а не повредились ли данные при передаче по сети. Вся конструкция целиком называется кадром. Сетевые карты компьютеров и коммутаторы для передачи данных пользуются заголовками канального уровня. Перед тем, как отправить данные в канал связи, передающий компьютер превратит полученные кадры в последовательность бит. Собственно, сама передача данных ведется в физической среде, которая определяет скорость передачи данных и некоторые другие важные характеристики компьютерной сети. Тут стоит сказать, что все вышеописанные операции ведутся внутри передающего компьютера и всё это вместе называется инкапсуляцией данных. Если говорить о устройствах физического уровня, то можно вспомнить хабы и сетевые концентраторы с их недостатками, к счастью, они уже не используются. Мы рассмотрели инкапсуляцию данных в модели TCP/IP, если говорить про модель OSI 7, то здесь будет несколько незначительных отличий, о которых мы уже говорили выше, основной принцип останется тем же. 1.16.3 Декапсуляция данныхДавайте теперь посмотрим, что будет происходить на принимающей стороне, то есть разберемся с принципом декапсуляции данных в моделях TCP/IP и OSI 7. Декапсуляция данных – это процесс обратный инкапсуляции, если при подготовке данных к передаче мы их запаковывали, то на принимающей стороне мы их будем распаковывать, если все понятно, то можете пропустить раздел этот раздел, если нет, то давайте разбираться. Декапсуляция данных показана на Рисунке 1.16.2. Рисунок 1.16.2 Принцип декапсуляции данных в модели стека протоколов TCP/IP Как видите, второй рисунок ничем не отличается от первого, разница только в направлении стрелки, которая показывает, что компьютер Васи занимается приемом данных, то есть идет процесс декапсуляции данных. Итак, компьютер Васи, подключенный витой парой к компьютерной сети получает сообщения на скорости 100 Мбит/c, которые на физическом уровне представлены в виде последовательности бит, эти биты поступают на канальный уровень и на нем принимающий компьютер собирает из них кадры, по заголовку кадра компьютер Васи понимает, что это сообщение принадлежит ему, а по контрольной сумме компьютер понимает, что сообщение не было повреждено в процессе передачи по сети. Компьютер Васи понимает, что пользователь не сможет самостоятельно разобраться с кадрами и понять, что в них находится, кроме того, компьютер Васи может быть транзитным устройством, то есть передавать данные дальше, ему нужно убедиться, что эти данные действительно для него, чтобы в этом убедиться, ему нужно убрать заголовок канального уровня и контрольную сумму и заглянуть в заголовок сетевого уровня, в заголовке сетевого уровня находятся логические адреса, которые однозначно идентифицируют узел в компьютерной сети. Принимающий компьютер проанализировал заголовок сетевого уровня и понял, что эти данные действительно для него и их нужно обрабатывать дальше, поэтому он снимает сетевой заголовок и видит заголовок транспортного уровня. Заголовок транспортного уровня содержит подсказку для компьютера Васи о том, в какой последовательности нужно собрать сегменты, чтобы из них получились исходные данные, а также по этому заголовку компьютер видит какому прикладному приложению отправить полученные данные на обработку, в нашем случае это почтовый клиент. Как только почтовый клиент получит данные от транспортного уровня и обработает их, он оповестит Васю о том, что пришло новое сообщение. Давайте объединим два наших рисунка, чтобы увидеть картину целиком. Рисунок 1.16.3 Инкапсуляция и декапсуляция данных в модели стека протоколов TCP/IP или процесс приема и передачи данных в компьютерной сети Из рисунка видно, что при помощи протокола прикладного уровня общаются клиентские приложения, на транспортном уровне происходит взаимодействие двух компьютеров, как логических устройств, также у компьютеров есть сетевая библиотека, которая помогает ему принимать решения о том, что делать с полученными пакетами, а также у компьютера есть такое устройство, как сетевая карта, которая дает ему доступ к физическим ресурсам компьютерной сети, то есть позволяет подключаться к этой самой сети. Как видите, ничего сложного в декапсусляции и инкапсуляции нет, это похоже на процесс запаковки и распаковки конфет: на заводе они запаковываются в фантики, а перед тем как их съесть, вы эти фантики разворачиваете. 1.16.4 ВыводыДавайте подведем итоги разговору о принципе инкапсуляции и декапсуляции данных, который реализован в моделях передачи данных TCP/IP и OSI 7, то есть этот принцип работает во всех компьютерных сетях, как в самых маленьких, так и в самых больших, вне зависимости от типа сетевого трафика, передаваемого по компьютерной сети. Пользователь или конечный потребитель услуги взаимодействует с приложениями, то есть с самым верхним уровнем модели передачи данных. То есть протоколы верхнего уровня используются для взаимодействия приложений друг с другом, так, например, http-клиент или просто браузер взаимодействует с http-сервером в сети Интернет по одноименному протоколу (в качестве примера веб-сервера можно привести сервер Apache), особенностью схемы взаимодействия клиент-сервер в данном случае является то, что ни клиентское, ни серверное приложение ничего не знают о существование компьютерной сети, даже если клиент находится в Сибири, а сервер в Нью-Йорке, так как от этих приложений эта информация скрыта, благодаря принципу инкапсуляции данных, эти приложения общаются на своем уровне при помощи http-сообщений: клиент шлет запросы, а сервер ответы. С верхних уровней данные попадают на транспортный уровень, этот уровень отвечает за взаимодействие двух конечных узлов, он помогает узлам разделять трафик различных приложений при отправки и при получении, но кроме этого, транспортный уровень делит большие объемы данных, которые пользователи отправляют, на небольшие фрагменты, каждому такому фрагменту на транспортном уровне добавляется специальный заголовок, который нужен для того, чтобы принимающая сторона смогла собрать из мелких сообщений исходные данные. На транспортном уровне также еще нет представления о устройстве сети, так как транспортный уровень создает надежный виртуальный канал поверх ненадежной сети передачи данных, а нижние уровни от него изолированы. Сообщения транспортного уровня спускаются на сетевой уровень и к ним добавляется сетевой заголовок, этот заголовок помогает маршрутизаторам определить путь, по которому будут следовать данный при их передаче из пункта А в пункт Б, то есть здесь у нас появляется представление о логической топологии компьютерной сети, но нет понимания того, как получить физический доступ к ресурсам нашей сети, эта информация сокрыта от сетевого уровня. С сетевого уровня пакеты попадают на канальный уровень и к ним добавляются соответствующие заголовки, после чего они становятся кадрами. Канальный уровень дает доступ нашему компьютеру к реальным ресурсам компьютерной сети, то есть определяет интерфейсы и технологии, по которым будет осуществляться передача данных от узла к узлу. А также на канальном уровне реализована функция проверки целостности данных. После того, как кадр будет сформирован, компьютер превратит его в последовательность нулей и единиц и отправит эту последовательность по линии связи. Если говорить коротко, то принцип инкапсуляции и декапсуляции данных решает проблему изоляции и разграничения функционала между уровнями модели передачи данных, это всё возможно благодаря тому, что на каждом уровне данные оборачиваются в дополнительный заголовок, когда они готовятся к передаче, а на приемной стороне эти заголовки снимаются.
|