gpt4 book ai didi

tcp - 上一条消息未得到确认的后果

转载 作者:可可西里 更新时间:2023-11-01 02:52:01 27 4
gpt4 key购买 nike

直到不久前,我还没有深入思考过连 TCP 都有的单一限制,这在众所周知的 two-generals problem 中可见。

自从我偶然发现这个问题后,我开始想知道无法解决这个问题可能会产生哪些后果。让我们考虑电子邮件协议(protocol)。当 A 向 B 发送邮件时,A 会收到确认 B 确实收到其消息的确认。尽管如此,B 最终还是不知道 A 是否收到了确认。为什么这不重要?我试图理解为什么无法达成共识在日常应用中并不是什么大问题,我们确实知道对此感到担心(也许我想多了)。

我考虑过的另一种情况与 ATM 机有关。假设有人要提取 50 美元,交易在银行总部被接受,因此从余额中减去 Money,但考虑到此时总部和 ATM 之间的连接失败。货币打折但机器不交付货币。如何处理这些情况?

也许我有点太困惑了,但这对我来说是全新的。奇怪的是,即使在人与人之间的对话中,说最后一句话的人也无法知道对方是否听到了这句话,因为最后一句话必须在没有确认的情况下留下。

最佳答案

这是在应用程序到应用程序的基础上处理的,具体取决于业务逻辑:

  • SMTP:最糟糕的是,邮件被发送了两次。今天的邮件服务器将看到重复的 ID 并丢弃第二个副本
  • ATM:钱只在第一步预留,用户取出钱后才由预留转为取款。这实际上要复杂得多,因为所有步骤都记录在设备本地(“数钱……好”、“开槽……好”、“把钱从槽里拿出来……好”,。 ..) 能够在机器、连接或电源出现故障时回滚或前进。

关于tcp - 上一条消息未得到确认的后果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23352776/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com