Урок 2 из 4 · 7 мин
Порты, TCP и UDP
Почему один IP-адрес может вести сотню разговоров одновременно, и почему некоторые из этих разговоров жертвуют надёжностью ради скорости.
IP-адрес доставляет пакет на нужное устройство. Но он не говорит, какое приложение на этом устройстве должно его получить. Это задача порта: числа, которое сообщает вашему Mac, какая программа ведёт разговор. Учебный центр Cloudflare сравнивает это с многоквартирным домом: уличный адрес (IP) доставляет почту в нужный дом, а номер квартиры (порт) — в нужную дверь.
Одно соединение, много дверей
Порты позволяют компьютеру различать разные виды трафика, даже если весь он приходит по одному и тому же Wi-Fi или проводному соединению. Cloudflare формулирует это прямо: «порты позволяют компьютерам легко различать разные виды трафика: например, письма идут на другой порт, чем веб-страницы, хотя оба достигают компьютера через одно и то же интернет-соединение» (ports allow computers to easily differentiate between different kinds of traffic: emails go to a different port than webpages, for instance, even though both reach a computer over the same Internet connection). Порты находятся в заголовках TCP и UDP, на уровень выше обычного IP-адреса; в самом IP-пакете просто нет места, чтобы указать, для какого порта он предназначен.
Кто вправе использовать какой номер
Номера портов идут от 0 до 65535, и Администрация адресного пространства интернета (IANA) управляет тем, кому какой достаётся: системные порты (0–1023) назначаются только через формальную проверку, пользовательские, или зарегистрированные, порты (1024–49151) можно зарегистрировать для конкретной службы, а верхний диапазон, 49152–65535, оставлен незанятым для временного использования — например, для обратного адреса, который ваш браузер выбирает для своей стороны соединения.
| Порт | Зарегистрированная служба | Что обычно его использует |
|---|---|---|
| 22 | Secure Shell (SSH) | Удалённый доступ к командной строке |
| 25 | Simple Mail Transfer | Отправка почты между почтовыми серверами |
| 53 | Domain Name Server | Запросы DNS |
| 80 | HTTP | Обычные, незашифрованные веб-страницы |
| 443 | HTTPS | Зашифрованные веб-страницы |
TCP: медленнее, зато ничего не теряется
Протокол управления передачей (TCP), определённый в RFC 9293, создан быть надёжным: он «предоставляет приложениям надёжную, упорядоченную услугу байтового потока» (provides a reliable, in-order, byte-stream service to applications), обнаруживая потерянные пакеты по номерам последовательности и повторно отправляя их, пока другая сторона не подтвердит получение. Эта надёжность стоит немного времени и накладных расходов, поэтому TCP — правильный выбор для того, что должно прийти целым и по порядку: веб-страница, загрузка файла, письмо.
UDP: быстро, и готов немного потерять
Протокол пользовательских датаграмм (UDP), описанный в RFC 768, идёт на противоположный компромисс: он «предоставляет прикладным программам процедуру отправки сообщений другим программам с минимумом протокольного механизма» (provides a procedure for application programs to send messages to other programs with a minimum of protocol mechanism). Здесь нет ни рукопожатия, ни гарантии порядка, ни автоматической повторной отправки. Cloudflare отмечает, что это подходит «особенно чувствительным ко времени передачам, таким как воспроизведение видео или запросы DNS» (especially time-sensitive transmissions such as video playback or DNS lookups), где потерянный пакет — лишь небольшой сбой, а ожидание повторной передачи было бы хуже, чем просто двигаться дальше.
Главное
- Порт — это число, которое сообщает устройству, для какого приложения или службы предназначен пакет; сам по себе IP-адрес только идентифицирует устройство.
- IANA управляет номерами портов в трёх диапазонах: системные порты (0–1023), пользовательские/зарегистрированные порты (1024–49151) и незанятые динамические порты (49152–65535).
- Среди распространённых портов — 22 (SSH), 25 (почта), 53 (DNS), 80 (HTTP) и 443 (HTTPS).
- TCP (RFC 9293) проверяет и повторно отправляет потерянные данные ради надёжной, упорядоченной доставки, ценой некоторой потери скорости.
- UDP (RFC 768) пропускает эти проверки ради скорости, что подходит для чувствительного ко времени трафика вроде видео и запросов DNS.
Проверьте себя
1. Какую проблему решают порты, которую не может решить сам по себе IP-адрес?
- Они сообщают сети, для какого приложения на устройстве предназначен пакет — Верно.
- Они шифруют соединение
- Они устраняют потребность в IP-адресе
- Они ускоряют Wi-Fi
IP-адрес маршрутизирует пакет к устройству; порт, переносимый в заголовке TCP или UDP, указывает, какая программа на этом устройстве должна его обработать.
2. Какой порт зарегистрирован для HTTPS согласно реестру IANA?
- 21
- 80
- 443 — Верно.
- 8080
IANA указывает порт 443 как «https», используемый для HTTP поверх TLS/SSL. Порт 80 — это обычный, незашифрованный HTTP.
3. Почему RFC 9293 описывает TCP как «надёжный, упорядоченный»?
- Потому что TCP обнаруживает потерянные данные и повторно их отправляет, сохраняя порядок отправки — Верно.
- Потому что TCP никогда не использует порты
- Потому что TCP всегда быстрее UDP
- Потому что TCP по умолчанию шифрует всё
TCP отслеживает номера последовательности, чтобы обнаруживать пропуски, повторно отправляет недостающие данные и собирает байтовый поток по порядку.
4. Почему запросы DNS и воспроизведение видео обычно используют UDP, а не TCP?
- UDP более безопасен
- UDP жертвует надёжностью ради скорости, что подходит трафику, где потерянный пакет — лишь небольшой сбой — Верно.
- TCP не может использовать порт 53
- UDP гарантирует доставку пакетов по порядку
Cloudflare отмечает, что UDP подходит «особенно чувствительным ко времени передачам, таким как воспроизведение видео или запросы DNS» именно потому, что пропускает рукопожатие и накладные расходы на повторную передачу, присущие TCP.
Примените на практике в FireAI
Примените этот урок на своём Mac.
- Узнайте, куда приложение отправляет данные, на World map — Увидьте, с какой именно компанией и страной незаметно общается одно приложение.
- Правила: приложение, сайт, домен, IP или диапазон, навсегда или до перезагрузки — Напишите правило, точное как один адрес, или широкое как целый домен.
- Глубокая проверка без расшифровки чего-либо — Получайте реальные подробности о защищённом соединении, при этом FireAI никогда не читает то, что внутри него.
Источники
- RFC 9293: Transmission Control Protocol (TCP)
- RFC 768: User Datagram Protocol
- IANA: Service Name and Transport Protocol Port Number Registry
- Cloudflare Learning: What is a computer port?
- Cloudflare Learning: What is UDP?
Примените это на своём Mac
Все функции бесплатно на 17 дней, без банковской карты.