有效请求之前的多条消息

时间:2014-07-28 15:35:41

标签: networking tcp communication consensus

在2-generals问题和TCP作为一个整体的背景下,我一直想知道在下列情况下,执行以下通信步骤是否有任何优势。

考虑ATM与其银行通信以从客户账户中扣除50美元的情况,情况如下:

情况1:

ATM - 银行

扣除50美元 - >

< - 扣除50美元

ATM将随后释放资金

情况2:

ATM - 银行

我想扣除50美元 - >

< - 好的,如果你愿意,你可以要求我扣除50美元

扣除50美元 - >

< - 扣除50美元

ATM将随后释放资金

在以下情况下有任何优势吗?可以证明第一个通信步骤是完全没必要的吗?或者在第二种情况下是否存在一些开箱即用的优势?

提前致谢

1 个答案:

答案 0 :(得分:0)

你可能知道,两个将军的问题是无法解决的。总有一种方法可以以不同意见的方式丢弃消息。

在您的示例中,第一步是不必要的,因为它永远不会影响任何一方从交易所抽取有关交易的结论。这不是一个正式的证据,我不知道如何制作一个。

也就是说,在一个真正的银行系统中,ATM会记录它所做的事情,以后它会在中途通信失败的情况下与服务器同步。可以进行双重提款(这在现实世界中已经发生 - 银行开发商知道他们无法避免这个问题)但帐户余额将在以后修正。