Jun 2 2008

分布式哈希-DHT/KAD

这个还是很强的,DHT-Distributed Hash Tables:分布式hash表(我怎么感觉通常带Distributed的都比较牛)。DHT是一种算法,把通常意义的hash表分布到了一个网络上,可能的应用有很多,比如把Web Proxy的负载分布到多个Proxy服务器上,又比如把一些集中的运算分布到网络上去,近些年最热门的应用则是在P2P网络中,比如在bittorrent/emule中,都集成了某种形式的DHT,在utorrent这个客户端中,就叫做DHT,而在eMule中被称为KAD

这篇文章使用Python代码简单的介绍了DHT的基本原理和核心算法,通俗易懂,不过老实说,一些细节我还没有弄懂,比如第一次加入网络的节点是否只能依靠手动建立路由等。也许应该去参考一下eMule的源码(它是开源的),不过现在暂时没有时间(懒的借口)。这个项目则有对KAD更严谨的Python实现。

注:早期的DHT算法很多都是大学里的研究成果,因此在Google上有很多相关论文可以检索到。