我正在使用Scapy来重放一些我改变TTL值的转储数据包。即使TTL = 1,我也得到了非常奇怪的结果。
当我将测试时间彼此分开时,我可以从大约40%到95%的数据包中获得ICMP超时消息。然后我可以递归地重放未应答的数据包,并且每次获得的回复数据包的百分比与之前相同或更低。
为什么?
我一直在发送间隔为0.1秒的数据包。这应该没问题吧?我的超时值是10秒,这应该是非常保守的。
这里有什么问题?
答案 0 :(得分:5)
你所说的基本上你只能在给定的时间内测试这么多无法访问的主机。一个可能的原因:许多路由器对ICMP消息进行速率限制。
在做其他事情之前,测试一个主机ping
成功要好得多;通过这种方式,您可以确认可达性。缺点是默认情况下MS Windows阻止ping。
如果您不能先ping
,那么您需要增加探测之间的时间,或者在返回ICMP消息的路由器上提高ICMP不可达速率。
编辑:
根据评论,看起来你正在为scapy
处理流量的能力做准备。我过去通过scapy
发送并在后台生成tcpdump
来接收流量,从而提高了吞吐量。