2024-09-30 16:26:22 发布
网友
我试图在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。。。在
我现在还没有尝试过,但我想内存占用主要是由TCP解析器跟踪连接等引起的。如果你创建一个配置文件,在其中禁用所有不需要的剖析器(而且由于你只过滤帧元信息,这可能所有这些解析器都是),那么可能会节省大量RAM。在
我的方法是
正如我所说,我还没有为您的案例测试过这个,但是我在从pcap切割数据包时使用了很多简化的解剖设置。它更快,错误更少,并且可以节省内存。在
tshark不是这项工作的最佳工具。我对libtrace(github 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
我现在还没有尝试过,但我想内存占用主要是由TCP解析器跟踪连接等引起的。如果你创建一个配置文件,在其中禁用所有不需要的剖析器(而且由于你只过滤帧元信息,这可能所有这些解析器都是),那么可能会节省大量RAM。在
我的方法是
正如我所说,我还没有为您的案例测试过这个,但是我在从pcap切割数据包时使用了很多简化的解剖设置。它更快,错误更少,并且可以节省内存。在
tshark不是这项工作的最佳工具。我对libtrace(github link)有很好的经验,它为处理捕获文件提供了一个很好的工具箱。具体来说,在您的例子中,tracesplit工具。在
请注意,它们的大多数示例都使用了一种称为erf的捕获格式,而不是pcap。但是他们support pcap文件,你只需要指定它。在
等效的tracesplit命令类似于:
tracesplit starttime=1484908320 endtime=1484937840 -compress-type=none pcapfile:dia5_20Jan17.pcap pcapfile:1.pcap
您可以使用^{} 拆分捕获文件。例如:
相关问题 更多 >
编程相关推荐