Анализ UDP-пакетов в Wireshark: руководство

UDP (User Datagram Protocol) — простой протокол. Заголовок UDP содержит четыре поля: порт источника, порт назначения, длину и контрольную сумму. UDP не гарантирует доставку данных на транспортном уровне. Приложение отвечает за повторные передачи в случае потери сегментов.

Однако некоторые приложения, например, приложения реального времени, не нуждаются в повторной передаче. Потеря части фразы в конференции не требует повторной отправки, так как разговор продолжается. В таких приложениях UDP предпочтительнее TCP.

Анализ UDP-сегментов в Wireshark

Найдём и проанализируем UDP-сегменты с помощью Wireshark. Запустим новый захват (например, отключив и включив сетевую карту). В фильтре отображения укажем «udp». Остановим захват.

Рассмотрим пакеты протокола DHCP, работающего поверх UDP. Видим запрос DHCP после получения компьютером IP-адреса от DHCP-сервера.

Структура запроса включает заголовок Ethernet, заголовок IPv4, и внутри IPv4 — UDP.

Заголовок UDP содержит четыре поля: порт источника (68), порт назначения (67), длину (заголовок UDP плюс данные) и контрольную сумму. Данные — это запрос DHCP. Обратите внимание на порты: источник — 68, назначение — 67.

Анализ ответа DHCP-сервера

Ответ сервера отправляется с порта 67 на порт 68. Он содержит длину, контрольную сумму и данные DHCP (подтверждение DHCP). UDP используется, так как нет необходимости устанавливать TCP-соединение для одного запроса IP-адреса.

Использование UDP в DNS-запросах

UDP используется для DNS-запросов. Укажем в фильтре «dns». Выберем один из DNS-запросов. Видим UDP в заголовке IPv4. Заголовок UDP содержит: порт источника (случайный порт), порт назначения (53 — порт DNS), длину и контрольную сумму. Данные — это запрос DNS. Ответ от сервера идёт с порта 53 на локальный порт, использованный в запросе.

Сравнение UDP и TCP в DNS

UDP используется в DNS, так как обычно отправляется один запрос и один ответ. Нет необходимости устанавливать и закрывать TCP-сессию. Использование TCP потребовало бы минимум семь сегментов: три для установления соединения, три для его закрытия и один для данных. Это неэффективно по сравнению с двумя UDP-сегментами. Для некоторых протоколов UDP быстрее и не требует установления соединения.

UDP — быстрый и эффективный протокол, подходящий для приложений без необходимости гарантированной доставки данных. Его простота и низкие накладные расходы делают его хорошим выбором для DHCP и DNS.

Что будем искать? Например,программа