我知道快速谷歌可以得到大量的结果,并且关于这个主题的文献非常丰富,而这正是问题所在。在众多可能的解决方案中,我不确定哪一个是满足我的特定需求的最佳、最新的选择。
我正在尝试在互联网上实现一个 p2p 网络,其唯一的功能是将消息广播到在线节点。为了连接到网络,您必须能够指向现有的 IP。当你这样做时,你会发现一些同伴并与他们保持活跃的联系。然后,您可以向每个其他节点发送消息。没有直接的沟通,发送的每条消息都会被其他人接收。我希望这个网络具有尽可能高的性能,并且在 UDP 之上工作。
解决此处指定的形状问题的一些最先进算法的名称是什么?
如果你想了解建立去中心化 P2P 架构的概念,你可以看看数据基金会,他们提供了一个用于通过互联网共享 P2P 数据的模块生态系统,例如超核(原始 P2P 流)和超光速引擎(超核之上的文件传输)。
他们有一些关于技术概念、挑战以及如何解决这些问题的良好文档。
P2P 设计中的一些挑战:
-
NAT 路由器和防火墙:通过实施 NAT 穿越和 UDP 打洞来克服(参见:NAT穿越现状由零层)
-
发现同行:Dat 项目使用 Gossiping 作为一群对等点在网络上找到彼此的有效方式,以及一种简单的(protobuf)有线协议进行通信(请参阅:超发现 and 超核协议).
-
P2P数据通讯/同步:Hypercore 在每个对等点上实现仅追加日志,并使用 Merkle 树以正确的顺序聚合和删除来自其他对等点的重复数据块
Dat 项目支持 TCP、UDP、WebRTC 和 BittorrentDHT。
请阅读他们的一些规范文档,以获取有关这些概念和协议设计的深入信息:
-
Dat - 分布式数据集同步和版本控制 (pdf)
- 数据如何运作
- 超核协议
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)