Эталонные модели: OSI и TCP/IP

Предпосылки: Ethernet и коммутация, IP и маршрутизация, TCP, HTTP.

WebSocket | Протоколы маршрутизации

Вы уже изучили четыре протокола: Ethernet передаёт кадры между соседними устройствами, IP маршрутизирует пакеты между сетями, TCP обеспечивает надёжную доставку, HTTP задаёт структуру запросов и ответов. Каждый решает свою задачу и не знает деталей остальных — Ethernet не понимает IP-адресов, TCP не разбирает HTTP-заголовки. Это не случайность, а архитектурный принцип: сетевое взаимодействие разбито на уровни (layers), каждый из которых решает узкую задачу и предоставляет сервис уровню выше.

Зачем это нужно: независимая разработка (улучшение Wi-Fi не требует изменений в HTTP), взаимозаменяемость (Ethernet и Wi-Fi — разные реализации одного уровня), упрощение понимания (проблему можно локализовать: «сеть не работает» → «роутер не видит маршрут» → проблема на уровне IP).

Две модели формализуют это деление: OSI и TCP/IP.

Модель OSI

OSI (Open Systems Interconnection) — эталонная модель из 7 уровней:

+------------------------------------------------------------------+
|  Уровень 7: Прикладной (Application)                              |
|  HTTP, DNS, SMTP, FTP, SSH                                        |
+------------------------------------------------------------------+
|  Уровень 6: Представления (Presentation)                          |
|  Шифрование (TLS), сжатие, сериализация                           |
+------------------------------------------------------------------+
|  Уровень 5: Сеансовый (Session)                                   |
|  Управление диалогом, RPC                                         |
+------------------------------------------------------------------+
|  Уровень 4: Транспортный (Transport)                              |
|  TCP, UDP -- порты, надёжность                                    |
+------------------------------------------------------------------+
|  Уровень 3: Сетевой (Network)                                     |
|  IP -- маршрутизация между сетями                                  |
+------------------------------------------------------------------+
|  Уровень 2: Канальный (Data Link)                                  |
|  Ethernet, Wi-Fi -- MAC-адреса, кадры                              |
+------------------------------------------------------------------+
|  Уровень 1: Физический (Physical)                                  |
|  Биты, сигналы, кабели, разъёмы                                    |
+------------------------------------------------------------------+

Уровень 1: Физический — передача сырых битов по физической среде. Единица данных: бит. Спецификации кабелей, разъёмы RJ-45, оптика.

Уровень 2: Канальный (Data Link) — надёжная передача между непосредственно соединёнными устройствами. Единица данных: кадр (frame). Ethernet, Wi-Fi, MAC-адреса, коммутаторы.

Уровень 3: Сетевой (Network) — маршрутизация между разными сетями. Единица данных: пакет (packet). IP, роутеры, ICMP.

Уровень 4: Транспортный (Transport) — доставка данных между приложениями, надёжность. Единица данных: сегмент (TCP) / датаграмма (UDP).

Уровень 5: Сеансовый (Session) — управление диалогом. На практике редко выделяется отдельно.

Уровень 6: Представления (Presentation) — преобразование форматов, шифрование, сжатие. На практике интегрирован в прикладной уровень.

Уровень 7: Прикладной (Application) — протоколы для конечных приложений. HTTP, DNS, SMTP, SSH.

Уровни 5 и 6 — теоретическое разделение, которое в реальных реализациях не встречается как отдельные компоненты. TLS формально “уровень 6”, но на практике это просто часть стека приложения.

Модель TCP/IP

Практическая модель из 4 уровней, описывающая реальный интернет:

        OSI                              TCP/IP
+---------------------+           +---------------------+
| 7. Application      |           |                     |
+---------------------+           |                     |
| 6. Presentation     | --------- | 4. Application      |
+---------------------+           |                     |
| 5. Session          |           |                     |
+---------------------+-----------+---------------------+
| 4. Transport        | --------- | 3. Transport        |
+---------------------+-----------+---------------------+
| 3. Network          | --------- | 2. Internet         |
+---------------------+-----------+---------------------+
| 2. Data Link        |           |                     |
+---------------------+ --------- | 1. Network Interface|
| 1. Physical         |           |                     |
+---------------------+           +---------------------+

OSI — теоретическая модель для обучения и терминологии (“проблема на L2”, “L7 балансировщик”). TCP/IP — практическая, описывающая реальный интернет.

Инкапсуляция по уровням

При отправке данных каждый уровень добавляет свой заголовок — спуск по стеку:

flowchart TB
    L7["HTTP-данные"]
    L4["TCP | HTTP-данные"]
    L3["IP | TCP | HTTP-данные"]
    L2["Eth | IP | TCP | HTTP-данные | CRC"]
    L1["биты"]
    L7 --> L4 --> L3 --> L2 --> L1

При получении — подъём по стеку, каждый уровень убирает свой заголовок и передаёт данные выше.

PDU: единицы данных по уровням

УровеньНазвание единицы данных (PDU)
ПрикладнойДанные, сообщение (message)
ТранспортныйСегмент / датаграмма
СетевойПакет (packet)
КанальныйКадр (frame)
ФизическийБиты (bits)

Устройства по уровням

УровеньУстройства
L1Репитер, хаб
L2Коммутатор (switch), мост (bridge)
L3Роутер (router)
L4+Файрвол, балансировщик нагрузки, прокси

L7 load balancer понимает HTTP и принимает решения на основе URL, заголовков, cookies. Подробнее о балансировке см. в материалах по system design.

Принцип песочных часов

В середине стека — только IP. Это обеспечивает универсальность:

flowchart TB
    HTTP & SMTP & DNS & etc1["..."] --> TCP & UDP
    TCP & UDP --> IP["IP ← узкое место"]
    IP --> Ethernet & WiFi["Wi-Fi"] & LTE & etc2["..."]

Любое приложение работает поверх IP. IP работает поверх любой физической сети. Добавление нового приложения (HTTP/3, gRPC) не требует изменений в сетевой инфраструктуре. Добавление новой физической среды (5G, Starlink) не требует изменений в приложениях.

Сквозной принцип (End-to-End)

Умная логика — на концах (в приложениях). Сеть — “глупая”, просто доставляет пакеты. Надёжность, шифрование, проверка ошибок — обязанность конечных точек, а не промежуточных узлов. Это позволяет сети оставаться простой и универсальной.

Мнемоника уровней OSI

Сверху вниз: All People Seem To Need Data Processing.

Снизу вверх: Please Do Not Throw Sausage Pizza Away.


WebSocket | Протоколы маршрутизации