《负载自适应的网络数据流流量测量方法.pdf》由会员分享,可在线阅读,更多相关《负载自适应的网络数据流流量测量方法.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102833134 A (43)申请公布日 2012.12.19 C N 1 0 2 8 3 3 1 3 4 A *CN102833134A* (21)申请号 201210323629.0 (22)申请日 2012.09.04 H04L 12/26(2006.01) (71)申请人中国人民解放军理工大学 地址 210007 江苏省南京市南京御道街标营 2号32信箱 (72)发明人张进 黄清杉 赵文栋 吴泽民 彭来献 田畅 (74)专利代理机构南京苏高专利商标事务所 (普通合伙) 32204 代理人柏尚春 (54) 发明名称 负载自适应的网络数据流流量测量方法 (57)。
2、 摘要 本发明公开了一种负载自适应的网络数据流 流量测量方法,该方法包括:存储区组织的方法: 将整个存储区划分为若干个等长的块,每块又划 分为若干个等长的桶,每个桶设置一个桶负载计 数器,桶中存放有若干条数据流的流指纹和流量 计数器;流量值更新的方法:在测量周期开始时, 将所有的桶负载计数器、流指纹和流量计数器初 始化为0;然后,每到达一个数据包,根据其流标 识,计算其流指纹,进行指纹匹配;流量值查询的 方法:根据待查询的数据流的流标识,计算其流 指纹,进行指纹匹配,得到相应的流量计数器的 值,通过这三个步骤,完成数据流的流量测量过 程,其新颖之处是采用了动态的数据流指纹收缩 机制,在负载较轻。
3、时,尽可能扩大数据流指纹的长 度,从而降低测量误差。 (51)Int.Cl. 权利要求书1页 说明书4页 附图4页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 4 页 附图 4 页 1/1页 2 1.一种负载自适应的网络数据流流量测量方法,其特征在于该方法包括存储区组织、 流量值更新和流量值查询这三个步骤; 存储区组织的方法是:将整个存储区划分为若干个等长的块,每块又划分为若干个 等长的桶,每个桶设置一个桶负载计数器,桶中存放有若干条数据流的流指纹和流量计数 器; 流量值更新的方法是:在测量周期开始时,将所有的桶负载计数器、流指纹和流量计数 器初始化。
4、为0;然后,每到达一个数据包,根据其流标识,计算其流指纹,进行指纹匹配,若 匹配成功,则将相应的流量计数器增加1,若匹配失败,则将该数据流插入到存储区中,并将 该数据流所插入的桶的桶负载计数器增加1; 流量值查询的方法是:根据待查询的数据流的流标识,计算其流指纹,进行指纹匹配, 得到相应的流量计数器的值,通过存储区组织、流量值更新和流量值查询这三个步骤,完成 数据流的流量测量过程。 2.按照权利要求1所述的负载自适应的网络数据流流量测量方法,其特征在于计算流 指纹通过哈希函数实现,哈希函数的输入为数据流的流标识,输出为流指纹;输出流指纹的 长度为每个桶中所能够存放的最长流指纹的长度。 3.按照。
5、权利要求1或2所述的负载自适应的网络数据流流量测量方法,其特征在于将 数据流插入到存储区中的具体步骤是如下:首先,根据该数据流的流标识,计算其流指纹; 然后,假设存储区划分为d个块,则通过d次哈希运算,分别在每个块中选择一个桶,并从中 选择一个负载最轻的桶作为插入该数据流的目标桶;接着,根据目标桶的负载情况,为新插 入的数据流分配指纹空间,若桶负载为a,桶的最大指纹空间为b比特,则为新插入的数据 流分配指纹空间为b/(a+1)比特;最后,设置该数据流的流量计数器为1;其中a 、b、d均为 正整数。 4.按照权利要求1、2所述的负载自适应的网络数据流流量测量方法,其特征在于指纹 匹配的具体步骤是。
6、如下:首先,根据该数据流的流标识,计算其流指纹;然后,假设存储区 划分为d个块,则通过d次哈希运算,确定该数据流可能插入的所有d个桶;接着,依次在各 个桶中查找流指纹,判断是否存在和当前数据流指纹匹配的流指纹,若有,则匹配成功,否 则,则匹配失败。 5.根据按照权利要求4所述的负载自适应的网络数据流流量测量方法,其特征在于在 桶中查找流指纹的具体步骤如下:首先,根据桶负载情况,确定合适的指纹匹配长度,若桶 负载为a,桶的最大指纹空间为b,则取待查找的流指纹的前b/a比特作为比对字段;然后, 将待查找的流指纹的比对字段和桶中的流指纹进行逐个比对,若发现一致的,则查找成功。 权 利 要 求 书CN。
7、 102833134 A 1/4页 3 负载自适应的网络数据流流量测量方法 技术领域 0001 本发明是一种具有良好负载适应性的数据流流量测量方法,属于计算机网络技术 领域。 背景技术 0002 计费管理、业务控制、网络异常检测以及网络安全监测等网络管理工作要求对网 络流量进行统计和分析。随着网络数据率的飞速提升,若直接对原始的网络流量进行逐包 的分析处理,又因其代价极高而不易实施;而数据流级的网络流量在所包含的信息量和所 需处理的数据量之间达到了良好平衡。数据流指的是一组具有相同流标识,并且相邻两者 的到达时间间隔不超过某一上限的一组数据包的集合。不同的应用可以定义不同的流标 识,一般采用熟。
8、知的五元组()作为流标识。对各条数据流的流标识、到达时间、结束时间以及流量大小等信息进行 记录,这一过程称为流测量。当前,流测量已经被Cisco、Juniper等主流的网络设备制造商 所支持;IETF专门成立了IPFIX工作组,进行流测量相关标准的制定。 0003 如何准确测量各条数据流的流量,这是流测量的难点。在高速骨干网链路中,由于 报文到达间隔极短,且并发数据流的数目巨大,完全准确的测量各条数据流的流量,其代价 极高。相对而言,近似测量则具有更好的性能代价比。近似测量的结果存在一定的误差。在 实现测量算法时,通常根据最大负载为测量算法分配存储资源。然而,对实测网络流量的分 析结果表明,流。
9、量负载在不同的测量周期内的变化较大,并且在大部分时间内,负载均小于 最大值。现有的近似测量算法,主要有计数型布鲁姆过滤器1(Counting Bloom Filter, CBF)和d-left计数型布鲁姆过滤器2(d-left Counting Bloom Filter,dlCBF),对于 负载适应性问题缺乏考虑,当实际负载小于最大值时,均不能够充分利用已分配资源,尽可 能的降低测量误差。 0004 参考文献 0005 1L.Fan,P.Cao,J.Almeida,and A.Z.Broder.Summary Cache:a Scalable Wide-area Web Cache Shari。
10、ng ProtocolJ.IEEE/ACM Transactions on Networking,2000,8(3):281-293. 0006 2A.Pagh,R.Pagh,and S.Rao.An Optimal Bloom Filter ReplacementC. In:Proc.of the Sixteenth Annual ACM-SIAM Workshop on Discrete Algorithms,Maryl and,2005,823-829. 发明内容 0007 技术问题:针对现有的数据流流量的近似测量方法负载适应性差的问题,本发明 给出了一种具有良好负载适应性的负载自适应的。
11、网络数据流流量测量方法。在满负载时, 本方法的测量误差和现有方法一致;在非满负载状态下,本方法可以充分利用已分配资源, 有效的降低测量误差。 说 明 书CN 102833134 A 2/4页 4 0008 技术方案:现有的数据流流量的近似测量方法主要是基于CBF和dlCBF实现。已 有的研究成果表明,dlCBF的空间效率优于CBF。在dlCBF中,测量误差的大小主要取决 于元素指纹的长短。dlCBF采用固定长度的元素指纹,因而dlCBF的测量误差对于网络 流量负载不敏感。本发明给出了一种元素指纹折半收缩的d-left计数型布鲁姆过滤器 (Binary-Shrinking d-left Coun。
12、ting Bloom Filter,BSdlCBF)。在满负载时,BSdlCBF的 测量误差和dlCBF一致;在轻负载时,BSdlCBF能充分利用存储空间,扩大元素指纹的长度, 从而比dlCBF能更有效的降低测量误差。 0009 本发明的负载自适应的网络数据流流量测量方法包括存储区组织、流量值更新和 流量值查询这三个步骤; 0010 存储区组织的方法是:将整个存储区划分为若干个等长的块,每块又划分为若干 个等长的桶,每个桶设置一个桶负载计数器,桶中存放有若干条数据流的流指纹和流量计 数器; 0011 流量值更新的方法是:在测量周期开始时,将所有的桶负载计数器、流指纹和流 量计数器初始化为0;然。
13、后,每到达一个数据包,根据其流标识,计算其流指纹,进行指纹匹 配,若匹配成功,则将相应的流量计数器增加1,若匹配失败,则将该数据流插入到存储区 中,并将该数据流所插入的桶的桶负载计数器增加1; 0012 流量值查询的方法是:根据待查询的数据流的流标识,计算其流指纹,进行指纹匹 配,得到相应的流量计数器的值,通过存储区组织、流量值更新和流量值查询这三个步骤, 完成数据流的流量测量过程。 0013 计算流指纹通过哈希函数实现,哈希函数的输入为数据流的流标识,输出为流指 纹;输出流指纹的长度为每个桶中所能够存放的最长流指纹的长度。 0014 将数据流插入到存储区中的具体步骤是如下:首先,根据该数据流。
14、的流标识,计算 其流指纹;然后,假设存储区划分为d个块,则通过d次哈希运算,分别在每个块中选择一个 桶,并从中选择一个负载最轻的桶作为插入该数据流的目标桶;接着,根据目标桶的负载情 况,为新插入的数据流分配指纹空间,若桶负载为a,桶的最大指纹空间为b比特,则为新插 入的数据流分配指纹空间为b/(a+1)比特;最后,设置该数据流的流量计数器为1;其中a、 b、d均为正整数。 0015 指纹匹配的具体步骤是如下:首先,根据该数据流的流标识,计算其流指纹;然 后,假设存储区划分为d个块,则通过d次哈希运算,确定该数据流可能插入的所有d个桶; 接着,依次在各个桶中查找流指纹,判断是否存在和当前数据流指。
15、纹匹配的流指纹,若有, 则匹配成功,否则,则匹配失败。 0016 在桶中查找流指纹的具体步骤如下:首先,根据桶负载情况,确定合适的指纹匹配 长度,若桶负载为a,桶的最大指纹空间为b,则取待查找的流指纹的前b/a比特作为比对字 段;然后,将待查找的流指纹的比对字段和桶中的流指纹进行逐个比对,若发现一致的,则 查找成功。 0017 有益效果:与现有的测量方法相比,在满负载时,本发明所提出的方法的测量误差 和现有方法一致;但是,在轻负载时,本发明所提出的方法的测量误差明显低于现有方法。 图1为负载率分别为2.5/3、2/3、1.5/3以及1/3时,dlCBF和BSdlCBF的测量错误概率的 比较结果。
16、。图2为采用真实网络流量数据时,dlCBF和BSdlCBF的测量错误概率的比较结 说 明 书CN 102833134 A 3/4页 5 果。所采用的流量数据的各个周期内数据流的数目如图3所示。由图1和图2可见,在满 负载时,dlCBF和BSdlCBF的测量错误概率较为接近;但是,随着负载率的下降,BSdlCBF的 测量错误概率的下降速度明显快于dlCBF。在轻负载时,BSdlCBF的测量错误概率比dlCBF 低数个数量级。可见,与现有的流量测量方法相比,本发明所提出的流量测量方法在负载适 应性方面具有明显的优势。 附图说明 0018 图1、不同负载率下,dlCBF和BSdlCBF的测量错误概率。
17、比较, 0019 图2、采用真实网络流量时dlCBF和BSdlCBF的测量错误概率比较, 0020 图3、真实网络流量中各个测量周期内数据流的数目, 0021 图4、dlCBF的结构示意图, 0022 图5、不同桶负载下,BSdlCBF和dlCBF的桶空间利用情况对比, 0023 图6、BSdlCBF的查询过程, 0024 图7、BSdlCBF的更新过程。 具体实施方式 0025 下面分别从BSdlCBF的组成结构、流量更新过程和流量查询过程这三个方面,详 细说明本发明所提出的流量测量方法的具体实施方式。 0026 1)BSdlCBF的组成结构 0027 为了说明BSdlCBF的组成结构,首先。
18、对dlCBF的结构作一描述。dlCBF是在 d-left哈希表的基础上进行设计的。d-left哈希表将存储区等分为d个块,每块又划分 为若干个相同容量的桶。不妨将各个块看作桶向量(Bucket Vector),从左向右,依次记作 BV 1 ,BV 2 ,BV d 。例如,图4中的d-left哈希表的存储区划分为4个块,每块5个桶,每桶 深度为4。当插入元素e 时,由d个独立的哈希函数计算元素e在各个块中的桶地址,分别 记作h 1 (e),h 2 (e),h d (e)。然后,将e插入到BV 1 (h 1 (e),BV 2 (h 2 (e),BV d (h d (e)中负 载最轻的那个桶中。如果。
19、存在多个负载最轻的桶,则选择最左边那个。例如,图4中,将元 素e插入到桶BV 1 4中。遵循上述选择策略,可使得各个桶的负载较为平均,从而各个桶在 平均负载的基础上,再增加一个较小的额外桶空间,即可保证桶的溢出概率极低,因而获得 较高的空间效率。采用d-left哈希函数构建dlCBF时,在每个桶单元中存放数据流的指纹 和流量计数器,如图4所示。每到达一个报文P时,首先取得其流标识f,计算其流指纹,并 将其指纹与桶BV 1 (h 1 (f),BV 2 (h 2 (f),BV d (h d (f)中已有指纹进行匹配。如果匹配上,则 将相应的桶单元的流量计数器增加1,若有多个桶单元同时匹配上,则随机。
20、选择一个单元, 将其流量计数器增加1;如果没有匹配上,则按照上文说明的d-left哈希函数的插入选择 策略,将数据流f插入到BV 1 (h 1 (f),BV 2 (h 2 (f),BV d (h d (f)中负载最轻的、最左边的桶 中去,并将其流量计数器设为1。数据流指纹的长度影响着dlCBF的查询错误概率,指纹长 度越长,则出现错误匹配的概率越低。 0028 BSdlCBF和dlCBF类似,同样基于d-left哈希表进行设计。与dlCBF不同的是, BSdlCBF采用变长的流指纹。当负载较轻时,BSdlCBF采用较长的流指纹;随着负载率的增 加,元素指纹的长度逐渐缩短。为了实现的方便,BSd。
21、lCBF中元素指纹采用折半收缩的策略, 说 明 书CN 102833134 A 4/4页 6 如图5所示。需要指出的是,在BSdlCBF中,插入到各个桶中的数据流指纹和流量计数器的 起始位置和dlCBF不同。BSdlCBF中,每个桶均设置有负载计数器,以记录当前已经插入到 桶中的数据流的数目。 0029 2)流量查询过程 0030 BSdlCBF查询操作的处理流程如图6所示。首先,对于所到达的数据包p,提取其 流标识F;然后,对流标识F作d个并行的哈希运算,得到可能存放有F的流量计数的d个 桶的桶地址A 1 A d ,同时,还需进行一次哈希运算,以根据流标识F计算流指纹fp;随后,读 取桶单元。
22、B(A 1 )B(A d )的内容以及其桶负载计数,并将fp与桶B(A 1 )B(A d )中的流指纹 进行匹配。若匹配命中,则返回对应的流量计数C(F);若匹配没有命中,则返回0。 0031 设单位指纹长度为l比特,桶深为b,要求b恰好为2的正整数次幂。对于每条数 据流f,BSdlCBF生成b个l比特的元素指纹F f 1:b。设在查询时,桶负载为i,则在进行 数据流指纹匹配时,只需取F f 1:b的前L(i)个单位指纹F f 1:L(i)作为匹配对象。L(i) 由下列式子计算获得 0032 0033 此时,桶单元中的流指纹每L(i)个单位指纹作为一组,和F f 1:L(i)进行匹配。 003。
23、4 3)流量更新过程 0035 BSdlCBF更新操作的处理流程如图7所示。更新操作时,首先需要进行一次查询操 作,以取得待更新的数据流的当前流量计数值。若查询结果C(F)为0,则表明数据流F的流 量计数尚未被插入到BSdlCBF中;此时需要将数据流插入到BSdlCBF中,设置C(F)=1,并更 新桶负载计数器。若查询结果C(F)0,则仅仅需要更新C(F)即可。 0036 设数据流F的流量计数器可能存放于B(A 1 )B(A d )中。在插入数据流F时,将F 放置于B(A 1 )B(A d )中负载最轻的那个桶中,不妨设为B(A k )。设F为插入到B(A k )中的 第i(1ib)条数据流,则数据流F的流指纹和流量计数器的起始地址由下列式子给出 0037 0038 从A(i)开始L(i)个单元中存放数据流F的流指纹。 说 明 书CN 102833134 A 1/4页 7 图1 图2 说 明 书 附 图CN 102833134 A 2/4页 8 图3 图4 说 明 书 附 图CN 102833134 A 3/4页 9 图5 图6 说 明 书 附 图CN 102833134 A 4/4页 10 图7 说 明 书 附 图CN 102833134 A 10 。