CN101459560B - 长流的识别方法、数据流量的测量方法及其设备 - Google Patents
长流的识别方法、数据流量的测量方法及其设备 Download PDFInfo
- Publication number
- CN101459560B CN101459560B CN2009100007476A CN200910000747A CN101459560B CN 101459560 B CN101459560 B CN 101459560B CN 2009100007476 A CN2009100007476 A CN 2009100007476A CN 200910000747 A CN200910000747 A CN 200910000747A CN 101459560 B CN101459560 B CN 101459560B
- Authority
- CN
- China
- Prior art keywords
- counter
- priori
- bloom filter
- correspondence
- stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及一种长流的识别方法、数据流量的测量方法及其设备,所述长流的识别方法包括:确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器;对每一项进行哈希运算,生成每一项对应每个先验计数型布鲁姆过滤器的哈希地址;查找每一项对应的每个哈希地址对应的计数器;循环每个先验计数型布鲁姆过滤器中对应的计数器;若所述每一项中每个计数器的值都大于等于预设阈值,或者每项对应的计数器的循环次数等于先验计数型布鲁姆过滤器的个数,则判定所述业务流为l-项长流,并在所述每一项中每个计数器的值加1后,返回所述确定业务流的项数l的步骤。本发明实施例以实现对高速网络中实时在线的长流进行识别和统计,适应高速网络中的流量测量需求。
Description
技术领域
本发明涉及计算机通信技术领域,特别涉及一种长流的识别方法、数据流量的测量方法及及其设备。
背景技术
随着现代互联网规模的扩大、异质性的突出、以及网络应用呈现的多样性,人们迫切需要了解和掌握它在局部和整体范围内所体现出的行为特征,以便更好地理解、设计和管理互联网络。网络流量测量是研究流量工程和网络行为学的基础,可以通过对网络流量的基本参数进行测量,比如包长分布、吞吐量、自相似系数等,根据测量的结果对网络进行建模和分析,以便更好地掌握网络行为的基本特征,保证网络的健康运行。正是由于以上原因,使得网络流量测量从网络管理的分支中分离出来,成为一个独立的网络研究方向,并作为一个新的研究领域成为近年来的研究热点。
对网络流进行测量、统计后发现:流往往呈现很强烈的重尾分布特征,即大多流仅包含很少数目的报文,而很少一部分流却携带着很大数目的报文。统计长流可以节省大量的存储空间,使流量信息能够存储在高速的静态随机访问存储器(SRAM)中,提高处理网络数据的速度。因此,高速网络中,识别长流是进行准确流量测量的一种重要可扩展的解决方案。目前长流的识别方法主要是利用抽样测量的技术,其具有代表性的算法主要有两个:采样控制(Sample and Hold)算法和多级过滤器(Multistage Filters)算法。
所述Sample and Hold算法的基本思想是:当某个数据报文到达时,如果该报文所属的流记录在缓存中存在,则更新该流记录;否则以一定的概率p采样该报文,若该报文被抽中,则创建该流记录。其中,对于在缓存中已经有记录的流,以后属于该流的报文均被抽样。
所述Multistage Filters算法的基本思想是:每级过滤器是一个计数器向量,每个报文到达时,通过哈希(Hash)函数映射到每级过滤器中的对应计数器上,然后更新对应计数器的值。如果每级过滤器相应的计数器都超过了预设的阈值,则认为该流是大流或长流,然后缓存该流。
但是,在上述两种方案中,对于流的识别和统计,需要实时在线地维护五元组的信息,这对于主干路由器的资源占用是难以接受的。而评价性能优劣的首要指标是算法的时间复杂度和空间复杂度。目前,一种特殊的基于哈希算法的数据结构:布鲁姆过滤器(Bloom Filter)能够很好地解决上述问题,它能快速地鉴别流的信息,并能把TCP流的信息维护从96比特的五元组映射到很短的哈希串所代表的空间,极大地减少了由于维护五元组信息而带来的资源开销。
其中,布鲁姆过滤器表示信息的方式精简,是一种能够表示集合、支持集合查询的精简数据结构。与传统的查询算法相比,大大节约了存储空间。也就是说,传统的树型结构和散列查询算法存储空间与元素自身大小和集合规模直接相关,而布鲁姆过滤器查询算法所需空间与元素自身大小无关,仅与元素映射到的向量位数相关,这就大大节约了存储空间。下面简单介绍两种基本的布鲁姆过滤器。
一种是:标准布鲁姆过滤器(SBF,Standard Bloom Filter)
SBF算法的核心是:一个V向量和一组Hash函数,其实现原理如图1所示。具体实现过程为:设集合S={s1,s2,...,sn}共有n个元素,通过k个Hash函数h1,h2,...hk将集合S中的n个元素映射到长度为m的向量V中。每一个Hash函数相互独立,且函数的取值范围为{0,1,2,...,m-1}。集合S到向量V的映射过程为:向量V初始化,即将向量V的所有比特位置0;当元素插入集合S时,对于每一个元素si,计算hj(si)(1≤j≤k),若hj(si)=q,则令SBF[q]=1,将向量对应的位置置位;当查询元素是否属于集合S时,对于给定的元素x,检查向量V的k个位置(h1(x),h2(x),...hk(x))是否为1。如果其中有一个为0,则若全部值为1,则x可能属于S中。此时就可能出现“假阳性误判”,即将不属于集合的元素误判成属于该集合,但不会出现“假阴性误判”(即将属于集合的元素误判成不属于该集合)。
由此可知,该SBF算法的实现过程中,用(n,m,k)的形式表示SBF,其中n为集合S的元素个数,m为向量V的长度,k为哈希函数的个数。使用SBF完成集合存储,保存每个元素平均使用m/n位,空间十分节俭。虽然SBF算法能够较好地支持集合元素的插入和散列查询,但是却不能够支持元素的删除。
另一种是计数型布鲁姆过滤器(CBF,Counting Bloom Filter)
CBF可以支持元素的删除,其实现过程为:将向量V的每一维i(i∈{1,2,…m})设置成一个计数器,记为c(i),并设定初值为0。当要增加集合元素x时,则c(hj(x))=c(hj(x))+1,(j=1,2,...,k);当要删除集合元素x时,则c(hj(x))=c(hj(x))-1,(j=1,2,...,k),如图2所示。
CBF不仅支持集合元素的插入和散列查询,集合元素的删除,还能支持集合元素的统计计数:当si插入以后(设si对应的计数器为c1,c2...ck),若后面到达的数据中还存在si,则CBF不但能判断si存在,而且还应该在对应的计数器位置加1计数,统计si的个数。在具体实现时,可以根据集合元素的增加与删除的统计规律,选择适当的计数器大小,以防止计数器的溢出。在不考虑计数器溢出的情况下,si的统计值可以用min{c1,c2...ck}来表示,但存在单边“假阳性”的错误概率(即统计值比实际值大)。
在对现有技术的研究和实践过程中,本发明的发明人发现,现有的实现方式中,针对高速网络中流量测量面临可扩展性的挑战,虽然CBF能支持集合元素的插入、散列查询、以及集合元素的统计计数,但是,由于CBF的空间利用率低,以不能针对高速网络中实时在线的长流进行识别和统计,不能适应当前及未来的流量测量需求。
发明内容
本发明实施例提供一种长流的识别方法、数据流量的测量方法及其设备,以实现对高速网络中实时在线的长流进行识别和统计,适应高速网络中的流量测量需求。
为此,本发明是实施例提供一种长流的识别方法,包括:
确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器;
对每一项进行哈希运算,生成每一项对应每个先验计数型布鲁姆过滤器的哈希地址;
查找每一项对应的每个哈希地址对应的计数器;
循环每个先验计数型布鲁姆过滤器中对应的计数器;
若所述每一项中每个计数器的值都大于等于预设阈值,或者若计数器的循环次数等于先验计数型布鲁姆过滤器的个数,则判定所述业务流为l项长流,并在所述每一项对应的每个计数器的值加1后,返回所述确定业务流的项数l的步骤。
优选的,所述方法还包括:
若每一项的每个计数器的值中有一个计数器的值小于预设阈值,根据预设的先验原则二,该项为非频繁项,根据预设的先验原则一,该项对应的业务流为非l项长流,其中,所述预设的先验原则一具体包括:如果一个业务流为l项长流,则所述l项长流的所有项一定是频繁项;所述预设的先验原则二具体包括:如果标识某个业务流的项是频繁项,则该项对应的先验计数型布鲁姆过滤器中的每个计数器的值都大于预设阈值。
优选的,在对每项进行哈希运算前,初始化每项对应的先验计数型布鲁姆过滤器的值。
本发明实施例还提供一种长流的识别设备,包括:
确定单元,用于确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器;
生成单元,用于对每一项进行哈希运算,生成每一项对应每个先验计数型布鲁姆过滤器的哈希地址;
查找单元,用于查找每一项对应的每个哈希地址对应的计数器;
循环单元,用于循环每个先验计数型布鲁姆过滤器中对应的计数器;
第一识别单元,用于在判断所述每一项中每个计数器的值都大于等于预设阈值时,或者若计数器的循环次数等于先验计数型布鲁姆过滤器的个数时,判定所述业务流为l项长流,并在所述每个计数器的值加1后,通知确定单元。
优选的,还包括:第一判断单元和/或第二判断单元,其中,
所述第一判断单元,用于判断每一项中每个计数器的值是否都大于等于预设阈值,并将大于等于预设阈值的判断结果通知第一识别单元;
所述第二判断单元,判断计数器的循环次数是否等于先验计数型布鲁姆过滤器的个数并将等于的判断结果通知第一识别单元。
优选的,所述第一判断单元根据预设的先验原则一进行判断;所述第二判断单元依次根据预设的先验原则二、预设的先验原则一进行判断,其中,所述预设的先验原则一具体包括:如果一个业务流为l项长流,则所述l项长流的所有项一定是频繁项;所述预设的先验原则二具体包括:如果标识某个业务流的项是频繁项,则该项对应的先验计数型布鲁姆过滤器中的每个计数器的值都大于预设阈值。
优选的,还包括:
第三判断单元,用于判断每一项的每个计数器的值中是否有一个计数器的值小于预设阈值,若是,根据预设的先验原则二,该项为非频繁项,根据预设的先验原则一,该项对应的业务流为非l项长流。
优选的,还包括:
初始化单元,用于在生成单元生成对应每个先验计数型布鲁姆过滤器的哈希地址前,初始化每项对应的先验计数型布鲁姆过滤器的值。
本发明实施例再提供一种数据流量的测量方法,包括:
确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器,初始化每个先验计数型布鲁姆过滤器及每个先验计数型布鲁姆过滤器中的计算器的值;
统计测量周期中的每个时间窗的业务流;
在流过任一所述时间窗的业务流结束时,重整化该项对应的每个先验计数型布鲁姆过滤器;
在所述测量周期结束时,输出统计的业务流。
优选的,还包括:
在所述测量周期没有结束时,对该项流过下一时间窗的业务流继续统计,直至测量周期结束,输出统计的业务流。
优选的,所述统计测量周期中的每个时间窗的业务流具体包括:
对该项进行哈希运算,生成该项对应每个先验计数型布鲁姆过滤器的哈希地址;
查找该项对应的每个先验计数型布鲁姆过滤器的哈希地址对应的计数器;
对所述对应的计数器的值加1,直至每项对应的计数器的循环次数等于先验计数型布鲁姆过滤器的个数。
优选的,所述重整化每项对应的每个先验计数型布鲁姆过滤器具体包括:将每个先验计数型布鲁姆过滤器中的所有小于预设阈值的计数器的值初始化为0。
本发明实施例又提供一种数据流量的测量设备,包括:
确定单元,用于确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器,初始化每个先验计数型布鲁姆过滤器及每个先验计数型布鲁姆过滤器中的计算器的值;
统计单元,用于统计测量周期中的每个时间窗的业务流;
重整化单元,用于在流过任一所述时间窗的业务流结束时,重整化该项对应的每个先验计数型布鲁姆过滤器;
流量输出单元,用于在所述测量周期结束时,输出统计的业务流。
优选的,还包括:判断单元和处理单元,
所述判断单元,用于判断所述测量周期是否结束,若是,则通知流量输出单元输出统计的业务流;否则,通知统计单元;
所述统计单元,还用于在接收到判断单元的通知后,对该项流过下一时间窗的业务流继续统计,直至测量周期结束,通知流量输出单元输出统计的业务流。
由上述技术方案可知,本发明实施例通过确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器;对每一项进行哈希运算,生成每一项对应每个先验计数型布鲁姆过滤器的哈希地址;查找每一项对应的每个哈希地址对应的计数器;判断所述每一项中每个计数器的值是否都大于等于预设阈值,若大于预设阈值,则判定所述业务流为l-项长流,并在所述每一项中每个计数器的值加1后,返回所述确定业务流的项数l的步骤。也就是说,本发明实施例将实时流量分析的硬件配置和硬件管理有效地结合起来,并采用可扩展性的先验计数型布鲁姆过滤器,确保高速网路流量实时测量的需求。针对高速骨干链路流量测量面临可扩展性的挑战,本方案扩展了能够表示集合、支持集合查询的计数布鲁姆过滤器,构造了一种能够支持表示、查询和统计业务流的先验计数型布鲁姆过滤器的数据结构。该数据结构将先验原则和计数型布鲁姆过滤器进行有机结合,能够存储数据流的统计特征,借助于它就只需要对数据流进行一遍扫描即可获得误差可控的近似结果。应用先验计数型布鲁姆过滤器进行骨干网实时流量测量,一方面,可以实时统计到大于某一阈值的业务流;另一方面,压缩了流量信息存储的空间,并且部署灵活,实现代价低,对于高速骨干网的流量分析而言具有较高的实用价值。
附图说明
图1为现有技术中标准布鲁姆过滤器的实现原理示意图;
图2为现有技术中计数型布鲁姆过滤器的实现原理示意图;
图3为本发明实施例中提供的一种长流的识别方法的流程图;
图4为本发明实施例中l-项流对应的CBF示意图;
图5为本发明实施例中先验原则2的示意图;
图6为本发明实施例中基于Apriori-CBF判断1-项流为长流的流程图;
图7为本发明实施例中基于Apriori-CBF判断l-项流为长流的另一流程图;
图8为本发明实施例中提供的一种数据流量的测量方法的流程图;
图9为本发明实施例中业务流的实时测量流程图;
图10为本发明实施例中业务流的统计计数的流程图;
图11为本发明实施例中CBFi重整化的示意图;
图12为本发明实施例中提供的一种长流的识别设备的结构示意图;
图13为本发明实施例中提供的一种数据流量的测量设备的结构示意图;
图14为本发明实施例中骨干网流量分析系统的一种结构示意图。
具体实施方式
下面我们将结合附图,对本发明的最佳实施方案进行详细描述。
请参阅图3,为本发明实施例中提供的一种长流的识别方法的流程图;所述方法包括:
步骤301:确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器(Apriori-CBF,Apriori-Counting Bloom Filter);
步骤302:对每一项进行哈希运算,生成每一项对应每个先验计数型布鲁姆过滤器的哈希地址;
步骤303:查找每一项对应的每个哈希地址对应的计数器;
步骤304:循环每个先验计数型布鲁姆过滤器中对应的计数器;
步骤305:若所述每一项中对应每个计数器的值都大于等于预设阈值,或者每一项中计数器的循环次数等于先验计数型布鲁姆过滤器的个数,则判定所述业务流为l项长流,并在所述每一项中每个计数器的值加1后,返回步骤301。
优选的,在步骤301和步骤302之间,还可以包括:初始化每项对应的先验计数型布鲁姆过滤器的值。
优选的,若每一项的每个计数器的值中有一个计数器的值小于预设阈值,根据预设的先验原则二,该项为非频繁项,根据预设的先验原则一,该项对应的业务流为非l-项长流。
为了便于本领域技术人员的理解,先介绍下述名词:
先验(Apriori)原理的原因:在对网络流进行测量、统计后发现,流往往呈现很强烈的重尾分布特征,即大多数流仅包含很少数目的报文,而很少一部分流却携带着很大数目的报文。统计长流可以节省大量的存储空间,使流量信息能够存储在静态随机访问存储器(SRAM,Static Random Access Memory)中,提高处理网络数据的速度;同时,在网络安全的应用中,由于剥离了无关的网络流量,使安全事件的“罪魁祸首”更加容易识别。因此,高速网络中,识别长流是进行准确流量测量的一种重要可扩展的解决方案。为了统计长流,本发明实施例特引进“Apriori”原理进行长流的统计。为方便描述,特做出如下定义:
定义一:标识业务流的每一维属性字段,称作项,如源IP地址、源端口等字段;
定义二:若只用一项来标识某一业务流,且此流的大小(每流报文数来衡量)大于预设的阈值M,那么标识该流的项称为频繁项;反之,若此流的大小小于预设的阈值M,则标识该流的项称为非频繁项。
定义三:由l个项共同标识的某业务流,称为l-项流;若l-项流的大小大于预设的阈值M,则称此流为l-项长流(l的值越大,则描述流的信息越详细)。
由以上定义可以看出:标识业务流的每一项,都有相应的一个Apriori-CBF与之对应,即l-项流要用l个Apriori-CBF来联合表示、查询和统计。如图4所示,标识l-项流的l维属性{A1,A2,...Al}分别对应l个Apriori-CBF,其中第i维属性字段Ai,由Apriori-CBFi表示、查询和统计。
在本发明实施例中,提供两种先验原则,具体如下所述:
先验原则1:如果一个流是l-项长流,则它的所有项一定是频繁的。其中,设定先验原则1的基本思想为:假定某一个业务流f用l维属性{A1,A2,...Al}来标识,且该流是l-项长流。并设定它的α项子集(1≤α≤l)来标识的业务流为f1。因为属于流f的报文,也必定属于流f1,所以f1也是l-项长流。相反,如果一个α项子集是非频繁的(即由α项标识的某业务流,其大小小于阈值M),则它的所有超集β(β项集,其中β满)也一定是非频繁的。特别当α=1时,即如果1项子集(单维属性字段标识的流)是非频繁的,则它的所有超集(大于等于1项的超集)也一定是非频繁的。
例如:如果只用源IP地址“192.168.199.27”来标识某1-项流,并且此流的大小小于阈值M,则它的超集(大于等于1项,如用源IP地址“192.168.199.27”和目的IP地址“192.168.199.33”)共同标识的某一业务流,其大小肯定小于等于M。
先验原则2:如果标识某个流的项是频繁项,则该项对应的Apriori-CBF中的k个计数器也一定是频繁的(即每个计数器的值都大于M)。其中,先验原则2的基本思想为:假定只用Ai来标识某l-项流f,并且l-项流f的大小大于阈值M。根据定义二可知,Ai为频繁项。频繁项Ai对应Apriori-CBFi中的k个计数器为c(1),c(2),...,c(k)。用反证法来证明,假定其中某一计数器c(i)<M,由于业务流f的大小可表示为min{c(1),c(2),...,c(k)},则业务流f的大小必然小于M,这与已知条件(l-项流f的大小大于阈值M)矛盾,故先验原则二是成立的。
相反,如果k个计数器中有任意一个为非频繁的(计数器的值小于M),则它所对应表示的项也一定是非频繁的。如图5所示,标识业务流的某项A1经过Hash运算后,得到对应的计数器为{2,5,...,7},假设阈值M=3,由于其中一个计数器的值小于3,则可判定项A1为非频繁的。
在理解上述名词后,请参阅图6,为本发明实施例中基于Apriori-CBF判断l-项流为长流的流程图;
本实施例是把先验原则和CBF进行有机的结合,形成一种新颖的计数型布鲁姆过滤器结构,本实施例定义为:先验计数型布鲁姆过滤器(简称Apriori-CBF)。基于先验计数型布鲁姆过滤器判断一个l-项流为长流的流程图如图6示。具体包括:
步骤601:输入l-项流f,设标识该流的l项为{A1,A2,...Al},每一项对应一个Apriori-CBF,即每一项由对应的一个Apriori-CBF来表示、统计和查询;
步骤602:初始化第i个Apriori-CBF的值,即i=0,其中,1≤i≤l;
步骤603:查询第i个Apriori-CBF;
步骤604:循环第i个Apriori-CBF中对应的k个计算器c(j)(1≤j≤k);
其中,本实施例以查询Ai项对应的第i个Apriori-CBF的过程为例:具体为:
对Ai项进行Hash运算,生成(得到)k个Hash地址,即
h1(Ai),h2(Ai),...hk(Ai);查找k个Hash地址对应的k个计数器,即c(1)=Apriori-CBF[h1(Ai)],c(2)=Apriori-CBF[h2(Ai)],...,c(k)=Apriori-CBF[hk(Ai)];
步骤605:判断c(j)(1≤j≤k)是否小于预设阈值M;若否,执行步骤606;若是,则执行步骤607;
步骤606:k个计数器的值加1,即i+1,也就是说,若所述每一项中每个计数器的值都大于等于预设阈值,则判定所述业务流为l-项长流,并在所述每一项中每个计数器的值加1后,返回步骤603;
步骤607:判定第i个Apriori-CBF对应的第i项为非频繁项;
步骤608:l维属性标识的流为非频繁的,即l-项流f为非长流。
另外,在该实施例中,基于先验原则二,如果至少有一个计数器的值小于预设阈值M,则对应的项Ai为非频繁项;基于先验原则一,如果Ai为非频繁项,则{A1,A2,...,Ai,...,Al}共同标识的l-项流f为非频繁的,即可判断该l-项流f不是长流。
还请参阅图7,为本发明实施例中基于Apriori-CBF判断l-项流为长流的另一流程图;在该实施例中,步骤701至步骤704、步骤706分别与图6中的步骤601至步骤604、步骤606的完全相同,具体详见上述,在此不再赘述;其不同之处为:
在步骤704后,执行步骤705:判断每项对应的计数器的循环次数等于先验计数型布鲁姆过滤器的个数,比如,当i=1,i=2,......直到i=l,若是,则执行步骤707;否则执行步骤706;
步骤707:标识流f所有的项都是频繁项,即如果{A1,A2,...,Ai,...,Al}所有的项都是频繁项;
步骤708:基于先验原则一,可判断该l-项流f为长流。也就是说,l维属性标识的流为频繁的,即l-项流f为长流。其中,对于先验原则一详见上述,在此不再赘述;
由图6和图7的描述可知,对于判断c(i)(1≤i≤k)是否小于预设阈值M与判断每项对应的计数器的循环次数是否等于先验计数型布鲁姆过滤器的个数,本发明实施例是择一的,也就是说,只要有一个成立,都可以判断该l-项流f是否为长流,只不过,如果上述的两个条件分别不成立时,需要k个计数器的值加1,进行循环。
还请参阅图8,为本发明实施例中提供的一种数据流量的测量方的流程图;所述方法包括:
步骤801:确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器,初始化每个先验计数型布鲁姆过滤器及每个先验计数型布鲁姆过滤器中的计算器的值;
步骤802:统计测量周期中的每个时间窗的业务流;
步骤803:在流过所述任一时间窗的业务流结束时,重整化该项对应的每个先验计数型布鲁姆过滤器;
步骤804:在所述测量周期结束时,输出统计的业务流。
所述方法还可以包括:
在所述测量周期没有结束时,对该项流过下一时间窗的业务流继续统计,直至测量周期结束,输出统计的业务流。
还请参阅图9,为本发明实施例中业务流的实时测量流程图;本实施例汇总,业务流的实时测量过程主要包括:在单个时间窗口,业务流的统计计数(在第一步已经详细阐述);时间窗结束时,重整化每个Apriori-CBF;测量周期结束时,强制输出测量结果。具体包括:
步骤901:确定业务流的项数l,以及每项对应的Apriori-CBF,并初始化每个Apriori-CBF,以及每项对应的k个Hash函数;
步骤902:对第k个时间窗进行业务流的统计计数;
步骤903:判断测量周期中的时间窗是否结束,若是,执行步骤904;否则返回步骤902;
步骤904:重整化每个Apriori-CBF;
步骤905:判断测量周期是否结束,若是,执行步骤907;否则,执行步骤906;
步骤906:对测量周期中下一时间窗进行统计,即k+1,之后,返回步骤902;
步骤907:输出测量结果。
该测量过程有两个优势:一方面,由于统计业务流过程只需要一次Hash映射计数以及Hash函数的并行操作性,使得流量测量的计算复杂度大大降低;另一方面,使用Apriori-CBF能把流信息维护从96比特的五元组映射到很短的哈希串所代表的空间,极大地减少了由于维护五元组信息而带来的资源开销,为业务流的实时统计提供了条件。
其中,统计该项流过测量周期的每个时间窗的业务流的实现过程如图10所示,具体包括:
步骤1011:提取业务流的第i维属性,即第i项;
步骤1012:对该项进行哈希运算,生成该项对应每个先验计数型布鲁姆过滤器的哈希地址;
步骤1013:查找该项对应的每个哈希地址对应的计数器;
步骤1014:对所述对应的计数器的值加1,直至每项对应的计数器的循环次数等于先验计数型布鲁姆过滤器的个数。
若所述该项中每个计数器的值都小于预设阈值,判断先验计数型布鲁姆过滤器的个数是否等于计数器的个数,若是,则判定所述业务流为l-项长流;否则,则判定所述业务流为非l-项长流;令先验计数型布鲁姆过滤器的哈希地址加1,直到每项对应的计数器的循环次数等于先验计数型布鲁姆过滤器的个数为止。
也就是说,应用Apriori-CBF进行流量测量,其具体的统计过程如下:
初始化各个参数。确定流f的维数l(例如:如果用源IP地址和目的IP地址来共同标识一个流,则l=2;如果用五元组标识一个流,则l=5);初始化l个CBF,令每个CBF中的计数器的值为0;确定k个Hash函数。
对{A1,A2,...,Ai,...,Al}中的第i维属性字段Ai进行统计测量,其具体的过程如下:提取Ai属性字段;对Ai进行Hash运算,得到得到k个Hash地址h1(Ai),h2(Ai),...hk(Ai);找到对应的k个c(1)=Apriori-CBF[h1(Ai)],c(2)=Apriori-CBF[h2(Ai)],...,c(k)=Apriori-CBF[hk(Ai)];令c(1)=c(1)+1,...,c(k)=c(k)+1。
Step3:令i=i+1,重复对{A1,A2,...,Ai,...,Al}中的第i维属性字段Ai进行统计测量,直到i=l。
其中,所述重整化该项对应的每个先验计数型布鲁姆过滤器的实现过程如图11所示,在该图中,对Apriori-CBF中小于预设阈值的M为4的值进行初始化,其初始化的值具体图11底色为斜线所示。
对于Apriori-CBF的重整化,流量测量设备一般每隔固定的时间间隔输出流量测量结果,并把该测量间隔分成更小的时间窗。为方便描述,特做如下定义:
定义四:流量测量设备每隔一定的时间间隔输出流量结果,称此时间间隔为测量周期T。
定义五:测量周期分成的等长时间间隔(设其为Th),称为时间窗(TW,time window)。
为了压缩流量信息的存储空间,需要重整化Apriori-CBF。下面针对标识某l-项流的其中一项Ai(某属性字段)来说明,设表示和查询Ai的计数型布鲁姆过滤器为Apriori-CBFi。在任意时间窗TWj结束时,对Apriori-CBFi进行重整化,其具体过程如图11所示:设阈值M=4,则对于所有c(k)<M(k=1,2,3,...,m)的计数器c(k),令c(k)←0。
由于业务流的大小可表示为min{c(1),c(2),...,c(k)},所以重整后为0的计数器对应项的统计值也变成了0,则这些项标识的流的大小也等于0(即流量大小小于M的流被剔除,只有大于M的流被保存下来)。
相应的,本发明实施例还提供一种长流的识别设备,其结构示意图详见图12;所述设备包括:确定单元121、生成单元122、查找单元123、循环单元124和第一识别单元125。其中,所述确定单元121,用于确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器;所述生成单元122,用于对每一项进行哈希运算,生成每一项对应每个先验计数型布鲁姆过滤器的哈希地址;所述查找单元123,用于查找每一项对应的每个哈希地址对应的计数器;所述循环单元124,用于循环每个先验计数型布鲁姆过滤器中对应的计数器;所述第一识别单元125,用于在判断所述每一项中每个计数器的值都大于等于预设阈值时,或者计数器的循环次数等于先验计数型布鲁姆过滤器的个数时,判定所述业务流为l-项长流,并在所述每个计数器的值加1后,通知确定单元121。
优选的,所述设备还包括:第一判断单元和/或第二判断单元,其中,
所述第一判断单元,用于判断每一项中每个计数器的值是否都大于等于预设阈值,并将大于等于预设阈值的判断结果通知第一识别单元;所述第二判断单元,判断计数器的循环次数是否等于先验计数型布鲁姆过滤器的个数并将等于的判断结果通知第一识别单元。
优选的,还包括:第三判断单元,用于判断每一项的每个计数器的值中是否有一个计数器的值小于预设阈值,若是,根据预设的先验原则二,该项为非频繁项,根据预设的先验原则一,该项对应的业务流为非l-项长流。
其中,所述第一判断单元根据预设的先验原则一进行判断;所述第二判断单元依次根据预设的先验原则二、预设的先验原则一进行判断,其中,所述预设的先验原则一具体包括:如果一个业务流为l-项长流,则所述l-项长流的所有项一定是频繁项;所述预设的先验原则二具体包括:如果标识某个业务流的项是频繁项,则该项对应的先验计数型布鲁姆过滤器中的每个计数器的值都大于预设阈值。对于先验原则一和先验原则二,详见上述,在此不再赘述。
所述设备还包括:初始化单元,用于在生成单元生成对应每个先验计数型布鲁姆过滤器的哈希地址前,初始化每项对应的先验计数型布鲁姆过滤器的值。
所述设备中各个单元的功能和作用的实现过程详见上述方法中对应的实现过程,在此不再赘述。
相应的,本发明实施例还提供一种数据流量的测量设备,其结构示意图详见图13,所述设备包括:确定单元131、统计单元132、重整化单元133和流量输出单元134,其中,所述确定单元131,用于确定业务流的项数l,每项对应一个先验计数型布鲁姆过滤器,初始化每个先验计数型布鲁姆过滤器及每个先验计数型布鲁姆过滤器中的计算器的值;所述132统计单元,用于统计该项流过测量周期的每个时间窗的业务流;所述重整化单元133,用于在流过所述任一时间窗的业务流结束时,重整化该项对应的每个先验计数型布鲁姆过滤器;所述流量输出单元134,用于在所述测量周期结束时,输出统计的业务流。
所述设备还包括:判断单元和处理单元,其中,所述判断单元,用于所述测量周期是否结束,若是,则通知流量输出单元输出统计的业务流;否则,通知统计单元;所述统计单元,还用于在接收到判断单元的通知后,对该项流过下一时间窗的业务流继续统计,直至测量周期结束,通知流量输出单元输出统计的业务流。
所述设备中各个单元的功能和作用的实现过程详见上述方法中对应的实现过程,在此不再赘述。
此外,本发明实施例中还提供骨干网流量分析系统的一种结构示意图,具体如图14所示。骨干网流量分析系统的结构一般包含前端处理141和后端处理142两个部分,前端处理的功能较为简单,主要进行数据的预处理,其目的是对原始流量进行约减,以降低后端处理的开销;后端处理的功能相对复杂,其目的是从约减后的网络流量数据中获取有用信息。前端处理的结果需要支持多种后端应用,因此前端处理具有通用性;后端处理往往针对某一种具体的应用而设计,因而后端处理具有专用性。通常,前端处理采用硬件实现而后端处理采用软件实现,本发明实施例中的长流的识别方案主要应用于前端处理。
显然,若前端处理的数据约减的幅度太大,则数据中的可用信息损失越严重;若前端处理的数据约减幅度太小,则会增大后端处理的处理开销和实现难度。可见,前端处理的数据约减的方法和性能对于骨干网流量分析系统的性能有着非常重要的影响。
也就是说,当一个无限的数据流序列快速流入时,要求在仅对数据集进行一遍扫描的情况下,利用有限的存储空间快速完成计算,以实时响应用户请求。因此,该流量测量模型的关键在于设计一个远小于数据集规模的结构,从而可以在高速缓存(比如SRAM)中处理数据。先验计数型布鲁姆过滤器其实本质上是一种概要数据结构,它存储了数据流的统计特征,是对数据流的一种压缩总结,借助于它就不需要对数据流进行多遍扫描即可获得误差可控的近似结果。而且据此设计的处理算法同样可适用于海量静态数据的情况,当数据可在再次存取和扫描时,某些算法可获得更加准确的处理结果。应用Apriori-CBF进行流量测量,具体的流量测量过程主要分成详见上述,在此不再赘述。
由此可见,本发明实施例将实时流量分析的硬件配置和硬件管理有效地结合起来,并采用可扩展性的先验计数型布鲁姆过滤器,确保高速网路流量实时测量的需求。针对高速骨干链路流量测量面临可扩展性的挑战,本方案扩展了能够表示集合、支持集合查询的计数布鲁姆过滤器,构造了一种能够支持表示、查询和统计业务流的先验计数型布鲁姆过滤器的数据结构。该数据结构将先验原则和计数型布鲁姆过滤器进行有机结合,能够存储数据流的统计特征,借助于它就只需要对数据流进行一遍扫描即可获得误差可控的近似结果。应用先验计数型布鲁姆过滤器进行骨干网实时流量测量,一方面,可以实时统计到大于某一阈值的业务流;另一方面,压缩了流量信息存储的空间,并且部署灵活,实现代价低,对于高速骨干网的流量分析而言具有较高的实用价值。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种长流的识别方法,其特征在于,包括:
确定业务流的项数L,每项对应一个先验计数型布鲁姆过滤器;
对每一项进行哈希运算,生成每一项对应每个先验计数型布鲁姆过滤器的哈希地址;
查找每一项对应的每个哈希地址对应的计数器;
循环每个先验计数型布鲁姆过滤器中对应的计数器;
若所述每一项中每个计数器的值都大于等于预设阈值,或者若计数器的循环次数等于先验计数型布鲁姆过滤器的个数,则判断所述业务流为L项长流,并在所述每一项对应的每个计数器的值加1后,返回所述确定业务流的项数L的步骤。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若每一项的每个计数器的值中有一个计数器的值小于预设阈值,根据预设的先验原则二,该项为非频繁项,根据预设的先验原则一,该项对应的业务流为非L项长流,其中,所述预设的先验原则一具体包括:如果一个业务流为L项长流,则所述L项长流的所有项一定是频繁项;所述预设的先验原则二具体包括:如果标识某个业务流的项是频繁项,则该项对应的先验计数型布鲁姆过滤器中的每个计数器的值都大于预设阈值。
3.根据权利要求1或2所述的方法,其特征在于,在对每项进行哈希运算前,初始化每项对应的先验计数型布鲁姆过滤器的值。
4.一种长流的识别设备,其特征在于,包括:
确定单元,用于确定业务流的项数L,每项对应一个先验计数型布鲁姆过滤器;
生成单元,用于对每一项进行哈希运算,生成每一项对应每个先验计数型布鲁姆过滤器的哈希地址;
查找单元,用于查找每一项对应的每个哈希地址对应的计数器;
循环单元,用于循环每个先验计数型布鲁姆过滤器中对应的计数器;
第一识别单元,用于在判断所述每一项中每个计数器的值都大于等于预设阈值,或者若计数器的循环次数等于先验计数型布鲁姆过滤器的个数时,
判定所述业务流为L项长流,并在所述每个计数器的值加1后,通知确定单元。
5.根据权利要求4所述的设备,其特征在于,还包括:第一判断单元和/或第二判断单元,其中,
所述第一判断单元,用于判断每一项中每个计数器的值是否都大于等于预设阈值,并将大于等于预设阈值的判断结果通知第一识别单元;
所述第二判断单元,用于判断计数器的循环次数是否等于先验计数型布鲁姆过滤器的个数,并将等于的判断结果通知第一识别单元。
6.根据权利要求5所述的设备,其特征在于,所述第一判断单元根据预设的先验原则一进行判断;所述第二判断单元依次根据预设的先验原则二、预设的先验原则一进行判断,其中,所述预设的先验原则一具体包括:如果一个业务流为L项长流,则所述L项长流的所有项一定是频繁项;所述预设的先验原则二具体包括:如果标识某个业务流的项是频繁项,则该项对应的先验计数型布鲁姆过滤器中的每个计数器的值都大于预设阈值。
7.根据权利要求6所述的设备,其特征在于,还包括:
第三判断单元,用于判断每一项的每个计数器的值中是否有任一个计数器的值小于预设阈值,若是,根据预设的先验原则二,该项为非频繁项,根据预设的先验原则一,该项对应的业务流为非L项长流。
8.根据权利要求5至7任一项所述的设备,其特征在于,还包括:
初始化单元,用于在生成单元生成对应每个先验计数型布鲁姆过滤器的哈希地址前,初始化每项对应的先验计数型布鲁姆过滤器的值。
9.一种数据流量的测量方法,其特征在于,包括:
确定业务流的项数L,每项对应一个先验计数型布鲁姆过滤器,初始化每个先验计数型布鲁姆过滤器及每个先验计数型布鲁姆过滤器中的计数器的值;
统计测量周期中的每个时间窗的业务流;具体包括:对该项进行哈希运算,生成该项对应每个先验计数型布鲁姆过滤器的哈希地址;查找该项对应的每个先验计数型布鲁姆过滤器的哈希地址对应的计数器;对所述对应的计数器的值加1,直至每项对应的计数器的循环次数等于先验计数型布鲁姆过滤器的个数;
在流过任一所述时间窗的业务流结束时,重整化该项对应的每个先验计数型布鲁姆过滤器;
在所述测量周期结束时,输出统计的业务流。
10.根据权利要求9所述的方法,其特征在于,还包括:
在所述测量周期没有结束时,对该项流过下一时间窗的业务流继续统计,直至测量周期结束,输出统计的业务流。
11.根据权利要求9所述的方法,其特征在于,所述重整化每项对应的每个先验计数型布鲁姆过滤器具体包括:将每个先验计数型布鲁姆过滤器中的所有小于预设阈值的计数器的值初始化为0。
12.一种数据流量的测量设备,其特征在于,包括:
确定单元,用于确定业务流的项数L,每项对应一个先验计数型布鲁姆过滤器,初始化每个先验计数型布鲁姆过滤器及每个先验计数型布鲁姆过滤器中的计数器的值;
统计单元,用于统计测量周期中的每个时间窗的业务流;具体包括:对该项进行哈希运算,生成该项对应每个先验计数型布鲁姆过滤器的哈希地址;查找该项对应的每个先验计数型布鲁姆过滤器的哈希地址对应的计数器;对所述对应的计数器的值加1,直至每项对应的计数器的循环次数等于先验计数型布鲁姆过滤器的个数;
重整化单元,用于在流过任一所述时间窗的业务流结束时,重整化该项对应的每个先验计数型布鲁姆过滤器;
流量输出单元,用于在所述测量周期结束时,输出统计的业务流。
13.根据权利要求12所述的设备,其特征在于,还包括:判断单元和处理单元,
所述判断单元,用于判断所述测量周期是否结束,若是,则通知流量输出单元输出统计的业务流;否则,通知统计单元;
所述统计单元,还用于在接收到判断单元的通知后,对该项流过下一时间窗的业务流继续统计,直至测量周期结束,通知流量输出单元输出统计的业务流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100007476A CN101459560B (zh) | 2009-01-09 | 2009-01-09 | 长流的识别方法、数据流量的测量方法及其设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100007476A CN101459560B (zh) | 2009-01-09 | 2009-01-09 | 长流的识别方法、数据流量的测量方法及其设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101459560A CN101459560A (zh) | 2009-06-17 |
CN101459560B true CN101459560B (zh) | 2011-04-13 |
Family
ID=40770203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100007476A Expired - Fee Related CN101459560B (zh) | 2009-01-09 | 2009-01-09 | 长流的识别方法、数据流量的测量方法及其设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101459560B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105745870A (zh) * | 2013-07-15 | 2016-07-06 | 瑞典爱立信有限公司 | 从用于检测大流量的串行多级过滤器去除头部过滤器以便清除流量以实现延长操作 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011029212A1 (zh) * | 2009-09-08 | 2011-03-17 | 中国科学院计算技术研究所 | 基于双计数布鲁姆过滤器的哈希方法和哈希装置 |
CN102882798B (zh) * | 2012-09-04 | 2015-05-20 | 中国人民解放军理工大学 | 面向骨干网流量分析的统计计数方法 |
CN103078754B (zh) * | 2012-12-29 | 2016-09-28 | 大连环宇移动科技有限公司 | 一种基于计数型bloom filter的网络数据流统计方法 |
CN105099732B (zh) * | 2014-04-28 | 2018-11-20 | 华为技术有限公司 | 一种识别异常ip数据流的方法、装置和系统 |
US9923794B2 (en) | 2014-04-28 | 2018-03-20 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for identifying abnormal IP data stream |
CN104219110B (zh) * | 2014-09-25 | 2017-12-12 | 中国人民解放军信息工程大学 | 一种数据包抽样方法及装置 |
CN106487676A (zh) * | 2016-10-27 | 2017-03-08 | 盛科网络(苏州)有限公司 | 一种基于大象流的动态ecmp芯片实现方法 |
CN107566206B (zh) | 2017-08-04 | 2020-09-04 | 华为技术有限公司 | 一种流量测量方法、设备及系统 |
CN107948007B (zh) * | 2017-10-10 | 2021-09-10 | 东南大学 | 基于抽样和两级cbf的长流识别方法 |
CN112714040B (zh) * | 2020-12-11 | 2022-10-28 | 深圳供电局有限公司 | 全息报文检测方法、装置、设备及存储介质 |
CN114866322B (zh) * | 2022-05-06 | 2023-06-13 | 清华大学 | 一种网络异常流量检测方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737799A (zh) * | 2005-09-09 | 2006-02-22 | 湖南大学 | 一种基于分档BloomFilter结构的查询方法 |
CN101051952A (zh) * | 2007-04-18 | 2007-10-10 | 东南大学 | 高速多链路逻辑信道环境下的自适应抽样流测量方法 |
CN101309216A (zh) * | 2008-07-03 | 2008-11-19 | 中国科学院计算技术研究所 | 一种ip包分类方法和设备 |
-
2009
- 2009-01-09 CN CN2009100007476A patent/CN101459560B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737799A (zh) * | 2005-09-09 | 2006-02-22 | 湖南大学 | 一种基于分档BloomFilter结构的查询方法 |
CN101051952A (zh) * | 2007-04-18 | 2007-10-10 | 东南大学 | 高速多链路逻辑信道环境下的自适应抽样流测量方法 |
CN101309216A (zh) * | 2008-07-03 | 2008-11-19 | 中国科学院计算技术研究所 | 一种ip包分类方法和设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105745870A (zh) * | 2013-07-15 | 2016-07-06 | 瑞典爱立信有限公司 | 从用于检测大流量的串行多级过滤器去除头部过滤器以便清除流量以实现延长操作 |
CN105745870B (zh) * | 2013-07-15 | 2019-01-18 | 瑞典爱立信有限公司 | 从用于检测大流的串行多级过滤器去除头部过滤器以便清除流以实现延长操作 |
Also Published As
Publication number | Publication date |
---|---|
CN101459560A (zh) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101459560B (zh) | 长流的识别方法、数据流量的测量方法及其设备 | |
Coscia et al. | Network backboning with noisy data | |
Fuchs et al. | Estimates of distributions of random variables for certain computer communications traffic models | |
Wang et al. | Gaom: Genetic algorithm based ontology matching | |
WO2022257436A1 (zh) | 基于无线通信网络数据仓库构建方法、系统、设备及介质 | |
CN105335496A (zh) | 基于余弦相似度文本挖掘算法的客服重复来电处理方法 | |
CN111061837A (zh) | 话题识别方法、装置、设备及介质 | |
CN108924371B (zh) | 电力客服过程中通过来电号码识别户号的方法 | |
JP2019511764A (ja) | 質問を推薦する方法及び装置 | |
CN113378899A (zh) | 非正常账号识别方法、装置、设备和存储介质 | |
Chen et al. | Out of many we are one: Measuring item batch with clock-sketch | |
CN110647447A (zh) | 用于分布式系统的异常实例检测方法、装置、设备和介质 | |
JP2019504393A (ja) | ユーザデータ共有方法及び装置 | |
CN112101765A (zh) | 一种配电网运行指标数据异常数据处理方法及系统 | |
CN107766204A (zh) | 一种检查集群健康状态的方法和系统 | |
CN105471624A (zh) | 一种通信设备接入终端通信接入网的综合评价方法 | |
CN112235254B (zh) | 一种高速主干网中Tor网桥的快速识别方法 | |
CN109271495B (zh) | 问答识别效果检测方法、装置、设备及可读存储介质 | |
CN113190623B (zh) | 数据处理方法、装置、服务器和存储介质 | |
CN104902498A (zh) | 用户重入网识别方法和装置 | |
Pradhan | On the distribution of an infinite-buffer queueing system with versatile bulk-service rule under batch-size-dependent service policy: M/G n (a, Y)/1 | |
CN106127602B (zh) | 一种基于约简离群点算法的窃电辨识方法及装置 | |
CN110489568B (zh) | 生成事件图的方法、装置、存储介质和电子设备 | |
CN114519343A (zh) | 基于95598的重复来电预处理方法、装置、设备及存储介质 | |
CN110855641B (zh) | 社区属性信息确定方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110413 Termination date: 20180109 |