最高效内存分布式超级点检测技术解析
在网络流量监测中,检测超级点(即与大量不同 IP 地址通信的主机)是一项重要任务。然而,传统方法在处理大规模网络时面临内存需求大、检测效率低等问题。本文将详细介绍一种高效的分布式超级点检测算法,该算法通过创新的数据结构和检测方法,在保证检测准确性的同时,显著降低了内存消耗。
1. 核心参数与初步判断
首先,引入一个关键参数 $\tau$,它由 $\theta$ 通过公式 $\tau = ceil(log_2(\theta/8))$ 得出,其中 $ceil(x)$ 函数返回不小于 $x$ 的最小整数。在扫描主机 $h$ 的相关数据包后,通过统计短估计器(SE)中“1”比特的数量(即 SE 的权重,记为 $|SE|$)来判断 $|OP(h)|$ 是否大于 $\theta$。若 $|SE| \geq 3$,则判定 $|OP(h)|$ 大于 $\theta$。
但为每个主机分配一个 SE 存在两个问题:
- 内存需求大 :核心网络通常包含数百万个主机,对于 IPv4 地址,每个主机需要 4 字节存储 IP 地址,再加上 8 比特的 SE,共需 5 字节。对于包含 1 亿个主机的核心网络,需要分配超过 5 亿字节的内存,这对服务器内存分配和分布式环境中的传输都是沉重负担。
- 内存定位困难 :主机的 IP 地址广泛分布在 0 到 $2^{32} - 1$ 之间,尤其是 ONet 的 IP 地址。无论将这些 IP 地址存储在列表还是哈希表中,都需要花费大量时间进行内存访问。
2. 短估计器数组(SEA)与超级点恢复
为
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



