如何使用 scapy 计算 PER、碰撞和通道效率?
How can I calculate PER, collisions and channel efficiency using scapy?
如何使用 scapy 和 python 在 wifi 流量中找到数据包错误率、信道效率和冲突。
我必须通过 pcap 文件中的数据来做到这一点。
这就是我打开 pcap 文件的方式:
file=rdpcap("file1.cap")
谢谢
关于 PER,
软件包中有一些内容可以解决这个问题。
您可以使用以下方式访问它:
FCfield & 0x8
这是一个示例代码(你需要import matplotlib.pyplot as plt
):
def foo(self):
number_of_pkts = len(self.pcap_file)
retransmission_pkts = 0
for pkt in self.pcap_file:
# cecking if the retransmission flag is on
if (pkt[Dot11].FCfield & 0x8) != 0:
retransmission_pkts += 1
ans = (retransmission_pkts / number_of_pkts)*100
ans = float("%.2f" % ans)
labels = ['Standard packets', 'Retransmitted packets']
sizes = [100.0 - ans,ans]
colors = ['g', 'r']
# Make a pie graph
plt.clf()
plt.figure(num=1, figsize=(8, 6))
plt.axes(aspect=1)
plt.suptitle('Retransmitted packet', fontsize=14, fontweight='bold')
plt.rcParams.update({'font.size': 13})
plt.pie(sizes, labels=labels, autopct='%.2f%%', startangle=60, colors=colors, pctdistance=0.7, labeldistance=1.2)
plt.show()
如何使用 scapy 和 python 在 wifi 流量中找到数据包错误率、信道效率和冲突。 我必须通过 pcap 文件中的数据来做到这一点。 这就是我打开 pcap 文件的方式:
file=rdpcap("file1.cap")
谢谢
关于 PER,
软件包中有一些内容可以解决这个问题。 您可以使用以下方式访问它:
FCfield & 0x8
这是一个示例代码(你需要import matplotlib.pyplot as plt
):
def foo(self):
number_of_pkts = len(self.pcap_file)
retransmission_pkts = 0
for pkt in self.pcap_file:
# cecking if the retransmission flag is on
if (pkt[Dot11].FCfield & 0x8) != 0:
retransmission_pkts += 1
ans = (retransmission_pkts / number_of_pkts)*100
ans = float("%.2f" % ans)
labels = ['Standard packets', 'Retransmitted packets']
sizes = [100.0 - ans,ans]
colors = ['g', 'r']
# Make a pie graph
plt.clf()
plt.figure(num=1, figsize=(8, 6))
plt.axes(aspect=1)
plt.suptitle('Retransmitted packet', fontsize=14, fontweight='bold')
plt.rcParams.update({'font.size': 13})
plt.pie(sizes, labels=labels, autopct='%.2f%%', startangle=60, colors=colors, pctdistance=0.7, labeldistance=1.2)
plt.show()