首页> 中国专利> 一种基于大数据量的五元组查询方法及装置

一种基于大数据量的五元组查询方法及装置

摘要

本发明涉及数据查询技术领域,本发明公开了一种基于大数据量的五元组查询方法,其具体包括以下的步骤:步骤一、依照时间顺序将网络数据进行存储,然后以一年为刻度,建立天时分的五元组索引,并将该五元组索引进行序列化后存储到硬盘;步骤二、输入需要查询的五元组,将该五元组与步骤一中建立的五元组索引进行匹配,输出匹配成功的所有时间区间;步骤三、在步骤二输出的时间区间内查询五元组,从而得到最终的查询结果。通过这样的方法进行匹配查询,缩小时间范围,提高查询效率。

著录项

  • 公开/公告号CN105488189A

    专利类型发明专利

  • 公开/公告日2016-04-13

    原文格式PDF

  • 申请/专利权人 成都科来软件有限公司;

    申请/专利号CN201510868586.8

  • 发明设计人 罗鹰;黄泽彬;林康;

    申请日2015-12-02

  • 分类号G06F17/30;

  • 代理机构成都九鼎天元知识产权代理有限公司;

  • 代理人杨永梅

  • 地址 610041 四川省成都市高新区天府大道中段801号

  • 入库时间 2023-12-18 15:29:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-15

    专利权的转移 IPC(主分类):G06F16/22 专利号:ZL2015108685868 登记生效日:20220406 变更事项:专利权人 变更前权利人:成都数默科技有限公司 变更后权利人:科来网络技术股份有限公司 变更事项:地址 变更前权利人:610041 四川省成都市中国(四川)自由贸易试验区成都高新区天府大道北段28号1栋2单元15层06号 变更后权利人:610041 四川省成都市高新区天府大道北段966号4栋1单元12楼、13楼、14楼

    专利申请权、专利权的转移

  • 2019-02-12

    授权

    授权

  • 2016-05-11

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20151202

    实质审查的生效

  • 2016-04-13

    公开

    公开

说明书

技术领域

本发明涉及数据查询技术领域,具体是一种基于大数据量的五元组查询方法及装置,此方法及装置可有效提高查询效率,降低系统开销。

背景技术

五元组,通常是指源IP地址,源端口,目的IP地址,目的端口和传输层协议,五元组能够区分不同会话,并且对应的会话是唯一的。例如:192.168.1.110000TCP121.14.88.7680就构成了一个五元组。其含义是,一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行通信连接。在进行网络数据分析时,通常需要对一个出入口的数据做记录检索,但目前的互联网数据通常都是TB或者PB以上级别,其中1PB(Petabyte千万亿字节拍字节)=1024TB。如此大的数据量要实现五元组信息的查询需要的时间较长,比如万兆网1分钟满度网络数据大概有70G,以目前的查询方法进行查询,查询一分钟的数据10个线程需要10秒钟左右,这样的数据响应速度难以满足用户的需要。

发明内容

针对现有技术中的五元组查询方法存在查询效率低的技术问题,本发明公开了一种基于大数据量的五元组查询方法,本发明还公开了基于大数据量的五元组查询装置。

本发明的技术方案如下:

本发明公开了一种基于大数据量的五元组查询方法,其具体包括以下的步骤:步骤一、以时间为刻度,建立天时分的五元组索引;步骤二、输入需要查询的五元组,将该五元组与步骤一中建立的五元组索引进行匹配,输出匹配成功的所有时间区间;步骤三、在步骤二输出的时间区间内查询五元组,从而得到最终的查询结果。先查询索引,只在符合条件的时间区间内进行五元组查询,提高了查询效率。

更进一步地,上述建立五元组索引的过程具体为:在时间区间内根据五元组信息内容进行信息占位,将其对应位置1来表示此数字出现过。采用对应位置1的方式进行信息占位,便于实现且便于提高查询效率。

更进一步地,上述建立五元组索引的过程具体包括以下的步骤:步骤S1、将时间划分为时间区间,每个时间区间内自定义8个256位的变量,其中4个256位的变量分别对应表示五元组中IP地址的4段,2个256位的变量表示端口,2个256位的变量表示通信协议;步骤S2、当该时间区间内的IP地址、端口或者通信协议中某一个值出现时,将其对应的256位的变量的对应位置1,其余位不变。当然,如果要区分源和目的地址的时候就需要再多用6个256位的变量进行表示,这里的方式是不区分。

更进一步地,上述划分时间区间的依据为会话时间戳,一年的时间最小划分为每10秒为一个时间区间。一般来讲,一年的时间区间到最小10秒的话则大概有如此多个区间:366*10105*256(1天=24小时=24*60分=24*60*6个10秒≈10105个区间)大概900M左右的数据,在数据重叠不明显(即离散率较高的情况),加速效果尤为明显。

更进一步地,上述方法还包括把256位的变量分为4个64位的数组进行表示。便于在64位机上实现。

更进一步地,上述把256位的变量X分为4个64位的数组进行表示的过程具体如下:将X除以64后得到的整数表示第几个64位的数组,余数表示对应数组的第几位置1,其余位置不变。该方法使得实现快速置1,实现高效的信息占位。

更进一步地,上述方法还包括依照时间顺序将网络数据进行存储,依照时间进行存储,便于后续查询,提高查询效率。

更进一步地,上述方法还包括将五元组索引进行序列化后进行存储。

本发明还公开了一种基于大数据量的五元组查询装置,其具体包括五元组索引建立单元、五元组匹配单元和五元组查询单元,所述五元组索引建立单元用于以时间为刻度,建立天时分的五元组索引;所述五元组匹配单元用于将待查询的五元组信息与五元组索引进行匹配,输出匹配成功的所有时间区间;所述五元组查询单元用于在匹配成功的时间区间内的查询五元组信息,从而得到最终的输出结构。

