CN103078754B - 一种基于计数型bloom filter的网络数据流统计方法 - Google Patents
一种基于计数型bloom filter的网络数据流统计方法 Download PDFInfo
- Publication number
- CN103078754B CN103078754B CN201210591020.1A CN201210591020A CN103078754B CN 103078754 B CN103078754 B CN 103078754B CN 201210591020 A CN201210591020 A CN 201210591020A CN 103078754 B CN103078754 B CN 103078754B
- Authority
- CN
- China
- Prior art keywords
- stream
- bloom filter
- enumerator
- attribute bloom
- statistics
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于计数型bloom filter的网络数据流统计方法,所述方法包括如下步骤:配置计数型bloom filter统计前的参数,包括容错率、流总数、哈希函数个数以及计数器个数;计数型bloom filter将每个数据包的五元组信息哈希到相应位置的计数器中;取相应计数器中的最小值作为该流流量。实施本发明具有以下有益效果:在预设流个数的情况下,通过特有的参数设置方案使用易于硬件实现的计数型bloom filter实现流量以及流个数的快速统计,在高效哈希置位的同时通过扩展的计数器防止计数型bloom filter计数器溢出,能满足高速网络中一般情况下的流统计以及五元组信息快速存储。
Description
技术领域
本发明涉及网络数据流统计领域,更具体地说,涉及一种基于计数型bloom filter的网络数据流统计方法。
背景技术
当今的网络飞速发展,在高速的路由器和交换机上OC-48(2.5Gbps)端口速率已经非常普遍,而新的OC-768端口速率更是高达40Gbps。了解高速网络环境下的网络行为特征需要网络测量,而流级别的测量统计在网络测量中的应用越来越广泛。流以及流量的统计结果可用于网络安全检测、流量计费、流量管理、流量工程以及其他网络应用。
网络流统计技术很多,主要追求的是统计准确性、降低计算复杂度以及空间复杂度。比如使用编码的哈希统计,在对流信息哈希后,需要一定的编码位数来降低碰撞率,当编码位数与哈希前的流信息位数相同时才能避免碰撞,相当于完全存储。哈希统计基本靠编码位数作为和准确率交换的筹码。还有数据约减统计,亦即抽样统计。这种统计方法在空间占用上比较有优势,但是抽样后的估计误差不可避免。如cisco在Netflow中引入的“1out of N”抽样策略,每N个流中统计一个,这种方法简单易于硬件实现,但是偏离实际的网络流分布,大流被抽得的概率较高,而短流较低。后面出现的一些改进型的抽样统计方法都是在准确性、计算复杂度和空间复杂度三者之间求均衡。
bloom filter是对哈希的改进,是一种空间高效的存储结构,使用k个哈希函数和拥有一组置位比特的向量。它有效避免了碰撞,且易于硬件实现。
发明内容
本发明针对以上问题的提出,而研制一种基于计数型bloom filter的网络数据流统计方法。
一种基于计数型bloom filter的网络数据流统计方法,其特征在于,包括如下步骤:
1)配置计数型bloom filter统计前的参数,包括容错率、流总数、哈希函数个数以及计数器个数;
2)计数型bloom filter将每个数据包的五元组信息哈希到相应位置的计 数器中;
3)取相应计数器中的最小值作为该流流量。
本发明的步骤1)包括如下步骤:
A)设定统计错误率上界ε;
B)设定统计的流总数n;
C)设置计数器个数m,m取大于且临近nlog2e·log2(1/ε)的整数;
D)设置哈希函数个数k,k取大于且临近(m/n)ln2的整数。
本发明的步骤2)包括如下步骤:
E)流采集模块获取当前数据包,解析出数据包中的五元组信息发送至流统计模块;
F)流统计模块将五元组信息转发至计数型bloom filter;
G)计数型bloom filter使用k个哈希函数将五元组信息哈希到对应k个位置的计数器中,当哈希前k个计数器中所有值均不为0时,更新流,将该k个计数器值同时加1;当哈希前k个计数器中至少有一个值为0时,添加流,将对应k个计数器值加1且流统计模块中新增一条流记录。
本发明的步骤3)包括如下步骤:
H)当统计流的流总数大于预设流总数时,计数型bloom filter停止统计,取对应的k个流量统计计数器中的最小值作为每个流的流量。
本发明的G)步骤还包括如下步骤:
当统计值超过计数器位数时,建立扩展计数器,扩展计数器存储低位,计数型bloom filter的计数器存储高位。
实施本发明具有以下有益效果:在预设流个数的情况下,通过特有的参数设置方案使用易于硬件实现的计数型bloom filter实现流量以及流量的快速统计,在高效哈希置位的同时通过扩展计数器防止计数型bloom filter的计数器溢出,能满足高速网络中一般情况下的流统计以及五元组信息快速存储。
附图说明
图1是本发明的系统结构图;
图2是本发明的方法流程图;
图3是本发明的更新流的示意图;
图4是本发明的添加流的示意图;
图5是停止统计控制指令示意图;
图6是防溢出添加计数器示意图。
具体实施方式
本发明提供一种基于计数型bloom filter的网络数据流统计方法,下面结合附图对本发明的技术方案进行说明。
图1是本发明的系统结构图;图2是本发明的方法流程图;图3是本发明的更新流的示意图;图4是本发明的添加流的示意图;图5是停止统计控制指令示意图;图6是防溢出添加计数器示意图。
如图1和图2所示,网络数据流统计方法为:
配置计数型bloom filter统计前的参数,包括容错率、流总数、哈希函数个数以及计数器个数,将计数器清零;即对计数型bloom filter进行初始化,在容许错误率的前提下完成计数器和哈希函数个数的确定。
网络数据包(数据包队列)传输时,流采集模块获取当前数据包,解析出数据包中的五元组信息并发送至流统计模块;所述五元组信息为源IP、源端口、目的IP、目的端口和协议类型。
流统计模块将五元组信息转发至计数型bloom filter,控制bloom filter将五元组信息分类后统计计数,并查找计数结果。
计数型bloom filter使用k个哈希函数将五元组信息哈希到对应k个位置的计数器中。若哈希前k个计数器中所有值均不为0,则说明计数器中已统计过该数据包所属的流,则更新流,即该k个计数器值同时加1;若哈希前k个计数器中至少有一个值为0,则说明计数器还没统计过该包所属的流,则添加流,即对应k个计数器值加1且流统计模块中新增一条流记录。计数型bloom filter将统计流量反馈给流统计模块。
信息存储模块存储数据包总数、流数、五元组信息以及对应的流量。
当统计流的流总数大于预设流总数时,流统计模块向流采集模块以及bloom filter发送终止指令计数型bloom filter停止统计,取流量统计计数器中的最小值作为每个流的流量。
对计数型bloom filter进行初始化,在容许错误率的前提下完成计数器和哈希函数个数的确定的方式如下:
A)根据统计需要,设定统计错误率上界ε;
B)设定统计的流总数n;
C)设置计数器个数m,m取大于且临近nlog2e·log2(1/ε)的整数;
D)设置哈希函数个数k,k取大于且临近(m/n)ln2的整数。
m取大于且临近nlog2e·log2(1/ε)的整数的原因如下:布鲁姆过滤器中,每次赋值使某位为1的概率为1/m,为0的概率为1-1/m.每添加一个新元素都要执行k次哈希,添加完n个所有元素后,某位仍为0的概率为P0=(1-1/m)kn.误称率为:Pe=(1-P0)k,对k求导等于0后k=ln2(m/n),得到Pe最小值,k取整为时错误率最小。此时Pe=2-(m/n)ln2,Pe≤ε,有m≥nlog2e·log2(1/ε),这里m取大于且临近nlog2e·log2(1/ε)的整数,才能保证预期正确率。
k取大于且临近(m/n)ln2的整数的原因:为使误称率Pe取得最小值,k取大于且临近ln2(m/n)的整数。
计数型bloom filter的工作流程如下:获取五元组信息,使用k个哈希函数对五元组信息进行哈希运算,运算后得到k个相应的地址,将在bloom filter对应的k个位置将相应计数器值加1。
当流统计模块统计的流个数大于n时,流统计模块向计数型bloom filter发送停止工作控制指令。计数型bloom filter停止统计并记录统计时间,结果归并后存储,计数型bloom filter中各计数器清零(如图5所示)。若有新的测量需求,则等待哈希函数个数、固定流个数、计数器个数等参数的重新配置,亦即重建一个新的bloom filter,待重建完成后进行下一次测量。若没有新的测量需求,则只需将bloom filter各计数器清零即可。当流统计模块中流个数的统计值大于n时,若各模块继续工作,若不停止则计数型bloom filter中的误称率在计数器个数m不变的情况下会不断增大,这样就不符合bloom filter初始化时对于错误率的要求。
图6是防溢出添加计数器示意图,如图所示。当统计值超过计数器位数时,计数型bloom filter的计数器(图中示为C1)溢出,则建立扩展计数器(图中示为C2),计数溢出时,扩展计数器C2存储高位,计数型bloom filter的计数器C1存储低位。计数型bloom filter的计数器C1的计数器位数根据需要确定,作为有效方式,可以由历史统计规律确定。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种基于计数型bloom filter的网络数据流统计方法,其特征在于,包括如下步骤:
1)配置计数型bloom filter统计前的参数,包括容错率、流总数、哈希函数个数以及计数器个数,其中所述配置参数包括如下:
设定统计错误率上界ε;
设定统计的流总数n;
设置计数器个数m,m取大于且临近nlog2e·log2(1/ε)的整数;
设置哈希函数个数k,k取大于且临近(m/n)ln2的整数;
2)计数型bloom filter将每个数据包的五元组信息哈希到相应位置的计数器中:包括如下步骤:
流采集模块获取当前数据包,解析出数据包中的五元组信息发送至流统计模块;
流统计模块将五元组信息转发至计数型bloom filter;
计数型bloom filter使用1)中设置的k个哈希函数将五元组信息哈希到该计数型bloom filter的计数器中对应k个位置上,当哈希前k个位置对应的计数器中所有值均不为0时,更新流,将该k个计数器值同时加1;当哈希前k个位置对应的计数器中至少有一个值为0时,添加流,将对应的k个计数器值加1且流统计模块中新增一条流记录;
3)取上述k个计数器中的最小值作为每个数据包所属的流的流量。
2.根据权利要求1所述的基于计数型bloom filter的网络数据流统计方法,其特征在于,步骤3)包括如下步骤:
当流统计模块统计的流个数大于设定统计的流总数n时,计数型bloomfilter停止统计,取流量统计计数器中的最小值作为每个数据包所属的流的流量。
3.根据权利要求1所述的基于计数型bloom filter的网络数据流统计方法,其特征在于,步骤2)还包括如下步骤:
当流统计模块的统计值超过计数器位数时,计数型bloom filter的计数器溢出,则建立扩展计数器,且计数溢出时,扩展计数器存储高位,计数型bloomfilter的计数器存储低位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210591020.1A CN103078754B (zh) | 2012-12-29 | 2012-12-29 | 一种基于计数型bloom filter的网络数据流统计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210591020.1A CN103078754B (zh) | 2012-12-29 | 2012-12-29 | 一种基于计数型bloom filter的网络数据流统计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103078754A CN103078754A (zh) | 2013-05-01 |
CN103078754B true CN103078754B (zh) | 2016-09-28 |
Family
ID=48155164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210591020.1A Expired - Fee Related CN103078754B (zh) | 2012-12-29 | 2012-12-29 | 一种基于计数型bloom filter的网络数据流统计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103078754B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103346901B (zh) * | 2013-06-07 | 2016-01-20 | 中国科学院信息工程研究所 | 一种面向数据流处理的元组跟踪方法及系统 |
CN103595569A (zh) * | 2013-11-15 | 2014-02-19 | 南京云川信息技术有限公司 | 一种网络管理系统中的告警信息入库的处理方法 |
CN104219110B (zh) * | 2014-09-25 | 2017-12-12 | 中国人民解放军信息工程大学 | 一种数据包抽样方法及装置 |
CN105187436B (zh) * | 2015-09-25 | 2019-03-08 | 中国航天科工集团第二研究院七〇六所 | 一种基于散列表的包过滤主机网络控制方法 |
CN111930923B (zh) * | 2020-07-02 | 2021-07-30 | 上海微亿智造科技有限公司 | 布隆过滤器系统及过滤方法 |
CN115460111B (zh) * | 2022-07-26 | 2023-07-25 | 西安电子科技大学 | 基于HINOC协议的Top-k流的统计方法及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1562337A1 (en) * | 2004-02-09 | 2005-08-10 | Alcatel | Filter based longest prefix match algorithm |
CN101359325A (zh) * | 2007-08-01 | 2009-02-04 | 北京启明星辰信息技术有限公司 | 一种快速内容分析的多关键词匹配方法 |
CN101459560A (zh) * | 2009-01-09 | 2009-06-17 | 中国人民解放军信息工程大学 | 长流的识别方法、数据流量的测量方法及其设备 |
-
2012
- 2012-12-29 CN CN201210591020.1A patent/CN103078754B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1562337A1 (en) * | 2004-02-09 | 2005-08-10 | Alcatel | Filter based longest prefix match algorithm |
CN101359325A (zh) * | 2007-08-01 | 2009-02-04 | 北京启明星辰信息技术有限公司 | 一种快速内容分析的多关键词匹配方法 |
CN101459560A (zh) * | 2009-01-09 | 2009-06-17 | 中国人民解放军信息工程大学 | 长流的识别方法、数据流量的测量方法及其设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103078754A (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103078754B (zh) | 一种基于计数型bloom filter的网络数据流统计方法 | |
JP7039685B2 (ja) | トラフィック測定方法、デバイス、およびシステム | |
Kandula et al. | The nature of data center traffic: measurements & analysis | |
CN102150394B (zh) | 确定发出最多数据流的主机的系统与方法 | |
US10097464B1 (en) | Sampling based on large flow detection for network visibility monitoring | |
US9979624B1 (en) | Large flow detection for network visibility monitoring | |
US10778588B1 (en) | Load balancing for multipath groups routed flows by re-associating routes to multipath groups | |
US10536360B1 (en) | Counters for large flow detection | |
Yang et al. | Sketchint: Empowering int with towersketch for per-flow per-switch measurement | |
US10469326B1 (en) | Discovering a computer network topology for an executing application | |
US10003515B1 (en) | Network visibility monitoring | |
CN109327401B (zh) | 一种sdn网络的流量调度方法与系统 | |
CN105407073A (zh) | 一种基于开放流OpenFlow协议的流表老化方法、设备和系统 | |
CN102811152A (zh) | 一种多主总线网络通讯实时交易数据交换实现方法 | |
Zeng et al. | A survey on sliding window sketch for network measurement | |
CN103947167B (zh) | 网络通信装置和传输帧的优先频带限制的方法 | |
CN112565102A (zh) | 一种负载均衡方法、装置、设备及介质 | |
CN104243348A (zh) | 一种数据处理方法和装置 | |
DE102020102981A1 (de) | Auswahl von Eingängen für Nachschlagoperationen | |
RU2584471C1 (ru) | УСТРОЙСТВО ДЛЯ ПРИЕМА И ПЕРЕДАЧИ ДАННЫХ С ВОЗМОЖНОСТЬЮ ОСУЩЕСТВЛЕНИЯ ВЗАИМОДЕЙСТВИЯ С OpenFlow КОНТРОЛЛЕРОМ | |
CN105281960A (zh) | 软件定义网络中流量项目的管理方法 | |
Turkovic et al. | Detecting heavy hitters in the data-plane | |
CN106789743A (zh) | 一种sdn数据传输设备的自适应带宽调节方法及装置 | |
CN107210969A (zh) | 一种基于软件定义网络的数据处理方法及相关设备 | |
Yang et al. | Rethinking the design of openflow switch counters |
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: 20160928 Termination date: 20181229 |