Битлента
Словарь терминов3 мин чтения·

UDP: быстрый протокол передачи данных без подтверждений

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

Отправил и забыл

UDP, User Datagram Protocol, предельно прост. Он берёт порцию данных, добавляет короткий заголовок с портами и отправляет в сеть. Ни установки соединения, ни подтверждений, ни повторной передачи, ни контроля порядка. Дошло так дошло.

Такая простота даёт главное преимущество: минимальная задержка и минимум служебных данных. Не нужно тратить время на рукопожатие, ждать подтверждения или задерживать свежие данные из-за потерянных старых.

Заголовок UDP занимает всего восемь байт: порт отправителя, порт получателя, длина и контрольная сумма. Для сравнения, заголовок TCP как минимум в два с половиной раза больше и содержит номера, окна и флаги. Меньше служебных данных означает быстрее обработку.

Где это выгодно

Есть задачи, где старые данные бесполезны. В голосовом звонке слово, сказанное секунду назад, уже не нужно, и ждать его повторной отправки бессмысленно. Лучше пропустить и продолжить. Поэтому UDP используют голосовая и видеосвязь, онлайн-игры, потоковые трансляции.

Ещё один пример DNS: короткий запрос и короткий ответ, для которых установка соединения избыточна. Если ответ не пришёл, клиент просто спросит ещё раз. Множество мелких служебных протоколов, включая обнаружение устройств в локальной сети, тоже работают по UDP.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Как приложения справляются без надёжности

Надёжность можно добавить выше. Приложение само нумерует пакеты, отслеживает потери и решает, что делать: запросить повтор, заменить избыточными данными или пропустить. Такую гибкость TCP не даёт, он всегда упорядочивает и повторяет.

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

На стороне пользователя этот процесс не виден. Вы просто замечаете, что звонок в плохой сети «квакает», но не останавливается совсем, а при повторном соединении по TCP вы получили бы ровную речь, но с паузами. Здесь чётко видна разница между подходами: UDP предпочитает актуальность, TCP корректность.

Практические нюансы

Некоторые сети ограничивают UDP: корпоративные фаерволы, гостевой Wi-Fi и отдельные операторы закрывают часть портов или обрывают долгие потоки. В таких условиях звонки и игры работают хуже или переходят на TCP. Роутеры с трансляцией адресов хранят записи для UDP недолго, и «молчащий» поток может потерять привязку, поэтому программы посылают периодические пустые пакеты.

Если приложение не соединяется, проверьте, не блокируется ли UDP-порт, и попробуйте другую сеть.

Проверить работу UDP-приложения можно через мониторинг соединений: команда netstat покажет UDP-порты без статуса состояния, поскольку самого соединения не существует.

Заблуждения: UDP

UDP не «плохой» и не «небезопасный» по природе: у него просто другие задачи. Он не быстрее TCP при скачивании файла, потому что скорость там зависит от канала. Он не шифрует данные сам по себе: защита обеспечивается уровнем выше, например DTLS или собственным шифрованием приложения. И потери в UDP это не ошибка, а ожидаемое поведение, которое приложение обязано учитывать.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
udpпротоколысеть

Часто задаваемые вопросы

Читайте также