[发明专利]一种快速打开网络数据包文件的方法在审
申请号: | 201711453866.8 | 申请日: | 2017-12-28 |
公开(公告)号: | CN108040069A | 公开(公告)日: | 2018-05-15 |
发明(设计)人: | 林康;酒纪伟 | 申请(专利权)人: | 成都数成科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F17/30 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 钱成岑 |
地址: | 610000 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 打开 网络 数据包 文件 方法 | ||
本发明提供一种快速打开网络数据包文件的方法,该方法包括:(1)使用各网络数据包文件类型的魔数建立全局的字典树,并建立魔数与文件模块的映射关系;(2)读取待处理网络数据包文件的文件头的若干字节,然后对若干字节进行字符串匹配,若匹配成功,则进行步骤(3);(3)若待处理网络数据包文件的魔数长度适中,则匹配报文头,若匹配成功,则调用对应的文件模块处理文件,若待处理网络数据包文件的魔数长度过短,则匹配文件后缀名,若匹配成功,则调用对应的文件模块处理文件。使用本发明方法,可以每个文件只用一次I/O,就能确定文件类型,并快速并正确地打开文件。
技术领域
本发明涉及数据处理领域,尤其是涉及一种快速打开网络数据包文件的方法。
背景技术
在网络中传递信息,如果单条信息比较长将被划分为多个数据块,每个数据块分别传递,而这些块被称为网络数据包(Packet)。网络数据包文件,即存放网络数据包的文件,通常由抓包工具生成。
网络数据包文件格式有多种,常见的有libpcap、pcapng、rapkt、5vw、sniffer等。想要正确打开并读取一个数据包文件,必须知道其文件类型。
在批量处理大量数据包文件时,由于文件来自不同的采集点,由不同的厂商设备生成,在打开文件前并不知道文件的类型。希望通过文件后缀名判断文件类型是不可取的:首先,有些格式的后缀名是一样的,例如后缀名为cap、pcap的文件不一定是libpcap格式;其次,一种文件格式可能有多个内部版本;再次,有些文件的后缀名是用户自定义的。因此,要得到正确格式,必须读取文件并分析。
传统的做法,实现不同类型的文件模块,启动时将各文件模块加载到队列中,每次打开文件,按顺序由各模块分别读取文件头匹配文件类型,如果匹配失败则交由下一个文件模块处理,直到匹配成功。
这将导致:由于数据包文件格式很多,且某些文件类型的模块排在队列中靠后的位置,每次打开这些格式的文件将产生数十次文件打开、读取、关闭操作,消耗了大量IOPS。特别是在分析数万个小文件的时候,这些开销甚至比数据包内容分析更耗时,这些消耗毫无意义且极不合理。
发明内容
本发明的目的在于:针对现有技术存在的问题,提供一种快速打开网络数据包文件的方法,实现每个文件只用一次I/O,就能确定文件类型,并快速并正确地打开文件。
本发明的发明目的通过以下技术方案来实现:
一种快速打开网络数据包文件的方法,该方法包括:
(1)使用各网络数据包文件类型的魔数建立全局的字典树,并建立魔数与文件模块的映射关系;
(2)读取待处理网络数据包文件的文件头的若干字节,然后对若干字节进行字符串匹配,若匹配成功,则进行步骤(3);
(3)若待处理网络数据包文件的魔数长度适中,则匹配报文头,若匹配成功,则调用对应的文件模块处理文件,若待处理网络数据包文件的魔数长度过短,则匹配文件后缀名,若匹配成功,则调用对应的文件模块处理文件。
作为进一步的技术方案,若干字节具体为12个字节。
作为进一步的技术方案,字符串匹配的方法包括:将一个个字符与字典树进行匹配。
作为进一步的技术方案,魔数长度不大于1,则视为魔数长度过短,魔数长度大于1且小于或等于12,则视为魔数长度适中。
作为进一步的技术方案,匹配报文头的方法包括:根据字符串匹配判断出的文件类型所对应的报文头结构,读取待处理网络数据包文件所对应长度的字节数,若报文头里的捕获长度和真实长度分别都小于65536,且捕获长度不大于真实长度,则断定匹配成功。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都数成科技有限公司,未经成都数成科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711453866.8/2.html,转载请声明来源钻瓜专利网。