Протокол UDP. Формат датаграммы, поля заголовка.

Июль 5, 2011

В такую жару самое время холодильник авто купить. Загрузили туда пивко, шашлычок, газировку и на пляж. Всегда под рукой холодные продукты, а главное свежие. Разве не прелесть в такую жару. Всем автолюбителям рекомендуется к приобретению.

___________________________________
В предыдущем посте мы начали говорить о UDP. Продолжаем:

Порт – это целое число в диапазоне 0 ÷ 65535, которое является ресурсом ОС. Первые 1024 порта зарезервированы для стандартных сетевых служб и для их получения программе, как правило, необхо-димы административные привилегии.
Модуль протокола UDP обеспечивает мультиплексирование входящих данных по портам, подобно тому, как модуль протокола IP обеспечивает мультиплексирование входящих данных по номеру протокола транспортного уровня, а драйверы сетевого оборудования по номеру протокола сетевого уровня.

image

Соответственно поля Source port, Destination port датаграммы ука-зывают номера портов отправителя и получателя. Поле Source port заполнять не обязательно, в случае если ответ не ожидается.
Поле Length содержит длину датаграммы с учётом заголовка в окте-тах. Минимальное значение – 8.
Поле Checksum вычисляется по псевдозаголовку UDP, заголовку и данным датаграммы по тем же правилам, что и в протоколах IP, ICMP. При необходимости данные выравниваются до 16-разрядной границы нулями. Псевдозаголовок используется при вычислении контрольной суммы для повышения надёжности. Туда включается информация из заголовка IP-датаграммы, в которую включается UDP-датаграмма.

image

Поля Source Address, Destination Address и Protocol копируются из заголовка IP. Поле UDP length копируется из заголовка UDP.
При вычислении контрольной суммы поле Checksum полагается равным 0. Если контрольная сумма получилась равной 0, то она инвертируется. Контрольную сумму вычислять не обязательно, в этом случае поле Checksum заполняется нулями.