上回内容我们学习到,一种保证可靠传输的机制——ARQ协议,ARQ协议通过设置超时定时器,当在规定时间内没有收到来自对方发来的“确认”报文,就自动报文重传。这其中,ARQ协议和停止等待机制的结合,我们把它称作“停等ARQ”,发送完一个报文之后必须等待对方的确认才能继续发送下一个报文。
由此可见,停等ARQ虽然可以一定程度上保证可靠传输,而且实现起来比较简单,但是由于其“停止等待”的特点,导致使用这种机制的通信,信道利用率太低。
因为一个报文发送出去之后,距离下一个报文的发送,至少要经过一个端到端的往返时间(也就是一个RTT,因为发送报文到达接收端以后,还要再等对方“确认”报文再回来),此外再加上一些接收端处理报文的时间,发送端处理“确认报文”的时间、出现问题再重传的时间等等这些,导致在整个通信过程中,“真正报文”发送的时间只占一小部分,整个信道的利用率就变得非常低。
因此为了解决这个利用率的问题,后来就借鉴了“流水线思想”,让发送方可以连续发送多个报文,而不必每发送完一个报文就停下来等待对方确认,这样可以做到信道上一直有数据在传输,提高其利用率。(如要具体了解流水线,可查阅计算机组成原理课程中“CPU流水线技术”)
将“流水线”思想结合到ARQ协议,同时还要结合滑动窗口技术来实现,就是本节内容要学习的连续ARQ方式。