【问题标题】:Go-back-n, with an ACK loss and a packet lossGo-back-n,有一个 ACK​​ 丢失和一个数据包丢失
【发布时间】:2021-10-17 09:15:54
【问题描述】:

在刷新一些旧理论并解决几个问题时,一个实例让我感到困惑:“发送了 7 个窗口大小为 3 的包(0 到 6)。第 2 号包 ACK 在第一次发送时丢失,并且第 4 号数据包在第一次发送时就丢失了”

我知道窗口大小现在将包含数据包 [2,3,4],因为未收到 ACK2 会发生超时,并且将重新发送相同的窗口。但是数据包 4 丢失了。 我试图描绘,我认为会发生什么。原谅我的素描技巧:

【问题讨论】:

  • 你在哪里泄露?数据包 4 第一次发送时丢失了,但第二次没有丢失,对吧?那么,怎么了?
  • 顺便说一句,这是来自黑濑,因为显然他们可能在没有累积确认的情况下有 Go-Back-N
  • 如果p2的ack丢失了,那么p5就不能发送了,没有ack,所以没有移动窗口的理由; rev p3 的部分取决于确认是否是累积的。如果确认是累积的,则 p3 的 ack 也会隐式地确认 p3 之前的所有内容,因此当收到 p3 的 ack 时,可以发送数据包 6 和 7;如果acks不是累积的,就会超时,从3开始发送窗口。当再次发送p4时,它的超时被重置并重新开始,这样就可以正常通信了。
  • 如果您可以在 5 的窗口重做您的问题,您可以在此处播放没有接收器缓冲区和累积确认的版本tm.uka.de/~eir-arq/webarq/gobackn1.html
  • 好吧,在选择性重复中,确认不是累积的,因此略有不同。该链接上也有演示,点击左上角的“

标签: networking flow-control go-back-n


【解决方案1】:

为了完整性。丢失的确认不会导致重传,因为对下一个数据包的确认会隐式确认丢失的数据包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-20
    • 2014-11-26
    • 1970-01-01
    • 2023-01-02
    • 2023-03-27
    • 2022-12-22
    • 2013-03-02
    • 1970-01-01
    相关资源
    最近更新 更多