Перейти к содержанию

Протокол UDP

Определение/Назначение

UDP (User Datagram Protocol) - протокол транспортного уровня в модели OSI. Предназначен для передачи данных по сети, является одним из наиболее популярным протоколом. Особенностью протокола udp является, то что он в отличии от tcp не создает соединения при обмене информации с другой стороной, а посылает поток данных без подтверждения их доставки. Является ненадежным протоколом доставки транспортного уровня.

Контроль за целостностью данных и их повторной досылкой при такой необходимости(если такая задача стоит) уже выносится на уровень функционала самого приложения.

В этой связи UDP часто используется как RTP (Real Time Protocol), где нужно своевременность доставки информации, вместо ее надежности, например видео и аудио потоки.

Единицы измерения - датаграмма(datagram).

Структура заголовка

icmp-ping

  • Source port: 2 bytes
  • Destination port: 2 bytes
  • Length: 2 bytes
  • Checksum: 2 bytes

Итого размер UDP-заголовка = 8 bytes

Псевдозаголовок

Как и в [TCP] протоколе в UPD заголовке тоже нет информации об адресе отправителя и получателя, поэтому даже при совпадении порта получателя нельзя с точностью сказать, что сообщение пришло в нужное место.

Псевдозаголовок не включается в UDP-datagam. Он используется для расчёта контрольной суммы перед отправлением сообщения и при его получении (получатель составляет свой псевдозаголовок, используя адрес хоста, с которого пришло сообщение, и собственный адрес, а затем считает контрольную сумму). И таким образом получатель понимает от кого и кому предназначена данная udp датаграмма и передается дальше уже с точным определением «приложения», которому эти данные предназначены.

Реализация протоколов на базе UDP

В настоящее время на базе протокола UDP бурно развивается протокол QUIC, разработанный Google, для передачи http/https.

Пример udp в дампе

дамп трафика при работе dns по протоколу udp можно посмотреть здесь

Литература

wikipedia


Последнее обновление: 2023-05-29