Чтение большого PCAP с Tshark в меньших частях - PullRequest
0 голосов
/ 07 марта 2020

У меня есть файл PCAP, который я хочу прочитать с помощью команды tshark, но он слишком велик, чтобы поместиться в память (9 ГБ, но чтение каждого пакета заполняет 35 ГБ Google Colab после примерно 30 миллионов пакетов).

Поэтому я хотел бы разделить его на четыре части, которые я могу читать и обрабатывать отдельно. Я попытался разделить его, отфильтровав время кадра, используя строку ниже. Однако при этом продолжается сканирование всех пакетов, поэтому это занимает слишком много времени.

!tshark -Y "(tcp or udp) && (frame.time <= \"2019-10-21 05:00:01\")"  -r $file_name -l -T fields -e $FIELDS

Каков наилучший способ обработки файла PCAP, который слишком велик для памяти? Как я могу разделить его без потери пакетов?

1 Ответ

1 голос
/ 08 марта 2020

Насколько мне известно, tshark будет читать и анализировать все пакеты, прежде чем делать что-либо еще.

Вам следует рассмотреть возможность использования tcpdump вместо того, чтобы анализ пакетов был легче.

Что-то как это должно быть (немного) быстрее:

tcpdump -r "Your_file" -w "ouput_filename" - C 2250

Где 400 - размер ( в мегабайтах) каждого нового выходного файла.

...