如何使用scapy计算PER,碰撞和通道效率?

时间:2017-01-13 01:22:15

标签: python scapy packet-sniffers collision

如何在wifi流量中使用scapy和python查找数据包错误率,通道效率和冲突。 我必须通过pcap文件中的数据来完成此操作。 这就是我打开pcap文件的方式:

 file=rdpcap("file1.cap")

谢谢

1 个答案:

答案 0 :(得分:1)

关于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()