- Протокол — договорённость о формате и порядке обмена данными; стандарты интернета описаны в документах RFC.
- Стек TCP/IP делится на уровни: канальный, межсетевой (IP), транспортный (TCP, UDP) и прикладной (HTTP, DNS, почта).
- TCP доставляет данные надёжно и по порядку, UDP — без гарантий, но с минимумом служебной работы.
- Адрес находит устройство, порт — приложение на нём; стандартные номера портов собраны в реестре IANA.
Содержание11 разделов ▾
- Что такое протокол
- Как устроен стек TCP/IP
- IP: доставка пакетов по адресам
- TCP и UDP
- HTTP и HTTPS
- DNS
- Другие протоколы, которые вы встречаете
- Один запрос от начала до конца
- Шаг 1. Определяется адрес
- Шаг 2. Устанавливается TCP-соединение
- Шаг 3. Включается шифрование
- Шаг 4. Отправляется запрос HTTP
- Шаг 5. Приходит ответ
- Шаг 6. Соединение закрывается
- Условия и ограничения
- Частые ошибки
- Короткий вывод
Протоколы интернета — это договорённости о том, как устройства обмениваются данными: TCP/IP доставляет данные, HTTP описывает запрос страницы, DNS находит адрес по имени. Статья для тех, кто изучает информатику и сети и хочет увидеть, как эти протоколы складываются в одну картину.
Опираемся на стандарты RFC, реестр номеров портов IANA и справку российских сервисов Яндекса. Пример на Python запускался на версии 3.13, данные на октябрь 2026 года.
Что такое протокол
Протокол — это набор правил: в каком формате отправлять сообщение, как отвечать, что делать при ошибке. Если оба устройства следуют одному протоколу, они понимают друг друга независимо от производителя.
Как устроен стек TCP/IP
RFC 1122 разбирает уровни стека: канальный, IP-уровень и транспортный; прикладной уровень описан в парном документе RFC 1123. Получается четыре уровня.
| Уровень | Задача | Примеры протоколов |
|---|---|---|
| Прикладной | Работа конкретных служб | HTTP, DNS, SMTP, IMAP |
| Транспортный | Доставка между приложениями, порты | TCP, UDP |
| Межсетевой | Адресация и маршрутизация пакетов | IP (IPv4, IPv6), ICMP |
| Канальный | Передача в своей локальной сети | Ethernet, Wi-Fi |
В учебниках встречается и модель OSI с семью уровнями. Это другая, более подробная схема, которую часто используют для обучения; соответствие уровней приблизительное. В сети на практике работает стек TCP/IP.
IP: доставка пакетов по адресам
Протокол IP отвечает за адресацию и передачу пакетов от устройства к устройству. IPv4 описан в RFC 791, а более новый IPv6 — в RFC 8200. IP не гарантирует, что пакет дойдёт, и сам порядок не сохраняет. Об этом заботится транспортный уровень. Подробнее об адресе устройства — в статье «Что такое IP-адрес и зачем он нужен».
TCP и UDP
| Свойство | TCP | UDP |
|---|---|---|
| Что даёт | Надёжный байтовый поток, данные приходят по порядку | Отправку отдельных сообщений с минимумом служебной работы |
| Потери | Обнаруживает потерю по номерам последовательности и повторяет отправку | Доставка и защита от дублей не гарантируются |
| Где описан | RFC 9293 | RFC 768 |
В RFC 768 прямо сказано: приложениям, которым нужна упорядоченная надёжная доставка потока данных, следует использовать TCP.
HTTP и HTTPS
HTTP — прикладной протокол для гипертекстовых систем. По RFC 9110, это семейство протоколов без хранения состояния, построенных на схеме «запрос — ответ». Клиент, например браузер, отправляет запрос, а сервер возвращает ответ с кодом состояния и данными.
HTTPS — это HTTP поверх TLS. Протокол TLS 1.3 по RFC 8446 создан так, чтобы защищать связь от прослушивания, подмены и подделки сообщений. Стандартный порт HTTP — 80, HTTPS — 443 (реестр IANA).
DNS
DNS переводит имена в IP-адреса, прежде чем браузер откроет соединение. Подробный разбор — в статье «Что такое DNS-серверы и как они работают». В реестре IANA DNS закреплён за портом 53 для TCP и UDP.
Другие протоколы, которые вы встречаете
Номера портов взяты из реестра IANA.
| Протокол | Порт | Транспорт | Назначение |
|---|---|---|---|
| FTP (управление) | 21 | TCP | Передача файлов |
| SSH | 22 | TCP | Защищённый удалённый доступ |
| SMTP | 25 | TCP | Передача почты между серверами |
| Submission | 587 | TCP | Отправка почты из почтовых программ |
| DNS | 53 | TCP и UDP | Разрешение имён |
| DHCP (сервер, bootps) | 67 | UDP | Автоматическая выдача адресов |
| HTTP | 80 | TCP | Веб-страницы |
| POP3 | 110 | TCP | Получение почты |
| NTP | 123 | UDP | Точное время |
| IMAP | 143 | TCP | Получение почты с сервера |
| HTTPS | 443 | TCP | Веб-страницы поверх TLS |
| IMAPS | 993 | TCP | IMAP поверх TLS |
Например, в справке Яндекс Почты для почтовых программ указаны IMAP на imap.yandex.ru с портом 993 и SMTP на smtp.yandex.ru с портом 465, оба с SSL.
Один запрос от начала до конца
Что происходит, когда браузер открывает страницу.
Шаг 1. Определяется адрес
Браузер спрашивает DNS, какой IP-адрес у сайта.
Шаг 2. Устанавливается TCP-соединение
Браузер соединяется с найденным адресом по TCP, обычно на порт 80 или 443.
Шаг 3. Включается шифрование
Для HTTPS стороны договариваются о параметрах TLS.
Шаг 4. Отправляется запрос HTTP
Браузер отправляет запрос: метод, путь и заголовки.
Шаг 5. Приходит ответ
Сервер возвращает строку состояния, заголовки и содержимое страницы.
Шаг 6. Соединение закрывается
Если запрос был один, соединение закрывается, и нужные ресурсы загружаются новыми запросами.
Повторим шаги 2, 4 и 5 в Python без браузера. Мы отправим на порт 80 вручную составленный запрос и разберём ответ.
import socket
хост = "example.com"
запрос = (
"GET / HTTP/1.1\r\n"
f"Host: {хост}\r\n"
"Connection: close\r\n"
"\r\n"
)
with socket.create_connection((хост, 80), timeout=10) as сокет: # TCP-соединение на порт 80
сокет.sendall(запрос.encode("ascii")) # HTTP-запрос
ответ = b""
while часть := сокет.recv(4096):
ответ += часть
заголовки, _, тело = ответ.partition(b"\r\n\r\n")
строки = заголовки.decode("utf-8", "replace").split("\r\n")
print("строка состояния:", строки[0])
for строка in строки[1:4]:
print("заголовок:", строка)
print("получено байт всего:", len(ответ))Вывод при запуске на Python 3.13.12 (время, размер и заголовки у вас могут отличаться):
строка состояния: HTTP/1.1 200 OK
заголовок: Date: Thu, 08 Oct 2026 10:50:35 GMT
заголовок: Content-Type: text/html; charset=utf-8
заголовок: Transfer-Encoding: chunked
получено байт всего: 931Первая строка ответа — строка состояния с кодом 200: запрос выполнен. Заголовки описывают ответ, а после пустой строки идёт сам документ. Мы отправили всего два служебных заголовка, а соединение закрылось, потому что мы так попросили.
Условия и ограничения
- Версия
- Октябрь 2026 — данные приведены на дату написания; код проверен на Python 3.13.12.
- Уровни
- Четыре уровня TCP/IP — это упрощённая модель; в других источниках стек делят на пять уровней, а в модели OSI их семь.
- Порты
- Стандартные значения IANA — на практике сервисы могут работать на других портах.
- Шифрование
- HTTP открыт — без TLS данные в HTTP передаются без защиты, с HTTPS — защищены от прослушивания.
- Код
- Учебный пример — один запрос без обработки ошибок и перенаправлений.
Частые ошибки
- Считают, что у протокола обязательно один порт: порт задаёт настройка сервиса.
- Путают IP-адрес и порт: адрес находит устройство, порт — приложение.
- Принимают «7 протоколов» из школьного задания за определение: это учебное упрощение.
- Думают, что значок замка гарантирует честность сайта: HTTPS защищает канал, а не намерения владельца.
- Путают TCP и IP: IP доставляет пакеты, TCP делает передачу надёжной.
- Ищут в HTTP «память» между запросами: протокол не хранит состояние.
Короткий вывод
Интернет работает на стеке протоколов: IP адресует пакеты, TCP или UDP доставляют их приложениям, а HTTP, DNS и почтовые протоколы решают прикладные задачи. Разберитесь с портами и уровнями, и любая диагностика сети станет понятнее. Следующий шаг — понять, как устроена локальная сеть и маска подсети.




