2013-10-03 49 views
1

我收集了几MB的网络流量并希望对其进行分析。我面临的问题是我想以一种方式存储它,以便在搜索时减少时间复杂度。如何存储用于分析的数据包捕获数据(* .pcap)

我在脑海里想到的第一个想法是把它放到一个数据库中,列中有所有可能的属性,但后来我意识到表中会有很多NULL值,这会降低数据库。即使性能下降对于小型数据库来说很小,但是当我解析大型* .pcap文件(大于1Gb)时,降级将严重影响数据库的性能。随着数据库大小的增加以及表中NULL值的数量增加。

那么有没有更好的方法来存储* .pcap文件进行分析,我一直在研究XML树作为解决方案,但我不确定它。我使用Python来做到这一点,我使用dpkt模块从* .pcap文件中提取数据advvance

感谢

+0

你得到了什么类型的性能解析pcap?你希望达到什么样的表现? – tMC

+1

你对解析数据有什么计划?你想浏览它吗?搜索什么?过滤出特定的数据包? – Milo

+0

@Milo:我想对数据运行搜索以获取相应的数据包。并过滤特定的数据包。主要工作是对数据进行搜索。 – TheCreator232

回答

1

你也许可以做到这一点在两个步骤:

首先,使用tshark将pcap文件转换为.csv的工具;例如:

tshark -r input_file.pcap -n -T fields -E separator=, -e frame.time -e ip.src -e ip.dst -e ip.proto -e tcp.port >outfile.csv 

然后使用Python中的csv模块读取它并进行分析。

import csv 
with open("outfile.csv", "r") as f: 
    reader = csv.reader(f, delimiter=",") 
    for row in reader: 
     # do whatever with the data row... 

希望这会有所帮助。