какие функциональные возможности предоставляются инкапсуляцией второго уровня модели osi
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Модель OSI – это просто!
Модель Open Systems Interconnection (OSI) – это скелет, фундамент и база всех сетевых сущностей. Модель определяет сетевые протоколы, распределяя их на 7 логических уровней. Важно отметить, что в любом процессе, управление сетевой передачей переходит от уровня к уровню, последовательно подключая протоколы на каждом из уровней.
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
Видео: модель OSI за 7 минут
Нижние уровни отвечают за физические параметры передачи, такие как электрические сигналы. Да – да, сигналы в проводах передаются с помощью представления в токи 🙂 Токи представляются в виде последовательности единиц и нулей (1 и 0), затем, данные декодируются и маршрутизируются по сети. Более высокие уровни охватывают запросы, связанные с представлением данных. Условно говоря, более высокие уровни отвечают за сетевые данные с точки зрения пользователя.
Модель OSI была изначально придумана как стандартный подход, архитектура или паттерн, который бы описывал сетевое взаимодействие любого сетевого приложения. Давайте разберемся поподробнее?
#01: Физический (physical) уровень
На первом уровне модели OSI происходит передача физических сигналов (токов, света, радио) от источника к получателю. На этом уровне мы оперируем кабелями, контактами в разъемах, кодированием единиц и нулей, модуляцией и так далее.
Отметим, что в качестве носителя данных могут выступать не только электрические токи. Радиочастоты, световые или инфракрасные волны используются также повсеместно в современных сетях.
Сетевые устройства, которые относят к первому уровню это концентраторы и репитеры – то есть «глупые» железки, которые могут просто работать с физическим сигналом, не вникая в его логику (не декодируя).
#02: Канальный (data Link) уровень
Представьте, мы получили физический сигнал с первого уровня – физического. Это набор напряжений разной амплитуды, волн или радиочастот. При получении, на втором уровне проверяются и исправляются ошибки передачи. На втором уровне мы оперируем понятием «фрейм», или как еще говорят «кадр». Тут появляются первые идентификаторы – MAC – адреса. Они состоят из 48 бит и выглядят примерно так: 00:16:52:00:1f:03.
Канальный уровень сложный. Поэтому, его условно говоря делят на два подуровня: управление логическим каналом (LLC, Logical Link Control) и управление доступом к среде (MAC, Media Access Control).
На этом уровне обитают такие устройства как коммутаторы и мосты. Кстати! Стандарт Ethernet тоже тут. Он уютно расположился на первом и втором (1 и 2) уровнях модели OSI.
#03: Сетевой (network) уровень
Идем вверх! Сетевой уровень вводит термин «маршрутизация» и, соответственно, IP – адрес. Кстати, для преобразования IP – адресов в MAC – адреса и обратно используется протокол ARP.
Именно на этом уровне происходит маршрутизация трафика, как таковая. Если мы хотим попасть на сайт wiki.merionet.ru, то мы отправляем DNS – запрос, получаем ответ в виде IP – адреса и подставляем его в пакет. Да – да, если на втором уровне мы используем термин фрейм/кадр, как мы говорили ранее, то здесь мы используем пакет.
Из устройств здесь живет его величество маршрутизатор 🙂
Процесс, когда данные передаются с верхних уровней на нижние называется инкапсуляцией данных, а когда наоборот, наверх, с первого, физического к седьмому, то этот процесс называется декапсуляцией данных
#04: Транспортный (transport) уровень
Транспортный уровень, как можно понять из названия, обеспечивает передачу данных по сети. Здесь две основных рок – звезды – TCP и UDP. Разница в том, что различный транспорт применяется для разной категории трафика. Принцип такой:
#05: Сеансовый (session) уровень
Попросите любого сетевого инженера объяснить вам сеансовый уровень. Ему будет трудно это сделать, инфа 100%. Дело в том, что в повседневной работе, сетевой инженер взаимодействует с первыми четырьмя уровнями – физическим, канальным, сетевым и транспортным. Остальные, или так называемые «верхние» уровни относятся больше к работе разработчиков софта 🙂 Но мы попробуем!
Сеансовый уровень занимается тем, что управляет соединениями, или попросту говоря, сессиями. Он их разрывает. Помните мем про «НЕ БЫЛО НИ ЕДИНОГО РАЗРЫВА»? Мы помним. Так вот, это пятый уровень постарался 🙂
#06 Уровень представления (presentation)
На шестом уровне творится преобразование форматов сообщений, такое как кодирование или сжатие. Тут живут JPEG и GIF, например. Так же уровень ответственен за передачу потока на четвертый (транспортный уровень).
#07 Уровень приложения (application)
На седьмом этаже, на самой верхушке айсберга, обитает уровень приложений! Тут находятся сетевые службы, которые позволяют нам, как конечным пользователям, серфить просторы интернета. Гляньте, по какому протоколу у вас открыта наша база знаний? Правильно, HTTPS. Этот парень с седьмого этажа. Еще тут живут простой HTTP, FTP и SMTP.
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
OSI Model
Содержание
Сетевая модель OSI [ править ]
Общая характеристика модели [ править ]
OSI состоит из двух основных частей:
Концепция семиуровневой модели была описана в работе Чарльза Бахмана. Данная модель подразделяет коммуникационную систему на уровни абстракции (англ. «abstraction layers»). В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представления, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень:
Каждый из семи уровней характеризуется типом данных (PDU, сокращение от англ. protocol data units), которым данный уровень оперирует и функционалом, который он предоставляет слою, находящемуся выше него. Предполагается, что пользовательские приложения обращаются только к самому верхнему (прикладному) уровню, однако на практике это выполняется далеко не всегда.
Описание уровней модели OSI [ править ]
Уровень | Функции | PDU | Примеры |
7. Прикладной | Некоторое высокоуровневое API | Данные | HTTP, FTP |
6. Представительский | Представление данных между сетевым сервисом и приложением | Данные | ASCII, EBCDIC, JPEG |
5. Сеансовый | Управление сеансами: продолжительный обмен информацией в виде множества передач между нодами | Данные | RPC, PAP |
4. Транспортный | Надёжная передача сегментов между двумя нодами в сети | Сегменты/Датаграммы | TCP, UDP |
3. Сетевой | Структуризация и управление множеством нод в сети | Пакеты | IPv4, IPv6 |
2. Канальный | Надёжная передача датафреймов между двумя нодами соединённых физическим уровнем | Фреймы | PPP, IEEE 802.2, Ethernet |
1. Физический | Передача и приём потока байтов через физическое устройство | Биты | USB, витая пара |
Прикладной уровень (Application layer) [ править ]
Самый верхний уровень модели, предоставляет набор интерфейсов для взаимодействия пользовательских процессов с сетью. Единицу информации, которой оперируют три верхних уровня модели OSI, принято называть сообщение (англ. message).
Прикладной уровень выполняет следующие функции:
К числу наиболее распространенных протоколов верхних трех уровней относятся:
Уровень представления (Presentation layer) [ править ]
Уровень представления занимается представлением данных, передаваемых прикладными процессами в нужной форме. Данные, полученные от приложений с прикладного уровня, на уровне представления преобразуются в формат подходящий для передачи их по сети, а полученные по сети данные преобразуются в формат приложений. Также кроме форматов и представления данных, данный уровень занимается конвертацией структур данных, используемых различными приложениями. Другой функцией, выполняемой на уровне представлений, является шифрование данных, которое применяется в тех случаях, когда необходимо защитить передаваемую информацию от доступа несанкционированными получателями.
Как и прикладной уровень, уровень представления оперирует напрямую сообщениями. Уровень представления выполняет следующие основные функции:
Примеры протоколов данного уровня:
Сеансовый уровень (Session layer) [ править ]
Сеансовый уровень контролирует структуру проведения сеансов связи между пользователями. Он занимается установкой, поддержанием и прерыванием сеансов, фиксирует, какая из сторон является активной в данный момент, осуществляет синхронизацию обмена информацией между пользователями, что также позволяет устанавливать контрольные точки.
На сеансовом уровне определяется, какой будет передача между двумя прикладными процессами:
Как 2 уровня над ним, сеансовый уровень использует сообщения в качестве PDU.
Примеры протоколов сеансового уровня:
Транспортный уровень (Transport layer) [ править ]
Транспортный уровень предназначен для передачи надежной последовательностей данных произвольной длины через коммуникационную сеть от отправителя к получателю. Уровень надежности может варьироваться в зависимости от класса протокола транспортного уровня. Так например UDP гарантирует только целостность данных в рамках одной датаграммы и не исключает возможности потери/дублирования пакета или нарушения порядка получения данных; TCP обеспечивает передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот, склеивая фрагменты в один пакет.
Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов. В функции транспортного уровня входят:
Транспортный уровень использует сегменты или датаграммы в качестве основного типа данных.
Сетевой уровень (Network layer) [ править ]
Сетевой уровень предоставляет функционал для определения пути передачи пакетов данных между клиентами, подключенными к одной коммуникационной сети. На данном уровне решается проблема маршрутизации (выбора оптимального пути передачи данных), трансляцией логических адресов в физические, отслеживанием неполадок в сети.
В рамках сетевого надежность доставки сообщений не гарантируется; сетевой уровень может реализовывать соответствующий функционал, но не обязан это делать. Роль PDU исполняют пакеты (англ. packet).
Сетевой уровень выполняет функции:
Наиболее часто на сетевом уровне используются протоколы:
Канальный уровень (Data link layer) [ править ]
Канальный уровень предназначен для передачи данных между двумя узлами, находящихся в одной локальной сети. Роль PDU исполняют фреймы (англ. frame). Фреймы канального уровня не пересекают границ локальной сети, что позволяет данному уровню сосредоточиться на локальной доставке (фактически межсетевой доставкой занимаются более высокие уровни).
Заголовок фрейма формируется из аппаратных адресов отправителя и получателя, что позволяет однозначно определить устройство, которое отправило данный фрейм и устройство, которому он предназначен. При этом никакая часть адреса не может быть использована, чтобы определить некую логическую/физическую группу к которой принадлежит устройство.
Канальный уровень состоит из двух подуровней: LLC и MAC.
Канальный уровень выполняет функции:
Наиболее часто на канальной уровне используются протоколы:
Физический уровень (Physical layer) [ править ]
Физический уровень описывает способы передачи потока бит через дата линк, соединяющий сетевые устройства. Поток байт может быть сгруппирован в слова и сконвертирован в физический сигнал, который посылается через некоторое устройство.
Здесь специфицируются такие низкоуровневые параметры как частота, амплитуда и модуляция.
Физический уровень выполняет функции:
Наиболее часто на физическом уровне используются протоколы:
Инкапсуляция [ править ]
Физический уровень ответственен за физическую передачу данных. IP предоставляет глобальный способ адресации устройств. TCP добавляет возможность выбора приложения (порт).
Во время инкапсуляции каждый уровень собирает свой собственный PDU, добавляя некоторый заголовок с контрольной информацией к PDU с более высокого уровня.
Пример [ править ]
Предположим мы отправляем веб-страницу клиенту:
Эталонная модель OSI
Обзор
В течение двух последних десятилетий наблюдался значительный рост глобальных сетей. Убедившись, что использование сетевых технологий сулит существенную экономию денежных средств и повышение производительности труда, крупные организации стали уделять особое внимание этому направлению. Новые технологии и продукты внедрялись сразу после их появления, и поэтому многие сети были сформированы с использованием различных аппаратных и программных средств. Вследствие этого многие сети оказались несовместимыми и стало сложным организовывать обмен информацией между компьютерами, использующими различные сетевые спецификации. К середине 80-х годов компании начали испытывать трудности от развития сетей. Становилось всё сложнее объединять сети, использующие разные спецификации и исполнения. Эти компании осознали, что пора прекращать закрытое использование сетевых систем – систем, которые отдельно развиваются, используются и управляются. Закрытость системы значит, что только одна компания или маленькая группа компаний контролирует всё использование технологии. Открытость системы означает, что она доступна для использования любому желающему. Для решения проблемы взаимодействия различных сетей Международная Организация Стандартизации приступила к поискам схемы межсетевого взаимодействия. Результатом исследований стало создание модели OSI, которая должна способствовать созданию совместимых сетевых технологий. Модель OSI снабдила разработчиков набором стандартов, обеспечивающих совместимость и способность соединения различных типов сетей разработанных разными компаниями по всему миру. Хотя существуют и другие модели, большинство разработчиков сетей сегодня связывают свои продукты с моделью OSI, особенно если они хотят обучить клиентов использовать свою продукцию. Модель OSI признана лучшим инструментом для изучения тем, связанных с передачей и приёмом данных в сети. Модель OSI состоит из 7-ми уровней, каждый из которых соответствует определённой сетевой функции. Модель OSI определяет сетевые функции, соответствующие каждому уровню. Что ещё более важно, модель OSI способствует пониманию, как информация путешествует по сети. Если смотреть глубже, модель OSI описывает, как данные путешествуют от одного приложения пользователя, через сетевые коммуникации, к приложению пользователя, расположенному на другом компьютере, даже если подключены к сети разными кабелями.
Описание модели OSI
Эталонная модель OSI — это описательная схема сети; ее стандарты гарантируют высокую совместимость и способность к взаимодействию различных типов сетевых технологий. Кроме того, она иллюстрирует процесс перемещения информации по сетям. Это концептуальная структура, определяющая сетевые функции, реализуемые на каждом ее уровне. Модель OSI описывает, каким образом информация проделывает путь через сетевую среду (например, провода) от одной прикладной программы (например, программы обработки таблиц) к другой прикладной программе, находящейся в другом подключенном к сети компьютере. По мере того, как подлежащая отсылке информация проходит вниз через уровни системы, она становится все меньше похожей на человеческий язык и все больше похожей на ту информацию, которую понимают компьютеры, а именно на «единицы» и «нули». Эталонная модель OSI делит задачу перемещения информации между компьютерами через сетевую среду на семь менее крупных и, следовательно, более легко разрешимых подзадач. Каждая из этих семи подзадач выбрана потому, что она относительно автономна и, следовательно, ее легче решить без чрезмерной опоры на внешнюю информацию. Такое разделение на уровни называется иерархическим представлением. Каждый уровень соответствует одной из семи подзадач.
Модель OSI упрощает понимание сетевых функций благодаря следующим чертам:
Уровни модели OSI и их функции.
Каждый уровень модели OSI имеет специальные функции, соответствующие программному обеспечению или устройствам.
Уровень 1: Физический уровень
Физический уровень – это самый нижний уровень системы, который отвечает за кодирование передаваемой информации в уровень сигналов, принятый в среде передачи, и обратное декодирование. Здесь же определяются требования к соединениям, разъёмам, электрическому согласованию, заземлению, защите от помех.
Уровень 3: Сетевой уровень
Отвечает за адресацию пакетов и перевод логических имён в физические сетевые адреса(и обратно), а также за выбор маршрута, по которому пакет доставляется по назначению(если в сети имеется несколько маршрутов).
Уровень 4: Транспортный уровень
Сессионный уровень устанавливает, управляет и разрывает связь между двумя хостами. Этот уровень также синхронизирует диалог между представительскими уровнями 2-х хостов и управляет их обменом данных. Он же распознаёт логические имена абонентов, контролирует предоставленные им права доступа.
Уровень 5: Сеансовый уровень
Основная функция, выполняемая на сеансовом уровне, напоминает работу посредника или судьи — управление диалогом между устройствами, называемыми также узлами. Взаимодействие систем, организуемое на этом уровне, может происходить в трех различных режимах: симплексном (simplex), полудуплексном (half-duplex) и полнодуплексном (full-duplex). Сеансовый уровень обычно занимается отделением данных одного приложения от информации другого приложения.
Ниже приведены некоторые протоколы и интерфейсы сеансового уровня:
Уровень 6: Представительский уровень
Представительский уровень, или уровень представления данных, определяет пригодны ли данные, посланные прикладным уровнем одной системы для чтения прикладным уровнем другой системы, если нет – определяет и преобразует формат данных в необходимый. Здесь же выполняется шифрование и дешифрование данных, а при необходимости – сжатие.
Уровень 7: Прикладной уровень
Прикладной уровень наиболее близок к пользователю из всех уровней модели OSI. Этот уровень предоставляет сетевые сервисы пользователю, такие как передача файлов, электронная почта и т.д. Уровень приложений отличается от других тем, что он не предоставляет услуги другим уровням, только приложениям вне модели OSI. Он также управляет остальными шестью уровнями.
Инкапсуляция и деинкапсуляция.
Информация, передаваемая по сети, должна быть подвергнута процессу трансформации как на передающей стороне, так и на принимающей. Процессы трансформации называются инкапсуляция и деинкапсуляция.
Информация, передаваемая по сети, обычно называется данными или пакетами данных. Если один компьютер хочет отправить информацию другому компьютеру, данные для начала должны быть упакованы процессом, называемым инкапсуляция. Инкапсуляция добавляет к данным необходимую информацию протоколов перед передачей по сети. Когда данные переходят с одного уровня модели OSI на другой, каждый уровень добавляет к данным заголовок(или прицеп), перед тем, как отправить ниже, на следующий уровень. Заголовки и контейнеры содержат управляющую информацию для сетевых устройств и получателя, которая гарантирует правильную доставку данных и их интерпретацию.
Рисунок иллюстрирует, как происходит инкапсуляция, методы прохождения данных через уровни модели OSI. В процессе инкапсуляции данные проходят следующие шаги:
Пример: Отправка пакета через службу E-mail.
Инкапсуляция очень похожа на отправку письма через E-mail. Первым делом информация помешается в письмо. Потом Вы приписываете адрес, на который Вы хотите отправить письмо, к контейнеру, содержащему информацию. Затем вы поместите письмо в очередь отправки службы E-mail и пакет начнёт свой путь к месту назначения.
Деинкапсуляция
Когда удалённое устройство принимает последовательность битов, физический уровень передаёт биты информации канальному уровню для обработки. Канальный уровень выполняет следующие шаги:
Пример: Получение письма.
Процесс деинкапсуляции схож с чтением адреса на письме, чтобы определить, Вам ли оно предназначено, и затем читаете содержимое, если да.
Одноранговая модель взаимодействия
Сетевые протоколы
Протоколы представляют собой набор стандартов и правил, согласно которым данные передаются по сети. Сетевые протоколы – это наборы правил и стандартов, в соответствии с которыми работают сетевые сервисы. Существует множество различных протоколов с своими функциями и задачами, соответствующих разным уровням модели OSI. Ниже приведено несколько распространённых протоколов:
Курс по основам компьютерных сетей на базе оборудования 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-сообщений: клиент шлет запросы, а сервер ответы.
С верхних уровней данные попадают на транспортный уровень, этот уровень отвечает за взаимодействие двух конечных узлов, он помогает узлам разделять трафик различных приложений при отправки и при получении, но кроме этого, транспортный уровень делит большие объемы данных, которые пользователи отправляют, на небольшие фрагменты, каждому такому фрагменту на транспортном уровне добавляется специальный заголовок, который нужен для того, чтобы принимающая сторона смогла собрать из мелких сообщений исходные данные. На транспортном уровне также еще нет представления о устройстве сети, так как транспортный уровень создает надежный виртуальный канал поверх ненадежной сети передачи данных, а нижние уровни от него изолированы.
Сообщения транспортного уровня спускаются на сетевой уровень и к ним добавляется сетевой заголовок, этот заголовок помогает маршрутизаторам определить путь, по которому будут следовать данный при их передаче из пункта А в пункт Б, то есть здесь у нас появляется представление о логической топологии компьютерной сети, но нет понимания того, как получить физический доступ к ресурсам нашей сети, эта информация сокрыта от сетевого уровня.
С сетевого уровня пакеты попадают на канальный уровень и к ним добавляются соответствующие заголовки, после чего они становятся кадрами. Канальный уровень дает доступ нашему компьютеру к реальным ресурсам компьютерной сети, то есть определяет интерфейсы и технологии, по которым будет осуществляться передача данных от узла к узлу. А также на канальном уровне реализована функция проверки целостности данных.
После того, как кадр будет сформирован, компьютер превратит его в последовательность нулей и единиц и отправит эту последовательность по линии связи. Если говорить коротко, то принцип инкапсуляции и декапсуляции данных решает проблему изоляции и разграничения функционала между уровнями модели передачи данных, это всё возможно благодаря тому, что на каждом уровне данные оборачиваются в дополнительный заголовок, когда они готовятся к передаче, а на приемной стороне эти заголовки снимаются.