题目:
假设使用连续ARQ协议,发送窗口大小是3,而序列范围[0,15],而传输媒体保证在接收方能够按序收到分组。在某时刻,在接收方,下一个期望收到序号是5。 试问:
①在发送方的发送窗口中可能有出现的序号组合有哪几种?
②接收方已经发送出去的、但在网络中(即还未到达发送方)的确认分组可能有哪些?说明这些确认分组是用来确认哪些序号的分组。
原理:
ARQ(Automatic Repeat reQuest):自动重传请求,数据包在首部中携带顺序号,确认包携带确认号(成功收到包的顺序号)。
停等协议:
发送方:
—缓冲区为空时,可以从上层接收数据,编号,放入缓冲区,发送;
—收到对于缓冲区中包的确认,序号翻转(加1模2),清空缓冲区;
—超时,重发缓冲区的包。
接收方:
—如果是正期待接收到的包,发确认,期待序号翻转;
—否则发(期待序号-1)的确认。
解析:
①第一问分两种情况讨论:一种是接收方接收到正确的包,即序号4之前的包都按序收到,发送方收到了(2,3,4)的确认包,则此时发送窗口中是(5,6,7);另一种情况发送方没有收到确认,说明发送的包有出错,因此发送窗口中可能为(2,3,4)/(3,4,5)/(4,5,6),因此发送窗口可能出现的序号组合有(2,3,4)(3,4,5)(4,5,6)(5,6,7)4种。
②因为接收方会发出当前按序接收的最后序号,而序号1的确认已经被接收方接收,所以这个序号可能是2,3,4,分别是用来确认2,3,4序号的分组。