1
我正试图在两个单独的客户端和服务器应用程序上实现Go back N协议。假设我的序列号必须适合3位,所以2^3 = 8个最大数字,2^3 - 1 = 7个窗口大小。返回N协议
我最初发送我的整个窗口。前两个数据包(0和1)正确接收。数据包2被丢弃。当接收机通过6得到的数据包3中,期待2,所以它必须NACK它得到了说分组就是了2.
Sender Receiver
0 0
1 1
2 (packet dropped)
3 nack2
4 nack2
5 nack2
6 nack2
当发送方接收第一NACK2,它知道0和1已经(通过捎带)接收并向前移动它的窗口,但它也必须从序号2开始重新发送它的窗口(所以2-3-4-5-6-和可能的7-0)。发件人收到第二个nack2时,它已经发送了这些数据包。由于该协议,发送方将再次重发他的整个窗口,包括2.现在接收方可能会收到2个(和其他),但在第二个nack2批次中,它将重新接收2,这是无序的,将不得不停止其预期的数据包,等等。我在所有这些假设中是否正确?
如果我是这样,在我看来,返回N发送的数据包比停止和等待更多,特别是增加窗口大小越多。我没有得到什么?