我已经开始研究DHT,尤其是kademlia已有一段时间了。 我试图在Kademlia DHT上实现一个p2p网络。我希望能够向整个网络发送消息。 从我的研究中可以看出,使用gossip协议,但是当我已经使用dht存储对等体时,添加另一个全新的协议来传播消息似乎很奇怪。 有没有像Kademlia这样的DHT拓扑结构工作的八卦协议?
答案 0 :(得分:1)
您对效率的关注程度如何?作为下限,有人必须向网络中的所有$("ul li:only-of-type").parent().hide();
节点发送数据包,以将更新传播到所有节点。
最天真的方法是简单地将每条消息转发到路由表中的所有条目。这是不行的,因为它显然会导致转发风暴。
第二种最天真的方法是转发更新,即更新的数据。这将导致N
流量。
如果您的所有节点都受到信任,并且您不关心效率的最后一个方面,那么您已经可以在此停止。
如果节点不受信任,您将需要一种机制来限制谁可以发送更新并验证数据包。
如果您还关心效率,可以在转发和跟踪哪个路由表条目已经具有哪个版本来修改不必要的转发尝试之前添加随机退避。
如果您不想与整个网络闲聊但只有其子集,您可以实现感兴趣的节点可以加入的子网,即订阅。 Bittorrent Enhancement Proposal 50描述了这种方法。