web-dev-qa-db-ja.com

tcpdumpがpcapファイルの読み取りに非常に時間がかかるのはなぜですか?

ネットワークテスト中にネットワークトラフィックをpcapファイルとしてキャプチャするサードパーティツールを使用しています。これらのファイルを再生しようとすると、tcpdumpツールを-Aq -rオプション、および出力をgrepにパイプします。一部のキャプチャのサイズは600KBで、それほど大きくはないように見えますが、それでも読み取るのに比較的長い時間がかかります。

tcpdumpはpcapファイルをリアルタイムで読み戻していますか?もしそうなら、どうすればそれをスピードアップできますか?

これは、私が選択したtcpdumpオプションの機能です。

  • -Aパケット(マイナスヘッダー)をASCIIで出力するため、grepおよび人間に優しいです。
  • -q出力を高速化するために、出力する情報が少なくなります。
  • -r <FILE>指定されたpcapファイルを読み込みます。

これは、私が実行した実際のコマンドの例です。実行時間がほぼ瞬時、または最大で数秒になると予想されたときに、16行を出力するのに45秒かかりました。

$ tcpdump -Aq -r z2121ecbc0186d9fa07b.pcap | grep POST

キャプチャの時間が1分未満であることを考えると、私はtcpdump -rにより、キャプチャがリアルタイムで再生されますが、manページまたはオンラインでそれを確認するものが見つかりません。また、リアルタイム再生をオフにする方法があるかどうかはわかりません。

2
Steve HHH

使用する -nDNSルックアップを抑制します。

ファイルの読み取り、分析、およびテキスト出力への変換は通常非常に高速であり、ファイルが非常に大きい場合にのみ時間がかかる可能性があります。他のすべての場合、物事を遅くするのは名前解決であり、通常はDNSサーバーが応答するのを待ち、応答しない場合はタイムアウトを待つことがあります。

リアルタイムでの再生はなく、その理由もありません。ファイルとともに使用する場合、tcpdumpはファイルを読み取り可能な出力に変換するだけです。

6
Pavel Šimerda