如何有效地分割PCAP文件?

2024-09-30 16:26:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Ubuntu中使用tshark分割一个大的PCAP文件(3gb)。 下面的代码就是我要做的:

tshark -r dia5_20Jan17.pcap -Y '((frame.time >= "2017-01-20 10:32:00") && (frame.time <= "2017-01-20 18:44:00"))'  -w 1.pcap

问题是内存RAM的浪费:

代码使用了95/95%的内存(8GB)。有没有更好的方法来切片PCAP文件?我也试过Python。。。在


Tags: 文件方法内存代码timeubuntu浪费pcap
3条回答

我现在还没有尝试过,但我想内存占用主要是由TCP解析器跟踪连接等引起的。如果你创建一个配置文件,在其中禁用所有不需要的剖析器(而且由于你只过滤帧元信息,这可能所有这些解析器都是),那么可能会节省大量RAM。在

我的方法是

  1. 启动Wireshark
  2. 创建新配置文件
  3. 使用“Analyze”->;“Enabled Protocols”->;“Disable All”
  4. 关闭Wireshark
  5. 运行tshark,用“-C”参数指定新的概要文件

正如我所说,我还没有为您的案例测试过这个,但是我在从pcap切割数据包时使用了很多简化的解剖设置。它更快,错误更少,并且可以节省内存。在

tshark不是这项工作的最佳工具。我对libtracegithub link)有很好的经验,它为处理捕获文件提供了一个很好的工具箱。具体来说,在您的例子中,tracesplit工具。在

请注意,它们的大多数示例都使用了一种称为erf的捕获格式,而不是pcap。但是他们support pcap文件,你只需要指定它。在

等效的tracesplit命令类似于:

tracesplit starttime=1484908320 endtime=1484937840 -compress-type=none pcapfile:dia5_20Jan17.pcap pcapfile:1.pcap

您可以使用^{}拆分捕获文件。例如:

editcap -A "2017-01-20 10:32:00" -B "2017-01-20 18:44:00" infile.pcap outfile.pcap

相关问题 更多 >