UDP весьма похож на IP в том смысле, что они оба ненадежные, не ориентированные на соединение протоколы, пользующиеся датаграммами. Они оба переносят данные между компьютерами, однако только UDP умеет распознать то приложение среди многих, работающих внутри компьютера, которому предназначены данные. Как правило, сеть назначает таким приложениям определенный номер порта. UDP прицепляет к данным UDP-заголовок.
Длина UDP-заголовка — восемь байтов. Поля портов состоят из 16-битных целых чисел, представляющих номера портов протоколов. Поле “порт-источник” содержит номер порта, которым пользуется приложение-источник данных. Поле “порт-получатель” соответственно указывает на номер порта приложения-получателя данных. Поле “длина сообщения” определяет длину (в байтах) UDP-датаграммы, включая UDP-заголовок. Поле “контрольная сумма”, в отличие от контрольной суммы IP-заголовка, содержит результат суммирования всей UDP-датаграммы, включая ее данные, область которых начинается сразу после заголовка.
Позиции битов |
0 15 |
16 31 |
Порт-получатель UDP |
Порт источник UDP |
|
Длина сообщения UDP |
Контрольна сумма UDP |
|
Область данных UDP |
Рис. 2.10. Структура UDP-датаграммы
Модуль UDP отслеживает появление вновь прибывших датаграмм, сортирует их и распределяет (демультиплексирует) в соответствии с портами назначения. На рис. 2.11 показан поток данных, следующий сквозь сетевой уровень и модуль UDP к прикладным программам.
Рис. 2.11. Поток данных через модуль UDP