Rdt2.1 和 Rdt2.2的详细解释

Rdt2.1 和 Rdt2.2的详细解释目录

  • Rdt2.1 和 Rdt2.2的详细解释
      • 这俩为啥会出现?
      • 解决之道
        • Rdt 2.1
        • Rdt2.2
可靠数据传递中Rdt1.0, Rdt2.0, Rdt3.0 都很好理解,但是就是这两个毒瘤一直在我脑袋里面刺痛着我,经过一段时间的总结,我相信我能给大家一个比较好理解的解释 。
这俩为啥会出现?
既然大版本好是2.0,我们可以回忆一下2.0阶段做了什么事情Rdt2.0中增加了检验纠错的结构,也就是应答 。
sequenceDiagram sender -->> receiver: 发送消息(备注:你看看对不对?)(跳转到等待态) receiver -->> sender: 啊对对对,这玩意是我想要的(receiver验货,正常ACK返回) sender -->> sender: 爷终于放心了,可以发下一个了(状态回溯到初始状态) receiver -->> sender: 不对啊,我不收(异常NAK) sender -->> receiver: 重发
按理来说这个过程非常自然啊,receiver检验,sender等待,整个流程走完了,数据也发出去了,如果数据异常,sender也能够重发,但是问题就在于,如果象征着异常数据的标志NAK也错了,象征着正常数据的ACK也错了,sender该如何判断????它唯一的相信的东西没了!!这个流程自然说不通了 。

    经验总结扩展阅读