一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于小流过滤的活跃大流精确检测架构及方法与流程

2022-03-19 22:27:47 来源:中国专利 TAG:


1.本发明涉及网络测量领域,具体涉及一种基于小流过滤的活跃大流精确检测架构及方法。


背景技术:

2.随着世界互联程度的提高,网络数据流量呈现爆炸式的指数级增长,使得网络管理的难度大大增加。于是,在云和数据中心的现代网络管理中,网络测量是必不可少的。管理员通过确定各种流量统计数据,比如活跃大流来推断关键行为,并使用测量的流量统计数据来形成诸如流量工程、性能诊断以及入侵防御等管理操作的基础。根据活跃大流提取的技术需求,当前大流提取技术主要为数据流方法。目前,数据流方法能够保证不错的测量准确性,但是花费的资源开销较大。本发明采用先对小流过滤再对网络活跃大流进行检测的思想,但该思想存在以下两个问题。
3.(1)小流过滤的失效性问题
4.当前传统小流过滤技术对网络数据流量进行过滤的方法容易导致过滤器发生失效问题。这是因为随着数据流量的不断增加,过滤器中的大部分计数器很快就会达到存满的状态,此时即使是一条小流,也不会被过滤掉。这使得过滤层会发生失效的问题,进而严重影响后续活跃大流检测的精度。因此解决小流过滤的失效性问题是活跃大流检测中的一个关键问题。
5.(2)活跃大流检测的精度问题
6.当前活跃大流检测技术主要是基于sketch等数据结构,但是由于其存在哈希冲突,当多条流映射到同一个位置时,导致小流可将活跃大流踢除,这就可能导致小流被误判为活跃大流,从而降低活跃大流检测的精度。因此如何精确提取活跃大流是一个决定性问题。
7.对比文件:cn111262756a公开了一种高速网络大象流精确测量方法及架构,基于sketch的过滤器,能够对数据包中的小流进行过滤,以降低计算和空间开销,提高大流测量的准确率;基于cuckoo哈希的提取器,能够降低大流被踢除的概率,既节省了存储资源又提高了大流测量的准确率。该对比文件方案基于sketch的过滤器的设计存在过滤失效问题,基于cuckoo哈希的提取器又存在着准确率不高的问题。


技术实现要素:

