OSI это эталонная семиуровневая модель сетевого взаимодействия. Она помогает разделять ответственность протоколов и локализовать проблемы. Данные при отправке проходят инкапсуляцию сверху вниз, а на принимающей стороне декапсуляцию снизу вверх. Реальный интернет чаще описывают стеком TCP/IP, но OSI удобна как карта для диагностики.
ISO прямо указывает, что OSI является reference model, а не инструкцией по реализации конкретной сети. Поэтому не нужно пытаться идеально разложить каждый современный протокол по одной клетке.
Семь уровней
№
Уровень
Что делает
Примеры
Единица данных
7
Прикладной
Даёт сетевые функции приложению
HTTP, DNS, SMTP
Данные
6
Представления
Кодирование, формат, сжатие, шифрование
JSON, UTF-8, TLS условно
Данные
5
Сеансовый
Управляет диалогом и состоянием сеанса
RPC-сессии, checkpoints
Данные
4
Транспортный
Доставка между процессами, порты, надёжность
TCP, UDP, QUIC условно
Сегмент или датаграмма
3
Сетевой
Адресация и маршрутизация между сетями
IPv4, IPv6, ICMP
Пакет
2
Канальный
Доставка внутри локального сегмента
Ethernet, Wi-Fi, VLAN
Кадр
1
Физический
Передаёт биты через среду
Кабель, оптика, радиосигнал
Биты
Слова вроде "TLS находится на шестом уровне" полезны только как упрощение. В реальных стеках границы могут пересекаться.
Что происходит при отправке запроса
Допустим, браузер отправляет HTTPS-запрос:
На прикладном уровне формируется HTTP-запрос.
Данные кодируются и защищаются TLS.
Транспорт разбивает поток и добавляет номера портов.
IP добавляет адреса источника и назначения.
Канальный уровень добавляет MAC-адреса для ближайшего сетевого участка.
Физический уровень превращает кадр в сигнал.
На каждом переходе нижний уровень добавляет свой заголовок. Это инкапсуляция. Получатель снимает заголовки в обратном порядке, то есть выполняет декапсуляцию.
Важно: MAC-адрес используется для доставки на текущем канальном участке, а IP нужен для маршрута между сетями. При прохождении через роутер канальный кадр меняется, но IP-пакет продолжает движение к конечному адресу.
OSI и TCP/IP
OSI
TCP/IP
7, 6, 5: прикладной, представления, сеансовый
Application
4: транспортный
Transport
3: сетевой
Internet
2, 1: канальный и физический
Link
TCP/IP описывает реально используемый стек компактнее. OSI удобнее для разговора о зоне ответственности и диагностике.
Что важно тестировщику на каждом уровне
1. Физический
Симптомы: нет линка, нестабильный Wi-Fi, потери при плохом сигнале, неверная скорость интерфейса.
QA обычно не тестирует электрический сигнал напрямую, но должен отличать инфраструктурную проблему от дефекта приложения.
2. Канальный
Смотри на MAC, VLAN, MTU локального сегмента, работу switch и ARP/Neighbor Discovery.
Типичные проблемы:
устройство попало не в ту VLAN;
дублирующийся IP вызывает конфликт;
большой кадр не проходит из-за MTU;
ARP-кэш содержит устаревшее соответствие.
3. Сетевой
Проверяй IP, маску, gateway, маршруты, NAT, ICMP и firewall.
Инструменты:
ping example.com
traceroute example.com
ip route
route -n
ping не доказывает, что приложение работает. Он только показывает определённый результат для ICMP, который firewall может блокировать.
Именно здесь находится большинство функциональных дефектов:
неверная сессия или истёкший токен;
несовместимая кодировка;
ошибка TLS negotiation;
неправильный Content-Type;
4xx и 5xx;
сломанный JSON;
несогласованный API-контракт.
Диагностика снизу вверх
Когда "сайт не работает", проверяй последовательно:
Есть ли сетевое подключение?
Получен ли IP и есть ли маршрут?
Резолвится ли DNS?
Доступен ли нужный порт?
Устанавливается ли TLS?
Возвращает ли HTTP осмысленный ответ?
Корректно ли приложение обрабатывает данные?
Такой подход быстрее хаотичного переключения настроек.
TCP handshake
Базовое установление TCP-соединения:
Клиент отправляет SYN.
Сервер отвечает SYN-ACK.
Клиент отправляет ACK.
Если DNS работает, но TCP handshake не завершается, смотри порт, маршрутизацию, firewall, security group и доступность процесса.
Что спросить у системы при баге
Наблюдение
Возможный уровень
Имя не находится
7, DNS
IP есть, но маршрута нет
3
Порт закрыт
4 или firewall
TLS certificate error
Верхние уровни
HTTP 401
7, аутентификация
HTTP 503
7 или зависимость сервиса
Пакеты теряются только при большом payload
2 или 3, MTU
Ответы приходят в неверном порядке по UDP
Ожидаемое свойство транспорта
Вопросы на собеседовании
Чем switch отличается от router?
Switch в базовой модели пересылает кадры внутри канального сегмента по MAC. Router соединяет разные IP-сети и выбирает маршрут для пакета.
Чем TCP отличается от UDP?
TCP даёт надёжный упорядоченный поток с установлением соединения. UDP отправляет независимые датаграммы без гарантии доставки и порядка.
На каком уровне работает HTTP?
На прикладном. Обычно он использует TCP и TLS, а HTTP/3 работает поверх QUIC и UDP.
Где находятся порты?
Порты относятся к транспортному уровню. IP-адрес определяет хост, порт помогает определить процесс или сетевую конечную точку.
Почему OSI всё ещё нужна?
Она даёт общий язык и помогает локализовать проблему, даже если реальная реализация ближе к TCP/IP.
Главное запомнить
OSI это модель мышления, а не точная схема каждого современного протокола.
IP отвечает за маршрут между сетями, MAC за ближайший канальный участок.
TCP надёжен относительно потока, но приложение всё равно должно обрабатывать таймауты и повторы.
HTTP-ошибка и отсутствие TCP-соединения относятся к разным классам проблем.