BitTorrent客户端最初是如何发现其对等方的?

BitTorrent客户端最初是如何发现其对等方的?

BitTorrent客户端最初是如何发现其对等方的?

当您的急流客户端加入蜂群共享和收集文件片段时,它如何确切地知道它的所有对等方在哪里?继续阅读,因为我们在周围的机制,支持BitTorrent协议。

今天的问答环节是由超级用户提供的,这是Stack Exchange的一个细分部门,这是一个由社区驱动的Q&A网站分组。

问题

超级用户读者Steve V.对于BitTorrent协议中的分布式哈希表(DHT)系统有一个非常具体的问题:

我已经读过这个超级用户的答案和维基百科的这篇文章了,但这两篇文章都太技术性了,我实在想不起来了。

我理解跟踪器的概念:客户端连接到一个中央服务器,该服务器在一群中维护一个对等点列表。

我也理解了对等交换的概念:客户已经成群地向对方发送完整的对等方列表。如果发现了新的对等点,则将它们添加到列表中。

我的问题是,DHT是如何工作的?那是,一个新的客户端如何加入一个群集,而没有跟踪器或至少一个成员的知识来与其交换对等点?

(注:简单的解释是最好的。)

他的问题反过来又引起了关于BitTorrent系统不同功能的详细回答;现在让我们来看看它。

答案

超级用户贡献者Allquixology提供了一个深入的解释:

一个新的客户端如何加入一个群集,而没有跟踪器或至少一个成员的知识来与其交换对等点?

你不能。这是不可能的。*

*(除非局域网碰巧已经是DHT中的一个节点。在这种情况下,您可以使用广播机制(比如Avahi)来“发现”这个对等点,并从它们中引导。但是怎么他们自我引导?最终,您将遇到需要连接到公共Internet的情况。而且公共互联网是单播的,而不是多播的,所以你只能使用预先确定的对等点列表。)

参考文献

BitTorrent DHT是通过一种称为Kademlia的协议来实现的,它是分布式哈希表理论概念的一个特例。

论述

使用Kademlia协议,当您加入网络时,您将经历一个引导过程,这绝对需要您知道,预先,已参与DHT网络的至少一个节点的IP地址和端口。例如,您连接到的跟踪器本身可能是一个DHT节点。一旦连接到一个DHT节点,然后从DHT下载信息,DHT为更多节点提供连接信息,然后导航该“图”结构以获得到越来越多节点的连接,后者既可以提供到其他节点的连接,也可以提供有效负载数据(下载的块)。

我认为你的实际问题是如何在不知道的情况下加入Kademlia dht网络。任何其他成员-是基于一个错误的假设。

用黑体字回答你的问题的简单答案是,你不能。如果您根本不知道任何关于可能包含DHT元数据的主机的任何信息,那么您甚至无法开始工作。我的意思是,当然,你可以蛮力地试图在公共互联网上发现一个IP,而开放的端口恰好是用来广播DHT信息的。但更有可能的是,您的BT客户端被硬编码到某些特定的静态IP或DNS中,这些静态IP或DNS解析为稳定的DHT节点,后者只提供DHT元数据。

基本上,DHT和连接机制一样分散,因为连接机制相当脆弱(没有办法在整个Internet上“广播”!)所以你必须单播对于单个预先分配的主机以获取dht数据),kademlia dht不是。真的权力下放。不是这个词最严格的意思。

想象一下这样的场景:一个想让p2p停止的人出去准备攻击。全常用的用于引导的稳定的DHT节点。一旦他们发动攻击,他们就会发动进攻。全节点都是一次。韦姆每一个引导DHT节点都在一次突然下降。这次又是什么?你被困在连接到集中跟踪器从这些列表中下载传统的对等方列表。好吧,如果他们也攻击追踪者,那你真的是,真的90% of users from connecting to the network." newtip="在小溪上。换句话说,Kademlia和整个BT网络受到互联网本身的限制,因为只有数量有限(而且相对较少)的计算机才能成功地攻击或脱机,以防止超过90%的用户连接到网络。">在小溪上。换句话说,Kademlia和整个BT网络受到互联网本身的限制,因为只有数量有限(而且相对较少)的计算机才能成功地攻击或脱机,以防止超过90%的用户连接到网络。

一旦“伪集中式”引导节点全部消失,dht的内部节点就不会引导,因为DHT外部没有人知道内部节点。,它们不能在DHT中引入新的节点。因此,随着时间的推移,当每个内部节点与DHT断开连接时,无论是由于人们关闭计算机、重新启动更新等等,网络都会崩溃。

当然,为了解决这个问题,有人可以部署一个修补好的BitTorrent客户端,其中包含一个预先确定的稳定的dht节点或dns地址的列表,并向P2P社区大声宣传使用这个新列表。但这将成为一种“猛击-鼹鼠”的局面,侵略者(节点食人)将逐步下载这些列表,并瞄准勇敢的新引导节点,然后也将它们脱机。

我们不仅了解了最初问题的答案,而且还了解了BitTorrent系统的性质及其脆弱性。


在解释中有什么要补充的吗?在评论中发出声音。想从其他精通技术的Stack Exchange用户那里读到更多答案吗?请看这里的完整讨论主题。

以上是 BitTorrent客户端最初是如何发现其对等方的? 的全部内容, 来源链接: utcz.com/wiki/670149.html

回到顶部