DHT在洪stream中如何工作?
我正在编码一个p2p实现,我想分散但是我有一些麻烦,如何在BTT协议如何工作的DHT。 如果没有追踪者,客户如何知道同行在哪里? 同伴是否存储在实际的torrent文件中?
在无跟踪/ DHT种子的情况下,使用BitTorrent的infohash作为关键字将对等IP地址存储在DHT中。 由于所有的跟踪器基本上都是响应put / get请求,所以这个function与DHT(分布式散列表)提供的接口完全对应:它允许你通过infohash在DHT中查找和存储IP地址。
所以一个“get”请求会查找一个BT infohash并返回一组IP地址。 “put”存储给定infohash的IP地址。 这对应于“通知”请求,否则您会向跟踪器接收对等IP地址的字典。
在DHT中,同伴被随机分配来存储属于关键空间一小部分的值; 哈希确保密钥随机分布在参与的同伴之间。 DHT协议(用于BitTorrent的Kademlia )确保put / get请求被有效路由到负责维护给定密钥的IP地址列表的对等方。
一般的理论可以在维基百科的Kademlia的文章中find。 Bittorrent中使用的特定协议规范如下: http ://wiki.theory.org/BitTorrentDraftDHTProtocol
BitTorrent和DHT会发生什么情况,BitTorrent首先使用embedded在torrent文件中的信息去跟踪器或DHT中的一组节点中的一个。 然后,一旦find一个节点,就可以继续使用DHT查找其他节点,而不需要集中式跟踪器来维护它。
原始信息引导了DHT的后续使用。