在我的系统上,与使用send发送IP数据包相比,使用sendp发送以太网帧的性能要好得多.
# this gives appox 500pps on my system
pe=Ether()/IP(dst="10.13.37.218")/ICMP()
sendp(pe, loop=True)
# this gives approx 100pps on my system
pi=IP(dst="10.13.37.218")/ICMP()
send(pi, loop=True)
Run Code Online (Sandbox Code Playgroud)
但手动在套接字上发送(预先创建)数据包的速度要快得多:
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW)
s.bind(("eth0", 0))
pe=Ether()/IP(dst="10.13.37.218")/ICMP()
data = pe.build()
while True:
s.send(data)
Run Code Online (Sandbox Code Playgroud)
但是将pe.build()移动到循环中会大大降低速度,暗示这是实际的数据包构建需要时间.
| 归档时间: |
|
| 查看次数: |
9185 次 |
| 最近记录: |