我知道一个快速的谷歌掌握了大量的结果,关于这个主题的文献非常丰富,这正是问题所在。在众多可能的解决方案中,我不确定哪个是最适合我的特定需求的最佳选择。
我正在尝试通过互联网实现p2p网络,其中唯一的功能是向在线节点广播消息。要连接到网络,您必须能够指向现有IP。当您这样做时,您会发现一些同伴并与他们保持活跃的联系。然后,您可以将消息发送到每个其他节点。没有直接通信,发送的每条消息都是由其他人接收的。我希望这个网络尽可能高效,并且在UDP之上工作。
在这里指定的形状上解决这个问题的一些现有算法的名称是什么?
答案 0 :(得分:5)
如果您想了解设置分散式P2P架构的概念,您可以查看Dat Project,它为互联网上的P2P数据共享提供模块生态系统,例如{{3 (原始P2P流)和Hypercore(在超级核心之上的文件传输)。 他们有一些关于技术概念,挑战以及如何解决这些问题的良好文档。
P2P设计中的一些挑战:
Dat Project支持TCP,UDP,WebRTC和BittorrentDHT。
请阅读他们的一些规范文档,以获取有关这些概念和协议设计的深入信息:
答案 1 :(得分:2)
通过互联网在覆盖网络中广播单个消息是一件相当简单的事情。你加入网络,建立一个邻居的随机或结构化路由表,用消息淹没邻居,他们对邻居做同样的事情,减去一些修剪以避免转发循环。
复杂性源于因网络而异的其他约束和要求。例如。信任匿名设置中的问题,延迟优化,优化许多消息的高带宽流(p2p辅助实时视频广播)等。