Gossip协议-推导运算分析

本文深入探讨Gossip协议,解析其周期性、成对性和随机选择等核心特征。通过实例说明协议如何在网络中传播信息,并重点讨论了有偏Gossip协议的效率提升。此外,分析了协议在大规模网络中达到全网传播的log时间复杂度,展示了其在不可靠通信环境下的适应性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Gossip协议又称传染病协议,因为gossip(流言)以类似于病毒的方式在计算机之间传播信息。

Gossip协议满足的条件

  1. 协议的核心包括周期性,成对性,内部进程交互
  2. 交互期间的信息量大小固定
  3. 节点交互后,至少一个agent获知另一个agent的状态
  4. 通信不可靠
  5. 交流的频率远远低于消息的传输延迟
  6. 对端选择的随机性,或者从全集,或者从部分集合
  7. 由于副本的存在,传输的信息具有隐式冗余

Gossip协议举例

假设我们在一个网络中寻找一个pattern的最优匹配,机器上运行着agent 程序,这些agents实现了gossip协议

  1. 用户首先要求local agent传播pattern
  2. 每一个agent定期并以一定的速率(0.1秒一次)随机选择一个其他的节点传播此pattern。例如节点A和B,如果A知道了pattern,那么B也会知道,随后A和B随机选择了C和D继续传播此消息。因此即使发生节点故障或者消息丢失,此消息依然会在全网范围内传播。
  3. 如果agent第一次收到此pattern,则开启本地查询,寻找本地的最优匹配
  4. agents也传播其最优匹配。因此,如果A和B进行交互后,A和B都会知道最优匹配。最优匹配也会通过全网范围进行传播。
  5. Log时间的复杂度,例如25000个节点,那么30轮就会结束,15轮进行pattern的传播,15轮询问最优匹配。

有偏Gossip协议

不是从全部节点中随机选择一个,考虑到网络延迟,从相邻的节点中随机选择,更高效。

为何是log时间

变量定义

初始111个人,全部nnn个人,一个人每次感染bbb个人,则感染率为p=b/(n−1)p = b/(n-1)p=b/(n1)
令第iii轮有xix_ixi个人被感染,n−xin-x_inxi未感染
则第i+1i+1i+1被感染的新的人数为xi∗p∗(n−xi)x_i * p * (n-x_i)xip(nxi)
xi+1=xi+xi∗p∗(n−xi)x_{i+1} = x_i + x_i * p * (n-x_i)xi+1=xi+xip(nxi),且x1=1x_1 = 1x1=1

证明

xix_ixi个人中每一个人能够感染的新人为: b∗(n−xi)/(n−1)b * (n-x_i)/(n-1)b(nxi)/(n1)
则一共xix_ixi个人贡献的感染人数为: xi∗b∗(n−xi)/(n−1)=xi∗p∗(n−xi)x_i * b * (n-x_i) / (n-1) = x_i * p * (n-x_i)xib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值