一种基于网络数据的通用查询系统及查询方法_2

文档序号:9754311阅读:来源:国知局
r组合起来便可以进行过滤,比如:(协议=IP)&&(发送字节数>100字节)):(表达式1&&(表达式2| |表达式3)&&(表达式4| I表达式5)),其中&&可以用and替代,I支持用or替代,表达式支持>,>=,〈,〈=,=,!=.键值字段,与数据库表中的主键一致,表示数据表中能够表示唯一性的一个或几个字段;
合并记录:由于查询的数据是多个点的数据,而存储是每个点返回一次,所以,需要将查询到的点的数据进行合并(比如查询的是10个点,其中只有5个点有数据,每个点的总字节数都是20字节,合并就是将5个点的20字节相加,合并后为100字节;注意:不同的字段,合并算法不一样);
第二次过滤:根据过滤条件中的非键值字段进行二次过滤;这部分字段大部分是通过计算得出的,只有在合并后,才能得出结果,所以只能在合并后过滤;
压缩并返回查询结果:由于一般查询结果数据量比较大,压缩一方面降低网络的负担,另一方面提高传输效率。
[0028]与现有技术相比,本发明的有益效果是:
1、能够指定时间范围进行查询,这个时间范围只要在服务器的开始分析和最新能够分析时间内,都有效,而且这些都是对历史数据进行查询,回溯更形象的表现查询历史数据这种方式;
2、能够查询海量的数据。(查询天桶,每个点为I天,控制台一次支持查询240个点,也就是 240天的数据,服务器支持 2Gbps,240天就是 2G*3600*24*240=41472000Gb)。
【附图说明】
[0029]图1为本发明其中一实施例的数据包识别及分析流程示意图。
[0030]图2为本发明其中一实施例的服务器查询处理流程示意图。
【具体实施方式】
[0031]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0032]本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0033]如图1所示,在网络中,找到出口交换机,并把流量复制一份给回溯分析服务器;配置服务器,选择抓包网卡进行抓包并分析。其中,回溯分析服务器负责数据包的抓取,分析和存储,并提供高性能的查询服务,支持控制台查询,支持API接口查询。
[0034]首先对数据包进行识别。原始数据包是二进制数据,识别就是按照OSI七层协议模型来解释数据包的二进制数据。比如一个TCP数据包,从物理层,数据链路层,网络层到传输层,依次识别其二进制数据为其对应的协议和字段,并将协议和字段保存到识别结果中。识别是分析的基础,识别后,知道每个数据包属于什么协议。分析时,根据协议来进行数据统
i+o
[0035]数据包识别以后,将识别结果数据和原始数据存入数据包缓存中;检测数据包时间一旦跨秒,提交当前缓存数据到分析线程池(在本具体实施例中,线程池有3个线程,每个分析任务一到来,线程池便指派其中一个空闲线程去执行分析任务),分析线程池调度一个线程对该缓存的数据进行分析。
[0036]分析线程在分析完成后,将分析结果提交给合并线程,合并线程通过计算当前时间是否满足各个桶的间隔时间,若满足,则合并对应桶。合并线程在合并完成后,将合并结果提交给存储线程,存储线程将数据压缩后写入磁盘。
[0037]如图2所示,回溯分析服务器监听到客户端的查询请求,线程池启动新查询线程开始查询流程;校正查询时间,计算要查询的桶和查询的点数(共6个时间桶,I秒,10秒,I分,10分,I小时,I天,表示每个点的时间单位);根据查询的开始时间和结束时间,计算需要查询桶的组合,在本具体实施例中,需要查询70分钟数据,需要查询一个小时桶加上一个10分钟桶。
[0038]针对过滤条件,解析出请求的字段;根据请求的字段,找出所有字段的依赖字段作为要查询的字段;将校正后的查询时间,要查询的桶,查询的点数和查询的字段传给存储模块;
第一次过滤:存储每读完一个点的数据,就回调查询模块的数据解析函数,此时根据过滤条件中的键值字段进行第一次过滤;
合并记录:由于查询的数据是多个点的数据,而存储是每个点返回一次,所以,需要将查询到的点的数据进行合并;
第二次过滤:根据过滤条件中的非键值字段进行二次过滤;这部分字段大部分是通过计算得出的,只有在合并后,才能得出结果,所以只能在合并后过滤;
压缩并返回查询结果:由于一般查询结果数据量比较大,压缩一方面降低网络的负担,另一方面提高传输效率。
【主权项】
1.一种基于网络数据的通用查询系统,其特征在于:包括分析服务器;所述分析服务器包括, 采集网络所有出口数据的数据流采集模块; 对数据包进行分析的分析模块; 对分析后的数据包进行存储的存储模块; 对存储的数据包进行查询的查询模块。2.根据权利要求1所述的基于网络数据的通用查询系统,其特征在于:所述数据包分析丰吴块,包括, 数据包识别模块,识别数据包二进制数据所对应的协议和字段作为识别结果; 分析线程池调度模块,调度一个分析线程对所述识别结果和原始数据包进行分析; 数据分析模块,将数据包按照不同的协议进行数据包统计。3.根据权利要求2所述的基于网络数据的通用查询系统,其特征在于:所述数据包分析模块还包括数据包缓存模块,用于存放数据包识别后的识别结果和原始数据包; 跨秒检测模块,检查数据包收集一旦跨秒,则提交当前缓存数据到分析线程池。4.根据权利要求1所述的基于网络数据的通用查询系统,其特征在于:所述存储模块包括,合并线程模块,根据所要查询的数据的时间范围,确定所要用的时间桶和时间桶的个数; 时间桶间隔时间判断模块,计算当前时间是否满足各个时间桶的时间间隔; 时间桶合并模块,将满足各个时间桶时间间隔的对应的时间桶进行合并; 数据压缩存储模块,合并线程在合并完成后,将合并结果提交给存储线程,存储线程将数据压缩后写入磁盘。5.根据权利要求1所述的基于网络数据的通用查询系统,其特征在于:所述查询模块包括, 查询监听模块,监听客户端的查询请求; 查询线程启动模块,启动查询线程开始查询流程; 查询时间校正模块,对查询时间进行校正,计算要查询的时间桶和时间桶的点数; 查询条件设置模块,设置要用于检索数据的查询条件; 记录合并模块,将查询到的各个时间桶的点多数据进行合并; 查询数据返回模块,将查询到的数据返回给客户端。6.一种基于网络数据的通用查询方法,具体方法步骤为: 采集网络所有出口数据的数据流; 对数据包进行分析; 对分析后的数据包进行存储; 对存储的数据包进行查询。7.根据权利要求6所述的基于网络数据的通用查询方法,所述步骤二的具体方法步骤为: 2.1、识别数据包二进制数据所对应的协议和字段作为识别结果; 2.2、调度一个分析线程对所述识别结果和原始数据包进行分析; 2.3、将数据包按照不同的协议进行数据包统计。8.根据权利要求7所述的基于网络数据的通用查询方法,所述步骤2.1和步骤2.2之间的步骤还包括,将数据包识别后的识别结果和原始数据包存入数据包缓存中;检查数据包收集一旦跨秒,则提交当前缓存数据到分析线程池。9.根据权利要求6所述的基于网络数据的通用查询方法,所述步骤三的具体方法步骤为: 3.1、合并线程,根据所要查询的数据的时间范围,确定所要用的时间桶和时间桶的个数; 3.2、计算当前时间是否满足各个时间桶的时间间隔,是则进入下一步,否则继续等待; 3.3、将满足各个时间桶时间间隔的对应的时间桶进行合并; 3.4、合并线程在合并完成后,将合并结果提交给存储线程,存储线程将数据压缩后写入磁盘。10.根据权利要求6所述的基于网络数据的通用查询方法,所述步骤四的具体方法步骤包括:. 4.1、监听客户端的查询请求,判断是否有查询请求,是则进入下一步,否则继续监听;. 4.2、启动并分配查询线程开始查询流程;. 4.3、结合服务器最新分析时间和最早分析时间,对查询时间进行校正,计算要查询的时间桶和时间桶的点数;. 4.4、根据检索数据过滤条件,找出所有请求字段的依赖字段,并将请求字段和依赖字段作为要查询的字段;. 4.5、将校正后的查询时间、要查询的时间桶、要查询的时间桶的点数和查询的字段传给存储模块; .4.6、存储模块每读完一个点的数据,就回调给查询模块的数据解析函数,根据过滤条件中的键值字段进行第一次过滤; .4.7、将查询到的时间桶的多个点的数据进行合并; . 4.8、根据过滤条件中的非键值字段进行二次过滤; .4.9、将查询到的数据进行压缩后返回给客户端。
【专利摘要】本发明提供了一种基于网络数据的通用查询系统及查询方法,包括分析服务器;所述分析服务器包括,采集网络所有出口数据的数据流采集模块;对数据包进行分析的分析模块;对分析后的数据包进行存储的存储模块;对存储的数据包进行查询的查询模块。能够指定时间范围进行查询,这个时间范围只要在服务器的开始分析和最新能够分析时间内,都有效,而且这些都是对历史数据进行查询,回溯更形象的表现查询历史数据这种方式;能够查询海量的数据。
【IPC分类】H04L12/24
【公开号】CN105515842
【申请号】CN201510860205
【发明人】罗鹰, 王勇, 林康
【申请人】成都科来软件有限公司
【公开日】2016年4月20日
【申请日】2015年12月1日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1