一种网络流量数据索引方法及系统技术方案

技术编号:9896130 阅读:137 留言:0更新日期:2014-04-09 22:05
本发明专利技术公开了一种网络流量数据索引方法及系统,方法包括:实时捕获网络流量数据;在内存中通过对所述网络流量数据的每个索引字段维护一棵位图-字典树来建立并存储所述网络流量数据的索引结构,进而更新所述索引字段的索引结构;根据用户的查询请求来查询所述网络流量数据的索引结构从而获得网络流量数据的存储位置信息,将该存储位置信息返回给用户,用户根据该存储位置信息获取响应的数据。由此,提供一种能有效地支持实时高速流量记录的索引建立工作的网络流量数据索引方法及系统,即使在较小索引磁盘空间消耗的情况下,也能支持快速的索引查询操作。

【技术实现步骤摘要】
一种网络流量数据索引方法及系统
本专利技术涉及计算机网络流量存储,特别涉及一种网络流量数据索引方法及系统。
技术介绍
随着网络应用和用户的增加,网络流数据的规模越来越大,普通小型网络或者校园规模的网络流量带宽都已经到达1-10Gbps的速度,如此高速的网络链路带给网络流量存储与检索系统巨大的挑战。为了满足网络管理及网络取证等需求,系统应保证既能够实时存储网络数据流量,又可以在大规模网络数据集上进行高效的检索操作。例如,在网络取证操作中,运营商需要使用能方便有效地扫描存储的数据集的工具来检测入侵活动。当前,网络历史流量大多采用以下两种存储方法:第一种是存储流记录,常见的流记录采集、存储方法有sFlow、NetFlow和IPFIX等,这些方法仅仅保存了粗略的网络统计信息;另一种是存储网络的所有数据包,这些数据包不仅包含了头部信息,而且也包含了部分甚至全部的载荷内容。无论是存储流记录还是存储数据包,如何快速的检索这些流量数据是非常关键的。通常我们会对存储的流量数据建立索引以满足之后的查询工作。在面对高速链路、大规模网络和复杂多样应用时,仍旧存在着大量的挑战。网络流量的索引方法必须支持高速的实时插入速度、快速的查询响应以及较小的存储空间。在流量索引方法的研究方面,目前主要有三种索引方法:哈希索引,多路搜索树索引以及位图索引方法:(1)哈希索引方法:网络流量存储系统Time-Machine就是采用这种索引方法。此方法在开始阶段,每次记录的插入只会消耗较小的CPU时间。但是随着记录数目的增加,由于哈希链冲突的不断增加,之后的插入操作将会花费大量的时间去查找哈希表中的对应存储位置。此外,由于哈希索引方法只支持单域的相等性查找,很难支持区间查找和多域组合查找。(2)多路搜索树索引方法:许多传统关系型数据库都是采用多路搜索树索引方法。但是由于多路搜索树在插入和检索过程中都需要采用二分查找操作去找到插入和检索记录的位置,而且如果采用传统的方法索引的更新会带来很多磁盘随机读写操作。所以多路搜索树并不能支持非常快的索引插入和查询速度。(3)位图索引方法:位图索引方法已经在许多数据存储领域广泛使用。此方法被证实非常适用于海量只读数据的索引和查询工作。至今为止已经存在使用位图索引方法非常优秀的数据库,比如FastBit。但是由于位图索引方法产生的索引文件非常巨大,尽管存在一些优秀的索引压缩编码方法,但是对于磁盘存储空间的消耗以及每次查询从磁盘读入索引文件的时间开销都是一个不可避免的缺点。由于上述方法在网络流量的快速索引以及查询方面存在着不同程度的缺点,从而使得这些方法不能够真正应用于10Gbps及以上的高速链路环境中。上述情况迫切要求我们既能够实时地对高速链路环境下的网络数据流量进行存储,又能够对历史数据流量进行快速查询检索。在现有技术中,如专利技术名称为“一种海量历史数据的存储及索引方法”,该专利技术公开了一种海量历史数据的存储及索引方法,属于实时历史数据库领域。该方法根据分布式文件系统将大文件进行分块存储的特点,给出了一种简单高效的海量历史数据文件的存储方法和一种高效的分布式索引机制。该存储方法可以保证满足当前海量历史数据文件的存储要求,更保证具有在线扩展的特性;索引机制可以实现对海量历史数据的快速访问,同时在系统进行资源扩展以后,即底层物理存储发生变化时,该索引在无需修改的情况下依旧可以实现对数据的查找功能。但是该专利技术的方法更侧重分布式的存储和索引方法,用大文件分块存储来保证效率。而不是专注于索引算法本身的优化,没有针对海量网络流量数据特征进行优化。
技术实现思路
为了解决上述问题,本专利技术的目的在于,提供一种能有效地支持实时高速流量记录的索引建立工作的网络流量数据索引方法及系统,即使在较小索引磁盘空间消耗的情况下,也能支持快速的索引查询操作。为实现上述目的,本专利技术提出一种网络流量数据索引方法,其特征在于,包括下列步骤:步骤1,实时捕获网络流量数据;步骤2,所述网络流量数据具有多个索引字段,在内存中通过对所述索引字段维护位图-字典树来建立并存储所述网络流量数据的索引结构,对于所述索引字段按字节来划分键值,通过使所述键值在所述位图-字典树的位图结构中所对应的非叶子节点的指针具有孩子节点、叶子节点的指针指向存储位置链表来更新所述网络流量数据的索引结构;步骤3,根据用户的查询请求查询所述索引结构从而获得网络流量数据的存储位置信息,将该存储位置信息返回给用户,用户根据该存储位置信息获取响应的数据。本专利技术提出的网络流量数据索引方法,其特征在于,在所述步骤2中,所述位图-字典树的高度等于所述索引字段的字节大小,对于所述索引字段按照每个字节一个键值来划分,更新所述网络流量数据的索引结构的方法具体为:依次获取所述索引字段对应的键值,通过检测所述键值在所述位图-字典树的非叶子节点的位图结构中所对应的比特值为1,来判断所述非叶子节点的指针具有孩子节点,若不具有孩子节点,则分配一个新节点,并使所述键值对应的指针指向该新节点,同时将该比特值置为1,以使所述非叶子节点的指针具有孩子节点,到达所述位图-字典树的叶子节点时,使所述叶子节点对应指针指向存储位置链表,在该存储位置链表中新增所述索引字段的存储位置信息。本专利技术提出的网络流量数据索引方法,其特征在于,当内存中的所述索引结构大于内存阈值时,将所述索引结构存入磁盘,并在所述索引结构中增加一条记录并指向磁盘存储的位置,同时在内存中建立一个新的索引结构,用于处理后续的网络流量数据。本专利技术提出的网络流量数据索引方法,其特征在于,将所述索引结构存入磁盘的具体方式为,在磁盘中按照所述位图-字典树的层来存储所述索引结构,且各层采用连续存储方式。本专利技术提出的网络流量数据索引方法,其特征在于,将所述索引结构存入磁盘的方法具体为,对于所述位图-字典树的每个节点,先存储位图结构,然后存储一个文件偏移位置的数组,该数组示出所述位图-字典树的每个节点的各孩子节点在磁盘中的存储位置,而对于所述位图-字典树的每个叶子节点,该数组示出每个叶子节点对应链表的存储位置。本专利技术提出的网络流量数据索引方法,其特征在于,所述步骤3的查询所述索引结构的查询过程为,将查询条件按照每个字节一个键值来划分,其中最后一个键值为未知键值,依此获取所述查询条件的键值,通过读取所述键值在所述位图-字典树的非叶子节点的位图结构中所对应的比特值为1来获取该根节点对应孩子节点在磁盘中的存储位置,并读取该位置上的位图-字典树节点,否则返回查询结果为空,到达最后一个键值的前一个键值时,获取其在位图-字典树的位图结构中所对应的所有比特值为1的位,然后获取该所有比特值为1的位的偏移位置,最后读取这些偏移位置的叶子节点和其对应的链表元素,并将链表元素进行合并返回。本专利技术还涉及一种网络流量数据索引系统,其特征在于,包括下列模块:网络流量数据获取模块,用于通过网卡或板卡来实时捕获网络流量数据;索引结构维护模块,所述网络流量数据具有多个索引字段,该模块用于在内存中通过使所述索引字段维护位图-字典树来建立并存储所述网络流量数据的索引结构,对于所述索引字段按字节来划分键值,通过使所述键值在所述位图-字典树的位图结构中所对应的非叶子节点的指针具有孩子节点、叶子节点的指针指向存储位置链表本文档来自技高网
...
一种网络流量数据索引方法及系统

