请归纳一下连续ARQ协议都有哪些主要功能和特别要注意的地方
参考答案:连续ARQ协议的主要功能可以归结为以下两点:
(1)在不可靠的链路上实现可靠交付
这点可从用下面的图来说明。
[*]
因为出错的帧都被CRC检验器悄悄地丢弃了,因此接收端收下的帧都是无传输差错的帧。数据链路层协议还保证了收到的帧的顺序和发送端发送的顺序一致,因为序号不对的帧都不接受。因此,数据链路层的连续ARQ协议就在不可靠的链路上实现了可靠交付,即发送端发送什么,接收端就收到什么。所有的重传对上面都是透明的。
总之,可靠交付就是:无差错、无丢失、无重复、按顺序。
(2)支持了流量控制
在链路层流量控制的思想就是:当接收端来不及接收时(如缓存空间不够或CPU忙不过来),就可以通过暂时不发送确认帧来降低发送端发送数据帧的速率。
关于连续ARQ协议特别要注意的地方就是对出错帧和不按序到达的帧的处理。
对出错帧的处理:
CRC检验器自动将其丢弃,协议没有其他动作。但为了不白白浪费时间,可以规定,如果一个帧重传多少次都一直出错,那么就不要再继续重传下去,而是报告上层软件,指出通信线路不可用。
对不按序到达的帧的处理(这个帧并无传输差错):
如果接收端没有数据帧要发送,接收端丢弃这个帧。同时向发送端重复发送已经发送过的最后一个确认帧。
如果接收端有数据帧要发送,接收端可以在就是下面要发送的自己的数据帧中,把确认信息捎带发送给对方。这个确认信息就是“期望收到对方的某个编号的数据帧。
接收端也可以每隔一段时间,向发送端重复发送已经发送过的最后一个确认帧。