- Физический уровень (Physical Layer): формирует правила передачи данных, определяет используемую среду (например, электрические сигналы, световые импульсы или радиоэфир), уровень напряжения, и метод для кодирования битов.
- Канальный уровень (Data Link Layer): отвечает за локальную адресацию, выявление ошибок, обеспечивает проверку целостности данных. Здесь действуют MAC-адреса и используется протокол «Ethernet».
- Сетевой уровень (Network Layer): предназначен для объединения сетевых сегментов и определения оптимального маршрута. Каждый сетевой участник имеет уникальный адрес, используя такие протоколы как IPv4 и IPv6.
- Транспортный уровень (Transport Layer): обеспечивает передачу данных. Когда вы скачиваете файл из сети, данные разбиваются на сегменты или датаграммы. Здесь вводятся порты для указания целевой службы. Работает с протоколами TCP (требует соединения) и UDP (без соединения).
- Сеансовый уровень (Session Layer): устанавливает, управляет и завершает сессии между двумя хостами. К примеру, когда вы открываете веб-страницу, ваш визит уникален благодаря этому уровню, даже при множестве пользователей.
- Уровень представления (Presentation Layer): преобразует данные в формат, понятный для приложений. Например, кодировка ASCII используется для текста, а jpeg - для изображений.
- Прикладной уровень (Application Layer): это уровень взаимодействия пользовательских программ, начиная от e-mail до браузеров, работающих на HTTP, FTP и других протоколах.
Ключевое правило: процесс передачи данных идет последовательно через все уровни, не пересекая их. Верхние уровни обрабатывают данные, которые потом отправляются ниже (инкапсуляция), и наоборот, когда они поднимаются наверх (декапсуляция). У каждого уровня своя терминология для данных.
На уровнях прикладного, представления и сеансового, информацию называют PDU (Protocol Data Units) или просто данные.
На транспортном уровне данные именуются сегментами (применимо к TCP) или датаграммами в контексте UDP.
Для сетевого уровня данные обозначаются как IP-пакеты, а для канального уровня - кадры.
Рассмотрим пример инкапсуляции:
- Вы сидите за домашним компьютером и пытаетесь загрузить файл с локального веб-сервера. Вы вводите адрес сайта и используете HTTP, работающий на прикладном уровне. Данные упаковываются и передаются дальше.
- Далее, на уровне представления данные приводятся в формат, пригодный для серверного чтения и продолжают спуск.
- На уровне сеансов создается соединение между компьютером и сервером.
- Перемещение данных на транспортный уровень требует надежного соединения через TCP, включая выбор портов для корректной передачи (чаще всего используется порт 80 для веб-серверов). Следующий шаг — вниз.
- Сетевой уровень добавляет IP-адреса: адрес назначения (например, 192.168.1.2 для сервера) и адрес источника (192.168.1.1 для компьютера). Затем все передается ниже.
- На канальном уровне добавляются физические адреса (MAC-адреса) для точного определения источника и получателя. В локальной сети это могут быть MAC-адреса вашего компьютера и сервера. Завершающие элементы указывают на завершение кадра.
- Физический уровень преобразует все в последовательность битов и передает сигналы (например, через витую пару) на сервер.
Декапсуляция представляет собой обратный процесс:
- Электрические сигналы распознаются на физическом уровне и преобразуются обратно в биты для использования канальным уровнем.
- Канальный уровень проверяет MAC-адрес назначения и целостность кадра, после чего отправляет данные на уровень выше, если все корректно.
- На сетевом уровне происходит проверка IP-адреса, если он совпадает, информация передается вверх.
- Транспортный уровень ориентируется на номер порта для определения того, какому приложению должны быть отправлены данные (например, порт 80 для веб-сервера).
- Между компьютером и сервером происходит установление сеанса на данном уровне.
- Преобразование и структурирование данных завершается на уровне представления.
- И, наконец, прикладной уровень отправляет данные нужной программе или сервису.