我一直在尝试理解磁流技术,但我似乎不明白打开磁流链接时如何与第一个对等体连接。
当你得到一个磁铁链接如下,它不包含初始对等-只有BitTorrent信息哈希(btih)和文件名。
magnet:?xt=urn:btih:bbb6db69965af769f664b6636e7914f8735141b3&dn=ubuntu-12.04-desktop-i386.iso
根据BitTorrent &磁铁:它们是如何工作的?(MakeUseOf)
如果您单击没有指定跟踪器(
tr
) 的磁体链接,将使用DHT找到第一个对等体。一旦你有了一个对等点,对等交换也就开始了。
维基百科上的DHT文章没有具体说明如何找到对等体,但在Kademlia文章(BitTorrent DHT的基础)中,它说
想要加入网络的节点必须首先经过一个引导过程。在这个阶段,加入节点需要知道另一个节点的IP地址和端口——一个引导节点(从用户那里获得,或者从存储的列表中获得),这个节点已经参与到Kademlia网络中。
但是它从哪里知道这个节点呢?我在磁铁链接里没有看到地址或任何东西。由于它是去中心化的(无跟踪器),我不希望它提前知道节点。或者DHT实际上不是去中心化的 ?
大多数情况下,当您启动bittorrent客户端时,从:
引导- 上次会话中的节点,已保存到磁盘
- 您在任何群集上的其他对等体
有几个众所周知的引导节点,客户端可以使用,如果他们没有其他方法找到任何。从本质上讲,发生这种情况的唯一情况是当你第一次安装客户端,你下载的第一个种子是一个没有跟踪器的磁铁链接。
你可以点击router.utorrent.com:6881。我相信transmission, azureus和bitcomet运行类似的路由器,可能还有其他客户端。
所谓"路由器",我指的是一个节点,它的行为似乎与DHT中的任何其他节点一样,但可能具有确定分发哪些节点的不同机制,并且可能专门针对仅将DHT节点相互引入的用例进行了优化。
UPDATE:你可以运行你自己的DHT引导机器,这是源代码