一种网络流数据重排序方法技术

技术编号:11439170 阅读:93 留言:0更新日期:2015-05-13 08:37
本发明专利技术提供了一种网络流数据存储方法,包括:1)接收流数据,对于每个流数据,根据其源IP地址所属网段和目的IP地址所属网段计算索引值,并根据所计算的索引值找到Hash表中对应的Hash桶,其中Hash表是预先建立的用于缓存流数据的数据结构;2)在Hash桶内,根据流数据五元组之间的差量对桶内的流数据进行分组,同组的流数据被排列到一起。本发明专利技术能够大幅提升网络流数据存储系统的存储性能,减小数据熵,提高压缩比,减小流数据存储所需空间,加快流数据查询速度。

【技术实现步骤摘要】
一种网络流数据重排序方法
本专利技术涉及计算机网络
,具体地说,本专利技术涉及一种网络流数据重排序方法。
技术介绍
随着互联网的高速发展,网络中每天都会有很多数据产生,由于现代网络不断高速化、复杂化,网络运营商越来越重视当前网络状况变化。为了处理好网络安全问题,需要进行网络数据分析、行为模式模拟预测等等,而这些都需要有海量数据支持,需要有长时间持续的流数据作为统计分析源头,所以流数据分析是发现安全问题,查找问题源,追溯事件发生原因的重要手段之一。与其他普通数据不同,在网络流中,流数据总是具有时间局部性和空间局部性的。现有的网络流存储系统的主要流程为:重排序、分列、分块压缩、存储。其中,重排序正是利用了网络流量的特性,在内存中缓存一段时间内的数据,利用时间局部性和空间局部性将相似流数据整合到一起,以减小数据熵,提高压缩比。例如,oLSH算法是现有技术中一种典型的流数据重排序技术,它能够显著地提升流数据的压缩效果,同时减短流数据查询的时间。oLSH算法中,利用p-stable算法将流数据的五元组看作一个个数值,从而把五元组从高维空间映射到一维空间中,然后再依据一维空间中的长度值在Hash表中对流数据进行排序。这种方案计算复杂度很低,能够适用于高速实时存储系统,然而,实践中发现其数据熵仍然相对较高,不利于提高压缩比。例如,依据oLSH算法,以下两个流数据(10.2.1.2,10.2.1.3)与(10.2.1.2,11.2.1.1)具有相似性,可能会被放在相邻位置。但实际上这两个数据根本不在同一网段,毫无关联性可言。也就是说,oLSH算法不能保证重排序后存储位置相邻的流数据都具备较高的相似性,因此基于oLSH算法的流数据存储方案数据熵仍然相对较高,其流数据的压缩效果还有待提高。
技术实现思路
本专利技术的目的是提供一种计算复杂度低,数据熵小的流数据重排序方法。为实现上述专利技术目的,本专利技术提供了一种网络流数据重排序方法,包括下列步骤:1)接收流数据,对于每个流数据,根据其源IP地址所属网段和目的IP地址所属网段计算索引值,并根据所计算的索引值找到Hash表中对应的Hash桶,其中Hash表是预先建立的用于缓存流数据的数据结构;2)在Hash桶内,根据流数据五元组之间的差量对桶内的流数据进行分组,同组的流数据被排列到一起。其中,所述网络流数据为基于IPv4的流数据,所述步骤1)中,对于任意一个流数据,根据该流数据源IP地址和目的IP地址所属的网段来计算所述索引值。其中,所述步骤1)中,所述索引值为源IP地址与目的IP地址前16位之和对所述Hash表的Hash桶数目取余的值。其中,所述步骤1)还包括,对于每个流数据,在根据所计算的索引值找到对应的Hash桶后,将源IP地址,目的IP地址前16位完全相同的流数据组成该Hash桶的一条冲突链。其中,所述步骤2)中,五元组之间的差量包括:IP地址差量,端口差量和协议号差量。其中,所述步骤2)中,所述IP地址差量是:将IP地址看做32位int型整数直接相减并取绝对值。其中,所述步骤2)中,当两个流数据的端口号一致时,端口差量为零,当两个流数据的端口号不一致时,端口差量取为端口差量预设的固定值;当两个流数据的协议版本号一致时,协议号差量为零,当两个流数据的协议版本号不一致时,协议号差量取为协议号差量预设的固定值。其中,所述步骤1)中,对于每个数据流,执行下列子步骤:11)根据当前流数据的源IP地址和目的IP地址的前16位计算该流数据的Hash索引值;12)根据Hash索引值找到对应的Hash桶,根据当前流数据的源IP地址和目的IP地址查找Hash桶内是否有匹配的冲突链,如果没有则新建一条冲突链,并把当前流数据作为该新建冲突链的首个数据,如果有,则直接将当前流数据插入到匹配的冲突链中。其中,所述步骤2)中,对于每个冲突链,执行下列子步骤:21)对于冲突链中第一个流数据,将其作为第一组的head;22)对于后续每一个流数据,找到当前每组的head,与head数据计算所述五元组之间的数值差量,如果差量小于差量阈值T,则把这条流数据加到该head数据所在组的末尾;否则,重新添加一组,并把当前流数据作为该新建组的head。其中,所述的网络流数据重排序方法还包括步骤:3)将Hash表中的流数据导出;所述步骤3)包括下列子步骤:31)当Hash表中数据个数达到Fmax时,开始执行步骤42;32)取出数据最多的Hash桶;33)从Hash桶中找出最长的冲突链,将该冲突链的流数据导出,并存储至存储设备;34)判断当前Hash表中流数据个数是否少于Fmin,如果是,则停止本次导出;否则,重新执行步骤32)。与现有技术相比,本专利技术具有下列技术效果:1、本专利技术计算复杂度低,数据插入速度快,能在满足10G链路流数据实时存储的需求。2、本专利技术能够减小数据熵,提高压缩比,减小流数据存储所需空间。3、本专利技术有助于加快流数据查询速度。附图说明图1是本专利技术的一个实施例中流数据存储方法的流程图;图2是本专利技术的一个实施例中流数据存入Hash表的示意图;图3是基于不同重排序方法所存储的数据在被查询时需读入数据块的对比图;图4是基于不同重排序方法所存储的数据的压缩索引文件的对比图;图5是基于不同重排序方法所存储的数据在被查询时所需时间对比图。具体实施方式根据本专利技术的一个实施例,提供了一种网络流数据存储方法,概括说来,在内存中创建一个Hash表,然后根据一定规则,通过低复杂度的数据处理将所接收到的网络流数据快速存储到该Hash表的相应位置,实现对网络流数据的重排序,使得相似流数据被整合到一起存储。图1是本专利技术的一个实施例中流数据存储方法的流程图,所述网络流数据存储方法包括下列步骤1至4。步骤1:创建Hash表。Hash表的长度可以根据需要设定,为便于描述,下文中Hash表的长度取为65535。Hash表中每一个索引值均对应于一个Hash桶,长度为65535的Hash表就有65535个Hash桶,并且每个Hash桶中可以建立任意数量的冲突链。步骤2:接收网络流数据,所接收的流数据中带有五元组信息,在本专利技术中五元组信息是指网络流数据的源IP地址、目的IP地址、源端口号、目的端口号以及传输协议类型(传输协议类型可以以版本号表示)。对于每组流数据,根据其五元组中提取的源IP地址所属网段和目的IP地址所属网段计算索引值,并根据所计算的索引值找到对应的Hash桶。本实施例中,网络流数据为基于IPv4的流数据。IPv4地址可以看做一个int型数(它是二进制数,下文中不再赘述),用IP地址前16位表示该IP地址所属的网段,来计算hash索引值。在一个例子中,Hash索引值为源IP地址与目的IP地址前16位之和对Hash桶数目取余的值。根据所计算的索引值即可找到当前流数据所对应的Hash桶。进一步地,本实施例中,在同一Hash桶内,将源IP地址,目的IP地址前16位完全相同的流数据组成一条冲突链。图2示出了一个Hash表的示例。该Hash表中示出了4个流数据:流数据11、流数据12、流数据13、流数据14。其中,流数据11的源IP=10.0.11.1、目的IP=159.226.1.2;流数据12的源IP=10.0.27.8、目的IP=1本文档来自技高网
...
一种网络流数据重排序方法

