Ваш IP адрес:
Провайдер:
...

TCP и UDP: как отличаются транспортные протоколы

TCP и UDP доставляют данные приложений поверх IP, но предлагают разные свойства. TCP предоставляет упорядоченный поток байтов с механизмами подтверждения и повторной передачи. UDP отправляет отдельные датаграммы без таких гарантий на уровне транспорта. Выбор зависит от требований приложения.

Что делает TCP

Перед обменом данными TCP устанавливает соединение между конечными точками. Сегменты нумеруются, потерянные данные могут передаваться повторно, а получателю приложение видит байты в правильном порядке. TCP также регулирует поток и перегрузку, чтобы отправитель не перегружал получателя и сеть. Эти свойства удобны для передачи файлов, почты и многих веб-соединений. Они не означают, что любая TCP-служба защищена шифрованием: для этого нужен отдельный защищённый протокол, например TLS.

Если часть данных потеряна, приложение обычно ждёт восстановления нужного фрагмента. Это правильно для документа, который должен прийти целиком, но может увеличить задержку интерактивного потока. TCP не знает границ сообщений приложения: два вызова отправки не гарантируют два отдельных чтения на другой стороне. Формат сообщений определяет приложение.

Что даёт UDP

UDP сохраняет границы датаграмм и не устанавливает соединение как TCP. Сам UDP не подтверждает доставку, не упорядочивает пакеты и не повторяет потерянные. Это не означает, что приложение поверх UDP обязательно ненадёжно: оно может самостоятельно добавить нужные подтверждения, контроль перегрузки и шифрование. DNS-запросы часто используют UDP, а QUIC построен поверх UDP и обеспечивает собственные механизмы надёжной передачи.

Для прямой речи или игры запоздавший пакет может быть менее полезен, чем следующий. Поэтому некоторые приложения предпочитают сами управлять потерями и задержкой вместо ожидания транспорта. Однако выбор UDP не создаёт низкую задержку автоматически: перегруженная сеть задержит или потеряет любые пакеты.

Порты и практический выбор

Оба протокола используют номера портов, но TCP 443 и UDP 443 — разные конечные точки. Проверка TCP-порта не доказывает работу UDP-службы с тем же номером. Для веб-сайтов HTTP/1.1 и HTTP/2 обычно используют TCP с TLS, а HTTP/3 — QUIC поверх UDP. Если UDP заблокирован, клиент может вернуться к TCP-версии HTTP; точное поведение зависит от клиента и сервера.

При проектировании службы сначала перечислите требования: нужны ли гарантированная доставка, порядок, границы сообщений и контроль времени. Затем выберите протокол и проверьте, поддерживает ли его сеть. Спецификации TCP и UDP описывают свойства транспорта. О портах подробнее в статье «Что такое сетевой порт?». Эта проверка особенно полезна перед открытием порта на домашнем маршрутизаторе.