问题描述
您好,我对通信协议知之甚少,我对此感到困惑:
我观察到Wireshark捕获比(?)更强大使用CSocket(ReceiveFrom())接收UDP数据的C-application。
哪些因素有所不同? Wireshark是在做一些低级任务吗?
我可以使用Wireshark的捕获作为比较来评估我的UDP接收应用程序吗?
我很感谢你的帮助。
Hello, I don't have much knowledge on communication protocols and I'm confused with:
I observed that Wireshark capture is more robust (?) than C-application with CSocket (ReceiveFrom()) to receive UDP data.
What factors make the difference? Is Wireshark doing some low-level tasks?
Can I use the capture of Wireshark as a comparison to assess my UDP receiving application?
I'm appreciating your help.
推荐答案
我观察到Wireshark捕获比使用CSocket的C应用程序更强大(?) ReceiveFrom())接收UDP数据。
I observed that Wireshark capture is more robust (?) than C-application with CSocket (ReceiveFrom()) to receive UDP data.
不再强大。如果正确实现,你的应用程序应该得到每个数据包wireshark得到。
Not more robust. If implemented correctly, your application should get every single packet wireshark gets.
哪些因素有所不同? Wireshark是在做一些低级别的任务吗?
What factors make the difference? Is Wireshark doing some low-level tasks?
是的,正如已经提到的那样,它使用低级驱动程序将你的网卡设置为混杂模式并捕获任何通过的内容通过它。
Yes it is, as already mentioned, it uses a low level driver to set your network card in "promiscuous mode" and capture anything that passes through it.
我可以使用Wireshark的捕获作为比较以评估我的UDP接收应用程序?
Can I use the capture of Wireshark as a comparison to assess my UDP receiving application?
当然,这就是应用程序用于所有...数据包分析。如果您的应用程序没有收到某些内容,您可以在wireshark中分析数据包以查看它们是否有问题。例如,如果某些更高级别的字段未正确填充...您可能永远不会在应用程序级别看到它。这是故意的,你不想在你的应用程序中捕获一堆垃圾吗?如果数据包没有任何问题,并且您仍然丢失它们,那么这将指向软件设计的架构问题。在维护套接字之前,您可能花了太多时间做其他任务,而缓冲区正在填充和丢弃数据。无论哪种方式,wireshark都是您分析网络流量的朋友。
Sure, that's what the application is used for after all... packet analysis. If your application is not receiving something, you can analyze the packets in wireshark to see if there is something wrong with them. For example, if some higher-level fields are not being filled in correctly... you may never see it at the application level. That's on purpose, you wouldn't want to capture a bunch of junk on the wire in your application would you? If there is nothing wrong with the packets and you're still losing them, that would point towards architectural problems with your software design. Perhaps you may be spending too much time doing other tasks before servicing your sockets and your buffers are filling up and dropping data. Either way, wireshark is your friend for analysis of network traffic.
这篇关于Wireshark和应用程序级UDP读取之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!