Почему 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 просто преобразует файл в читаемый вывод.