TCP против UDP: какой протокол выбрать и почему

Иван Корнев·04.05.2026·5 мин

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

Порт в этой связке — это просто «дверь» на вашем устройстве, через которую приложение общается с сетью. Один и тот же номер порта (например, 80) может работать и по TCP, и по UDP, но обслуживать разные сервисы.

Краткая суть:

  • Нужна гарантия доставки? Выбирайте TCP.
  • Нужна минимальная задержка (пинг)? Выбирайте UDP.

Что такое порт и как он связан с протоколом

IP-адрес определяет устройство в сети (как адрес дома), а порт определяет конкретное приложение на этом устройстве (как номер квартиры). Без портов компьютер не знал бы, отправить ли пришедшие данные браузеру, мессенджеру или игре.

Диапазон портов делится на три категории:

  1. Системные (0–1023): Зарезервированы для стандартных сервисов (веб, почта, DNS).
  2. Зарегистрированные (1024–49151): Используются конкретным ПО (игры, базы данных).
  3. Динамические (49152–65535): Временно выделяются клиентским приложениям для исходящих соединений.

Протоколы TCP и UDP используют эту единую систему нумерации, но обрабатывают проходящие через «дверь» данные совершенно по-разному.

Ключевые различия: надежность против скорости

Выбор между TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) — это всегда компромисс между надежностью и производительностью.

Механизм работы

  • TCP устанавливает соединение перед передачей данных («рукопожатие»). Он разбивает файл на пакеты, нумерует их и ждет подтверждения от получателя. Если пакет потерялся, TCP отправляет его снова.
  • UDP не устанавливает соединение. Он просто «выстреливает» пакетами в сеть. Если пакет потерялся, протокол об этом даже не узнает и не будет пытаться отправить его повторно.

Задержки и накладные расходы

Заголовки TCP-пакетов больше, так как они содержат информацию о порядковых номерах, контрольных суммах и состоянии соединения. Это создает дополнительную нагрузку на процессор и увеличивает задержку (latency). UDP-заголовки минимальны, что снижает задержку и экономит трафик.

Сравнительная таблица

ХарактеристикаTCPUDP
Тип соединенияС установлением соединения (надежное)Без соединения (ненадежное)
Гарантия доставкиДа, с повторной отправкой потерьНет, пакеты могут теряться
Порядок данныхСтрого соблюдаетсяНе гарантируется
СкоростьНиже из-за проверокВыше, минимальные задержки
Контроль перегрузкиЕсть (автоматически замедляется)Нет (зависит от приложения)
Примеры использованияВеб-сайты, почта, файлы, SSHИгры, VoIP, стриминг, DNS

Где используются TCP и UDP порты: реальные примеры

Понимание того, какой протокол использует сервис, помогает правильно настраивать фаерволы и диагностировать проблемы с сетью.

Популярные TCP-порты

Эти сервисы требуют целостности данных. Потеря даже одного байта в исполняемом файле или тексте письма недопустима.

  • 80 (HTTP) и 443 (HTTPS): Основа современного интернета. Загрузка страниц, API-запросы.
  • 22 (SSH): Удаленное администрирование серверов. Требует высокой безопасности и надежности.
  • 25, 587 (SMTP) и 993 (IMAP): Отправка и получение электронной почты.
  • 3306 (MySQL) и 5432 (PostgreSQL): Подключение к базам данных. Ошибка в запросе может привести к повреждению данных.

Популярные UDP-порты

Эти сервисы жертвуют точностью ради скорости. Лучше пропустить кадр в видео, чем остановить трансляцию на полсекунды для повторной загрузки.

  • 53 (DNS): Преобразование доменных имен в IP-адреса. Запросы короткие, скорость критична для быстрого открытия сайтов.
  • 123 (NTP): Синхронизация времени.
  • 67/68 (DHCP): Автоматическая раздача IP-адресов в локальной сети.
  • Порты онлайн-игр (различные): Например, Steam, Xbox Live или серверы Minecraft часто используют UDP для передачи координат игроков в реальном времени.

Лайфхак для геймеров: Если в игре высокий пинг или «лаги», проверьте настройки роутера. Для UDP-трафика иногда полезно включить QoS (Quality of Service) и приоритизировать игровой трафик, так как у UDP нет встроенного механизма контроля перегрузки, и он может страдать от загруженности канала скачиванием файлов.

Как выбрать протокол для разработки или настройки

Если вы настраиваете сервер или пишете приложение, руководствуйтесь следующими правилами:

  1. Выбирайте TCP, если:

    • Данные должны быть доставлены полностью и без ошибок (финансовые транзакции, тексты, код).
    • Порядок получения сообщений важен (чат, загрузка файла).
    • Вы не хотите реализовывать собственные механизмы проверки целостности.
  2. Выбирайте UDP, если:

    • Критична задержка (голосовая связь, онлайн-шутеры).
    • Потеря нескольких пакетов не ломает весь процесс (видеопоток: лучше артефакт на экране, чем зависание картинки).
    • Нужно рассылать данные многим получателям одновременно (мультикаст/бродкаст), что TCP делает плохо или не делает вовсе.

Частые ошибки при настройке сетей

  1. Блокировка UDP на фаерволе. Многие администраторы открывают только TCP-порты, считая UDP небезопасным или ненужным. Это ломает работу DNS, онлайн-игр и видеоконференций (Zoom, Skype часто используют UDP для медиа-потока).

  2. Игнорирование фрагментации пакетов. UDP-пакеты имеют ограничение по размеру (обычно до 1500 байт, MTU). Если приложение пытается отправить больший пакет, он может быть отброшен маршрутизатором. В TCP эта проблема решается автоматически.

  3. Попытка использовать UDP для передачи файлов. Некоторые пытаются ускорить копирование больших файлов через UDP. Без грамотно написанного уровня коррекции ошибок на уровне приложения вы получите битый файл. Стандартные инструменты (FTP, SCP, HTTP) работают на TCP не просто так.

FAQ

Может ли один сервис использовать и TCP, и UDP? Да. Классический пример — DNS. Обычные запросы идут по UDP (порт 53) для скорости. Но если ответ слишком большой (например, список записей велик) или происходит зонная передача между серверами, используется TCP (порт 53).

Безопаснее ли TCP, чем UDP? Сам по себе протокол не обеспечивает безопасность. И TCP, и UDP могут быть защищены шифрованием (TLS для TCP, DTLS для UDP). Однако UDP чаще используется в DDoS-атаках (например, amplification attacks), так как подделать источник UDP-пакета проще, чем установить TCP-соединение.

Почему в играх не используют TCP? В TCP есть механизм «контроля заторов». Если сеть перегружена, TCP начинает резко снижать скорость отправки и ждать подтверждения старых пакетов. В динамичной игре это приводит к «телепортации» персонажей и рывкам. UDP позволяет игре самой решать, что важнее: старый пакет с позицией врага (который уже не актуален) можно просто выбросить и обработать новый.

Итог

Порты — это адреса приложений, а TCP и UDP — правила доставки корреспонденции.

  • Используйте TCP для всего, где важна точность: веб, почта, базы данных, удаленный доступ.
  • Используйте UDP для всего, где важна скорость реакции: игры, голос, видео, системные запросы (DNS).

Правильная настройка правил фаервола для обоих типов протоколов обеспечит стабильную работу как офисных сервисов, так и развлекательных приложений.