一种基于小流过滤的高精度大象流识别架构制造技术

技术编号:31706824 阅读:24 留言:0更新日期:2022-01-01 11:09
本发明专利技术公开了一种基于小流过滤的高精度大象流识别架构,包括:金字塔过滤器,用于过滤网络数据流中的老鼠流,并初步记录大象流的包数量,在解决传统过滤器对老鼠流过滤失效问题的同时,为哈希表中大象流的驱逐与纳入操作提供关键信息,降低老鼠流被误认为是大象流的可能;哈希链表,用于精确存储大象流的信息以准确统计大象流的数据报数量,并采用可扩充的链表以适应网络中大象流数量的增长;所述哈希链表采用重定位的策略,在当前映射的哈希位置不可再存储时,重定位到备选哈希位置,为大象流提供多个候选哈希位置。同时,所述哈希链表为降低查找长度,只有在特定条件下才允许链表的扩充,并限制重定位次数;本发明专利技术采用先过滤老鼠流而后精确监控大象流的策略,减少存储资源的开销,并考虑了如何精确替换最小流,提高了大象流的识别精度。大象流的识别精度。大象流的识别精度。

【技术实现步骤摘要】
一种基于小流过滤的高精度大象流识别架构


[0001]本专利技术涉及网络数据流中大象流的识别,具体涉及一种基于小流过滤的高精度大象流识别架构。
[0002]
技术介绍

[0003]网络测量中的大象流(Elephant Flows)识别用于识别网络数据流中流大小超过用户预先设定一个阈值的流,其中流大小通常定义为属于流的数据包数量。根据以往真实数据集和文献的分析,数据流中的流大小通常是高度倾斜的,即服从重尾分布。换句话说,大多数流是老鼠流,即流所属的数据包数量较少,而少部分数流是大象流,即流所属的数据包数量较多。因此,识别网络流量中的大象流对网络的管理和调度起着非常重要的作用。同时,网络设备的大规模部署和网络链路容量的急剧提升造成大象流识别方法无法同时满足低内存开销和高精度的需求,面临着技术瓶颈。
[0004]现有大象流测量方法主要是基于sketch方法,将到达的数据包映射到多个计数器向量上记录流的数据包数量。其中包括全部计数和部分计数两种策略。全部计数是记录所有流的包数量;部分计数则通过只记录比较重要的流的包数量,例如只记录大象流的数据包数量。其次,基于计数器方法的大象流测量方案则是通过维护一个哈希表以跟踪统计大象流的包数量,且这些方法之间区别在于哈希表中流的纳入与驱逐。最后,基于过滤思想的方法则是采用过滤的思想,以过滤器过滤网络流量中的老鼠流,再对大象流追踪精确统计其包数量;或者,通过过滤器预先识别提取大象流,然后在将其余流存储在计数器向量中。
[0005]但现有的大象流测量方法会存在以下问题:1、 流大小估计精度问题使用多维计数器向量统计流的数据包数量虽然可以快速汇总所有流的,但由于存在哈希冲突且未记录流的标识符信息,导致映射到同一计数器的不同流的数据包被认为是属于同一条流的数据包,从而造成估计误差,且这种过渡估计误差难以被消除。基于计数器的大象流测量方法虽然记录流的标识符信息,但由于在流的驱逐与纳入的过程中,难免会将一条老鼠流误认为大象流,并错误的将老鼠流报告为大象流。
[0006]2、 存储资源开销问题基于sketch的大象流识别方法虽然在速度上具有一定优势,但为了避免因哈希冲突而造成的估计误差,sketch必须使用多个计数器向量,多次映射到每个计数器向量上的某一个计数器,并取其中的最小值作为估计值。同时,数据流的大小服从重尾分布,为了计数器不发生溢出,不管是记录老鼠流或是大象流的计数器使用足够多的比特位。因此,sketch为了保证计数的精确性和安全性而无法减少存储空间的开销。
[0007]3、 过滤器失效问题基于过滤思想的大象流识别方法采取一种抓大放小的策略,即以放弃老鼠流的信息作为代价换取宝贵的存储资源以跟踪统计大象流的数据包数量信息。具体通过一个老鼠
流的过滤器以过滤网络数据流中的老鼠流,然后在缓存中精确存储大象流的流标识符信息,以进行准确的数据包计数。其中过滤器基于sketch技术实现,并使用小型计数器组成计数器向量。在流映射到的每个计数器向量上的计数器都发生溢出时,即达到预先设定的阈值,则认为该流可以通过过滤器,以进行精确统计包数量。但是,过滤器在经过一段时间工作后,小型计数器的值都将发生溢出,造成所有流都可以直接通过过滤器。
[0008]4、 流替换策略问题基于计数器的大象流测量方法必须考虑老鼠流的驱逐与大象流的纳入问题,即以大象流替换缓存中的老鼠流,或者为相对更大的流替换相对更小的流。具体包括投票思想,指数衰减计数器,概率替换等替换策略,但这些替换策略都曾未考虑在发生流替换的那一刻,新到达的流是否真正的为大象流。例如,指数衰减策略在每到达一个数据包时,概率衰减一次被替换流的计数器,当被替换流的计数器衰减到0时,则发生替换。换句话说,在被计数器衰减到为0的那一刻,任何流到达时都能发生替换。
[0009]对比文件:CN111262756A公开了一种高速网络大象流精确测量方法及架构,首先通过基于sketch的过滤器过滤数据流中的老鼠流,然后通过基于cuckoo哈希实现的提取器提取网络流量中的大象流。该对比文件方案并没有解决过滤失效的问题,依然存在无法持续过滤老鼠流的问题。而基于cuckoo哈希的提取方法采用投票思想的替换策略,也没有考虑到在发生替换时,刚好到达的流是否为大象流。而且,cuckoo哈希不能弹性适应复杂的网络情况,不能根据大象流的数量调整自身的容量。
[0010]
技术实现思路

