Warum benötigt tcpdump so lange, um pcap-Dateien zu lesen?

3559
Steve HHH

Ich verwende ein Drittanbieter-Tool, das den Netzwerkverkehr während eines Netzwerktests als pcap-Datei erfasst. Wenn ich versuche, diese Dateien wiederzugeben, verwende ich das tcpdumpWerkzeug mit den -Aq -rOptionen und leite die Ausgabe an grep weiter. Einige der Captures sind 600 KB groß, was nicht riesig erscheint, aber das Lesen dauert relativ lange.

Wird tcpdumpdie pcap-Datei in Echtzeit zurückgelesen, und wenn ja, wie kann ich sie beschleunigen?

Dies ist, was meine gewählten tcpdumpOptionen tun:

  • -A druckt Pakete (minus Header) in ASCII, so dass es grep- und menschenfreundlich ist.
  • -q druckt weniger Informationen für eine schnellere Ausgabe.
  • -r <FILE> liest in der angegebenen pcap-Datei.

Dies ist ein Beispiel für einen aktuellen Befehl, den ich ausgeführt habe. Es dauerte 45 Sekunden, um sechzehn Zeilen zu drucken, und ich hätte erwartet, dass die Ausführungszeit nahezu sofort oder höchstens einige Sekunden dauern würde:

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

Da die Dauer des Captures weniger als eine Minute beträgt, beginne ich zu glauben, tcpdump -rdass das Capture in Echtzeit abgespielt wird. Ich kann jedoch nichts in der Manpage oder online finden, um dies zu bestätigen, und schon gar nichts Das sagt mir, ob es eine Möglichkeit gibt, die Echtzeitwiedergabe auszuschalten.

1
Sie sagen, dass es lange dauert, aber Sie sagen nie, wie lange diese Zeit ist. MaQleod vor 10 Jahren 0

1 Antwort auf die Frage

5
Pavel Šimerda

Verwenden Sie -ndiese Option, um DNS-Lookups zu unterdrücken.

Das Lesen der Datei, das Analysieren und das Umwandeln in eine Textausgabe ist normalerweise sehr schnell und kann nur Zeit in Anspruch nehmen, wenn die Datei sehr groß ist. In allen anderen Fällen wird die Auflösung durch die Namensauflösung verlangsamt. In der Regel wird darauf gewartet, dass ein DNS-Server antwortet, und manchmal wird nach Zeitüberschreitung gewartet, wenn nicht.

Es gibt keine Wiedergabe in Echtzeit und keinen Grund dafür. Bei Verwendung mit einer Datei wandelt tcpdump die Datei lediglich in eine lesbare Ausgabe um.

Das war genau das Problem. Ich danke dir sehr. Daran hätte ich nie gedacht. Schade, dass ich Ihnen nicht mehr als eine Stimme geben kann. Steve HHH vor 10 Jahren 0
Gern geschehen. Ich arbeite täglich mit verschiedenen Netzwerktools und das Unterdrücken von potenziellen DNS-Suchen ist ein Muss. Pavel Šimerda vor 10 Jahren 0