Chr*_*ini 71 p2p protocols dht
我正在编写一个p2p实现,我想分散,但是我在掌握像bittorrent这样的协议中的DHT方面遇到了一些麻烦.如果没有跟踪器,客户如何知道同行在哪里?对等体是否存储在实际的torrent文件中?
cce*_*cce 62
使用无跟踪/ DHT种子,对等IP地址使用BitTorrent infohash作为密钥存储在DHT中.由于所有跟踪器基本上都响应put/get请求,因此该功能完全对应于DHT(分布式哈希表)提供的接口:它允许您通过infohash在DHT中查找和存储IP地址.
因此,"获取"请求将查找BT infohash并返回一组IP地址."put"存储给定infohash的IP地址.这对应于您向跟踪器接收对等IP地址字典的"通知"请求.
在DHT中,对等体被随机分配以存储属于密钥空间的一小部分的值; 散列确保密钥在参与的对等方之间随机分布.DHT协议(Kademlia for BitTorrent)确保将put/get请求有效地路由到负责维护给定密钥的IP地址列表的对等体.
DJ *_*lis 12
bittorrent和DHT会发生什么,起初bittorrent使用torrent文件中嵌入的信息转到跟踪器或DHT的一组节点之一.然后,一旦找到一个节点,它就可以继续查找其他节点并使用DHT持续存在而无需集中跟踪器来维护它.
原始信息引导DHT的后期使用.
小智 5
DHT 节点具有唯一标识符,称为节点 ID。节点 ID 是从与 BitTorrent 信息哈希相同的 160 位空间中随机选择的。紧密程度是通过比较Node ID的路由表来衡量的,越接近的Node越详细,从而得到最优的
那么是什么让它们比它的前身“Kademlia”更优化,后者使用简单的无符号整数:distance(A,B) = |A xor B| 值越小越接近。异或。除了不安全之外,它的逻辑也存在缺陷。
如果您的客户端支持 DHT,则保留 8 个字节,其中包含 0x09,后跟带有 UDP 端口和 DHT 节点的 2 字节有效负载。如果握手成功,上述过程将继续。