[0011]本专利技术要解决技术问题是设计一种金字塔结构的老鼠流过滤器,实现对老鼠流持续有效过滤的同时,初步记录大象流的包数量,以在发生替换时,判断到达的流是否为真正的大象流,避免老鼠流误判为大象流的错误,提高大象流的识别精度。同时,设计一种可以动态扩增的哈希表链表,以适应大象流数量的增长,保证大象流有足够的位置存储,并采用重定位的哈希查找方法,减少流的查找长度,均衡查找能耗和查找性能。
[0012]为了解决上述技术问题,本专利技术采用以下技术方案:本专利技术提供一种基于小流过滤的高精度大象流识别架构,包括:金字塔过滤器,用于过滤老鼠流及初步记录大象流的数据包数量,以持续过滤老鼠流的数据包,并为哈希链表中的流替换提供关键包数量信息;所述金字塔过滤器由多层桶向量组成,且没层的桶数量从底层往上逐级减半,形似金字塔结构;其中,每相邻的两个向量中的桶存在一定的上下父子关系,且过滤器将定期更新最底层桶中的计数器和标志位;所述桶由一个计数器和左标志位、右标志位构成;具体来说,最底层桶中的左标志位代表计数器在上个周期发生溢出,右标志位代表计数器在当前周期发生溢出;对于其余层的混合计数器,左标志位代表左孩子计数器有进位,右标志位代表右孩子计数器有进位;所述父子关系具体为上一层中的第一个桶是下一层中第一和第二个桶的父亲,下一层中第一和第二个桶则分别为父亲的左、右孩子,而上一层中的第二个桶是下一层中第三和第四个桶的父亲,依次类推,形似二叉树中父子关系。
[0013]哈希链表,用于存储大象流信息,精确统计大象流的数据包数量,并包含重定位操作和哈希链表数据结构;所述重定位是指当流映射到的哈希位置无查找结果或不可再插入时,将重新定位到备选位置,且备选位置可有多个;所述哈希链表是指长度为R的哈希表,且哈希表上的每个哈希位置可链接一条链表; 所述的哈希表由R个哈希桶组成,每个哈希桶对应一个重定位标志位,且桶中可存储C条流项;所述重定位标志位用于判断映射到该哈希位置的流是否需要重定位;所述链表则为由节点是可存储C条流项的哈希桶组成的单链表;所述流项包含流标识符信息和其包数量计数器。
[0014]本专利技术方法还提供一种基于上述架构的方法,包括:所述金字塔过滤器在数据包到达时,首先通过哈希运算定位到最底层向量中d个位置的桶,然后递增其中计数器值,当计数器发生溢出时,则向上进位,并将计数器重置为0,计数器的右标志位置为1;同时,若d个桶中的右标志位都为1时,允许该数据包进入哈希链表;此外,当测量一定数量的数据包后,将更新最底层桶中的计数器和标志位;所述的进位是指在左孩子桶中的计数器发生溢出时,将重置左孩子的计数器值本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于小流过滤的高精度大象流识别架构,其特征在于,包括:金字塔过滤器,用于过滤老鼠流及初步记录大象流的数据包数量,以持续过滤老鼠流的数据包,并为哈希链表中的流替换提供关键包数量信息;所述金字塔过滤器由多层桶向量组成,且没层的桶数量从底层往上逐级减半,形似金字塔结构;其中,每相邻的两个向量中的桶存在一定的上下父子关系,且过滤器将定期更新最底层桶中的计数器和标志位;所述桶由一个计数器和左标志位、右标志位构成;具体来说,最底层桶中的左标志位代表计数器在上个周期发生溢出,右标志位代表计数器在当前周期发生溢出;对于其余层的混合计数器,左标志位代表左孩子计数器有进位,右标志位代表右孩子计数器有进位;所述父子关系具体为上一层中的第一个桶是下一层中第一和第二个桶的父亲,下一层中第一和第二个桶则分别为父亲的左、右孩子,而上一层中的第二个桶是下一层中第三和第四个桶的父亲,依次类推,形似二叉树中父子关系;哈希链表,用于存储大象流信息,精确统计大象流的数据包数量,并包含重定位操作和哈希链表数据结构;所述重定位是指当流映射到的哈希位置无查找结果或不可再插入时,将重新定位到备选位置,且备选位置可有多个;所述哈希链表是指长度为R的哈希表,且哈希表上的每个哈希位置可链接一条链表; 所述的哈希表由R个哈希桶组成,每个哈希桶对应一个重定位标志位,且桶中可存储C条流项;所述重定位标志位用于判断映射到该哈希位置的流是否需要重定位;所述链表则为由节点是可存储C条流项的哈希桶组成的单链表;所述流项包含流标识符信息和其包数量计数器。2.一种基于权利要求1所述架构的方法,其特征在于,包括以下步骤:所述金字塔过滤器在数据包到达时,首先通过哈希运算定位到最底层向量中d个位置的桶,然后递增其中计数器值,当计数器发生溢出时,则向上进位,并将计数器重置为0,计数器的右标志位置为1;同时,若d个桶中的右标志位都为1时,允许该数据包进入哈希链表;此外,当测量一定数量的数据包后,将更新最底层桶中的计数器和标志位;所述的进位是指在左孩子桶中的计数器发生溢出时,将重置左孩子的计数器值,并将父左标志位置为1,同时将父桶中的计数器加1;当右孩子桶中的计数器发生溢出时,将重置右孩子的计数器值,同时将父桶中的计数器加1,并将父右标志位置为1;若父计数器也发生溢出,则再次进位;所述哈希链表可通过扩增每个哈希位置上链表的节点以适应大象流数量的增长;但是,当某个哈希位置上的链表长度达到阈值T
a
时,将不再扩增链表上的节点,以均衡查询长度和查找性能;再者,当某个哈希位置上的流都大于阈值T
b
,且链表长度达到阈值T
a
时,将进行重定位哈希位置,选择备选位置进行查询和插入,均衡每个哈希位置上链表的长度。3.根据权利要求2所述的方法,其特征在于,所述Top

k流识别架构包括如下操作:a、金字塔过滤器的插入数据包到达时,首先通过...

【专利技术属性】
技术研发人员:罗可周国徽熊兵
申请(专利权)人:长沙理工大学
类型:发明
国别省市:

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

1