IPv6地址熵和散列

时间:2013-05-28 03:28:02

标签: hash hashmap ip-address ipv6 entropy

我有一个线程将传入的IPv6连接委托给X工作线程,其中具有相同IPv6源地址的连接应始终发送到同一工作线程。但是,考虑到来自整个Internet的大量连接,我还希望最小化所有X工作线程必须承担的负载差异(即,在任何给定的大时间间隔内,所有工作线程应该被委托与大约相同的连接相同数量的唯一IPv6地址。)

最天真的方法是将IPv6地址的全部或部分解释为数字N,并将其发送到索引为[N mod X]的工作线程。但是,IP地址具有较低的熵(即某些比特(un)设置得比其他比特更频繁,因此非常不随意),因此会导致工作线程之间的负载平衡不佳。

显然,需要对地址执行某种低成本散列以获得具有更高熵的密钥。那么有针对此问题的文档解决方案吗?不需要产生梦幻般的随机性,只需知道可以很好地使用IPv6地址。

编辑删除有关避免碰撞的句子(因为在这种情况下,碰撞实际上完全正常)。

0 个答案:

没有答案