【发布时间】: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