【技术实现步骤摘要】
一种基于小流过滤的高精度大象流识别架构
[0001]本专利技术涉及网络数据流中大象流的识别,具体涉及一种基于小流过滤的高精度大象流识别架构。
[0002]
技术介绍
[0003]网络测量中的大象流(Elephant Flows)识别用于识别网络数据流中流大小超过用户预先设定一个阈值的流,其中流大小通常定义为属于流的数据包数量。根据以往真实数据集和文献的分析,数据流中的流大小通常是高度倾斜的,即服从重尾分布。换句话说,大多数流是老鼠流,即流所属的数据包数量较少,而少部分数流是大象流,即流所属的数据包数量较多。因此,识别网络流量中的大象流对网络的管理和调度起着非常重要的作用。同时,网络设备的大规模部署和网络链路容量的急剧提升造成大象流识别方法无法同时满足低内存开销和高精度的需求,面临着技术瓶颈。
[0004]现有大象流测量方法主要是基于sketch方法,将到达的数据包映射到多个计数器向量上记录流的数据包数量。其中包括全部计数和部分计数两种策略。全部计数是记录所有流的包数量;部分计数则通过只记录比较重要的流的包数量,例如只记 ...
【技术保护点】
【技术特征摘要】
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、金字塔过滤器的插入数据包到达时,首先通过...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。