结构推理
假定你正在为一条线路编写数据链路层软件,该线路被用来发送数据给你,而不是从你发出数据。另一端使用HDLC,序列号采用3位,窗口大小是7。你打算缓存所有可能的未确认序列帧,以提高效率,但不允许修改发送方的软件。是否可以使接收方窗口大于1并仍保证协议不会失败?如果可以,能够安全使用的最大窗口值是多少?
【正确答案】不可以。最大接收窗口的大小就是1。现在假定该接收窗口值变为2。开始发送方
发送0至6号帧,所有7个帧都被收到,并作了确认,但确认被丢失。现在接收方准备接收
7号和0号帧。当重发的0号帧到达接收方时,它将被缓存保留,接收方确认6号帧。当7
号帧到来时,接收方将把7号帧和缓存的0号帧传递给主机,导致协议错误。因此,能够安
全使用的最大窗口值就是1。
【答案解析】