首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >能否实现一个健壮的2节点P2P协议?

能否实现一个健壮的2节点P2P协议?
EN

Software Engineering用户
提问于 2015-04-01 03:40:19
回答 1查看 146关注 0票数 1

我正在考虑如何实现一个只有两个节点的P2P协议。

起初,我读到了不同的DHT实现,希望这个场景是可行的。结果,从本质上说,期望超过几个节点是有效的。

对此的天真思考给我带来了以下挑战:

  • 在引导过程中,节点将在哪里寻找彼此?
  • NAT穿越和其他网络问题呢?

有人成功了吗?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2015-04-01 04:22:20

基本上,这是不可能有效率的。

大多数P2P网络依赖于种子信息(它可以尝试连接到的现有节点列表)。从您的问题中,我认为您想要一个不需要将种子信息提供给节点的解决方案。

在没有种子信息的情况下,P2P网络中的节点仅限于尝试随机地址。如果(A)网络中的P2P节点数量很大,并且(B)许多/大多数节点能够接受传入的连接(即,不落后于NAT),则可以成功地工作。

对于IPv4上的两个节点,如果其中一个节点能够接受入站连接,这将意味着在它们彼此发现之前发送了数十亿个数据包。

如果两者都不能接受入站连接,则必须尝试同时连接对方以实现nat遍历。每一次成功的几率只有2^64。这是因为他们每个人都必须正确猜测对方的地址。这根本行不通。

显然,IPv6使一切变得更加困难。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/277930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档