TCP面试系列连续ARQ协议

TCP 面试系列第四弹,可靠性传输之连续 ARQ 协议。

先来看一张图示:

上图(a),表示发送方维持的发送窗口。它的意义是:位于发送窗口内的 5 个分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了。

图(b),有一个时间坐标(但以后往往省略这样的时间坐标)。按照习惯,“向前“是指向着时间增大的方向,而”向后“则是向着时间减少的方向。分组发送是按照分组序号从小到大发送。

连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。

图(b)表示发送方收到了对第 1 个分组的确认,于是把发送窗口向前移动一个分组的位置。如果原来已经发送了前 5 个分组,那么现在就可以发送窗口内的第 6 个分组了。

接收方一般都是采用累积确认的方式。也就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认。这就表示:到这个分组为止的所有分组都已正确收到了。

累积确认有优点也有缺点。优点是:容易实现,即使确认丢失也不必重传。但缺点是不能向发送方反映出接收方已经正确收到的所有分组的信息。

例如,如果发送方发送了前 5 个分组,而第 3 个分组丢失了。此时接收方只能对前两个分组发出确认,因为接收方只能对按需到达的最后一个分组发送确认。发送方无法知道后面三个分组的下落,只好把后面的三个分组都再重传一次。这就叫做Go-back-N(回退N),表示需要再退回来重传已发送过的 N 个分组。

可见当通信线路质量不好时,连续 ARQ 协议会带来负面的影响。