使用 Tshark 在较小的部分读取大型 PCAP

Reading Large PCAP with Tshark in Smaller Parts

我有一个 PCAP 文件,我想用 tshark 命令读取,但它太大而无法放入内存(9GB 但读取每个数据包会填满 35GB 的 Google Colab大约 3000 万包)。

因此,我想把它分成四个部分,我可以分别阅读和处理。我试图通过使用下面的行过滤帧的时间来拆分它。但是,这会继续扫描所有数据包,因此需要很长时间。

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

处理对于内存来说太大的 PCAP 文件的最佳方法是什么?如何在不丢失任何数据包的情况下拆分它?

据我所知,tshark 会在执行任何其他操作之前读取并分析所有数据包。

你应该考虑使用tcpdump而不是数据包分析更轻的

这样的事情应该(稍微)快一些:

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

其中 2250 是 4 个新输出文件中每个文件的大小(以 MB 为单位)。