6

我正在使用 Scapy 重放一些我更改 TTL 值的转储数据包。即使 TTL=1,我也得到了非常奇怪的结果。

当我彼此分开运行测试时间时,大约有 40% 到 95% 的数据包回复了 ICMP 超时消息。然后我可以递归地重放未应答的数据包,并且每次都或多或少地获得与以前相同百分比的已应答数据包。

这是为什么?

我一直在以 0.1 秒的间隔发送数据包。这应该没问题吧?我的超时值是10s,应该很保守。

这里有什么问题?

4

1 回答 1

5

您所说的本质上是您只能在给定的时间内测试这么多无法访问的主机。一个可能的原因:许多路由器对 ICMP 消息进行速率限制。

ping在做其他事情之前,最好先测试主机是否成功;这样您就可以肯定地确认可达性。缺点是默认情况下 MS Windows 会阻止 ping。

如果你不能ping首先,那么你需要增加你的探测之间的时间,或者提高返回 ICMP 消息的路由器上的 ICMP 不可达率。

编辑:

根据评论,您似乎在scapy处理流量的能力上碰壁了。过去,我通过在后台发送scapy和生成以接收流量来提高吞吐量。tcpdump

于 2012-06-05T18:28:09.883 回答