一种基于哈希的网络基数聚合测量方法

文档序号:37344047发布日期:2024-03-18 18:16阅读:9来源:国知局
一种基于哈希的网络基数聚合测量方法

本发明属于计算机网络,具体涉及一种基于哈希的网络基数聚合测量方法。


背景技术:

1、在网络测量中,有许多类型的测量都具有相同的模式,即对数据包头字段的基数估计统计数据。这些统计数据可以识别超级传播者、端口扫描、ddos和其他已受到广泛关注的攻击形式。但不同节点测量的网络流量存在重叠与多路路由现象,导致流量重叠程度无法量化。

2、目前,大多数考虑网络范围测量的现有方法都没有解决节点之间流量的重叠,只是直接叠加结果。但其实当流量重叠有规律时,可能会导致对聚合结果的严重高估。即使考虑重复统计问题,也只是对多个节点测量结果的最大值的简单计算,即基数最大的测量结果被错误地视为全局基数结果,夸大了流量的重叠。当流量重叠相对不常见时,取最值的方式可能会导致对聚合结果的严重低估。


技术实现思路

1、针对现有技术存在的缺陷和不足,本发明的目的是提供一种基于哈希的网络基数聚合算法,以在保证全网基数估计精度的前提下,减轻系统负担。

2、该方案从网络范围内的度量和任意部分输入键查询的角度支持聚合。本发明通过利用bitmap和hyperloglog之间的转换,实现了在大范围内的高性能基数估计,并支持具有类似模式的各种网络测量场景,在有限的内存分配下具有低而恒定的开销。

3、本发明解决其技术问题具体采用的技术方案是:

4、一种基于哈希的网络基数聚合测量方法,其特征在于,从网络范围内的度量和任意部分输入键查询的角度支持聚合;通过利用bitmap和hyperloglog之间的转换,以实现在大范围内的高性能基数估计。

5、进一步地,包括以下步骤:

6、步骤s1:在每个遥测节点上,部署一行哈希测量桶;哈希函数将数据包随机散列到某桶;

7、步骤s2:在哈希测量桶中根据数据包中的<主键值,属性值>进行测量对象选择与基数估计;哈希测量桶包含两个部分:a.主票选算法;b.估计算法;

8、步骤s3:根据主票选算法修正产生的哈希冲突,判断是否进行步骤s4;

9、步骤s4:根据估计算法的比特串,进行算法转换;

10、步骤s5:根据多遥测节点聚合实现全网测量。

11、进一步地,步骤s1中,在遥测节点上,采用第一哈希函数根据到达数据包的主键值随机且平均地选择哈希表中的位置。

12、进一步地,在步骤s2中,所述主票选算法的执行流程如下:

13、如果哈希测量桶中候选者与新到达该桶的键不同,则减少当前候选者的计数,当计数清零时更换候选者为新到达该桶的键;

14、如果哈希测量桶中候选者与新到达该桶的键相同,则增加当前候选者的计数。

15、进一步地,所述估计算法中,采用第二哈希函数根据到达数据包属性值对估计算法比特串的某位进行置真值操作;

16、第一哈希函数和第二哈希函数相互独立。

17、进一步地,在步骤s2中,所述估计算法初始使用bitmap进行基数估计,当比特串中真值占比超过阈值后,进行估计算法数据结构转换,使用hyperloglog进行基数估计。

18、进一步地,在步骤s5中,多遥测点聚合流程具体如下,将多遥测节点的哈希测量桶合并成为草图结构,对于同一列的哈希测量桶的估计算法进行归一化操作:

19、如果同列的桶皆为bitmap结构,则将同列估计算法的比特串进行与操作;

20、如果同列的桶包含bitmap与hyperloglog,则将bitmap转化为hyperloglog后,对同列桶的估计基数取最大值。

21、进一步地,在进行基数估计之前,因为多个键可能被哈希到同一个桶中,因此使用主票选算法在每个桶中处理哈希碰撞;多数投票算法需要三个字段;第一个字段是b[i].k,保留了在第i个桶中占最大比例的键值,b[i].k是当前基数估计的对象;第二个字段是b[i].c,用于计算映射到这个桶的总数;第三个字段是b[i].v,用于保存当前候选键的出现次数;如果通过主票选算法改变候选者,那么估计算法将被清除并重新进行基数估计。

