« chess | 首页 | 1440 »

Wang Danqi

个人主页: http://twitter.com/beyondwdq

留言(1 条)

BT下载的未来 留言:

DHT和Kademlia的关系是这样的:DHT是一种方法,它有很多中实现或者说design,包括CAN,Chord,Kademlia等等。

在Kademlia中,每个节点有一个节点ID,可以通过consistent hash 函数得到(比如对MAC地址进行HASH),每个文件也有一个ID(比如对文件内容进行hash得到)。两个ID之间的距离是由对它们进行异或操作得到,比如dist(id1,id2) = id1 XOR id2。 对于一个ID为x的文件,由一个ID为y的节点负责保存所有“正在下载文件x的节点“,其中节点y是所有节点中距离x最近的。其实节点y就充当了一个零时的tracker。当然实际设计的时候会提供一些冗余来增加可靠性。

新加入节点需要知道至少一个已经加入系统的其他节点,这可以通过某些网站获取(比如,http://www.nodes-dat.com/),或者某些服务器(对于verycd改得easymule来说,”高级“标签下会显示很多服务器,其中有些就是干这个的),所以说还是无法完全去中心化的。