一种支持多维度聚合分类的网络流量统计实现方法技术

技术编号:14680214 阅读:83 留言:0更新日期:2017-02-22 13:18
本发明专利技术公开了一种支持多维度聚合分类的网络流量统计实现方法,采用多级存储的方式和数据格式,使用灵活可扩展性强,占用存储空间小,可满足不同应用需求。原始报文存储于数据库,原始流量存储于二进制文件,保证了大量数据存储和完整性的要求;流量链表存储于内存中,提高了用户访问数据的速度,并支持多粒度的流量统计分析。本发明专利技术引入三阶HASH聚合流量链表矩阵,提高了流量查询访问速度,帮助用户快捷迅速地找到查询信息。本发明专利技术的支持多维度的流量聚合分类算法,可根据应用的各个时间段划分,开展动态流量分析,也支持基于原、目的地址的各种应用编成编组的变化来分析业务流量聚合,实现了五关键字灵活组合的多维流量聚合分类统计分析。

【技术实现步骤摘要】

本专利技术涉及一种支持多维度聚合分类的网络流量统计实现方法
技术介绍
网络流量统计及分析是掌握网络行为的基础,是用于分析网络状况、掌握流量特性的有效方法,可以通过收集数据或报文踪迹,定量的分析不同的网络应用在网络中活动规律,能够为网络运营商提供一个有效控制和区分网络流量的依据;此外,通过统计和分析这些构成业务流量的时间序列获得用户业务行为特征,从中抽取能刻画网络流量特征的参数,实现对业务流量建模、模拟和性能分析以及对未来用户业务需求的预测。可见,深入了解网络流量的组成成分、产生根源以及流行网络业务的变化趋势等,对网络规划、网络运维、QoS保障、网络安全等都有重要的意义。目前流量统计的设计大都是基于NetFlow实现的,NetFlow根据IPv4报文的目的IP地址、源IP地址、目的端口号、源端口号、协议号、ToS、输入接口或输出接口来定义流,相同的七元组标识为同一条流,其特点是流量统计是基于IP流的,根据这些信息可以对协议(应用)、主机IP(用户)以及服务等进行统计和趋势分析,从而实现网络流量监测,用户应用监控,网络安全,网络规划以及异常流量检测等功能。但是,NetFlow仅对IP数据流的报文数量、报文总长度等概括的统计,没有IP数据流量中每一个数据报文的特征(如:报文长度,报文间隔发送时间),也就难以获得细粒度流量特征。并且现有许多业务流量单纯从七元组标识难以进行区分,必须基于应用层的协议识别,通过分析应用层包头,来区分业务流量。网络流量统计与分析中的另外一个核心问题就是如何对采集来的数据进行归纳整理和存储,尤其针对高速大流量网络环境所产生的海量数据。这些原始的信息数据量不但大而且复杂,这给网络流量原始数据的处理和存储组织带来了一定难度。可见,有效的原始数据整理和存储是满足不同粒度的网络流量识别和进行全面流量统计分析的基础。在网络流量统计分析中常常需要根据用户分析的需要,为了分析流量走势,开展各种网络流量的查询,而直接进行数据库的查询,往往会由于统计数据分散存储于表中,导致查询时间非常长,系统效率非常低。因而有必要对网络流量进行分类聚合。所谓流量聚合,是指根据一定聚合条件将原始流记录进行流量合并,实现多条流合并为一条的过程。由于聚合后的流记录将比原始流记录数量大大减少,使得用户查询数据流量的效率也将明显提高,可见,建立灵活高效的流量聚合的方法也是提高数据查询即流量分析效率的关键和重要手段。目前,一维、二维的流量聚合分类算法比较多,如果要满足用户的多种流量聚合的查询需求,必须将每一种用户可能的流量聚合都逐一整理出来,往往导致前期数据整理耗费的时间长,其占用的存储空间就非常大。而目前对高维(指二维以上)聚合分类支持的算法要么要求的内存空间过大无法满足低成本的要求,要么分类查询的速度较低,无法满足用户流量统计分析应用需求。因此有必要寻找一种流量聚合的数据处理和组织的方法,既占用较少的存储空间,同时又能灵活的适应用户各种流量聚合查询的需要。
技术实现思路
为了克服现有技术的上述缺点,本专利技术提供了一种支持多维度聚合分类的网络流量统计实现方法,旨在满足不同协议层面的网络流量识别的需求。本专利技术提出了一套可扩展的原始报文信息存储格式,该数据格式不仅包含IP数据的七元组信息,而且还存储了原始报文的应用层协议头信息,既可以满足七元组IP数据流量识别的需要,还可以满足应用层的DPI流量识别(DeepPacketInspection,深度报文检测,一种基于应用层的协议识别技术)的需要。在此基础上,提出了原始数据流量的数据结构,该数据结构既存储了原始流量统计信息,还存储了原始流量组成的每个报文长度和发送时间信息,通过获取流量的时间序列,可以进行数据流量的概率特性(如:相关性分析、聚类分析等)的深度挖掘和特征拟合,满足了细粒度流量统计分析需要。此外,通过分析目前用户常见的流量聚合查询的需要,设计了一种流量聚合的处理算法,其中三阶聚合流量矩阵占用存储空间少,并且能够灵活地实现用户多维流量聚合查询的要求,查询高效快捷。本专利技术解决其技术问题所采用的技术方案是:一种支持多维度聚合分类的网络流量统计实现方法,包括如下内容:一、采用数据库对原始IP报文信息进行存储;二、原始数据流的存储:1)定义原始流的数据结构:采用一个流量记录节点记录一条流量信息,采用链表的方式将所有的流量记录节点连接起来;一个流量记录节点包含流量头链表和与其链接的报文链表;2)原始数据流量的存储:在需要细粒度的流量统计时,将流量头链表和报文链表存储到内存中,等待用户查询和读取;在不需要细粒度的流量统计时,将流量头链表信息存储于文件中;三、流量聚合:1)按照时间粒度进行流量聚合:聚合项包括流量值和包个数,生成流量头链表,存储于内存中;2)按照聚合条件进行流量聚合:根据用户查询条件开展流量聚合,生成三阶聚合流量链表矩阵;四、流量查询:1)获得满足各阶条件下的从ts到te时间段中的聚合流量链表;2)参数初始化;3)找寻Slink、Dlink、Plink三条聚合流量链表中t至t+T时间段的流量节点;4)寻找t至t+T时间段中三条聚合流量链表的公共节点;5)以T为步长进行循环推进,直至t≥te时查询结束,输出结果。与现有技术相比,本专利技术的积极效果是:本专利技术采用多级存储的方式和数据格式,使用灵活可扩展性强,占用存储空间小,可满足不同应用需求。原始报文存储于数据库,原始流量存储于二进制文件,保证了大量数据存储和完整性的要求;流量链表存储于内存中,提高了用户访问数据的速度,并支持多粒度的流量统计分析。此外,本专利技术定义了一种支持多维度的流量聚合分类算法,可根据应用的各个时间段划分,开展动态流量分析,也支持基于原、目的地址的各种应用编成编组的变化来分析业务流量聚合,实现了五关键字灵活组合的多维流量聚合分类统计分析。该算法引入三阶HASH聚合流量链表矩阵,提高了流量查询访问速度,帮助用户快捷迅速地找到查询信息,并且具有很强的灵活性,通过改变聚合分类的维度信息,改变数据内存中的信息,占用内存小,能够便捷地满足用户多种流量分析需求。附图说明本专利技术将通过例子并参照附图的方式说明,其中:图1为本专利技术的工作流程示意图;图2为数据流量记录节点链表结构示意图;图3为三阶聚合流量矩阵示意图;图4为多维聚合流量查询流程示意图。具体实施方式本专利技术的目的就是设计一套灵活和高效的网络流量统计的数据存储和整理的方法,通过制定扩展性高、信息完备的数据格式,采用数据库、文件、内存多手段和多级的存储方式,以满足对网络流量的不同协议层面不同粒度的流量识别和查询的要求,建立重用性高、扩展性强、检索速度快的三阶聚合流量矩阵,满足用户多种数据流量聚合的查询和检索需要。本专利技术方法的空间占用低、执行速度快、应用灵活高效,非常适合大规模网络和海量数据流量统计分析的应用场景。如图1所示,本专利技术采用的技术方案的工作流程分为四步,具体描述如下:1、原始IP报文信息的存储:从路由器的流量采集端获得原始的IP报文信息的数据量特别巨大,需要对采集的数据进行初步的归类整理才能保存,要求保存内容必须完整,便于后期的数据统计分析。因此,考虑采用数据库的存储方式。原始报文信息数据库是信息交换的重要场所,网络流量统计分析系统需要访问数据库得到某次试本文档来自技高网
...
一种支持多维度聚合分类的网络流量统计实现方法

