2011-11-02 85 views
3

我有一个应用程序被设计并正在接收端口上的UDP广播。该应用程序一直工作得很好,但我想要将应用程序接收的数据包与Wireshark捕获进行比较。我试图确保我尽可能捕获尽可能多的数据包,同时保证最少的数据丢失。UDP数据包没有被Wireshark捕获,但被UDP应用捕获

我最初认为我会运行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相关?另外,考虑超级用户/服务器故障。 –

+0

它与Delphi相关,捕获UDP数据的应用程序使用Indy10控件。这个Indy10控件捕获数据并工作,而我无法用Wireshark捕获任何东西。 –

回答

4

Wireshark只捕获正在侦听的接口的以太网帧。因此,以回送地址为目的地的数据包不会被捕获。我会检查你的机器的路由表,看看数据包到底在哪里。

+0

Wireshark确实对监控环回适配器有一定的支持。 –

+0

来自Wireshark维基:_你不能捕获本地回送地址127.0.0.1与Windows封包捕获驱动程序,如WinPcap._ – Tibor

+0

确实,你不能从127.0.0.1本身捕获,但你可以从微软的回送适配器。我之前完成了它,它工作正常,并且在您引用的同一个Wireshark wiki页面上提到过(http://wiki.wireshark.org/CaptureSetup/Loopback)。我也使用'route'技术(因为我有一个局域网路由器可用),这也是在同一页面上提到的,它也可以工作。 –