为什么注入 libpcap 的数据包会重复?

发布于 2024-09-01 13:22:01 字数 339 浏览 8 评论 0原文

我使用 Sharppcap 来发送数据包作为监控系统的一部分。通常它工作得很好,但我在托管的 Vista 机器上遇到了最奇怪的错误,我需要你的帮助。

在该虚拟 Vista 机器上,注入的数据包是重复的。也就是说,如果我使用 libpcap 发送 ping 请求,它会以某种方式重复,并且我在目标计算机上收到两个请求。这两个请求在字节方面几乎相同,它们之间的唯一区别是第二个数据包的 TTL 字段是 1 减去原始数据包的值。

使用wireshark,我可以看到数据包在它(及其克隆)离开vista 机器之前被复制。 即使使用其他工具使用 libpcap(即 PlayCap)注入数据包,该问题也会出现。

有什么想法吗?

I'm using sharppcap in order to send packets as part of a monitoring system. Usually it works well but I've encountered the strangest bug on a hosted vista machine and I would like your help.

On that virtual vista machine, injected packets are duplicated. That is, if I send a ping request using libpcap, it somehow gets duplicated and I get two requests on the destination machine. The two requests are almost identical byte-wise, and the only difference between them is that the second packet's TTL field is one minus the original packet's value.

Using wireshark I can see the packet gets duplicated before it (and its clone) leave the vista machine.
The problem is manifested even when using other tools for injecting packets using libpcap (namely PlayCap).

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月牙弯弯 2024-09-08 13:22:02

克隆数据包上的 TTL 字段较低,表明它比另一个数据包多经过了一跳路由。这似乎表明数据包已通过 Vista 计算机的输入数据包队列(并被路由回)以及直接到达其输出队列。

The TTL field being one lower on the clone packet indicates that it has gone through one more routing hop than the other packet. This seems to indicate that the packet has gone through the Vista machine's input packet queue (and is routed back out) as well as directly to its output queue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文