User Datagram Protocol

User Datagram Protocol
UDP
Название:

User Datagram Protocol

Уровень (по модели OSI):

Транспортный

Семейство:

TCP/IP (иногда называют UDP/IP)

Порт/ID:

17 (в IP)

Спецификация:

RFC 768 / STD 6

Основные реализации (клиенты):

Ядро Windows, Linux, UNIX

Основные реализации (серверы):

Ядро Windows, Linux, UNIX

Расширяемость:

нет

UDP (англ. User Datagram Protocol — протокол пользовательских датаграмм) — это транспортный протокол для передачи данных в сетях IP без установления соединения. Он является одним из самых простых протоколов транспортного уровня модели OSI. Его

В отличие от Unreliable Datagram Protocol (протокол ненадёжных датаграмм). Это позволяет ему гораздо быстрее и эффективнее доставлять данные для приложений, которым требуется большая пропускная способность линий связи, либо требуется малое время доставки данных.

Содержание

Состав UDP-датаграммы

Первые 64 бита (8 октетов) датаграммы представляют собой UDP-заголовок, остальные биты — данные сообщения:

Биты 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0-31 Порт отправителя (Source port) Порт получателя (Destination port)
32-63 Длина датаграммы (Length) Контрольная сумма (Checksum)
64-... Данные (Data)

Значение поля «длина датаграммы» указывает на длину всего UDP-сообщения, то есть включая и UDP-заголовок. Измеряется в октетах.

Максимальная длина данных

Для вычисления максимальной длины данных в UDP-сообщении необходимо учесть, что UDP-сообщение в свою очередь является содержимым области данных IP-сообщения. Максимальная длина IP-сообщения (с учетом заголовка) равна 65535 октетов. Потому максимальная длина UDP-сообщения (за вычетом минимального IP-заголовка) равна 65535 − 20 = 65515 октетов. Длина заголовка UDP-сообщения равна 8 октетам, следовательно, максимальная длина данных в UDP-сообщении равна 65515 − 8 = 65507 октетов. На практике сообщения максимальной длины не используются — ограничиваются 8192 октетами данных.

Октеты IP-сообщение
65535 20 Минимальный IP-заголовок
65515 Данные IP-сообщения:
UDP-сообщение
8 UDP-заголовок
65507 Данные UDP-сообщения

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

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

Биты 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0-31 IP-адрес отправителя (Source address)
32-63 IP-адрес получателя (Destination address)
64-95 0 0 0 0 0 0 0 0 Протокол (Protocol) Длина UDP-датаграммы (UDP length)

Поле «протокол» содержит в себе значение 17 (00010001 в двоичном виде, 0x11 — в шестнадцатеричном) — идентификатор UDP-протокола. Поле «длина UDP-датаграммы» содержит в себе длину UDP-сообщения (UDP-заголовок + данные; длина псевдозаголовка не учитывается) в октетах, то есть совпадает с одноименным полем в UDP-заголовке.

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

Расчет контрольной суммы

Перед расчетом контрольной суммы UDP-сообщение дополняется в конце нулевыми битами до длины, кратной 16 битам (эти нулевые биты не отправляются вместе с сообщением). Поле контрольной суммы в UDP-заголовке во время расчета контрольной суммы отправляемого сообщения принимается нулевым.

Для расчета контрольной суммы все UDP-сообщение (UDP-заголовок, данные), включая псевдозаголовок, разбивается на слова (1 слово = 2 байта (октета) = 16 бит). Затем рассчитывается поразрядное дополнение до единицы суммы всех слов с поразрядным дополнением. Результат записывается в соответствующее поле в UDP-заголовке.

В том случае, если контрольная сумма получилась равной нулю, поле заполняют единицами. Если контрольную сумму не требуется рассчитывать, значение поля оставляют нулевым.

При получении сообщения получатель считает контрольную сумму заново (уже учитывая поле контрольной суммы), и, если в результате получится двоичное число из шестнадцати единиц (то есть 0xffff), то контрольная сумма считается сошедшейся, и сообщение принимается.

Пример расчета контрольной суммы

Для примера расчитаем контрольную сумму нескольких 16-битных слов: 0x398a, 0xf802, 0x14b2, 0xc281. Находим их сумму с поразрядным дополнением:

0x398a + 0xf802 = 0x1318c = 0x318d ;
0x318d + 0x14b2 = 0x463f ;
0x463f + 0xc281 = 0x108c0 = 0x08c1 .

Теперь находим поразрядное дополнение до единицы полученного результата:

0x08c1 = 0000 1000 1100 0001 → 1111 0111 0011 1110 = 0xf73e или, проще — 0xffff − 0x08c1 = 0xf73e.

Это и есть искомая контрольная сумма.

Использование

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

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

UDP используется в следующих протоколах:

См. также

Ссылки


Wikimedia Foundation. 2010.

Смотреть что такое "User Datagram Protocol" в других словарях:

  • User Datagram Protocol — (UDP) is one of the core protocols of the Internet Protocol Suite. Using UDP, programs on networked computers can send short messages sometimes known as datagrams (using Datagram Sockets) to one another. UDP is sometimes called the Universal… …   Wikipedia

  • User datagram protocol — Pour les articles homonymes, voir UDP. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français

  • User Datagram Protocol — (UDP) es un protocolo del nivel de transporte basado en el intercambio de datagramas. Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente… …   Enciclopedia Universal

  • User Datagram Protocol — User Datagram Protocol,   UDP …   Universal-Lexikon

  • User Datagram Protocol — UDP (User Datagram Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Verbindungslose Übertragung von Daten über das Internet UDP im TCP/IP‑Protokollstapel: Anwendung DNS DHCP … …   Deutsch Wikipedia

  • User Datagram Protocol — Para otros usos de este término, véase UDP (desambiguación). User Datagram Protocol (UDP) Familia: Familia de protocolos de Internet Función: Intercambio de datagramas a través de una red. Ubicación en la pila de protocolos …   Wikipedia Español

  • User Datagram Protocol — Pour les articles homonymes, voir UDP. Pile de protocoles 7.  Application 6.  …   Wikipédia en Français

  • User Datagram Protocol —    Abbreviated UDP. The connectionless, transport level protocol used in the TCP/IP suite of protocols, usually bundled with IP layer software. Because UDP does not add overhead, as does connection oriented TCP, UDP is often used with SNMP… …   Dictionary of networking

  • user datagram protocol — noun A communications protocol that has no error recovery features, and is mostly used to send streamed material over the Internet …   Wiktionary

  • User Datagram Protocol — UDP, protocol with no connection required between sender and receiver that allows sending of data packets on the Internet (thought unreliable because it cannot ensure the packets will arrive undamaged or in the correct order) …   English contemporary dictionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»