Bittorent客户端中的DHT如何被“引导”?

问题描述 投票:68回答:7

如果我的洪流中没有任何跟踪程序,而我只是启动了一个痛苦的客户端,所以我还没有同龄人……我怎么知道谁首先要与DHT联系?看来我必须至少知道DHT中的一个节点才能开始....

bittorrent dht
7个回答
36
投票

当BitTorrent客户端连接到DHT时,它会在最初位置找到对等方。使用原始的BitTorrent客户端,有一个指向bitorrent.com的URL,它将帮助您开始工作。我尝试查找参考,但找不到。与其他客户端建立连接后,就可以在DHT网络上执行announce来查找所需种子的对等体。

这里是讨论DHT的BitTorrent specs的链接。

无轨洪流字典不会没有“宣布”键。相反,Trackerless torrent具有“节点”键。该密钥应设置为K山洪中最近的节点生成客户端的路由表。或者,可以将密钥设置为一个已知的好节点,例如一个已操作的节点产生洪流的人。请不要自动添加“ router.bittorrent.com”到洪流文件或自动添加此节点到客户端路由表。


39
投票

主线DHT引导节点是router.utorrent.com,并且是它的CNAME router.bittorrent.com。端口6881


24
投票

DHT monitoring project网站底部的图形显示

  • dht.transmissionbt.com
  • router.utorrent.com
  • router.bittorrent.com

作为自举同行


17
投票

在BiTTorrent中,您有三个主要选择:

  • Torrent文件:某些种子文件可以嵌入nodes以便与您链接到DHT(实际上,建议在制作种子文件时使用该文件)
  • Hardcoding:某些torrent客户端对一些引导节点(例如stk提到的那些引导节点)进行硬编码。这些通常由运行时间较长的服务器的公司和组织来运行。
  • PEX /对等会话:通常,您可以从要从中下载其他种子的人员那里请求DHT节点(如果您的客户理解彼此的语言,即某些版本不兼容)。

11
投票

Transmission使用dht的hardcoded bootstrap node,如果没有其他方法可以获取对等体:

bootstrap_from_name( "dht.transmissionbt.com", 6881, bootstrap_af(session) );

我想每个洪流客户端都使用他们自己的引导程序节点。


5
投票

为了记录,Deluge也使用hardcoded boostrap nodes

dht_bootstraps = set(
    lt_bootstraps.split(',')
    + [
        'router.bittorrent.com:6881',
        'router.utorrent.com:6881',
        'router.bitcomet.com:6881',
        'dht.transmissionbt.com:6881',
        'dht.aelitis.com:6881',
    ]
)

4
投票

客户可以通过与其他具有DHT功能的对等方的交互来了解它们。同行对DHT的支持在其握手中作了广告。一旦客户端发现至少一个良好的,良好连接的DHT对等方,它就可以导航DHT以查找更多和更近的DHT对等方。它将记住这些对等点(在DHT中称为节点),在软件重新启动之间并在列表运行时连续维护/更新列表。在更糟的情况下,客户不知道具有良好DHT能力的同伴,它将要求您下载基于跟踪器的种子,以便希望与通过跟踪器了解到的一些具有良好DHT能力的同伴联系。

更新:对于@Dep对等体的DHT对等体的初始列表,torrent客户端可以使用一个或多个硬编码DNS名称来查找知名对等体的地址,并且还可以包括对等对等体的硬编码列表最后的回退。 DNS的一个限制,但是,它没有提供端口信息,因此通常假定默认端口为6881,而其他方式则支持在不同端口上运行的对等项。

© www.soinside.com 2019 - 2024. All rights reserved.