Bittorent 客户端中的 DHT 如何“引导”?
如果我有一个没有任何跟踪器的 torrent,并且我刚刚启动了一个 bittorent 客户端,所以我还没有对等点...我如何知道在 DHT 中首先与谁连接? 看来我必须至少知道 DHT 中的一个节点才能开始......
If I have a torrent w/o any trackers in it, and I just started a bittorent client so I have no peers yet...how do I know who to first connect with in the DHT? It seems like I would have to know at least ONE node in the DHT to get started....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
主线 DHT 引导节点是
router.utorrent.com
及其 CNAMErouter.bittorrent.com
。 端口6881
。The mainline DHT bootstrap nodes are
router.utorrent.com
and a CNAME to it,router.bittorrent.com
. Port6881
.当 BitTorrent 客户端连接到 DHT 时,它会首先去寻找对等点。 在最初的 BitTorrent 客户端中,有一个指向 bitorrent.com 的 URL,可以帮助您开始工作。 我尝试查找参考资料,但找不到。 一旦您与其他客户端建立了连接,您就可以在 DHT 网络上进行
公告
,以找到您正在寻找的 torrent 的对等点。以下是讨论 DHT 的 BitTorrent 规范 的链接。
When a BitTorrent client connects to DHT, there is an initial place that it goes to find peers. With the original BitTorrent client, there was a url to bitorrent.com that would help get things started. I tried looking up the reference but I couldn't find it. Once you've established connections with other clients, then you can do an
announce
on the DHT network to find peers for the torrent you're looking for.Here's a link to the BitTorrent specs that discuss DHT.
此 DHT 监控项目 站点底部的图表显示
作为引导节点
the graph at the bottom of this DHT monitoring project site shows
as bootstrapping peers
在 BiTTorrent 中,您有三个主要选项:
节点
供您链接到 DHT(事实上,在制作 torrent 时建议这样做)文件)In BiTTorrent, you have three main options:
nodes
for you to link into the DHT with (in fact, it's recommended when making a torrent file)Transmission
使用硬编码引导节点< /a> 对于 dht,如果没有其他方法来获取对等点:我猜每个 torrent 客户端都使用自己的引导节点。
Transmission
uses a hardcoded bootstrap node for dht if there is no other way to get peers:I guess each torrent client uses their own bootstrap node.
根据记录,Deluge 还使用 硬编码的 boostrap 节点:
For the record, Deluge also uses hardcoded boostrap nodes:
客户端可以通过与其他支持 DHT 的节点的交互来了解它们。 节点对 DHT 的支持在其握手中得到了宣传。 一旦客户端发现至少一个良好的、连接良好的 DHT 对等点,它就可以导航 DHT 以找到更多、更近的 DHT 对等点。 它将在软件重新启动之间记住这些对等点(DHT 中称为节点),并在运行时持续维护/更新列表。 在最糟糕的情况下,客户端不知道任何具有 DHT 功能的良好对等点,它将要求您下载基于跟踪器的 torrent,以便它可以希望联系通过跟踪器了解的一些具有 DHT 功能的良好对等点。
更新:
对于它的 DHT 对等点的初始列表,正如 @Seppo 指出的那样,torrent 客户端可以使用一个或多个硬编码的 DNS 名称来查找知名对等点的地址,并且它还可能包括硬编码的对等点列表,如也是最后的后备。 然而,DNS 的一个限制是它没有提供端口信息,因此通常假定默认端口为 6881,而其他方法则支持在不同端口上运行的对等点。
A client can learn about other DHT-capable peers through it's interactions with them. A peer's support for DHT is advertised in it's Handshake. Once a client discovers at least one good, well-connected DHT peer, it can navigate the DHT to find more and closer DHT peers. It will remember these peers, called nodes in DHT-speak, between restarts of the software and maintain/update the list continuously while it is running. In the worse case where a client knows of no good DHT-capable peers, it will require you to download a tracker-based torrent so it can hopefully contact a few good DHT-capable peers it learns about through the tracker.
Update:
For it's initial list of DHT peers, as @Seppo points out, a torrent client can use one or more hard-coded DNS names to find the addresses for well-known peers, and it may also include a hard-coded list of peers as a final fallback as well. One limitation of DNS, however, it no port information is provided so a default port of 6881 is generally assumed whereas other means support peers operating on different ports.
这是我遇到的主要节点。
Here are the primary nodes I've come across.