我有一些软件可以模拟网络上的 BER 和延迟。我需要一种方法来测试软件的 BER 模块,以确保它确实正常工作。我的解决方案是创建一个程序来发送原始以太网帧,并将类型字段设置为未使用的类型。以太网帧内部只是随机位。对于发送的每个帧,我需要将帧记录到pcap
文件中。在网络链接的另一端是一个接收应用程序,它简单地将它看到的每个数据包写入自己的pcap
日志。运行测试完成后,将比较两个 pcap 日志以获取 BER。
我正在使用 python 模块Scapy
,到目前为止它已经完成了我需要的一切。我可以发送带有随机数据的原始以太网帧,并在 Wireshark 中查看它们。但是,我不知道如何获取wrpcap()
附加到 pcap 文件的方法,而不是覆盖。我知道我可以将数据包列表写入wrpcap
,但是此应用程序需要能够无限期运行,并且我不想等到应用程序退出才能写入发送到硬盘的所有数据包. 因为这将是很多存储在内存中,如果发生了什么事,我将不得不从头开始测试。
我的问题是:如何pcap
使用scapy
而不是覆盖文件附加到pcap
文件?甚至可能吗?如果没有,那么什么模块可以做我需要的?
在寻找具有Scapy
's 能力的东西时,我遇到了dpkt
,但我没有找到很多关于它的文档。可以dpkt
按我的要求做吗?如果可以,我在哪里可以获得一些好的文档?