P2P通信-Gossip传播

r囧r小猫 2021-10-23 11:50 331阅读 0赞

日期:2017.8.15

Gossip是p2p通信时候,广泛使用的一种协议。

具有以下特点:

最终一致性。

明确的收敛速度O(n²)和时间复杂度O(logn)

较强的网络容错性

依据节点工作方式分为两种类型:

Anti-Entropy(反熵):以固定的概率传播所有的数据

Rumor-Mongering(谣言传播):仅传播新到达的数据

Anti-Entropy模式有完全的容错性,但有较大的网络、CPU负载;Rumor-Mongering模式有较小的网络、CPU负载,但必须为数据定义”最新“的边界,并且难以保证完全容错,对失败重启且超过”最新“期限的节点,无法保证最终一致性,或需要引入额外的机制处理不一致性。

协调机制:

  1. 精确协调
  2. 每个数据项维护版本号
  3. 整体协调
  4. 整体维护版本号,依据数据多少进行排序

通信模式:

Push: 节点 A 将数据 (key,value,version) 及对应的版本号推送给 B 节点,B 节点更新 A 中比自己新的数据

Pull: A 仅将数据 key, version 推送给 B,B 将本地比 A 新的数据(Key, value, version)推送给 A,A 更新本地

Push/Pull: 与 Pull 类似,只是多了一步,A 再将本地比 B 新的数据推送给 B,B 则更新本地

网络负载:

Gossip集群节点中会随机选择几个节点发送消息,其他节点在随机选择几个节点发送,取代了遍历发送。节省了网络负担

身份验证:

每个节点都维护一份证书的映射表,同时自己存有证书的私钥。以节点证书的hash为值,叫做PKI-ID

在节点通信中,验证发送消息时带有证书的hash值和证书,同时对此进行签名,对端节点验证证书的有效性,通过验证签名正确与否来选择相信这个节点。

节点选举:

节点启动15秒后,开始选举,总体规则使用PKI-ID字母顺序,选择靠前的节点。

区块获取:

1.节点定期检查本地区块的序列号,小,则广播获取,收到的数据和已提交区块序列号连续了,就存入账本

2.从排序服务获取区块,主节点从排序服务获取一个区块后,广播给其他节点。

Gossip 的缺陷:

1.消息的延迟 节点只会随机向少数几个节点发送消息,消息最终是通过多个轮次的散播而到达全网的

2.消息冗余 节点会定期随机选择周围节点发送消息,而收到消息的节点也会重复该步骤,因此就不可避免的存在消息重复发送给同一节点的情况,造成了消息的冗余

参考: https://mp.weixin.qq.com/s/r0WNQOJ2g1nHgMl9NtD4Xw

p2p网络概览: https://zhuanlan.zhihu.com/p/34543023

基于memberlist的gossip实现: http://vearne.cc/archives/584

  1. [https://blog.csdn.net/u010278923/article/details/79698757][https_blog.csdn.net_u010278923_article_details_79698757]

memberlist源码使用分析: https://lrita.github.io/2017/05/14/hashicorp-memberlist/#alive

转载于:https://www.cnblogs.com/wanglao/p/11162626.html

发表评论

表情:
评论列表 (有 0 条评论,331人围观)

还没有评论,来说两句吧...

相关阅读

    相关 P2P技术基础

     导读:   摘 要:分析了P2P基本概念及其基本工作原理,探讨了用JAVA实现p2p网络通信的技术,并用一个实例作了进一步阐述。   关键词:P2P,C/S,J

    相关 P2P原理

    简介   前面文章在分布式计算泛型中介绍过P2P泛型,他是一种是一种无中心服务器的对等网络泛型。P2P即Peer-to-Peer的缩写,翻译为点对点或者端对端,就是我们常

    相关 P2P技术介绍

    > 看到的一篇对P2P技术的介绍 1. 什么是对等网络(P2P)技术? P2P技术属于覆盖层网络的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。

    相关 P2P通信-Gossip传播

    日期:2017.8.15  Gossip是p2p通信时候,广泛使用的一种协议。 具有以下特点: 最终一致性。 明确的收敛速度O(n²)和时间复杂度O(logn) 较强

    相关 P2P协议简介

    最近因为有些需要业务大文件分发,传统文件分发策略都是中心化,要么是推送,要么是拉取,中心节点很容易成为瓶颈,而P2P的点对点,去中心化能很好的解决这个问题。 P2P协议