TCP, UDP и порты
Номер порта занимает 16 бит, поэтому он бывает от 0 до 65535. Веб-серверы с HTTPS слушают порт 443.
Сначала две задачки. Во время видеозвонка маленький кусочек голоса друга теряется по дороге. Должно ли приложение запросить его снова? Теперь ты скачиваешь файл с домашним заданием, и теряется один кусок файла. Тот же вопрос. Ответь на оба, прежде чем читать дальше.
Два потерянных куска, два разных ответа
Если ты ответил «нет» для звонка и «да» для файла, ты уже выбрал между двумя транспортами. Кусочек звука, пришедший на полсекунды позже, бесполезен. Разговор ушёл вперёд, так что лучше пропустить этот кусок и играть следующий. Файл без одного куска испорчен, так что этот кусок стоит подождать. В интернете есть транспорт для каждого случая: TCP ждёт и отправляет заново, UDP отправляет и идёт дальше. Но прежде чем любой из них поможет, пакет должен попасть в нужную программу.
Какая программа получит пакет: порты
IP-адрес доставляет пакет на нужный компьютер. Но на одном компьютере сразу работает много программ: браузер с несколькими вкладками, чат, музыкальное приложение. В заголовках и TCP, и UDP есть порт отправителя и порт получателя, каждый является 16-битным числом от 0 до 65535, и порт говорит, для какой программы пакет. Серверная программа слушает условленный порт: 80 для обычного HTTP, 443 для HTTPS, 53 для DNS, 25 для почты между серверами. RFC 6335 делит диапазон на системные порты от 0 до 1023, пользовательские от 1024 до 49151 и динамические от 49152 до 65535. Твой компьютер выбирает временный порт отправителя для каждого разговора, часто из динамического диапазона. Адрес и порт вместе, например 198.51.100.20:443, точно называют один конец разговора.
TCP отмечает каждый байт
TCP (RFC 9293) превращает ненадёжный поток пакетов во что-то вроде телефонной линии для байтов. Сначала обе стороны устанавливают соединение трёхэтапным рукопожатием: клиент отправляет SYN, сервер отвечает SYN-ACK, клиент отвечает ACK. С этого момента у каждого байта есть порядковый номер. Получатель отправляет подтверждения (ACK), сообщая, докуда он дошёл, и ставит пришедшие не по порядку куски на место. Если отправитель не получает ACK за время ожидания, он отправляет данные снова. RFC 6298 задаёт первое время ожидания в 1 секунду, а потом подстраивает его под измеренную круговую задержку. Ещё TCP замедляется, когда видит потери, чтобы не захлестнуть одну загруженную связь.
UDP отправляет и идёт дальше
UDP (RFC 768, 1980 г.) делает гораздо меньше. Его заголовок занимает всего 8 байт: два порта, длина и контрольная сумма. Нет ни рукопожатия, ни порядкового номера, ни повторной отправки. Для видеозвонка из первой задачки это как раз то, что нужно. Короткие вопросы DNS тоже идут по UDP, потому что один вопрос и один ответ без рукопожатия быстрее. QUIC, транспорт под HTTP/3, работает поверх UDP и сам строит повторную отправку.
Перетащи, чтобы повернуть. Колёсико или щипок для масштаба.
Четыре числа не дают перепутать две вкладки
Четыре числа вместе определяют одно соединение TCP: адрес отправителя, порт отправителя, адрес получателя и порт получателя. Так сервер на порте 443 может одновременно общаться с тысячами браузеров и не путать их, а твой ноутбук различает две вкладки одного сайта, потому что соединение каждой вкладки использует свой порт отправителя. Нажми на пакет в симуляторе и прочитай заголовок. До домашнего роутера отправитель 192.168.0.12 с портом 51000. После него NAT поменял оба числа, и роутер запоминает замену, чтобы ответы вернулись в нужную вкладку.
| TCP | UDP | |
|---|---|---|
| Установка | Трёхэтапное рукопожатие | Нет |
| Потерянные данные | Отправляются снова после времени ожидания | Остаются потерянными |
| Порядок | Восстанавливается по порядковым номерам | Не гарантирован |
| Заголовок | 20 байт и больше | 8 байт |
| Типичное применение | Веб-страницы, почта, скачивание файлов | Вопросы DNS, голосовые и видеозвонки, игры, QUIC |
| Порт 443 | HTTPS |
| Порт 80 | HTTP без шифрования |
| Порт 53 | DNS |
| Порт 25 | Почта между почтовыми серверами (SMTP) |
| SYN, SYN-ACK, ACK | Трёхэтапное рукопожатие TCP |
| ACK | Подтверждение: «я получил всё до этого места» |
- Какой номер порта самый большой?
- Какой порт использует веб-сервер для HTTPS?
- Какой порт использует DNS?
- Твой браузер использует порт отправителя 50000. Какой это диапазон по RFC 6335?
- Динамический (от 49152 до 65535)
- Системный (от 0 до 1023)
- Пользовательский (от 1024 до 49151)
- Недопустимый порт
- Расставь шаги рукопожатия TCP по порядку.
- Сколько байт занимает заголовок UDP?
- Какое первое время ожидания повторной передачи задаёт RFC 6298, пока круговая задержка ещё не измерена?
- Что TCP делает с потерянным пакетом при потерях 25%?
- Отправляет его снова после времени ожидания
- Пропускает его
- Отправляет всё сообщение заново с начала
- Сразу закрывает соединение
- Почему видеозвонки часто используют UDP?
- Звук, пришедший поздно, бесполезен, поэтому ждать повторной отправки нет смысла
- UDP шифрует звонок
- UDP никогда не теряет пакеты
- TCP не может передавать звук
- Сколько всего разных номеров портов?
- «UDP является сломанной версией TCP, которая теряет данные.» UDP выбирают нарочно, когда поздние данные бесполезны или хватает одного вопроса и одного ответа, как в звонках, играх и DNS. QUIC даже строит поверх него собственную надёжность.
- «Порт является разъёмом на задней стенке компьютера.» Слово одно и то же, но порт TCP или UDP является 16-битным числом в заголовке пакета, от 0 до 65535. Он называет программу, а не гнездо.
- «Когда теряется один пакет, TCP отправляет весь файл заново.» После времени ожидания заново отправляются только потерянные данные. Порядковые номера и ACK показывают, какая часть не подтверждена; остальное у получателя уже есть.
- Порты (16 бит, от 0 до 65535) выбирают программу: 80 HTTP, 443 HTTPS, 53 DNS.
- TCP: рукопожатие (SYN, SYN-ACK, ACK), порядковые номера, ACK, повторная отправка после времени ожидания.
- UDP: заголовок 8 байт, без рукопожатия и повторной отправки; хорош, когда поздние данные бесполезны.
- QUIC (HTTP/3) работает поверх UDP и добавляет собственную надёжность.
Источники курса (28)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then operators and papers, history sources last)
- IETF RFCs (rfc-editor.org): RFC 768 UDP (1980, 8-byte header)
- RFC 791 IPv4 (1981, 32-bit addresses, "does not provide a reliable communication facility", TTL field "measured in units of seconds" but every module must decrease it by at least one, so it is only an upper bound)
- RFC 792 ICMP (Time Exceeded)
- RFC 801 NCP/TCP transition plan (1 January 1983)
- RFC 894 Ethernet (1500-byte payload)
- RFC 1034 and RFC 1035 DNS (1987, HOSTS.TXT kept by SRI-NIC, labels up to 63 octets and names up to 255, TTL in seconds)
- RFC 1122 (127.0.0.0/8 loopback)
- RFC 1918 private addresses (10/8, 172.16/12, 192.168/16)
- RFC 2131 DHCP, RFC 3022 NAT, RFC 3596 AAAA records, RFC 3849 and RFC 5737 documentation addresses, RFC 4271 BGP-4, RFC 4291 IPv6 text form, RFC 6298 TCP retransmission timer (initial RTO 1 second)
- RFC 6335 port ranges (0-1023, 1024-49151, 49152-65535)
- RFC 7766 DNS over TCP, RFC 8200 IPv6 (128-bit addresses, Hop Limit)
- RFC 8446 TLS 1.3 (one round-trip handshake)
- RFC 9000 QUIC and RFC 9114 HTTP/3, RFC 9110 HTTP semantics (status code classes)
- RFC 9293 TCP (three-way handshake, sequence numbers)
- IANA: ip-parameters registry (recommended default TTL 64)
- IPv4 free pool depleted 3 February 2011 (NRO and ARIN announcements)
- Official documentation: MDN Web Docs "How does the Internet work?" (45 cables for 10 computers, switches, routers, MAC and IP addresses, internet and web)
- "What is a URL?", "HTTP response status codes" (developer.mozilla.org)
- Cloudflare Learning Center: "What is DNS?" (four kinds of DNS server, 8 steps of an uncached lookup, browser and OS caches, TTL)
- "What is HTTP/3?" (cloudflare.com/learning)
- Google Chrome Help, "Browse in Incognito mode" (support.google.com/chrome/answer/95464, checked 2026-10-19: Incognito limits what is saved to the device; websites and organisations that manage your network, like your school, employer or internet service provider, may be able to observe your activity)
- Operators and papers: root-servers.org (13 root name servers run by 12 organisations, 2047 instances on 2026-10-17)
- Jacobson and Karels 1988, Congestion Avoidance and Control (loss mostly congestion)
- History blocks only: UCLA Samueli School of Engineering, Internet50 (first ARPANET message "LO", UCLA to SRI, 29 October 1969, 22:30)
- historyofinformation.com and Wikipedia ARPANET (Kline)
- Spiceworks/SRI history (HOSTS.TXT kept by SRI-NIC)
- Numbers (2^32, 2^96, 45 and 6 cables, packet counts, round-trip times)
Проверено: 2026-10-17