Gossip协议,又称为流行病协议,是一种用于分布式数据库同步及信息扩散的通信协议。该协议通过周期性地在节点间传播信息来实现数据的一致性。本文介绍了Gossip协议的工作原理、优缺点以及在区块链领域的应用。
摘要生成于
,由 DeepSeek-R1 满血版支持,
Gossip Protocol
Gossip protocol 也叫 Epidemic Protocol (流行病协议)。Gossip protocol在1987年8月由施乐-帕洛阿尔托研究中心发表ACM上的论文
《Epidemic Algorithms for Replicated Database Maintenance》中被提出。原本用于分布式数据库中节点同步数据使用,后被广泛用于数据库复制、信息扩散、集群成员身份确认、故障探测等。
Gossip Protocol和DHT(Distributed Hash Table)一样是P2P网络中的通信协议。
Gossip和P2P的区别
-
每个节点都存全量的数据,本地检索
-
每个节点从Peer拉取数据,达到和Peer数据一致
-
节点收到或产生新数据的时候,会转发给Peer,最终经过Multi-hop之后到达全网
Gossip 的完整过程
为了表述清楚,我们先做一些前提设定
-
Gossip 是周期性的散播消息,把周期限定为 1 秒
-
被感染节点随机选择 k 个邻接节点(fan-out)散播消息,这里把 fan-out 设置为 3,每次最多往 3 个节点散播。
-
每次散播消息都选择尚未发送过的节点进行散播
-
收到消息的节点不再往发送节点散播,比如 A -> B,那么 B 进行散播的时候,不再发给 A。
注意:Gossip 过程是异步的,发消息的节点不会关注对方是否收到,即不等待响应;不管对方有没有收到,它都会每隔 1 秒向周围节点发消息。异步是它的优点,而消息冗余则是它的缺点。
-
享有P2P网络抗单点故障的优点
-
相比DHT更不容易受到网络阻隔(partition)
缺点
-
Multi-hop造成消息的延迟。这也是区块链挖矿、浏览器经常需要解决的问题
-
重复接收相同消息,造成了消息的冗余,也增加了收到消息的节点的处理压力
改进方向1:消息延迟
1. 增加Peer数量
需要解决的问题:Peer数量不够,节点则容易失去同步
-
在网络中设置一些固定的节点,与大量的Peer进行连接
-
其他节点Peer数量不够的时候,从这些固定节点获取Peer列表
2. 应对网络峰值
需要解决的问题:节点收到新数据后立刻转发给所有Peer,Peer多的情况下会造成瞬间的网络拥堵
解决:分批有序进行广播
a. Diffusion:广播时候对各个Peer加随机的延时
b. Fan-out:每秒随机选几个Peer发出消息
网络
协议
10 - Socket 编程(上):实践是检验真理的唯一标准
网络
协议
11 - Socket 编程(下):眼见为实耳听为虚
网络
协议
12 - HTTP
协议
:常用而不简单
网络
协议
13 - HTTPS
协议
:加密路上无尽头
网络
协议
14 - 流媒体
协议
:要说爱你不容易
“兄弟,有种子吗?”
“什么种子?小麦种吗?”
在
P2P
通信标准
协议
(
二
)
中,介绍了TURN的基本交互流程,在上篇结束部分也有说到,TURN作为STUN
协议
的一个拓展,保持了STUN的工具性质,而不作为完整的NAT传输解决方案,只提供穿透NAT的功能,
并且由具体的应用程序来使用.虽然TURN也可以独立工作,但其本身就是被设计为ICE/RFC5245
的一部分,本章就来介绍一下ICE
协议
的具体内容.
ICE信息的描述格式通常采用标准...
如果你想下一个电影,一般会通过什么方式呢?
当然,最简单的方式就是通过HTTP
协议
进行下载,但是通过浏览器下载的时候,只要文件稍微大点,下载的速度就奇慢无比。
还有种下载文件的方式,就是通过FTP,也就是文件传输
协议
。FTP采用两个TCP连接来传输一个文件:
控制连接:
P2P
网络
如果我们简单来看
P2P
技术
,它的应用领域已经非常广泛了,从流媒体到点对点通讯、从文件共享到协同处理,多种领域都有它的身影出现。
同样的,
P2P
的
网络
协议
也有很多,比较常见的有 BitTorrent、ED2K、Gnutella、Tor 等,也就是我们常说的 BT 工具
和
电驴。
比特币、以太坊等众多数字货币都实现了属于自己的
P2P
网络
协议
,但是这种模式并不同于以上讨论的 P...
区块链
技术
大量依赖于
P2P
网络
,可以说没有
P2P
就没有
区块链
现在的发展。而
区块链
拥有去中心化的应用理论,所以对
P2P
的过程有着近似严苛的安全要求。本文围绕
P2P
网络
的基础架构以及安全
协议
展开论述。内容是通过我的大量文献阅读之后进行的提炼。希望大家多多交流!
一、概述
P2P
网络
1 、何为
P2P
?
P2P
(peer-to-peer)
网络
又称为对等式
网络
,或者点对点
网络
。这是一种无中心的...