### 2.2 Протокол UDP

Протокол пользовательских дейтаграмм UDP описан в документе RFC 768. Он предоставляет прикладным программам транспортные услуги. Протокол UDP, также как и IP, обеспечивает негарантированную доставку дейтаграмм получателю и не поддерживает установку соединений. Взаимодействие между прикладными программами и протоколом UDP осуществляется через протокольные порты. Протокольный порт можно определить как абстрактную точку назначения конкретной прикладной программы, находящейся на конкретном компьютере или сетевом устройстве. В стеке протоколов TCP/IP, порт это механизм, позволяющий рабочей станции одновременно поддерживать несколько сеансов связи с удаленными устройствами и их программами. Можно сказать, что порт служит для указания получателя информации. Когда рабочая станция получает из сети пакет, в котором указан ее IP адрес, она может направить пакет определенной программе, используя уникальный номер порта, который определяется во время установки сеанса связи.
Следует отметить что порты протоколов TCP и UDP различаются программным обеспечением рабочих станций и других сетевых устройств. Дейтаграмма протокола UDP состоит из двух частей: заголовка и области данных. Заголовок состоит из четырех 16 битных полей, которые определяют порт отправителя, порт получателя, длину сообщения и контрольную сумму. На рисунке2.3 показан формат полей в дейтаграмме протокола.

Рисунок 2.3 – Формат полей UDP протокола
Порт отправителя (16 бит) | Порт получателя (16 бит)
Длина сообщения (16 бит) | Контрольная сумма (16 бит)
Данные

Поля “Порт отправителя” и “Порт получателя” содержат 16 битные номера портов. Следовательно 216 = 65535 значений уникальных номеров портов можно адресовать при пересылке данных с помощью протокола UDP. Поле “Порт отправителя” может быть не использовано, при этом оно должно содержать нули.
Поле “Длина сообщения” содержит количество байтов в дейтаграмме, при этом учитывается длина заголовков UDP и данных. Поле “Контрольная сумма” может вычисляться, а может и нет. Если контрольная сумма не вычисляется, её значение равно 0. Вычисление этого поля не производится при работе UDP в высоконадёжной локальной сети. При работе в ненадёжной сети только контрольная сумма может указать на достоверность и целостность пришедших данных. Это связанно с тем, что протокол IP не вычисляет контрольную сумму поля данных в IP дейтаграммах.
Порты с нумерацией от 0 до 1023 называются управляемыми и жестко связанны с определенными программными процессами. Порты с номерами от 1023 до 65535 называют динамическими, и сетевое программное обеспечение само определяет необходимый для работы порт в данное время. Фактически, даже в этом диапазоне многие номера портов уже привязаны к конкретным программам, получившим широкое распространение. Все вышесказанное также относится и к портам протокола TCP.