我有一个 pcap 文件(~90M),我想重播那个文件。我遇到了 scapy,它提供了读取 pcap 文件并重放它的方法。我尝试了以下两种重播数据包的方法
sendp(rdpcap(<filename>)
和
pkts = PcapReader(<filename>);
for pkt in pkts:
sendp(pkt)
第一个游戏我内存错误,python进程的内存消耗上升到3 gig,最后它死了。但是第二个选项对我来说效果很好,因为它没有将整个文件读入内存。我有以下三个问题
90M pcap 文件是否太大而无法重播?
每当我们使用 tcpdump/wireshark 时,每个数据包都有与之关联的时间戳。假设数据包 1 在时间 T 到达,数据包 2 在时间 T+10 到达,scapy 会以类似的方式重放数据包,第一个数据包在时间 T,第二个数据包在 T+10?或者它只会继续循环发送它们,我认为稍后是 PcapReader 的情况。
如果上述问题的答案是否定的(它只是循环重播,不考虑数据包间到达时间),我们是否有任何其他 python 库可以为我完成这项工作?甚至 python 对我来说也不是约束。