1 つの pcap ファイル (~90M) があり、そのファイルを再生したいと考えています。scapy に出会い、pcap ファイルを読み取って再生する方法を提供します。パケットを再生するために次の2つの方法を試しました
sendp(rdpcap(<filename>)
と
pkts = PcapReader(<filename>);
for pkt in pkts:
sendp(pkt)
最初の 1 つのゲームのメモリ エラーで、python プロセスのメモリ消費量が 3 ギガに達し、最終的には死亡しました。しかし、2番目のオプションは、ファイル全体をメモリに読み取らなかったため、うまく機能しました。次の3つの質問があります
90M の pcap ファイルは scapy を再生するには大きすぎますか?
tcpdump/wireshark を使用すると、すべてのパケットにタイムスタンプが関連付けられます。パケット 1 が時間 T に到着し、パケット 2 が時間 T+10 に到着したと仮定すると、scapy は同様の方法でパケットを再生します。最初のパケットは時間 T に、2 番目のパケットは T+10 に発生しますか? または、ループで送信し続けるだけです。後で PcapReader の場合だと思います。
上記の質問に対する答えが「いいえ」の場合 (パケット間の到着時間を考慮せずにループで再生するだけです)、この仕事を行うことができる他の Python ライブラリはありますか? Pythonでさえ、私にとって制約ではありません。