Открыть сервисСервис

UDP — протокол датаграммного транспорта

UDP (англ. User Datagram Protocol, «пользовательский протокол датаграмм») — транспортный протокол компьютерных сетей, работающий поверх IP и предоставляющий приложениям минимальный, «ненадёжный» обмен датаграммами без установления соединения. Вместе с TCP UDP образует основу транспортного уровня модели TCP/IP. Протокол описан в стандарте RFC 768 (1980 год), автор — Джон Постел. UDP не гарантирует доставку, порядок или дублирование датаграмм, но минимизирует накладные расходы и задержку, что делает его предпочтительным для задач, чувствительных к времени.

Общие сведения

UDP относится к транспортному уровню модели TCP/IP (уровень 4 модели OSI). Он предоставляет процессам-приложениям возможность отправлять сообщения (датаграммы) друг другу без предварительного установления соединения — в отличие от TCP, использующего трёхстороннее рукопожатие. Отправитель просто формирует датаграмму и передаёт её в IP-слой; приёмник, если датаграмма дошла, получает её без подтверждения.

Ключевые свойства UDP:

  • отсутствие установления соединения;
  • отсутствие гарантий доставки и порядка пакетов;
  • отсутствие встроенной контрольной суммы на уровне приложения (хотя заголовок UDP содержит простую контрольную сумму);
  • мультиплексирование портами;
  • минимальные накладные расходы.

Формат заголовка

Заголовок UDP состоит из восьми байт и содержит четыре поля по два байта:

ПолеРазмерНазначение
Source Port16 битномер порта отправителя (может быть нулевым)
Destination Port16 битномер порта получателя
Length16 битдлина заголовка и данных в байтах
Checksum16 битконтрольная сумма (заголовка и данных, с псевдозаголовком IP)

Поле Length включает сам заголовок (8 байт), поэтому минимальное значение — 8. Контрольная сумма в UDP необязательна в IPv4 (может быть равна нулю), но обязательна в IPv6. Псевдозаголовок IP, включаемый в расчёт контрольной суммы, гарантирует, что датаграмма не была искажена при маршрутизации.

Сравнение с TCP

ХарактеристикаUDPTCP
Установление соединениянетда (рукопожатие)
Гарантия доставкинетда
Порядок пакетовне гарантируетсягарантируется
Контроль перегрузкинетда
Размер заголовка8 байтминимум 20 байт
Накладные расходыминимальныесущественные
Битовые флагинетесть

Применение

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

DNS

Система доменных имён использует UDP для большинства запросов на порту 53. Короткие запрос-ответ укладываются в одну датаграмму, что обеспечивает быстрое разрешение имён. При ответах размером более 512 байт (или при необходимости) клиент переходит на TCP.

Стриминг и VoIP

Протоколы IP-телефонии (SIP, RTP) и потокового вещания (HLS, MPEG-DASH поверх UDP, WebRTC) предпочитают UDP, поскольку повторная передача устаревших аудио- или видеоданных бессмысленна: опоздавший пакет заменяется более новым.

Игры

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

DHCP и служебные протоколы

DHCP (порты 67/68), NTP (порт 123), SNMP (порт 161) и ряд других служебных протоколов работают поверх UDP.

QUIC

Протокол QUIC, разработанный в Google и ставший основой HTTP/3, построен поверх UDP. Он реализует в пользовательском пространстве надёжную доставку, шифрование и контроль перегрузки, сохраняя преимущества UDP по обходу проблем middlebox-ов.

Ограничения

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

См. также

  • TCP
  • IP
  • QUIC
  • DNS
  • RTP

Источники

  • RFC 768. User Datagram Protocol (J. Postel, 1980)
  • RFC 1122. Requirements for Internet Hosts (1989)
  • Куроленков В. П. Сети связи и интернет. — М.: Горячая линия — Телеком
  • Таненбаум Э., Уэзеролл Д. Компьютерные сети. — СПб.: Питер
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru