Модель OSI: объяснение 7 уровней
Модель OSI делит сетевое взаимодействие на семь уровней: от физического кабеля (уровень 1) до приложения (уровень 7). У каждого уровня одна задача, и он взаимодействует только с уровнями непосредственно выше и ниже. Эта модель — инструмент обучения и диагностики; реальный интернет работает на более простой четырёхуровневой модели TCP/IP.
Семь уровней
На стороне отправителя данные передаются вниз по уровням, и каждый уровень добавляет свой заголовок. Это называется инкапсуляцией. Получатель удаляет заголовки в обратном порядке. Единица данных на каждом уровне называется PDU (protocol data unit, протокольный блок данных).
| Уровень | Название | PDU | Примеры протоколов | Типичные устройства |
|---|---|---|---|---|
| 7 | Прикладной | Данные | HTTP, DNS, SMTP, SSH | Прокси, межсетевой экран уровня приложений |
| 6 | Представления | Данные | TLS (частично), кодировки символов, MIME | - |
| 5 | Сеансовый | Данные | RPC, сеанс NetBIOS, TLS (частично) | - |
| 4 | Транспортный | Сегмент (TCP) или датаграмма (UDP) | TCP, UDP | Межсетевой экран, балансировщик нагрузки |
| 3 | Сетевой | Пакет | IP, ICMP, OSPF | Маршрутизатор, коммутатор уровня 3 |
| 2 | Канальный | Кадр | Ethernet, Wi-Fi (802.11), ARP | Коммутатор, точка доступа |
| 1 | Физический | Бит | Кабели Ethernet, оптоволокно, радиосвязь | Кабель, концентратор, повторитель |
OSI в сравнении с TCP/IP
Модель TCP/IP имеет четыре уровня и отражает то, как протоколы строились на самом деле. Соответствие приблизительное:
| Уровень TCP/IP | Уровни OSI |
|---|---|
| Прикладной | 7, 6, 5 |
| Транспортный | 4 |
| Интернет | 3 |
| Канальный (доступ к сети) | 2, 1 |
В некоторых книгах TCP/IP показан с пятью уровнями: канальный уровень делится на канальный и физический. В повседневной работе по-прежнему говорят «коммутатор уровня 2» или «межсетевой экран уровня 7», используя номера OSI, поэтому полезно знать обе модели.
Что происходит при открытии сайта
Представьте, что вы вводите в браузере https://example.com.
- Уровень 7: браузеру нужен адрес, поэтому он отправляет DNS-запрос для example.com. Позже он отправляет HTTP-запрос.
- Уровни 6/5: при TLS-рукопожатии согласуются ключи шифрования и проверяется сертификат сервера.
- Уровень 4: TCP открывает соединение с портом 443 с помощью трёхэтапного рукопожатия (SYN, SYN-ACK, ACK) и разбивает данные на сегменты.
- Уровень 3: IP помещает адреса источника и назначения в пакеты. Маршрутизаторы пересылают их от узла к узлу.
- Уровень 2: на каждом канале пакет помещается в кадр с MAC-адресами. В сетях IPv4 протокол ARP определяет MAC-адрес следующего узла.
- Уровень 1: кадр превращается в электрические сигналы, световые импульсы или радиоволны.
На сервере те же шаги выполняются в обратном порядке: от уровня 1 до уровня 7.
Какой уровень проверяет каждый инструмент
Каждая сетевая проверка доказывает, что уровни до определённой точки работают. В таблице показано, где находятся наши инструменты.
| Инструмент | Уровень | Что подтверждает |
|---|---|---|
| Ping | 3 (ICMP) | Узел доступен на уровне IP, а также время прохождения запроса туда и обратно |
| Traceroute | 3 | Какие маршрутизаторы находятся на пути и где начинаются задержки или потери |
| Проверка портов | 4 (TCP) | TCP-соединение с заданным портом можно открыть |
| Проверка SSL | 6/5, поверх 4 | TLS-рукопожатие проходит, а сертификат действителен |
| Заголовки HTTP | 7 | Веб-сервер отвечает, а также какой статус и какие заголовки он отправляет |
| Проверка DNS | 7 | DNS-серверы возвращают ожидаемые записи |
Три момента требуют внимания:
- TLS не укладывается в один уровень. В модели OSI его часто относят к уровню 6 (шифрование и представление), иногда к уровню 5 (сеансовый). В модели TCP/IP это просто часть прикладного уровня, работающая поверх TCP. Для диагностики достаточно знать, что TLS работает после TCP и до HTTP.
- Ping может не проходить на работающем узле. Многие межсетевые экраны отбрасывают эхо-запросы ICMP. Неудачный ping не всегда означает, что узел не работает, поэтому проверьте ещё и порт. Кроме того, traceroute использует поле TTL в IP-пакетах и ответы ICMP time-exceeded, а некоторые маршрутизаторы не отвечают, из-за чего в выводе появляется пропуск.
- DNS работает на уровне 7, хотя нужен раньше всего остального. Обычно он использует UDP-порт 53, а TCP-порт 53 — для больших ответов и передачи зон.
Диагностика снизу вверх
Надёжный метод — начать с уровня 1 и двигаться вверх. Каждый шаг исключает целую группу возможных причин.
- Уровень 1: кабель подключён, Wi-Fi включён, индикатор связи горит?
- Уровень 2: есть ли у устройства связь с коммутатором или точкой доступа? Правильно ли выбрана VLAN? Проверьте, нет ли дублирующихся MAC-адресов и верен ли пароль Wi-Fi.
- Уровень 3: есть ли у устройства корректные IP-адрес, маска и шлюз? Получается ли пинговать шлюз, а затем внешний адрес, например
192.0.2.1? Если маршрут обрывается на полпути, используйте traceroute. О типичных ошибках адресации см. что такое IP-адрес и маска подсети и CIDR. - Уровень 4: открыт ли порт и не блокирует ли его межсетевой экран? См. известные порты.
- Уровни 5-6: успешно ли проходит TLS-рукопожатие? Ищите просроченный сертификат, неверное имя или неподдерживаемую версию протокола.
- Уровень 7: разрешается ли имя и возвращает ли приложение корректный ответ?
На практике можно также идти сверху вниз или делить задачу пополам: если проверка порта проходит, уровни с 1 по 4 в порядке, и можно сосредоточиться на приложении.