Протоколы интернета: TCP/IP, HTTP и DNS простыми словами

Протоколы интернета: TCP/IP, HTTP и DNS простыми словами

RFC 9293, 9110, 9112; порты по реестру IANA; октябрь 2026Опубликовано 13 октября 2025Обновлено 8 сентября 20267 мин чтения
Башня из четырёх лотков, соединённых трубками, и посылка внутри
Коротко
  • Протокол — договорённость о формате и порядке обмена данными; стандарты интернета описаны в документах RFC.
  • Стек TCP/IP делится на уровни: канальный, межсетевой (IP), транспортный (TCP, UDP) и прикладной (HTTP, DNS, почта).
  • TCP доставляет данные надёжно и по порядку, UDP — без гарантий, но с минимумом служебной работы.
  • Адрес находит устройство, порт — приложение на нём; стандартные номера портов собраны в реестре IANA.
Содержание11 разделов ▾
  1. Что такое протокол
  2. Как устроен стек TCP/IP
  3. IP: доставка пакетов по адресам
  4. TCP и UDP
  5. HTTP и HTTPS
  6. DNS
  7. Другие протоколы, которые вы встречаете
  8. Один запрос от начала до конца
  9. Шаг 1. Определяется адрес
  10. Шаг 2. Устанавливается TCP-соединение
  11. Шаг 3. Включается шифрование
  12. Шаг 4. Отправляется запрос HTTP
  13. Шаг 5. Приходит ответ
  14. Шаг 6. Соединение закрывается
  15. Условия и ограничения
  16. Частые ошибки
  17. Короткий вывод

Протоколы интернета — это договорённости о том, как устройства обмениваются данными: 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

СвойствоTCPUDP
Что даётНадёжный байтовый поток, данные приходят по порядкуОтправку отдельных сообщений с минимумом служебной работы
ПотериОбнаруживает потерю по номерам последовательности и повторяет отправкуДоставка и защита от дублей не гарантируются
Где описанRFC 9293RFC 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 (управление)21TCPПередача файлов
SSH22TCPЗащищённый удалённый доступ
SMTP25TCPПередача почты между серверами
Submission587TCPОтправка почты из почтовых программ
DNS53TCP и UDPРазрешение имён
DHCP (сервер, bootps)67UDPАвтоматическая выдача адресов
HTTP80TCPВеб-страницы
POP3110TCPПолучение почты
NTP123UDPТочное время
IMAP143TCPПолучение почты с сервера
HTTPS443TCPВеб-страницы поверх TLS
IMAPS993TCPIMAP поверх 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 вручную составленный запрос и разберём ответ.

Python
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 и почтовые протоколы решают прикладные задачи. Разберитесь с портами и уровнями, и любая диагностика сети станет понятнее. Следующий шаг — понять, как устроена локальная сеть и маска подсети.

Источники

  1. RFC 1122. Requirements for Internet Hosts — Communication Layers↗ rfc-editor.org
  2. RFC 791. Internet Protocol; RFC 8200. IPv6 Specification↗ rfc-editor.org
  3. RFC 9293. Transmission Control Protocol (TCP)↗ rfc-editor.org
  4. RFC 768. User Datagram Protocol↗ rfc-editor.org
  5. RFC 9110. HTTP Semantics↗ rfc-editor.org
  6. RFC 8446. TLS 1.3↗ rfc-editor.org
  7. IANA: Service Name and Transport Protocol Port Number Registry↗ iana.org
  8. Яндекс Почта: настройка почтовых программ (параметры IMAP и SMTP)↗ yandex.ru
  9. Яндекс DNS: адреса DoH и DoT↗ dns.yandex.ru

Частые вопросы

Какие бывают протоколы интернета?

Их много, и принято группировать по уровням. Межсетевой уровень — IP, транспортный — TCP и UDP, прикладной — HTTP и HTTPS для сайтов, DNS для имён, SMTP, IMAP и POP3 для почты, SSH для удалённого доступа, FTP для файлов. Короткая таблица с портами есть в этой статье.

Чем TCP отличается от UDP?

TCP обеспечивает надёжную передачу байтового потока в правильном порядке: теряет пакеты — отправляет заново. По RFC 9293, надёжность строится на номерах последовательности и контрольных суммах. UDP по RFC 768 даёт приложению отправлять сообщения с минимумом служебной работы, но доставка и защита от дублей не гарантируются. Для упорядоченной надёжной доставки RFC 768 советует TCP.

Что такое HTTP и чем он отличается от HTTPS?

HTTP — прикладной протокол запросов и ответов, на котором работают сайты. В RFC 9110 он назван протоколом без хранения состояния. HTTPS — тот же HTTP, но поверх шифрования TLS: по RFC 8446, TLS создан, чтобы защищать от прослушивания, подмены и подделки сообщений. Поэтому у HTTP стандартный порт 80, а у HTTPS — 443.

Какой протокол используется для почты?

Для отправки — SMTP, для получения — IMAP или POP3. Стандартные порты по реестру IANA: SMTP — 25, а для отправки из почтовых программ ещё 587, POP3 — 110, IMAP — 143, IMAP поверх TLS — 993. Конкретные значения задаёт сервис. Например, в справке Яндекс Почты для почтовых программ указаны IMAP на imap.yandex.ru с портом 993 и SMTP на smtp.yandex.ru с портом 465, оба с SSL.

Что такое DoH и DoT?

Это способы передавать DNS-запросы в зашифрованном виде: DoH — по HTTPS, DoT — по TLS. Российский сервис Яндекс DNS публикует для обоих способов адреса: DoH — порт 443, DoT — порт 853, а для DoT в Android указано имя сервера. Зашифрованный DNS скрывает запросы от посторонних в сети, но сам DNS-сервер имена по-прежнему видит.

  • #protokoly
  • #tcp-ip
  • #http
  • #dns
  • #porty
РедакцияМатериал подготовлен по источникам выше · 8 сентября 2026