gpt4 book ai didi

networking - Kademlia 协议(protocol)如何保证节点形成连通图?

转载 作者:行者123 更新时间:2023-12-01 22:25:20 26 4
gpt4 key购买 nike

节点:DHT 网络上的客户端。
Peers:尝试下载特定资源的客户端。

假设 DHT 网络是一个连通图,但没有节点可以访问所有其他节点(这种消耗与人们普遍认为的 DHT 网络覆盖的互联网是完全连接的相反)。

叠加在DHT网络上的Peer-network是否仍然是连通图?为什么?

最佳答案

Kademlia 是一种抽象算法,假设牛在真空中是球形的。本文讨论的唯一故障模式是流失和临时图分区。不考虑非对称可达性。

在现实世界中实现的 Kademlia 不作任何保证。一切都是在尽力而为的基础上完成的。

现实世界中的主要问题不是互连集群 A 无法与互连集群 B 通信的节点。NAT 和防火墙不会大规模引入此类集群。他们创建了一组二等公民,任何人 都无法始终访问它们 - 缺少 NAT 遍历措施 - 因此只能连接到一等公民,这些节点是任何人都可以与任何人交谈的节点别的。当然存在一些边缘情况,但它们在很大程度上是无关紧要的。

无论如何,由于您甚至不是在询问 kademlia,而是在询问 bittorrent,它实际上并不是 kademlia 的覆盖层,而是一个单独的网络,它只是从 kademlia 引导其联系信息,事情变得更加复杂。 Bittorrent 可以通过两种不同的传输机制实现,TCP 和 µTP,客户端可以支持 TCP、µTP 和 Kademlia-via-UDP 的不同级别的 nat 遍历功能。

Kademlia 节点通常将 bittorrent 的联系信息存储在几个可访问的节点上,因为它们 - 很明显 - 无法出于存储目的访问不可访问的节点。他们这样做也是有冗余的,这确保了存储的联系信息很可能被其他任何人看到。

基于该联系信息,bittorrent 客户端可以尝试相互连接。只要有一些可访问的 BT 客户端,它们就能够建立直接连接,然后还可以在不可访问的节点之间尝试一些 nat 遍历措施。同样,没有任何保证,因此在某些情况下小群体可能会失败,但一旦群体变得足够大,概率就会压倒性地倾向于有利于图形连接。

另一个小问题是 IPv4 与 IPv6。通常 IPv6 提供更好的连接性(如果防火墙不妨碍)但并非所有客户端都同样好地实现 ipv6 扩展,因此可能会阻止一些 v6 边缘的形成,而它们原则上会在相同节点之间提供更好的连接性。

请注意,ipv4 和 ipv6 DHT 理论上是独立的 DHT 网络,它们只是碰巧有一些重要的重叠。如何协调多个独立的网络,基本上不在kademlia的范围内。

关于networking - Kademlia 协议(protocol)如何保证节点形成连通图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com