Python 如何自行设置交通到达时间

Python 如何自行设置交通到达时间,python,networking,packet,scapy,traffic,Python,Networking,Packet,Scapy,Traffic,这是我生成http流量的脚本 from scapy.all import * from random import randint import time from threading import * # Generate packet pkts = IP(src="10.0.0.1",dst="10.0.0.2")/TCP()/"GET /HTTP/1.0\r\n\r\n"/Raw(RandString(size=120)) #print pkts pkts[TCP].flags = "S

这是我生成http流量的脚本

from scapy.all import *
from random import randint
import time
from threading import *

# Generate packet
pkts = IP(src="10.0.0.1",dst="10.0.0.2")/TCP()/"GET /HTTP/1.0\r\n\r\n"/Raw(RandString(size=120))
#print pkts
pkts[TCP].flags = "S"
pktList = []
for pktNum in range(0,20):
    pktList.extend(pkts)
    pktList[pktNum][TCP].dport = randint(1,65535) # Pkt has Ran PortNo.
    print pktList[pktNum].summary()
    print len(pktList[pktNum])

# Send the list of packets
start_time=time.time()
send(pktList)
print time.time() - start_time,"seconds"
#print start_time, "secs"
pktList[0].show()

现在的问题是我无法以自定义字节/秒的速率发送流量。我怎样才能根据自己的需要发送邮件?

请参阅第35页的文档。您可以通过改变
send
命令中的
inter
参数来指定速率

例如,要达到每秒100个数据包的速率,您可以编写:

send(pktList, inter = 0.01)
要获得更多控制权,可以使用scapy中的命令,在该命令中可以定义比特率(mbps参数):


基本上,我想要的是流量的突发速率,即数据包传输到网络的速度(字节/秒)。我想要的是控制它,而不是控制两个数据包之间的等待时间。例如,如果数据包以1500字节/秒的速率传输。下次生成流量时,我想根据需要降低或加快流量。如果我必须使用泊松流量生成模型,该怎么办。我该怎么做?加上这不太好,发送50个数据包需要1.50秒左右,无论是否使用inter=0.01。据我所见,当生成泊松流量时,您关心的是数据包的到达时间,而不是实际比特率。泊松流量的到达时间呈指数分布,因此您可以一个接一个地发送数据包,并随着
时间的变化而改变它们之间的延迟。睡眠(x)
从指数分布中采样
x
对我来说很好,您在Wireshark中看到了什么?
sendpfast(pkt, pps=N, mbps=N, loop=0, iface=N)