I m试图执行关于两个单独的客户和服务器应用程序的Go Back N议定书。 我的序列号必须配备3个轨道,这样2个轨道3 = 8个最大数字,2个轨道3 - 1 = 7个窗口大小。
我最初寄给我整个窗口。 头两包(0和1)是正确的。 包装2被放弃。 当接收器收到包装单3至6时,它预计会收到2份,因此它必须打上包装箱,然后说它想要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份,必须填写预期包装,等等。 我在所有这些假设中都正确无误?
如果是,在我看来,Go Back N寄发的包裹比“停止”和“瓦伊特”多得多,尤其是你增加了窗户面积。 我没有看到什么?