基于Tracker的BitTorrent
基于DHT的BitTorrent
分布式哈希表
为什么DHT可以代替Tracker
在传统的BT下载里,所有的种子文件都必须指定一个或多个种子服务器,即通常所说的Tracker或Announce地址,种子文件和连接信息都存储在种子服务器上,而引入了DHT网络之后,这些连接信息则可以保存在根据一定的算法挑选出的DHT网络参与者(即DHT节点)之间。这些DHT网络参与者代替了原来的Tracker的工作。
而根据一定的规则,每个DHT网络节点需要负责维护一部分种子文件的连接信息,相当于你同时也是一个超轻量级种子服务器。这样,下载者只要接入了DHT网络,并且找到了一些连接(或者说DHT网络节点),就能获得连接信息,而不需要再依赖于tracker服务器。
Kademlia 协议
Kademlia协议是BiTtorrent的主流DHT算法