使用 scapy 灵活生成流量
我知道类似的问题以前已经被问过很多次了,但我认为这有细微的不同。
我正在尝试使用 scapy 在 Python 中编写一个灵活的流量生成器。生成数据包没问题,但当以足够快的速率发送流量时(根据我的需要,每秒 500-700 个数据包),我似乎在 20-30 pps 左右遇到了瓶颈。
我相信可能需要一些线程,或者我是否错过了一些更简单的东西?
I know questions like this have been asked plenty of times before, but I think this is subtley different.
I am attempting to write a flexible traffic generator in Python using scapy. Producing the packet is fine, but when it comes to sending traffic at a sufficiently fast rate (for my needs, somewhere in the range of 500-700 packets per second), I seem to have hit a wall at around 20-30 pps.
I believe that there may be some need for threading, or am I missing something easier?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在我的系统上,与使用 send 发送 IP 数据包相比,使用 sendp 发送以太网帧的性能要好得多。
但是在套接字上手动发送(预先创建的)数据包要快得多:
但是将 pe.build() 移到循环中会大大降低速度,这表明实际的数据包构建需要时间。
On my system I get much better performance sending ethernet frames with sendp compared to sending IP packets using send.
But sending (precreated) packet on the socket manually is way faster:
But moving the pe.build() into the loop drastically reduces speed, hinting that it is the actual packet building that takes time.
FTR,虽然上面的答案是正确的,但它也可以使用 Scapy 套接字在第 2 级实现:
尽管如果循环发送数据包是您的目标:
会做:-)
FTR, while the above answer is correct, it can also be implemented at level 2 using a Scapy socket:
Though if sending packets in loop is your objective:
Will do :-)