Протокол — это язык, на котором компьютеры договариваются об обмене данными. Без протоколов сеть — набор проводов без смысла.
В главе 4 вы узнали, что данные в сети разбиваются на пакеты и путешествуют по стеку TCP/IP. Теперь разберём каждый уровень подробнее.
Протоколы определяют: как установить соединение, как гарантировать доставку, как отправить письмо или загрузить файл.
Каждый уровень решает свою задачу и использует протоколы следующего
Когда вы открываете https://alterna-edu.ru, происходит множество процессов. Модель TCP/IP делит их на 4 уровня, чтобы каждый отвечал за одну задачу:
| Уровень | Задача | Протоколы | Единица данных |
|---|---|---|---|
| Прикладной | Формат данных для пользователя | HTTP, FTP, SMTP, DNS, SSH | Сообщение |
| Транспортный | Доставка между процессами | TCP, UDP | Сегмент |
| Межсетевой | Маршрутизация между сетями | IP, ICMP, ARP | Пакет |
| Канальный | Передача в локальной сети | Ethernet, Wi-Fi | Кадр (frame) |
При отправке каждый уровень добавляет свой заголовок к данным:
Данные проходят через 4 уровня. На каждом — свой заголовок. Наведите на уровень, чтобы увидеть реальные поля.
AA:BB:CC:11:22:33DD:EE:FF:44:55:660x0800 (IPv4)192.168.1.1093.184.216.3464 (макс. хопов)6 (TCP)49152 (динамический)80 (HTTP)1001 (номер байта)2001 (подтверждение)SYN, ACK, FINGET /index.html HTTP/1.1alterna-edu.ruMozilla/5.0TCP — надёжный и медленный; UDP — быстрый и «без гарантий»
Гарантированная доставка: каждый сегмент подтверждается. Если пакет потерян — отправляется снова. Данные приходят в порядке отправки.
Перед передачей TCP устанавливает соединение — three-way handshake:
SYN («хочу соединиться»)SYN+ACK («согласен, подтверждаю»)ACK («принято, начинаем»)Без соединения: датаграммы отправляются «как получится». Нет подтверждений, нет порядка, нет повторных отправок. Зато быстро и мало накладных расходов.
| Свойство | TCP | UDP |
|---|---|---|
| Соединение | Да (handshake) | Нет |
| Гарантия доставки | Да (ACK + retry) | Нет |
| Порядок данных | Сохраняется | Не гарантирован |
| Скорость | Медленнее | Быстрее |
| Накладные расходы | Большие (заголовки 20+ байт) | Минимальные (8 байт) |
| Примеры | HTTP, FTP, SMTP, SSH | DNS, VoIP, игры, стриминг |
Нажимайте «Шаг» или «Авто», чтобы увидеть, как клиент и сервер устанавливают TCP-соединение.
Протоколы, с которыми вы сталкиваетесь каждый день
HTTP (HyperText Transfer Protocol) — основа веба. Браузер отправляет запрос, сервер возвращает ответ.
Запрос содержит метод (что сделать) и URL (к какому ресурсу):
| Метод | Назначение | Пример |
|---|---|---|
GET | Получить ресурс | Открыть страницу |
POST | Отправить данные | Заполнить форму |
PUT | Заменить ресурс | Обновить профиль |
DELETE | Удалить ресурс | Удалить комментарий |
PATCH | Частично обновить | Изменить одно поле |
Ответ сервера содержит код состояния:
| Код | Значение | Пример |
|---|---|---|
| 200 | OK — успех | Страница загружена |
| 301 | Перенаправлено навсегда | Старый URL → новый |
| 404 | Не найдено | Страница удалена |
| 403 | Запрещено | Нет прав доступа |
| 500 | Ошибка сервера | Сбой в коде |
🔒 в адресной строке!
FTP (File Transfer Protocol) — протокол для загрузки и скачивания файлов. Использует два соединения: командное (порт 21) и данные (порт 20).
| Протокол | Порт | Назначение |
|---|---|---|
| SMTP | 25 / 587 | Отправка почты (клиент → сервер → сервер) |
| POP3 | 110 | Скачать почту на устройство (удаляет с сервера) |
| IMAP | 143 | Синхронизация почты (остаётся на сервере) |
SSH (Secure Shell, порт 22) — шифрованный удалённый доступ к командной строке сервера. Заменил небезопасный Telnet (порт 23, без шифрования).
DNS (Domain Name System, порт 53) преобразует доменные имена в IP-адреса. Подробно — на странице 6.2.
Перетащите фрагменты HTTP-запроса в правильном порядке. Первая строка — метод и путь, затем заголовки, пустая строка, тело.
fetch() в JavaScript для отправки HTTP-запросов из кода. Всё, что ты узнал о протоколах здесь — работает под капотом каждого fetch(). Перейти к JavaScript →
Нажимайте на уровни стека, чтобы узнать, какие протоколы на них работают.
IP указывает компьютер, порт — программу на нём
На сервере одновременно работают веб-сервер, почта, DNS. IP-адрес доставляет пакет к компьютеру, а порт (число 0–65535) — к нужной программе.
| Диапазон | Тип | Примеры |
|---|---|---|
| 0–1023 | Well-known (системные) | 80 (HTTP), 443 (HTTPS), 22 (SSH), 53 (DNS), 25 (SMTP) |
| 1024–49151 | Registered (зарегистрированные) | 3306 (MySQL), 5432 (PostgreSQL), 8080 (альт. HTTP) |
| 49152–65535 | Dynamic (динамические) | Временные порты клиентов |
Каждый протокол использует свой номер порта. Сможешь определить, какой протокол скрывается за числом?
Теоретическая эталонная модель (на практике используют TCP/IP)
OSI (Open Systems Interconnection) — теоретическая модель из 7 уровней, созданная для обучения. На практике работает TCP/IP (4 уровня), но OSI помогает разобраться в деталях.
| Уровень OSI | Функция | Протоколы | ≈ TCP/IP |
|---|---|---|---|
| 7. Прикладной | Интерфейс для приложений | HTTP, FTP, SMTP, DNS | Прикладной |
| 6. Представления | Кодирование, шифрование | SSL/TLS, JPEG, ASCII | |
| 5. Сеансовый | Управление сессией | RPC, NetBIOS | |
| 4. Транспортный | Надёжная доставка | TCP, UDP | Транспортный |
| 3. Сетевой | Маршрутизация | IP, ICMP | Межсетевой |
| 2. Канальный | Кадры, MAC-адреса | Ethernet, Wi-Fi | Канальный |
| 1. Физический | Сигналы, кабели | USB, RJ-45, оптика | Канальный |