更进一步地,上述五元组索引建立单元还包括时间区间划分单元、变量设置单元、五元组信息获取单元和变量改变单元;所述时间区间划分单元用于将时间划分为多个时间区间;所述变量设置单元用于在每个时间区间内自定义8个256位的变量,其中4个256位的变量分别对应表示五元组中IP地址的4段,2个256位的变量表示端口,2个256位的变量表示通信协议;所述五元组信息获取单元用于获取该时间区间内的IP地址、端口和通信协议的值;所述变量改变单元用于将其对应的256位的变量的对应位置1。

通过采用以上的技术方案,本发明的有益效果为:通过设置五元组索引建立单元、五元组匹配单元,使得首先将待查询的五元组数据与五元组索引进行匹配,只剩下包括这些待查询的五元组信息的时间区间,从而一次性缩小了查询的范围,提高了查询的效率。采用本发明的方法使得查询效率至少能提高10倍,具体倍数与五元组数据的离散率相关,一般来讲,原数据的离散率越高则效果越好。

具体实施方式

下面结合实施例,详细说明本发明的具体实施方式。

本发明公开了一种基于大数据量的五元组查询方法,其具体包括以下的步骤:步骤一、依照时间顺序将网络数据进行存储,然后以一年为刻度,建立天时分的五元组索引,并将该五元组索引进行序列化后存储到硬盘;步骤二、输入需要查询的五元组,将该五元组与步骤一中建立的五元组索引进行匹配,输出匹配成功的所有时间区间;步骤三、在步骤二输出的时间区间内查询五元组,从而得到最终的查询结果。其中,序列化是指将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。本发明的方法通过将时间进行区间划分(比如一天的时间区间为00点到23点59分59秒,一个小时的时间区间为某点0分0秒到其59分59秒,比如12点0分0秒到12点59分59秒),确定好时间区间后,将此时间段的五元组信息抽取到索引上面。具体如下:IP信息分为4个段,均是0到255的值,那么我们定义一个256位的变量,当IP地址中的某一段自然数为5时,则在此变量第5位占1,表示这个时间段的此段出现过5;其他段以及端口和协议均可以用这种方式建立一个压缩后的索引(不压缩的索引数据将会海量,检索索引的时间消耗都不低,与初衷不符)。利用这样的方法就建立了时间与五元组信息的关系。通过这样的方法进行匹配查询,缩小时间范围,提高查询效率。通过对IP会话等做分析,发现IP等五元组信息的在时间段的分布是有限且分散的,那么对IP等信息进行检索归类则越发重要,而本发明要阐述的则是在索引时针对大数据的五元组信息建立索引,同时非具体索引,而是一个有损压缩的索引。此发明的方法能大幅度提高查询速度,亦能尽可能节省索引数据的存储空间。

本发明首先构造一个年YEARINDEX结构,366(一年最多366天)的大小;再按照一天有24小时,1小时有60分,一分钟有60秒的结构进行构造整体结构。定义一个256位的结构256BIT(即4个64位),进行信息占位(即一个数字在0-255之间,用4个64位的数组即256位的某一位置1来表示此数字出现过)。由于五元组信息是源目的IP,源目的PORT,协议组成,IP由4个255内的数组成,PORT和协议由2个255内的数组成(一个255内的数需要一个256BIT结构,如果不考虑源目的分开,则共需要8个256BIT,而8个256BIT总计256个字节),一年的时间区间到最小10秒的话则大概有如此多个区间:366*10105*256(1天=24小时=24*60分=24*60*6个10秒≈10105个区间)大概900M左右的数据,在数据重叠不明显(即离散率较高的情况),加速效果尤为明显。

在采集到网络数据后根据每个会话时间戳信息,依据区间信息,以小时类型为例,时间戳计算出来为一年的第35天第4小时,则YEARINDEX对应的占位数索引为yearindex[35].hour[4],然后将五元组的信息相应类(ip/port/protocol)的256位的对应号位置,假设IP为192.168.9.1;那么将第一段的192数字在对应的IP类的256BIT[0]的第192位置1,表示此段时间这个数字出现过;由于市面基本是64位机,故把256位分为4个64位的数组seg[4]。将192进行如下计算,192/64=3,192%64=0,即256BIT[0].seg[3]&=1<<0左即256BIT[0].seg[3]=1,seg的其他三个不变,若有其他数字也在这个里面出现了则与上次结果相与(后文的压缩就这个意思)又如168则为168/64=2,168%64=40则为256BIT[1].seg[2]&=1<<40即256BIT[1].seg[2]=0x10000000000;以此类推。以此则将所有ip、端口port、协议protocol的某时间段的信息放到索引数据上面去了。给的过滤条件越精细,元数据的离散率越高则效果越好。

本发明还公开了一种基于大数据量的五元组查询装置,其具体包括五元组索引建立单元、五元组匹配单元和五元组查询单元,所述五元组索引建立单元用于以年为刻度,建立天时分的五元组索引;所述五元组匹配单元用于将待查询的五元组信息与五元组索引进行匹配,输出匹配成功的所有时间区间;所述五元组查询单元用于在匹配成功的时间区间内的查询五元组信息,从而得到最终的输出结构。通过设置五元组索引建立单元、五元组匹配单元,使得首先将待查询的五元组数据与五元组索引进行匹配,只剩下包括这些待查询的五元组信息的时间区间,从而一次性缩小了查询的范围,提高了查询的效率。

上述的实施例中所给出的系数和参数,是提供给本领域的技术人员来实现或使用发明的,发明并不限定仅取前述公开的数值,在不脱离发明的思想的情况下,本领域的技术人员可以对上述实施例作出种种修改或调整,因而发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号