UDP-пакет не захвачен Wireshark, но захвачен UDP-приложением

#delphi #udp #wireshark #indy10

#delphi #udp #wireshark #indy10

Вопрос:

У меня есть разработанное и работающее приложение, которое получает широковещательные передачи UDP на порт. Приложение работает просто отлично, но я хотел сравнить пакеты, полученные приложением, с захватом Wireshark. Я пытаюсь убедиться, что я захватываю как можно больше пакетов с минимальной потерей данных.

Сначала я думал, что я запущу Wireshark и сравню необработанные пакеты, захваченные с пакетами, показанными в нашем приложении. Однако, когда я запускаю Wireshark, пакеты никогда не перехватываются на уровне IP для этого порта. Я вижу другой трафик с сервера, но я никогда не вижу пакеты Wireshare для этого конкретного порта.

Приложение продолжает собирать данные просто отлично. Когда я смотрю на поля IP src / dest, src выглядит правильно, 10.12.10.42, однако IP-адрес назначения равен 0.0.0.0. Я бы ожидал чего-то вроде 255.255.255.255 вместо адреса назначения.

У меня нет доступа к приложению, которое транслирует данные, но я написал краткий образец UDP-вещателя и приемника, чтобы убедиться, что мои ожидания были правильными. образец приложения работал так, как ожидалось.

Есть какие-нибудь идеи о том, почему широковещательная передача UDP будет получена приложением, но не будет отображаться при захвате Wireshark? Игнорирует ли Wireshark такой адрес, как 0.0.0.0, и не фиксирует ли он все?

Комментарии:

1. Как этот вопрос связан с Delphi и Indy? Кроме того, рассмотрите ошибку суперпользователя / сервера.

2. Это относится к Delphi в том смысле, что приложение, которое захватывает данные UDP, использует элемент управления Indy10. Этот элемент управления Indy10 захватывает данные и работает, пока я ничего не могу захватить с помощью Wireshark.

Ответ №1:

Wireshark захватывает только кадры Ethernet, которые проходят через интерфейс, который вы прослушиваете. Таким образом, пакеты, предназначенные для обратных адресов, не перехвачены. Я бы проверил таблицы маршрутизации вашего компьютера, чтобы узнать, куда на самом деле направляются пакеты.

Комментарии:

1. Wireshark имеет некоторую поддержку для мониторинга петлевых адаптеров.

2. Из Wireshark wiki : вы не можете захватить локальный адрес обратной связи 127.0.0.1 с помощью драйвера захвата пакетов Windows, такого как WinPcap.

3. Правда, вы не можете захватить его из 127.0.0.1 самого себя, но вы можете захватить из адаптера обратной связи Microsoft. Я делал это раньше, это работает, и это упоминается на той же вики-странице Wireshark, которую вы цитировали ( wiki. wireshark.org/CaptureSetup/Loopback ). Я также использовал этот route метод (поскольку у меня есть доступный маршрутизатор локальной сети), который также упоминается на той же странице, и он тоже работает.