Модель OSI
Open Systems Interconnection — эталонная модель, описывающая сетевое взаимодействие как семь уровней, от кабеля до приложения.
Что такое Модель OSI
OSI расшифровывается как Open Systems Interconnection — «взаимодействие открытых систем». Это эталонная сетевая модель: она разбивает передачу данных на семь уровней, где каждый решает свою задачу и пользуется услугами нижнего, не зная, как тот устроен.
Сразу о главном: OSI — не описание того, как работает интернет. Интернет построен на стеке TCP/IP, у которого четыре уровня. OSI создавалась как конкурирующий стандарт, проиграла — и осталась как общий словарь. Когда админ говорит «проблема на втором уровне» или «балансировщик L7», он ссылается именно на неё.
Семь уровней
| № | Уровень | Что делает | Примеры |
|---|---|---|---|
| 7 | Прикладной | интерфейс для приложений | HTTP, DNS, SMTP |
| 6 | Представления | кодировка, сжатие, шифрование | TLS, JPEG |
| 5 | Сеансовый | установка и поддержание сессий | сокеты, RPC |
| 4 | Транспортный | доставка между процессами | TCP, UDP |
| 3 | Сетевой | адресация и маршрутизация | IP, ICMP, OSPF |
| 2 | Канальный | передача кадров в сегменте | Ethernet, VLAN, MAC |
| 1 | Физический | биты в среде | кабель, оптика, радио |
Единицы данных на каждом уровне называются по-разному, и это встречается в выводе утилит: на L1 — биты, на L2 — кадры, на L3 — пакеты, на L4 — сегменты (TCP) или дейтаграммы (UDP).
Как это выглядит на практике
Каждый уровень добавляет свой заголовок к данным сверху — это инкапсуляция. На приёме заголовки снимаются в обратном порядке:
Отправитель Получатель
L7 данные данные
L4 [TCP|данные] [TCP|данные]
L3 [IP|TCP|данные] [IP|TCP|данные]
L2 [ETH|IP|TCP|данные] ───▶ [ETH|IP|TCP|данные]
L1 10110100... 10110100...
Заголовки — не абстракция, а именно то, что вы видите в tcpdump: MAC-адреса это L2, IP-адреса L3, порты L4, тело запроса L7.
Зачем модель нужна на самом деле
Ценность OSI не в теории, а в том, что номер уровня стал профессиональным сокращением.
Диагностика идёт снизу вверх. Это единственный правильный порядок, и он экономит часы:
L1 — линк есть? кабель воткнут? ip link show, ethtool eth0
L2 — MAC виден в сегменте? ip neigh
L3 — адрес и маршрут есть? пинг идёт? ip addr, ip route, ping
L4 — порт слушается? соединение встаёт? ss -tlnp, nc -zv host 443
L7 — приложение отвечает корректно? curl -v
Смысл в том, чтобы не искать причину в приложении, пока не проверены нижние уровни. Классика: разработчик третий час читает логи сервиса, а у сервера отвалился линк на коммутаторе.
Уровень определяет умения устройства. Коммутатор работает на L2 и знает MAC-адреса. Маршрутизатор — на L3, оперирует IP. Файрвол L3/L4 фильтрует по адресам и портам, а WAF — на L7, потому что видит содержимое HTTP-запроса.
L4 или L7 — практический выбор.Балансировщик на L4 просто раскидывает TCP-соединения: быстро, но он не знает, что внутри. На L7 он разбирает HTTP — умеет маршрутизировать по URL, вставлять заголовки, переиспользовать соединения, но платит за это процессором и должен терминировать TLS.
Где модель расходится с реальностью
Уровни 5 и 6 в жизни почти не выделяют: их функции разобрали прикладные протоколы и TLS. Сам TLS в модель ложится плохо — формально это L6, фактически он живёт между L4 и L7. Соответствие TCP/IP выглядит так:
OSI 7,6,5 → прикладной (HTTP, DNS, SSH)
OSI 4 → транспортный (TCP, UDP)
OSI 3 → межсетевой (IP)
OSI 2,1 → канальный (Ethernet, Wi-Fi)
Отдельная шутка индустрии — «восьмой уровень», человеческий: большинство инцидентов случается именно там.
Связанные термины
- Сетевые протоколы — то, что модель раскладывает по уровням
- TCP и UDP — транспортный уровень, L4
- IP-адрес — адресация сетевого уровня, L3
- VLAN и коммутация — канальный уровень, L2
- load balancer — бывает L4 и L7
- Сетевая диагностика — проверка уровней снизу вверх
Готовы запустить GPU-задачу?
Запустить GPU-сервер