拜占庭将军问题
来源:互联网 发布:小米家庭数据存储中心 编辑:程序博客网 时间:2024/04/30 04:46
起源
拜占庭位于现在土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。 在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,军队可能有叛徒和敌军间谍,左右将军们的决定,扰乱军队整体的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。
[编辑]两军问题
军队与军队之间分隔很远,传讯息的信差可能在途中路上阵亡,或因军队距离,不能在得到消息后即时回复,发送方也无法确认消息确实丢失的情形,导致不可能达到一致性。在分布式计算上,试图在异步系统和不可靠的通道上达到一致性是不可能的。因此对一致性的研究一般假设信道是可靠的,或不存在异步系统上而行。
[编辑]可能的解决办法
N:计算机总数
F:有问题计算机总数
信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。
[编辑]条件
在 N ≥ 3F + 1 的情况下一致性是可能解决。
[编辑]例子
有四部计算机,全部正常。
N = 4,F = 0:
4 ≥ 3(0) + 0 是成立,故能得到一致性。
有四部计算机,其中一部是有问题的。
N = 4,F = 1:
4 ≥ 3(1) + 1 是成立,故仍然能得到一致性。
注:有问题计算机的总数可能在交换讯息时上升:
N = 4,F = 2:
4 ≥ 3(2) + 1 是不成立,故不能得到一致性
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题见解
- 拜占庭将军问题
- 拜占庭将军问题
- 拜占庭将军问题深入探讨
- 拜占庭将军问题深入探讨
- 拜占庭将军问题深入探讨
- 拜占庭将军问题深入探讨
- 拜占庭将军问题的探讨
- 字符串和输入流互转
- python操作windows注册表
- 安装maven以及配置项目的记载
- iOS的基本设计模式
- CSDN社区分享面试经历活动作品21——这段时间的几个面试
- 拜占庭将军问题
- qtmediahub硬件适配(六)
- Squid服务器的ACL规则详解
- linux下实现http抓包-http协议伪装
- java内存管理的一些基础,内存溢出的解决方案。。。
- 双链表的创建、插入、删除
- ASP.NET中aspx页面runat="server"的本质(Essensial of runat=”server” in ASP.NET)
- C#中的静态类
- NFS迈向并行领域