Networking Kademlia协议如何保证对等点形成连通图?

Networking Kademlia协议如何保证对等点形成连通图?,networking,p2p,bittorrent,dht,kademlia,Networking,P2p,Bittorrent,Dht,Kademlia,节点:DHT网络上的客户端。 对等方:尝试下载特定资源的客户端 假设DHT网络是一个连通图,但没有节点可以访问所有其他节点(这与普遍认为DHT网络覆盖的互联网是完全连通的观点相反) 覆盖在DHT网络上的对等网络仍然是连通图吗?为什么?Kademlia是一种抽象算法,它假设球形奶牛处于真空中。本文讨论的唯一故障模式是搅动和临时图分区。不考虑非对称可达性 在现实世界中实施的Kademlia没有任何保证。一切都是在尽力而为的基础上完成的,可能性足够好了 现实世界中的主要问题不是互连集群A无法与互连集群

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

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


覆盖在DHT网络上的对等网络仍然是连通图吗?为什么?

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

在现实世界中实施的Kademlia没有任何保证。一切都是在尽力而为的基础上完成的,可能性足够好了

现实世界中的主要问题不是互连集群A无法与互连集群B通信的节点。NAT和防火墙不会在相当大的范围内引入此类集群。它们创建了一组二等公民,任何人都无法始终到达这些二等公民(缺少NAT穿越措施),因此只能连接到一等公民,而一等公民是任何人都可以与任何其他人交谈的节点。当然存在一些边缘案例,但它们在很大程度上无关紧要

不管怎么说,既然你问的不是kademlia而是bittorrent,它实际上不是一个覆盖kademlia的网络,而是一个单独的网络,只需从kademlia引导其联系信息,事情就变得更复杂了。Bittorrent可以通过两种不同的传输机制(TCP和µTP)实现,客户端可以通过UDP支持TCP、µTP和Kademlia的不同级别的nat穿越功能

Kademlia节点通常将bittorrent的联系信息存储在几个可访问的节点上,因为很明显,它们无法访问不可访问的节点进行存储。它们还具有冗余,这确保了存储的联系信息很可能被其他任何人观察到

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

另外一个小问题是IPv4与IPv6。通常,IPv6提供了更好的连接,但并非所有客户端都能同样好地实现IPv6扩展,因此可能会阻止一些v6边缘的形成,因为它们原则上可以在相同节点之间提供更好的连接


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

您是在询问DHT键值存储的可见性,还是询问根据DHT中存储的联系信息从DHT引导的独立网络?我猜可能是第二个。事实上,我是在问,当所有客户端都在同一网络上时,下载相同资源的Bittorrent客户端的连接是否总是形成一个连接图(因此消息广播是可行的),而不是孤立的组(不可行的),但由于ISP的防火墙或地区封锁,无法保证所有客户端之间的连接。例如,想象中的7节点DHT网络,如果四个法国人和两个德国人不能互相访问,但都可以访问一个荷兰人,而荷兰人不提供代理。卡德姆利亚是否保证所有法国人都在一个连接图上,而不是两个2对等网络上?卡德姆利亚是否保证一旦荷兰人开始下载法国和德国的相同资源,分离的法国网络和德国网络就会立即加入?很抱歉我的回复太晚了。虽然Kademlia没有做出任何保证,但这是否意味着在下载相同资源的这些对等方之间发现连通图的概率和统计概率都很高?在Kademlia的论文中,发现最近的节点(它是否需要与资源位于相同地址空间的节点?)对资源的访问是恢复资源对等方的路由信息。这是合并自发形成的分离图的机制吗?还有其他机制吗?顺便问一下,Bittorent或Emule的Kademlia能帮助在查询中找到使用特定BEP或扩展的对等方,而不是客户面对面询问并在本地过滤吗?或者还有其他使用DHT的网络可以吗?有很多后续问题,我认为它们不适合评论格式。是的…谢谢你提醒我。我应该再问3个问题吗?