22、进一步地,所述估计算法可能会有两种状态:bitmap与hyperloglog;当处于bitmap状态时,第二哈希函数根据输入键对估计算法中某一位进行置真值操作,当真值比例超出阈值后将进行估计算法转换,使用hyperloglog算法进行估计。

23、进一步地,估计算法的转换的具体过程为:

24、当bitmap中的0的数量低于一个阈值φ时,将bitmap转换为hyperloglog,以适应高基数取值场景;遍历bitmap并根据逻辑地址进行划分和映射,因为哈希值截断造成的潜在较长的连续0,需要根据公式(1)估计hyperloglog最长前缀0的长度;具体来说,对于长度为b位的bitmap,它的哈希值的长度为log2b;在转换时,选择逻辑地址的log2p位作为hyperloglog,对应p个桶的桶号;每个桶分配位的空间,以表示最长为的前缀0长度;剩余的逻辑地址只有位,所以只使用哈希值的前log2b位来寻址位图;哈希值总共有一个位;

25、

26、相比于现有技术,本发明及其优选方案能够在保证全网基数估计精度的前提下,减轻系统负担。



技术特征:

1.一种基于哈希的网络基数聚合测量方法,其特征在于,从网络范围内的度量和任意部分输入键查询的角度支持聚合;通过利用bitmap和hyperloglog之间的转换,以实现在大范围内的高性能基数估计。

2.根据权利要求1所述的一种基于哈希的网络基数聚合测量方法,其特征在于:

3.根据权利要求2所述的一种基于哈希的网络基数聚合测量方法,其特征在于:步骤s1中,在遥测节点上,采用第一哈希函数根据到达数据包的主键值随机且平均地选择哈希表中的位置。

4.根据权利要求3所述的一种基于哈希的网络基数聚合测量方法,其特征在于:

5.根据权利要求4所述的一种基于哈希的网络基数聚合测量方法,其特征在于:

6.根据权利要求5所述的一种基于哈希的网络基数聚合测量方法,其特征在于:在步骤s2中,所述估计算法初始使用bitmap进行基数估计,当比特串中真值占比超过阈值后,进行估计算法数据结构转换,使用hyperloglog进行基数估计。

7.根据权利要求6所述的一种基于哈希的网络基数聚合测量方法,其特征在于:

8.根据权利要求2所述的一种基于哈希的网络基数聚合测量方法,其特征在于:在进行基数估计之前,因为多个键可能被哈希到同一个桶中,因此使用主票选算法在每个桶中处理哈希碰撞;多数投票算法需要三个字段;第一个字段是b[i].k,保留了在第i个桶中占最大比例的键值,b[i].k是当前基数估计的对象;第二个字段是b[i].c,用于计算映射到这个桶的总数;第三个字段是b[i].v,用于保存当前候选键的出现次数;如果通过主票选算法改变候选者,那么估计算法将被清除并重新进行基数估计。

9.根据权利要求2所述的一种基于哈希的网络基数聚合测量方法,其特征在于:所述估计算法可能会有两种状态:bitmap与hyperloglog;当处于bitmap状态时,第二哈希函数根据输入键对估计算法中某一位进行置真值操作,当真值比例超出阈值后将进行估计算法转换,使用hyperloglog算法进行估计。

10.根据权利要求2所述的一种基于哈希的网络基数聚合测量方法,其特征在于:


技术总结
本发明提供一种基于哈希的网络基数聚合测量方法,从网络范围内的度量和任意部分输入键查询的角度支持聚合。本发明通过利用Bitmap和HyperLogLog之间的转换,实现了在大范围内的高性能基数估计,并支持具有类似模式的各种网络测量场景,在有限的内存分配下具有低而恒定的开销。

技术研发人员:张栋,陈昕杨,陈翰泽,施彭湃,吴艳妮
受保护的技术使用者:福州大学
技术研发日:
技术公布日:2024/3/17
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1