Модель OSI и TCP-IP для DevOps

↑ Этап 1 · Фундамент: Linux, Bash, сети

Желательно~3 мин чтенияУровень: junior

Зачем это на собесе

Универсальный язык диагностики сетевых проблем: «на каком уровне сломалось». Классический вопрос.

Модели

Уровень OSIНазваниеПротоколы, объектыУровень TCP/IP
7ПрикладнойHTTP, DNS, SSH, SMTP, gRPCПрикладной
6ПредставленияTLS (условно), кодировки, сжатие(входит в прикладной)
5Сеансовыйсессии, RPC(входит в прикладной)
4ТранспортныйTCP, UDP, портыТранспортный
3СетевойIP, ICMP, маршрутизацияИнтернет
2КанальныйEthernet, MAC, ARP, VLAN, коммутаторыКанальный
1Физическийкабель, Wi-Fi, сигналКанальный

Единицы данных: сегмент (TCP)/датаграмма (UDP), пакет (IP), кадр (Ethernet). Инкапсуляция: данные приложения оборачиваются заголовками на каждом уровне при отправке и распаковываются при получении.

Канальный уровень

  • MAC-адрес (48 бит) — адрес интерфейса в локальной сети;
  • ARP: «кто имеет IP X?» → соответствие IP↔MAC (ip neigh);
  • коммутатор (L2) пересылает кадры по MAC; VLAN разделяет широковещательные домены;
  • MTU (обычно 1500), проблемы фрагментации и PMTUD (VPN/туннели дают меньшее MTU).

Сетевой уровень (IP)

  • адресация и маршрутизация между сетями (маршрутизатор L3), TTL уменьшается на каждом хопе (защита от петель; основа traceroute);
  • ICMP: ping, сообщения об ошибках (destination unreachable, time exceeded);
  • IPv4 и IPv6.

Транспортный уровень

TCP: соединение, надёжность, порядок, контроль потока и перегрузки.

Установка (трёхстороннее рукопожатие):  SYN → SYN-ACK → ACK
Закрытие:                                FIN → ACK, FIN → ACK  (четырёхстороннее)
  • повторная передача потерянных сегментов, окна (flow control), алгоритмы перегрузки (CUBIC, BBR);
  • состояния: LISTEN, SYN_SENT, ESTABLISHED, TIME_WAIT, CLOSE_WAIT (накопление CLOSE_WAIT — приложение не закрывает сокеты), FIN_WAIT;
  • keep-alive, таймауты, SO_REUSEADDR.

UDP: без соединения, без гарантий, минимальные накладные: DNS, видео, VoIP, QUIC (HTTP/3), игры, мониторинг.

Порты: 0–65535; общеизвестные 0–1023; эфемерные (клиентские) ~32768–60999. Сокет = IP + порт + протокол; соединение = пара сокетов.

Прикладной уровень

HTTP/1.1, HTTP/2, HTTP/3 (QUIC), DNS, TLS, SSH, SMTP, gRPC, WebSocket, MQTT.

Что происходит при запросе https://example.com

  1. DNS: имя → IP (кэши, резолвер, рекурсия).
  2. ARP/маршрутизация: до шлюза по MAC, далее маршрутизаторы по IP.
  3. TCP-рукопожатие (SYN, SYN-ACK, ACK).
  4. TLS-рукопожатие: версия, шифры, сертификат (проверка цепочки, SNI), ключи.
  5. HTTP-запрос по зашифрованному каналу, ответ сервера.
  6. Закрытие или keep-alive (повторное использование соединения).

Диагностика по уровням

СимптомУровеньИнструменты
Интерфейс down, нет линка1–2ip link, ethtool
Нет ARP-ответа, дубль IP2ip neigh, arping
Нет маршрута, ping не идёт3ip route, ping, traceroute, mtr
Порт закрыт/фильтруется4ss -tulpn, nc -vz host port, nmap, iptables
Таймаут, потери3–4mtr, tcpdump, ss -ti
Ошибка TLS, сертификат6/7openssl s_client, curl -v
DNS не резолвит7dig, resolvectl
HTTP 5xx, медленные ответы7curl -w, логи, трейсинг

Метод: снизу вверх (от физики к приложению) или делением пополам («работает ping → работает порт → работает TLS → работает HTTP»).

Вопросы с ответами