【技术保护点】
一种网络流量数据索引方法,其特征在于,包括下列步骤:步骤1,实时捕获网络流量数据;步骤2,所述网络流量数据具有多个索引字段,在内存中通过使所述索引字段维护位图‑字典树来建立并存储所述网络流量数据的索引结构,对于所述索引字段按字节来划分键值,通过使所述键值在所述位图‑字典树的位图结构中所对应的非叶子节点的指针具有孩子节点、叶子节点的指针指向存储位置链表来更新所述网络流量数据的索引结构;步骤3,根据用户的查询请求查询所述索引结构从而获得网络流量数据的存储位置信息,将该存储位置信息返回给用户,用户根据该存储位置信息获取响应的数据。

【技术特征摘要】
1.一种网络流量数据索引方法,其特征在于,包括下列步骤:步骤1,实时捕获网络流量数据;步骤2,所述网络流量数据具有多个索引字段,在内存中通过使所述索引字段维护位图-字典树来建立并存储所述网络流量数据的索引结构,对于所述索引字段按字节来划分键值,通过使所述键值在所述位图-字典树的位图结构中所对应的非叶子节点的指针具有孩子节点、叶子节点的指针指向存储位置链表来更新所述网络流量数据的索引结构;步骤3,根据用户的查询请求查询所述索引结构从而获得网络流量数据的存储位置信息,将该存储位置信息返回给用户,用户根据该存储位置信息获取响应的数据;其中在所述步骤2中,所述位图-字典树的高度等于所述索引字段的字节大小,对于所述索引字段按照每个字节一个键值来划分,更新所述网络流量数据的索引结构的方法具体为:依次获取所述索引字段对应的键值,通过检测所述键值在所述位图-字典树的非叶子节点的位图结构中所对应的比特值为1,来判断所述非叶子节点的指针具有孩子节点,若不具有孩子节点,则分配一个新节点,并使所述键值对应的指针指向该新节点,同时将该比特值置为1,以使所述非叶子节点的指针具有孩子节点,到达所述位图-字典树的叶子节点时,使所述叶子节点对应指针指向存储位置链表,在该存储位置链表中新增所述索引字段的存储位置信息;所述步骤3的查询所述索引结构的查询过程为,将查询条件按照每个字节一个键值来划分,其中最后一个键值为未知键值,依此获取所述查询条件的键值,通过读取所述键值在所述位图-字典树的非叶子节点的位图结构中所对应的比特值为1来获取根节点对应孩子节点在磁盘中的存储位置,并读取该位置上的位图-字典树节点,否则返回查询结果为空,到达最后一个键值的前一个键值时,获取其在位图-字典树的位图结构中所对应的所有比特值为1的位,然后获取该所有比特值为1的位的偏移位置,最后读取这些偏移位置的叶子节点和其对应的链表元素,并将链表元素进行合并返回。2.如权利要求1所述的网络流量数据索引方法,其特征在于,当内存中的所述索引结构所占用的内存空间大于内存阈值时,将所述索引结构存入磁盘,并在所述索引结构中增加一条记录并指向磁盘存储的位置,同时在内存中建立一个新的索引结构,用于处理后续的网络流量数据。3.如权利要求2所述的网络流量数据索引方法,其特征在于,将所述索引结构存入磁盘的具体方式为,在磁盘中按照所述位图-字典树的层来存储所述索引结构,且各层采用连续存储方式。4.如权利要求2或3所述的网络流量数据索引方法,其特征在于,将所述索引结构存入磁盘的方法具体为,对于所述位图-字典树的每个节点,先存储位图结构,然后存储一个文件偏移位置的数组,该数组示出所述位图-字典树的每个节点的各孩子节点在磁盘中的存储位置,而对于所述位图-字典树的每个叶子节点,该数组示出每个叶子节点对应链表的存储位置。5.一种网络流量数据索引系统,其特征在于,包...

【专利技术属性】
技术研发人员:贺泰华张广兴谢高岗董尚文付乔宾
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1