最高效内存分布式超级点检测
在高速网络环境中,检测超级点(与大量不同主机通信的主机)是一项重要任务。然而,传统方法在处理大规模网络时面临内存消耗大、检测效率低等问题。本文将介绍一种高效的分布式超级点检测算法,它在内存使用和检测准确性方面都有出色表现。
1. 超级点判断基础
首先,我们有一个整数 $\tau$,它由 $\theta$ 通过以下公式得出:
$\tau = ceil(log_2(\theta/8))$
这里的 $ceil(x)$ 函数返回不小于 $x$ 的最小整数。在扫描所有与主机 $h$ 相关的数据包后,我们可以通过统计短估计器(SE)中 “1” 位的数量来判断 $|OP(h)|$ 是否大于 $\theta$。SE 中 “1” 位的数量也称为 SE 的权重,记为 $|SE|$。如果 $|SE| \geq 3$,则判断 $|OP(h)|$ 大于 $\theta$。
但在实际网络中,存在数百万个主机,为每个主机分配一个 SE 是不合理的,原因如下:
- 内存需求过大 :核心网络通常包含数百万个主机。对于 IPv4 地址,每个地址消耗 4 字节,再加上 SE 使用的 8 位(1 字节),每个主机需要 5 字节。对于一个包含 1 亿个主机的核心网络,将分配超过 5 亿字节的内存,这对服务器的内存分配和分布式环境中的传输都是沉重负担。
- 内存定位困难 :主机的 IP 地址广泛分布在 0 到 $2^{32} - 1$ 之间,尤其是 ONet 的 IP 地址。如何高效地存储和访问这些随机分布的主机是一项艰巨任务。无论将这些 IP 地址存储在列表还是哈希表中,都需要花
超级会员免费看
订阅专栏 解锁全文
398

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



