Udp

Udp
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.

Игры ⚽ Нужно сделать НИР?

Полезное


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

  • UDP — Название: User Datagram Protocol Уровень (по модели OSI): Транспортный Семейство: TCP/IP (иногда называют UDP/IP) Порт/ID: 17 (в IP) Спецификация: RFC 768 / STD 6 Основ …   Википедия

  • UDP-GT — UDP GT1 A1 Größe 508 Aminosäuren Struktur single pass Membranprotein Bezeichner …   Deutsch Wikipedia

  • UDP — (homonymie) Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. {{{image}}}   Sigles d une seule lettre   Sigles de deux lettres > Sigles de trois lettres …   Wikipédia en Français

  • Udp — (homonymie) Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. {{{image}}}   Sigles d une seule lettre   Sigles de deux lettres > Sigles de trois lettres …   Wikipédia en Français

  • UDP — ↑ Uridinphosphat. * * * UDP   [Abk. für User Datagram Protocol, dt. »Benutzer Datenpaketprotokoll«], ein verbindungsloses Protokoll ohne Fehlerkorrektur für den Transport von Daten über ein Netzwerk. Es sieht weder eine …   Universal-Lexikon

  • UDP — can refer to: *User Datagram Protocol, an Internet protocol *Ulster Democratic Party *União Democrática Popular (People s Democratic Union), a left wing political party in Portugal *Unit Deployment Program, overseas rotations to Japan by United… …   Wikipedia

  • UDP — (User Datagram Protocol) 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

  • UDP/IP — Стек протоколов TCP/IP (англ. Transmission Control Protocol/Internet Protocol)  собирательное название для сетевых протоколов разных уровней, используемых в сетях. Слово «стек» (англ. stack, стопка) подразумевает, что протокол IP. В модели OSI… …   Википедия

  • UDP/IP — Die Internetprotokollfamilie ist eine Familie von rund 500 Netzwerkprotokollen, die die Basis für die Netzkommunikation im Internet bilden. Häufig wird auch die Bezeichnung TCP/IP Protokoll Familie verwendet, es werden im Internet außerhalb des… …   Deutsch Wikipedia

  • UDP — Die Abkürzung UDP steht für: User Datagram Protocol, ein Netzwerkprotokoll un degradable protein siehe Pansenbeständiges Protein United Democratic Party (Gambia), eine gambische Partei United Democratic Party (Belize), eine Partei in Belize… …   Deutsch Wikipedia


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

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