两将军问题引发的思考

前言

本人有强迫症,对于这种一时想不通的问题,简直让我脑袋要冒烟了!

所以这片文章,更像是抛一个绣球,让对这个问题有深入思考的人来给我的脑袋灭火!!!

算是一种自救的方式了!!!

两将军问题

相信看这篇文章的人,对两将军问题有一定的了解,这里不赘述了。

为了就突出我疑惑的点,避免不必要的信息干扰,我前述几个特征,与大家达成共识:

1)两个将军都是中诚的, 不考虑叛徒与反馈错误信息

2)信道只考虑丢失,不考虑错误,篡改

在这样的条件下,是否会引发无限确认问题?

我之所提出这个问题,是希望能得到哲学性的思考,不是数学上计算(当然也欢迎数学证明,虽然我未必看得懂),据说这个问题在80年代就被用图论证明,但原问题应该考虑的情况据说比较复杂。

我关于两将军问题的思考

一、首先,我要区分两个概念,即传递消息达成共识是两码事,达成共识是依赖传递消息实现的

传递消息必要条件:

- 发出消息

- 收到确认

也就是一去一回可以传递消息,只需要单方确认

达成共识必要条件:

- 发出消息

- 收到确认

- 让对方知道我收到确认(因为一但对方,不确定我收没收到确认,就会产生疑惑,从而无法形成稳定共识)

到这里,或许就会有人意识到“无限确认”的问题,先别着急,后边会提到,这也是我的疑惑。

二、先分析下面的场景

可靠信道

1)可靠信道下传递消息,只需要一条就够,即传递过去

2)可靠信道就非是即否的问题达成共识,只需要两条信息

不可靠信道(还是只考虑丢失问题)

1)不可靠信道下传递消息,需要两条,即发出,收到确认

2)达成共识,理论达不成共识,也就是“无限确认”问题

我的疑惑

这个“无限确认”问题,我始终想不通,因为我觉得3次传递(或者说3次握手)就可以形成共识,最多4次。

如果说,一条消息的发送是依靠一条确认来达到目的,对ack就会无限确认,不无限确认就无法形成共识,这个在逻辑上怎么证明?

声明

为了避免被喷,先声明以上都是个人浅显理解,可能是错的。就是希望各位大牛解惑,如果你的说明是网上别人说的,那我可能已经看过了,所以,请大家就我的疑惑解答一下,而不是网上的重述!快来救救我可怜的脑细胞把!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值