【技术保护点】
一种网络流数据重排序方法,其特征在于,包括下列步骤:1)接收流数据,对于每个流数据,根据其源IP地址所属网段和目的IP地址所属网段计算索引值,并根据所计算的索引值找到Hash表中对应的Hash桶,其中Hash表是预先建立的用于缓存流数据的数据结构;2)在Hash桶内,根据流数据五元组之间的差量对桶内的流数据进行分组,同组的流数据被排列到一起。

【技术特征摘要】
1.一种网络流数据重排序方法,其特征在于,包括下列步骤:1)接收流数据,对于每个流数据,根据其源IP地址所属网段和目的IP地址所属网段计算索引值,并根据所计算的索引值找到Hash表中对应的Hash桶,其中Hash表是预先建立的用于缓存流数据的数据结构;2)在Hash桶内,根据流数据五元组之间的差量对桶内的流数据进行分组,同组的流数据被排列到一起。2.根据权利要求1所述的网络流数据重排序方法,其特征在于,所述网络流数据为基于IPv4的流数据,所述步骤1)中,对于任意一个流数据,根据该流数据源IP地址和目的IP地址所属的网段来计算所述索引值。3.根据权利要求2所述的网络流数据重排序方法,其特征在于,所述步骤1)中,所述索引值为源IP地址与目的IP地址前16位之和对所述Hash表的Hash桶数目取余的值。4.根据权利要求3所述的网络流数据重排序方法,其特征在于,所述步骤1)还包括,对于每个流数据,在根据所计算的索引值找到对应的Hash桶后,将源IP地址,目的IP地址前16位完全相同的流数据组成该Hash桶的一条冲突链。5.根据权利要求4所述的网络流数据重排序方法,其特征在于,所述步骤2)中,五元组之间的差量包括:IP地址差量,端口差量和协议号差量。6.根据权利要求5所述的网络流数据重排序方法,其特征在于,所述步骤2)中,所述IP地址差量是:将IP地址看做32位int型整数直接相减并取绝对值。7.根据权利要求5所述的网络流数据重排序方法,其特征在于,所述步骤2)中,当两个流数据的端口号一致时,端口差量为零,当两个流数据的端口号不一致时,端口差量取为端口差量预设的固定值;当两个流数据的协议版本号一致时,协议号...

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

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

1