【技术保护点】
一种支持多维度聚合分类的网络流量统计实现方法,其特征在于:包括如下内容:一、采用数据库对原始IP报文信息进行存储;二、原始数据流的存储:1)定义原始流的数据结构:采用一个流量记录节点记录一条流量信息,采用链表的方式将所有的流量记录节点连接起来;一个流量记录节点包含流量头链表和与其链接的报文链表;2)原始数据流量的存储:在需要细粒度的流量统计时,将流量头链表和报文链表存储到内存中,等待用户查询和读取;在不需要细粒度的流量统计时,将流量头链表信息存储于文件中;三、流量聚合:1)按照时间粒度进行流量聚合:聚合项包括流量值和包个数,生成流量头链表,存储于内存中;2)按照聚合条件进行流量聚合:根据用户查询条件开展流量聚合,生成三阶聚合流量链表矩阵;四、流量查询:1)获得满足各阶条件下的从ts到te时间段中的聚合流量链表;2)参数初始化;3)找寻Slink、Dlink、Plink三条聚合流量链表中t至t+T时间段的流量节点;4)寻找t至t+T时间段中三条聚合流量链表的公共节点;5)以T为步长进行循环推进,直至t≥te时查询结束,输出结果。

【技术特征摘要】
1.一种支持多维度聚合分类的网络流量统计实现方法,其特征在于:包括如下内容:一、采用数据库对原始IP报文信息进行存储;二、原始数据流的存储:1)定义原始流的数据结构:采用一个流量记录节点记录一条流量信息,采用链表的方式将所有的流量记录节点连接起来;一个流量记录节点包含流量头链表和与其链接的报文链表;2)原始数据流量的存储:在需要细粒度的流量统计时,将流量头链表和报文链表存储到内存中,等待用户查询和读取;在不需要细粒度的流量统计时,将流量头链表信息存储于文件中;三、流量聚合:1)按照时间粒度进行流量聚合:聚合项包括流量值和包个数,生成流量头链表,存储于内存中;2)按照聚合条件进行流量聚合:根据用户查询条件开展流量聚合,生成三阶聚合流量链表矩阵;四、流量查询:1)获得满足各阶条件下的从ts到te时间段中的聚合流量链表;2)参数初始化;3)找寻Slink、Dlink、Plink三条聚合流量链表中t至t+T时间段的流量节点;4)寻找t至t+T时间段中三条聚合流量链表的公共节点;5)以T为步长进行循环推进,直至t≥te时查询结束,输出结果。2.根据权利要求1所述的一种支持多维度聚合分类的网络流量统计实现方法,其特征在于:所述流量头链表包含流量分类特征和流量统计信息;所述报文链表记录该流中每一个报文的长度、IP标识和报文间隔时间。3.根据权利要求2所述的一种支持多维度聚合分类的网络流量统计实现方法,其特征在于:所述流量分类特征包括源IP地址、目标IP地址、源端口、目标端口、协议、服务类型以及网络设备输入输出逻辑网络端口。4.根据权利要求1所述的一种支持多维度聚合分类的网络流量统计实现方法,其特征在于:所述三阶聚合流量链表矩阵的X轴和Y轴分别是以源地址和目的地址进行流量分类的HASH链表,Z轴是以目的端口、源端口和协议的关键字段共同构造的无冲突HASH链表。5.根据权利要求4所述的一种支持多维度聚合分类的网络流量统计实现方法,其特征在于:所述HASH链表的哈希函数包括:1)基于源端口、目的端口、协议号的哈希函数hash(s,d,p):hash(s,d,p)=P×S×d+P×s+p公式中0≤s≤S-1,0≤d≤D-1,0≤p≤P-1其中s,d,p分别为源端口、目的端口、协议号,S和D分别为源、目的最大端口号,为65535,P为最大协议号,为255;2)基于源IP地址的哈希函数:hash(k1,k2,k3,k4)=((k1+k3)×256+k2+k4)mod65536公式中k1、k2、k3、k4为源IP地址的四个字段,Mod表示除以65536的余数。6.根据权利要求1所述的一种支持多维度聚合分类的网络流量统计实现方法,其特征在于:所述原始数据流量的生成过程为:(1)首先根据选定的路由器和时间段,从数据库搜索满足条件的报文,根据关键字段进行流量统计,读取满足条件的第一个报文,创建第一个流量头链表节点;(2)继续搜索数据库,查找满足时间和路由器ID的报文,找到后,通过关键字段搜索流量头链表,判断新到达的数据包的属性是否满足流量头链表中己有流的属性:a)如果满足,则对该已有的流量头链表节点中的流统计信息进行更新,并创建一个新的报文链表节点,记录报文长度、与上一个报文的间隔时间、报文IP标识记录等信息,插入到报文链表尾部;b)如果不满足,则创建一个新的流量头链表节点,并将该节点插入到流量头链表的尾部;(3)重复第(2)步,直到完成对数据库的搜索;(4)将每个流量记录节点按照流量记录节点链表的顺序依...

【专利技术属性】
技术研发人员:谭齐莫娴田永春
申请(专利权)人:中国电子科技集团公司第三十研究所
类型:发明
国别省市:四川;51

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

1