为什么注入 libpcap 的数据包会重复?
我使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
克隆数据包上的 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.