Почему tcpdump так долго читает файлы pcap?

Я использую сторонний инструмент, который фиксирует сетевой трафик в виде файла pcap во время сетевого теста. Когда я пытаюсь воспроизвести эти файлы, я использую tcpdump инструмент с -Aq -r опций и передайте вывод в grep. Размер некоторых снимков составляет 600 КБ, что не кажется огромным, но их чтение все еще занимает относительно много времени.

Является tcpdump чтение файла pcap в реальном времени и, если да, то как я могу ускорить его?

Это то, что выбрал мой tcpdump варианты сделать:

  • -A печатает пакеты (без заголовка) в ASCII, поэтому он удобен для людей и людей.
  • -q печатает меньше информации, для более быстрого вывода.
  • -r <FILE> читает в данном файле pcap.

Это пример действительной команды, которую я выполнил, где для печати шестнадцати строк потребовалось сорок пять секунд, когда я ожидал, что время выполнения будет почти мгновенным, или максимум несколько секунд:

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

Учитывая, что продолжительность захвата составляет менее минуты, я начинаю думать, что tcpdump -r заставляет захват воспроизводиться в реальном времени, но я не могу найти что-либо на странице руководства или в Интернете, чтобы подтвердить это, и, конечно, ничего, что бы указывало на то, есть ли способ отключить это воспроизведение в реальном времени.

1 ответ

Решение

Использование -n подавить DNS-запросы.

Чтение файла, его анализ и преобразование в текстовый вывод обычно очень быстрые и могут занять время только в том случае, если файл очень большой. Во всех других случаях разрешение имен замедляет работу, обычно ожидая ответа DNS-сервера и иногда ожидая тайм-аута, если это не так.

Там нет воспроизведения в режиме реального времени и нет причин для этого. При использовании с файлом tcpdump просто преобразует файл в читаемый вывод.

Другие вопросы по тегам