bittorrent – 如何从一个洪流磁铁链接获得第一个同伴?

我一直在努力了解磁力磁铁技术,但是看不清楚在打开磁铁链接时如何连接到第一个对等体.

当您收到如下所示的磁铁链接时,它不包含初始对等 – 只有BitTorrent信息哈希(btih)和文件名.

magnet:?xt=urn:btih:bbb6db69965af769f664b6636e7914f8735141b3&dn=ubuntu-12.04-desktop-i386.iso

根据BitTorrent & Magnets: How Do They Work? (MakeUseOf)

If you click a magnet link that does not specify a tracker (tr) the first peer will be found using DHT. Once you’ve got a peer, peer exchange kicks in too.

DHT article on Wikipedia没有指定如何找到对等体,但是在Kademlia article(BitTorrent DHT基于此),它说

A node that would like to join the net must first go through a bootstrap process. In this phase, the joining node needs to know the IP address and port of another node—a bootstrap node (obtained from the user, or from a stored list)—that is already participating in the Kademlia network.

但是它从哪里知道节点?磁铁链接中没有看到地址或任何东西.由于它是分散的(无跟踪),我不会指望它提前知道节点.还是DHT其实不是分散的?

在大多数情况下,当您启动一个bittorrent客户端时,引导:

>上次会话中的节点,保存到磁盘
>你所拥有的任何一个群组的其他同伴

有几个众所周知的引导节点,客户端可以使用它们,如果他们没有其他方法可以找到任何.本质上唯一的情况是当您第一次安装客户端时,下载的第一个洪流是没有跟踪器的磁铁链接.

你可以点击router.utorrent.com:6881.我相信传输,azureus和bitcomet运行类似的路由器,以及可能的其他客户端.

通过“路由器”,我的意思是一个似乎像DHT中的任何其他节点一样的节点,但是可能有一个不同的机制来确定要发出的节点,并且可能专门针对刚才引入dht节点的用例进行了优化彼此.

更新:你可以运行自己的DHT引导机,here’s源代码.

代码日志版权声明:
翻译自:http://stackoverflow.com/questions/15211285/how-to-get-the-first-peer-from-a-torrent-magnet-link

转载注明原文:bittorrent – 如何从一个洪流磁铁链接获得第一个同伴?