Протокол UDP

Протокол UDP (UserDatagramProtocol, пользовательский протокол данных), описанный в документе RFC 768, представляет собой ненадежный протокол без установления соединения, который обеспечивает минимальные транспортные услуги для протоколов Прикладного уровня с наименьшими издержками на управление. Так, протокол UDP не оказывает услуг подтверждения получения пакетов или контроля над потоком, в отличие от протокола TCP, хотя и включает возможность сквозной верификации контрольной суммы содержимого пакета.

Природа протокола UDP делает возможным его применение только при коротких транзакциях, где все данные, отправляемые по месту назначения, не превышают по объему размера одной дейтаграммы. Это связано с отсутствием у протокола UDP механизма, позволяющего разбивать поток данных на фрагменты и последующей их сборки, как у протокола TCP. Хотя сказанное вовсе не означает, что дейтаграмма(блок информации передаваемый протоколом без установления соединения) не сможет быть впоследствии разбита на фрагменты протоколом IP в процессе передачи. Указанный процесс совершенно прозрачен для Транспортного уровня, так как система-получатель всегда объединяет фрагменты, прежде чем переслать информацию дейтаграммы вверх по стеку протоколов.

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

Формат UDP-сообщения

Функции полей UDP-заголовка перечислены ниже.

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

Номер порта назначения (2 байта). Указывает номер порта процесса в системе назначения, который должен будет получить данные, содержащиеся в UDP-дейтаграмме. Номера портов перечислены в RFC- документе под названием "AssignedNumbers”, а также в файле SERVICES каждой ТСР/1Р-системы.

Длина сообщения (2 байта). Задает длину всего UDP-сообщения, включая заголовок и данные, в байтах.

Контрольная сумма (2 байта). Содержит результаты вычисления контрольной суммы, учитывающих не только UDP-заголовок, данные UDP-сообщения, но также псевдозаголовок, составленный из полей IР-адреса источника, протокола, IP-адреса назначения из IP-заголовка плюс поле длины UDP-сообщения. Этот псевдозаголовок используется протоколом UDP системы-получателя для того, чтобы подтвердить, что сообщение доставлено нужному протоколу в правильной системе назначения.

Данные (переменный размер, до максимального в 65 507 байт). Переносят информацию протокола Прикладного уровня.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: