Skip to main content
  1. Posts/

Scapy 踩坑实录

·17 words·1 min· 0 · 0 ·
Ryan
Author
Ryan

sendpfast不返回 #

在scapy中可以通过 sendpfast接口来以一定的Mbps速率发送loop个包。该接口的本质就是调用 tcpreplay命令来实现定速发包。

也就是说,如果我想要在10s内以Mbps的速率发送包,那么只需要计算出来loop的个数即可。

但是在实际使用过程中,在一些极端情况下会遇到一些麻烦。

loop == 1 #

如果10s内发送多个包,那么tcpreplay会在运行10s中之后结束,此时sendpfast接口也返回了。但是如果在10s内仅发送1个包,那么tcpreplay就会在发送后立即结束,sendpfast也会立即返回。如果在一个循环中调用sendpfast,那么讲导致实际的速率和理想的差距很远。

loop == 0 #

此时,tcpreplay将不会返回,也不会发包。在我的程序中,我使用sendpfast来发包,完成后读取新的Mbps。但是当速率太小,以至于10s中一个包也发不出来,那么sendpfast将一直阻塞。也无法读取新的Mbps。