如何控制Scapy发送数据包的速度?

2024-06-07 01:38:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的SDN实验中,我使用Scapy来伪造随机的tcp和udp流来测试数据包的洪泛。但我不知道如何控制Scapy发送数据包的速度。例如,如果我想设置Scapy发送数据包1000 pkt/s,我应该怎么做?在


Tags: 数据包速度scapytcpudppktsdn
1条回答
网友
1楼 · 发布于 2024-06-07 01:38:16

最有效的方法是将scapy的sendpfast与{}一起使用(必须安装):

>>> pkt = Ether()/IP()/TCP()/"blobofdata". # must be layer 2
# let’s send 10000 packets at 1000 packets per seconds
>>> sendpfast(Ether()/pkt, pps=1000, loop=10000, parse_results=1)
{'packets': 10000,
 'bytes': 660000,
 'time': 9.99,
 'bps': 66006.1,
 'mbps': 0.528,
 'pps': 1000.09,
 'flows': 1,
 'fps': 0.1,
 'flow_packets': 100000000,
 'non_flow': 0,
 'successful': 10000,
 'failed': 0,
 'truncated': 0,
 'retried_enobufs': 0,
 'retried_eagain': 0,
 'command': 'tcpreplay  intf1=enp0s3  pps=1000  loop=10000 /tmp/scapyo6ilzjdk',
 'warnings': []}
>>>

你甚至得到一些数据。 这就解决了Python不允许如此高的数据包速率的限制。在

如果您的目标是更低的速率,您可以使用inter来自send

^{pr2}$

相关问题 更多 >