基于Sketch数据结构的差异化流量测量方法、装置及介质

文档序号:36423216发布日期:2023-12-20 15:30阅读:48来源:国知局
基于

本发明涉及网络数据流量分析、大数据处理、分布式数据集等,尤其涉及一种基于sketch数据结构的差异化流量测量方法、装置及介质。


背景技术:

1、网络测量在许多应用中起着关键作用,包括流量调度、拥塞控制、负载平衡、异常检测等。然而,由于链路容量和网络流量不断增加,使用极小内存的片上存储器很难及时准确地记录流量信息。因此,在有限的内存下实现快速准确的流量估计具有挑战性。

2、sketch(草图)数据结构已经成为近似流量估计的典型解决方案,因为它在精度、速度和内存使用之间实现了良好的权衡。通过使用由共享计数器数组组成的概率型数据结构,基于sketch的解决方案显著地减少了内存占用,并具有有界误差。然而,大多数基于sketch的解决方案往往专注于设计创新的更新策略或特殊的架构,以减少检测误差并实现流量信息的近似保存,而忽略了流量测量中的优先级区分在一些实际场景中是至关重要的。例如,防火墙需要以较高的优先级跟踪来自可疑主机的流,以获得更详细的信息,而以较低的优先级以较粗的粒度跟踪来自可信主机的流。由于高优先级流的数量较少,但携带了更重要的信息,因此它们应该被更仔细地监控和测量。

3、为了解决这一问题,最近出现了一类优先级感知的sketch,其核心思想是将sketch分为两部分,分别保存高优先级流和低优先级流,以获得差异化的测量精度。虽然现有的优先级感知的sketch为低优先级流和高优先级流提供了不同的结构和操作,但它们面临着选择高精度和快速度的困境。具体而言,mc-sketch的第一部分由顺序的优先级表组成,每个优先级表的存储单元记录流编号、优先级和流大小。对于到达交换机的低优先级流,由于其优先级低于哈希桶中的现有流,因此这些流会在mc-sketch的第一部分被反复驱逐,直至最终到达第二部分。cuckoo sketch使用布谷鸟哈希将高优先级流保存在第一部分,然而,对于一条低优先级流,即使它最初被记录到第一部分,后到的高优先级流也会将其反复踢出,以试图在第一部分寻找空存储单元将其保存。当踢出次数达到了预设的踢出阈值,该低优先级流会被最终保存到第二部分。在这类优先级感知的sketch中,大量的低优先级流需要通过第一部分,最后存储在第二部分中,因此哈希操作的巨大计算开销是不可忽视的,这也导致了较低的吞吐量。

4、因此,在网络流量的不均衡分布下,如何在小内存下为高优先级流提供更多的保护以获得高精度,同时为大量低优先级流保持小的哈希开销来实现高吞吐量,以实现差异化的流量测量,是一个值得研究的问题。


技术实现思路

1、针对现有的优先级感知的sketch数据结构在精度和速度之间难以取得良好权衡的问题,本发明的目的在于提供一种基于sketch数据结构的差异化流量测量方法、装置及介质,可以为具有不同优先级的到来流分配不同数量的哈希函数,从而在为高优先级流提供更多保护的同时,减少存储低优先级流所需的哈希开销,提升处理速度。

2、第一方面,提供了一种基于sketch数据结构的差异化流量测量方法,包括:

3、步骤1:建立双层sketch数据结构,高层的存储单元记录流编号、优先级、数据包数目,低层的存储单元记录未能成功保存在高层中的数据包数目;

4、步骤2:接收数据包,获取到来流的流编号和优先级;

5、步骤3:在高层为不同优先级的到来流动态地分配不同数量的哈希函数,优先级越高的到来流被分配的哈希函数数量越大;在低层使用固定数量的哈希函数;

6、步骤4:当执行更新操作时,判断到来流在高层的映射单元中是否存在与到来流匹配的流编号,若存在,则该匹配单元的计数器增加1,然后转步骤2;否则,转步骤5;

7、步骤5:判断到来流在高层的映射单元中是否存在空单元格,若至少存在一个空单元格,则将到来流存储到高层的其中一个空单元格中,即将该空单元格的流编号置为到来流的编号,优先级置为到来流的优先级,计数器置为1,然后转步骤2;否则,转步骤6;

8、步骤6:判断到来流的优先级是否大于到来流在高层的映射单元中的最低优先级,若是,则将优先级最低的映射单元所记录的流插入低层,然后将到来流存储到该映射单元中,即将该映射单元的流编号置为到来流的编号,优先级置为到来流的优先级,计数器置为1,然后转步骤2;否则,将到来流插入低层,然后转步骤2。

9、根据第一方面,在一种可能的实现方式中,在高层使用递增的线性函数为不同优先级的到来流动态地分配哈希函数数量,即为优先级更高的流分配更多的哈希函数,对优先级更低的流分配更少的哈希函数,在为高优先级流提供更多保护的同时,减少低优先级流的哈希开销。

10、根据第一方面,在一种可能的实现方式中,所述线性函数表示为y=kx+b;其中,x表示到来流的优先级;y表示在高层为到来流分配的哈希函数数量;k为比例系数,其取值满足使到来流的优先级x越高时到来流分配的哈希函数数量y越大;b为常数。

11、根据第一方面,在一种可能的实现方式中,当一条流被插入低层时,会为其分配固定数量的哈希函数,并更新该流在低层中所有映射单元的计数器。

12、根据第一方面,在一种可能的实现方式中,若是到来流被插入低层,对到来流在低层中所有映射单元的计数器增加1;若是高层优先级最低的映射单元所记录的流插入低层,对该流在低层中所有映射单元的计数器增加高层优先级最低的映射单元里的计数器值。

13、根据第一方面,在一种可能的实现方式中,在建立的双层sketch数据结构存储网络流信息之前还包括初始化操作,所述初始化操作包括将高层和低层的存储单元清零,具体为:将低层所有存储单元的计数器置为0,将高层所有存储单元的流编号置为空,优先级置为0,计数器置为0。

14、根据第一方面,在一种可能的实现方式中,还包括查询操作,所述查询操作为:给定待查询的流编号和优先级,根据待查询流的优先级得到其在高层的哈希函数数量,判断高层的映射单元中是否存在与到来流匹配的流编号;若存在,上报匹配单元中的计数器值作为查询值;否则,上报待查询流在低层的所有映射单元中的最小计数器值作为查询值。

15、第二方面,提供了一种基于sketch数据结构的差异化流量测量装置,包括:

16、存储器,其上存储有计算机程序;

17、处理器,用于加载并执行所述计算机程序时,实现上述第一方面任一项所述的基于sketch数据结构的差异化流量测量方法。

18、第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项所述的基于sketch数据结构的差异化流量测量方法。

19、第四方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述第一方面任一项所述的基于sketch数据结构的差异化流量测量方法。

20、有益效果

21、本发明提出了一种基于sketch数据结构的差异化流量测量方法、装置及介质,其设计了双层sketch结构,在高层中为具有不同优先级的到来流分配不同数量的哈希函数,到来流的优先级越高,在高层中被分配的哈希函数数量越多,从而增加了保留高优先级流的机会,进而提升高优先级流的测量精度,同时,在低层中使用固定数量的哈希函数,使得低优先级流的误差维持在合理的范围内;另一方面,由于大量低优先级流被分配的哈希函数更少,减少了内存访问和哈希开销,有助于吞吐量的提升。本发明能够在占用较少内存资源的同时,利用优先级信息动态地为不同优先级的流提供不同级别的保护,实现差异化的测量精度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1