8.本发明要解决的技术问题是设计一种基于sketch,且能按周期进行更新的数据结构作为过滤层。首先,通过过滤网络流量中的大部分小流,避免过滤器因为失效无法有效处理网络流量中的小流。然后,基于hopscotch hashing算法设计了一种多候选位置的活跃大流检测结构,通过lru策略筛除掉不活跃的流,共同组成一种基于小流过滤的活跃大流精确检测架构及方法。
9.为了解决上述技术问题,本发明采用以下技术方案:
10.本发明提供一种基于小流过滤的活跃大流精确检测架构及方法,包括:
11.小流过滤层,通过过滤层将大量的小流过滤,并且用按周期进行更新的方法定期对过滤层进行清理,使得在后续的提取活跃大流检测过程中降低小流带来的哈希冲突,提高活跃大流检测的精度;
12.活跃大流检测层,基于hopscotch hashing算法设计了一种活跃大流检测结构,然后通过一定范围的线性探测使得每条传入流可以映射到多个候选位置,进而显著降低网络流之间的哈希冲突率,通过lru策略筛除掉不活跃的流,从而提高活跃大流检测的精度;
13.所述小流过滤层,用于小流过滤的过滤层,通过设置阈值来过滤小流,其中计数器counter表示映射到当前位置流的包数量,标志位值flag表示对应计数器值在上一周期时候达到阈值;
14.所述活跃大流检测层,基于分段哈希的活跃大流检测层,利用分段哈希算法存储大流,其中存储的内容字段是签名值sig,计数器值count和时间clock。签名值sig表示存储流的信息,计数器值count表示存储流的包数量,时间clock表示存储流的可能剩余时间。
15.本发明方法还提供一种基于上述架构的方法,包括:
16.所述小流过滤层首先在插入过程中,先判断对应的最小标志位值是否达到阈值,若未达到,此时再判断对应最小的计数器值是否达到阈值,若也未达到,则只更新最小的计数器值;若两者中有其一达到,在更新最小的计数器值的同时该流会放行到活跃大流检测层。当传入的包数量到达一定的个数时,标志本周期的结束,这时根据计数器值更新对应的标志位值,并将计数器的值全部清零,此时进入下一个。这样做可以定期清理过滤器且对活跃大流不产生影响;
17.所述活跃大流检测层首先通过哈希函数计算得到哈希值,然后通过哈希值对活跃大流检测器进行一定范围的线性探测,线性探测会对应到哈希表中的数个哈希桶,每个桶包含多个槽。在插入过程中先检查所有哈希桶,查看是否有一个槽包含此流。如果存在此流,则更新对应槽的计数器值和时间,插入完成;如果不存在此流,若哈希槽中有一个是空的,则将其插入到这个空的哈希槽中,插入完成。在踢除机制上,若槽中存在时间为0的流,则用此流将其替换。
18.进一步的,所述高效方法包括如下操作:
19.1、流过滤方法;
20.通过小流过滤器对每条传入流进行过滤,若达到阈值则放行至活跃大流检测器,若未达到阈值则直接丢弃,其中每条流均只存储包数量;
21.2、流检测方法;
22.通过活跃大流检测器对传入流进行存储,根据存储流的流标识进行判断,该传入流是否已经被大流存储器存储,其中每条流均存储流签名,包数量,时间。
23.3、流替换方法;
24.当传入流的映射位置已满,且满足替换条件,传入流会对已存储的哈希冲突流进行替换,其中每条流均存储流签名,包数量,时间。
25.4、流输出方法;
26.活跃大流检测器则并行遍历所有哈希桶中的槽,找出时间大于时间阈值,并且包数量大于指定阈值的流,依次输出流的id、包数量。
27.本发明的有益效果在于:
28.1、本专利提出了一种基于周期更新的小流过滤方法,设计了支持周期更新的紧凑型sketch作为过滤器,通过过滤网络中的大量小流,可以显著降低资源开销,同时用周期更新的思想清理过滤器的计数器,避免过滤器因为失效无法有效处理网络中的小流,最后也降低了小流发生哈希冲突被误判成活跃大流的概率,显著提高活跃大流检测的精度。
29.2、本专利提出了一种基于hopscotch hashing算法的活跃大流检测方法。通过一定范围的线性探测,使每条传入流都有数个候选哈希桶,每一个桶包含多个槽,并能存入其中任意一个哈希桶的空槽中,极大降低了哈希冲突率。当所有候选哈希桶已满时,会通过lru策略替换掉不活跃的流,这样可以使得每次尽可能踢除不活跃流,而使活跃大流保存在哈希桶中,因此提高了活跃大流检测的精度。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1是本发明方法一种基于小流过滤的活跃大流精确检测架构的原理图。
32.图2是本发明方法中的小流过滤器结构图。
33.图3是本发明方法中活跃大流检测器结构图。
34.图4是本发明方法中流过滤方法流程图。
35.图5是本发明方法中流检测方法流程图。
36.图6是本发明方法中流替换方法流程图。
37.图7是本发明方法中流输出方法流程图。
具体实施方式
38.为了更好地阐述该发明的内容,下面通过具体实施例对本发明进一步的验证。特在此说明,实施例只是为更直接地描述本发明,它们只是本发明的一部分,不能对本发明构成任何限制。
39.如图1所示,本发明实施例提供一种基于小流过滤的活跃大流精确检测架构及方法,包括:
40.所述小流过滤层首先在插入过程中,先判断对应的最小标志位值是否达到阈值,若未达到,此时再判断对应最小的计数器值是否达到阈值,若也未达到,则只更新最小的计数器值;若两者中有其一达到,在更新最小的计数器值的同时该流会放行到活跃大流检测层。当传入的包数量到达一定的个数时,标志周期一的结束,这时根据计数器值更新对应的标志位值,并将计数器的值全部清零,此时进入周期二。这样做可以定期清理过滤器且对活跃大流的影响微乎其微。如图2所示;
41.所述活跃大流检测层首先通过哈希函数计算得到哈希值,然后通过哈希值对活跃大流检测器进行一定范围的线性探测,线性探测会对应到哈希表中的数个哈希桶,每个桶包含4个槽。在插入过程中先检查所有哈希桶,查看是否有一个槽包含此流。如果存在此流,
则更新对应槽的计数器值和时间,插入完成;如果不存在此流,若哈希槽中有一个是空的,则将其插入到这个空的哈希槽中,插入完成。在踢除机制上,若槽中存在时间为0的流,则用此流将其替换。如图3所示。
42.当交换机接收到某个数据包p时,首先解析其首部重要字段,如:源/目的ip地址、源/目的mac地址、源/目的端口号、ip协议类型等,进而提取流关键字fid;之后,数据包进入第一层,即小流过滤器对小流进行过滤;最后,通过过滤器的数据包进入第二层,即活跃大流检测器完成流量信息统计;
43.本实施例还提供一种基于上述架构的方法,包括以下步骤:
44.1、流过滤方法;
45.如图3所示,以传入包数量达到预定阈值为标志,当接收到某个数据包p时,先通过过滤层对数据包进行相关处理;
46.判断flag
min
是否等于1,若等于1,使counter
min
自加1的同时,该流进入流检测过程;若反之,进一步判断counter
min
是否达到阈值,若达到,该流进入流检测过程;若没达到,将counter
min
自增1;
47.判断此时的传入包数量是否达到阈值,若没有达到,操作结束;若达到,则根据计数器值counteri更新对应的标志位值,若计数器值counteri达到阈值,则对应的标志位值flagi为1。否则,标志位值flagi为0,之后将所有计数器值counteri重置为0,操作结束。
48.2、流检测方法;
49.首先,解析数据包首部重要字段,提取流关键字fid;之后,利用哈希函数将流关键字fid生成连接签名值sig,再通过分段哈希函数hash计算出32位的哈希值,并均分为n段,每段对应w个哈希表上的一个位置;
50.首先将所有槽内的clock值减1,并行查找n个候选哈希桶,当哈希桶中存在该流(bj[indexj].sig==sig),将该流的计数器count加1,生存时间clock重置为最大值,流检测过程结束;
[0051]
当哈希桶不存在该流且其对应位置是空时(bj[indexj][i].sig==0),将连接签名值,计数器值,最大时间clock(sig,1,clock)写入空槽,流检测过程结束;
[0052]
当哈希桶中都有流且不是该流时,新建待替换缓存项item,进入流替换过程。
[0053]
3、流替换方法;
[0054]
首先,输入待替换缓存项item的流关键字fid和连接签名值sig;
[0055]
计算出待缓存项item的n个候选哈希桶位置bj[indexj],然后,取出所有候选桶中的时间clock,比较找出时间最小的值c
min
及其对应的槽位置(bj[indexj][i]),判断c
min
是否小于规定的生存时间;
[0056]
若小于,将该槽的流信息清空后,将待缓存项item中的流信息写入该哈希桶(sig,1,clock),操作结束。
[0057]
若未达到,则删除待缓存替换项item,操作结束。
[0058]
4、流输出方法;
[0059]
首先,活跃大流检测器并行遍历所有哈希桶中的槽,然后从大到小依次输出所有流的id、包数量和时间,操作结束。
[0060]
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所述技术领
域的技术人员可以所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献