3.7.2 连续ARQ协议

3.7.2 连续ARQ协议

1.连续ARQ协议的概念

为了提高通信信道的利用率,满足数据传输高效率的要求,要使发送端能够连续发送数据帧(对应一个码组),而不是在每发送完一个数据帧后,就停下来等待接收端的应答。发送端在连续发送数据帧的同时,接收对方的应答帧。若收到确认帧,继续发送数据帧。但若数据帧出错(或丢失),将出错数据帧或出错数据帧及以后的各帧重发。

根据重发方式不同,连续ARQ协议分回退N帧ARQ协议和选择重发ARQ协议。

2.回退N帧ARQ协议

回退N帧ARQ协议的重发方式是返回重发,即发送端从出错数据帧及以后的各帧都要重发,其工作原理如图3-23所示。

图3-23 回退N帧ARQ协议的工作原理(数据帧出错)

由图3-23可见,终端A向终端B发送数据帧,发完0号数据帧后,不是停下来等待,而是继续发送后续的1号、2号、3号等数据帧。同时终端A每发送完一个数据帧就要为该帧设置超时定时器。终端B连续接收各个数据帧,并经过差错检验后向终端A发回应答帧。由于发送端是连续发送,在应答帧中要说明对哪个数据帧的确认,所以应答帧需要编号。

值得注意的是,前面3.1.1简单介绍了返回重发(及选择重发)系统的工作原理。为了与TCP/IP参考模型中传输层协议TCP的可靠传输原理相一致,在回退N帧ARQ协议(及选择重发ARQ协议)中,应答只采用确认帧,不用否认帧。ACK n表示对n-1号帧的确认,即通知发送端准备接收n号帧。例如,确认帧ACK2,即通知发送端1号数据帧已正确到达接收端,接收端等待接收2号数据帧。

另外,在回退N帧ARQ协议中,接收端必须按序接收数据。当连续接收时发现数据帧出错,将出错帧丢弃(不向发送端A发送任何信息,即不通知终端A收到有差错的数据帧),由于失序要将后续再接收到的正确帧也一并丢弃,直到出错帧重发并正确后,再连续接收。

例如,在图3-23中,假设2号数据帧出错,终端B将其丢弃(不返回确认帧)。后面接收到3号数据帧,顺序不对也要丢弃,但要返回确认帧ACK2。再后面又连续接收到两个正确的数据帧(4号、5号数据帧),则将这两个数据帧都丢弃,不再返回确认帧。若终端A所发2号数据帧的超时定时器设置的时间已到或收到重复的ACK2,则重发2号、3号、4号、5号数据帧。可见,在回退N帧ARQ协议中,出错重发需连续重发“N”个帧。

回退N帧ARQ协议处理数据帧丢失与处理数据帧出错的方法一样,如图3-24所示。

图3-24 回退N帧ARQ协议的工作原理(数据帧丢失)

回退N帧ARQ协议采用连续发送方式提高了数据传输效率,但出错重传的数据帧较多时,又将使传输效率降低。所以回退N帧ARQ协议适用于传输质量较高的通信信道使用。

这里也有两点需要说明:

(a)在回退N帧AQR协议的实际应用中,为减少接收端的开销,不必对每个接收正确的数据帧立即应答,而是在连续收到多个正确的数据帧后,只对最后的一个发出确认帧,表示为ACK n。其中序号n有两层意思:一是向发送端表明确认发送序号为n-1及以前各个数据帧;二是向发送端表明期望接收序号为n的数据帧。例如,若发送端收到确认帧ACK4,则知道3号及以前的各个数据帧已正确到达接收端;接收端等待接收4号数据帧。

(b)连续ARQ协议(包括回退N帧AQR协议和选择重发ARQ协议)的应用范围较广泛,它既可以用在OSI参考模型的数据链路层,也可以用在TCP/IP参考模型的传输层。在实际应用中,根据数据传输效率等需求,接收端返回确认帧的具体方法可能略有差别,但是其基本原理、基本思路是一致的。

3.选择重发ARQ协议

选择重发ARQ协议与回退N帧ARQ协议不同的是,发送端只重传有错(或丢失)的数据帧,接收端只丢弃有错的数据帧,其后的数据帧先在缓冲存储器中暂时存储,等重新收到刚才有错、现在正确的数据帧(或丢失的数据帧),按序排好后,一并送交主机。

选择重发ARQ协议的工作原理如图3-25所示。

图3-25 选择重发ARQ协议的工作原理(数据帧出错)

图3-25中,假设2号数据帧出错,终端B将其丢弃(不返回确认帧)。后面接收到3号数据帧,顺序不对,但不丢弃而是在接收缓冲存储器中暂存下来,并返回确认帧ACK2。再后面又连续接收到两个正确的数据帧(4号、5号数据帧),将它们都在接收缓冲存储器中暂时存储,但不再返回确认帧。若终端A所发2号数据帧的超时定时器设置的时间已到或收到重复的ACK2,只重发出错的2号数据帧。接收端收到2号数据帧若无错,则与3号、4号、5号数据帧排好序后一并送交主机,并返回确认帧ACK6,对2号、3号、4号和5号数据帧一并确认。

选择重发ARQ协议在处理数据帧丢失时的方法与处理数据帧出错的方法相同,仍是采用超时定时器,发送端只重发丢失的某个数据帧,如图3-26所示。

图3-26 选择重发ARQ协议的工作原理(数据帧丢失)

选择重发ARQ协议可以避免重复传送那些本来已经正确到达接收端的数据帧,数据传输效率最高,但是要求在接收端占用更多的缓冲区。

4.回退N帧ARQ协议与选择重发ARQ协议的比较

以上介绍了回退N帧ARQ协议与选择重发ARQ协议,下面将它们做个简单的比较,如表3-11所示。

表3-11 回退N帧ARQ协议与选择重发ARQ协议的比较

由此可见,回退N帧ARQ协议与选择重发ARQ协议各有利弊,实际中根据具体情况决定采用哪种ARQ协议。

小结

(a)差错分为随机差错和突发差错两类。随机差错是指那些独立地、稀疏地和互不相关地发生的差错;突发差错是指一串串,甚至是成片出现的差错。

(b)差错控制的基本思路是:在发送端被传送的信息码序列的基础上,按照一定的规则加入若干监督码元后进行传输,这些加入的码元与原来的信息码序列之间存在着某种确定的约束关系。在接收数据信号时,检验信息码元与监督码元之间的既定的约束关系,若该关系遭到破坏,则收端可以发现传输中的差错,乃至纠正差错。

(c)差错控制方式分为4种类型:检错重发(ARQ)、前向纠错(FEC)、混合纠错检错(HEC)和信息反馈(IRQ)。其中,实时性最好的是FEC,实时性最差的是IRQ,不需要反向信道的是FEC,不需要纠错、检错编译码器的是IRQ。

ARQ的重发方式有3种:停发等候重发、返回重发和选择重发。

(d)码的检错和纠错能力是用信息量的冗余度来换取的。一般在k位信息码后面加r位监督码构成一个码组,码组的码位数为n。加入的监督码越多,码的检错、纠错能力越强,但信息传输效率(编码效率)下降也越多。编码效率的定义为R=

(e)在一种编码中,任意两个许用码组间距离的最小值,称为这一编码的汉明距离,用d min表示。汉明距离越大,纠检错能力越强,具体关系可以用3个公式来体现〔见式(3-2)~式(3-4)〕。

(f)差错控制编码可从不同的角度分类:

·按照码组的功能分,有检错码和纠错码两类。

·按照码组中监督码元与信息码元之间的关系分,有线性码和非线性码两类。

·按照信息码元与监督码元的约束关系分,可分为分组码和卷积码两类。

·按照信息码元在编码前后是否保持原来的形式不变,可分为系统码和非系统码。

·按照纠正差错的类型分,可分为纠正随机差错的码和纠正突发差错的码。

·按照每个码元取值分,可分为二进制码与多进制码。

(g)几种简单的差错控制编码主要包括奇偶监督码、水平奇偶监督码和二维奇偶监督码,它们都属于线性分组码,其中二维奇偶监督码的检错能力最强。

(h)汉明码是一种能够纠正1位错码且编码效率较高的线性分组码。(n,k)汉明码r个监督位与码长n的关系为:2r-1≥n。

(7,4)汉明码是一种简单的汉明码。根据监督关系可以确定监督位a 2,a 1,a 0,继而可以产生(7,4)汉明码。(7,4)汉明码的汉明距离d min=3,这种码能纠正1个错码或检测2个错码。

(i)线性码是指监督码元与信息码元之间满足一组线性方程的码;分组码是监督码元仅对本码组中的码元起监督作用,或者说监督码元仅与本码组的信息码元有关。既是线性码又是分组码的编码就叫线性分组码。

线性分组码的主要性质有两个:

·封闭性(是指一种线性分组码中的任意两个码组之逐位模2和仍为这种码中的另一个许用码组)。

·码的最小距离等于非零码的最小重量。

(j)循环码属于线性分组码,它除了具有线性分组码的一般性质外,还具有循环性。循环性是指循环码中任一许用码组经过循环移位后(将最右端的码元移至左端,或反之)所得到的码组仍为它的一个许用码组。

循环码的生成多项式g(x)的定义为:(n,k)循环码的2k个码组中,有一个码组前k-1位码元均为0,第k位码元为1,第n位(最后一位)码元为1,此码组对应的多项式即为生成多项式g(x),其最高幂次为x n-k

根据式(3-36),由生成多项式可以求生成矩阵G(x),经过变换可以得到典型的生成矩阵,最终可求出整个码组。

(k)卷积码是编码器在任何一段规定时间内产生的n个码元,其监督位不仅取决于这段时间中的k个信息位,而且还取决于前N-1段规定时间内的信息位。换句话说,监督位不仅对本码组起监督作用,还对前N-1个码组也起监督作用。这N段时间内的码元数目n N称为这种卷积码的约束长度。通常把卷积码记作(n,k,N),其编码效率为R=

(l)交织技术是将一数据信号序列中的相继比特以非相继方式发送出去,以减小信道中差错的相关性,这样即使在传输过程中发生了成串差错,恢复成一条相继比特串的数据信号序列时,差错也就变成单个(或长度很短),即把长突发差错离散成短突发差错或随机差错,这时再用信道编码纠错功能纠正差错,恢复原信息。

交织技术按交织对象分可分为符号交织和比特交织;按交织方式可分为分组交织和卷积交织两种。

分组交织又称矩阵交织或块交织,编码后的码组序列被按行填入一个大小为m×n的矩阵,矩阵填满以后,再按列发出。同样,接收端的解交织器将接收到的信号按列填入m×n的矩阵,填满后再按行读出。

(m)ARQ协议包括停止等待ARQ协议和连续ARQ协议,根据重发方式的不同,连续ARQ协议又分回退N帧ARQ协议和选择重发ARQ协议。

停止等待ARQ协议规定:发送端每发送一个数据帧就暂停下来,等待接收端的应答。若数据帧没错,则接收端向发送端返回一个确认帧ACK,发送端再发送下一个数据帧;若接收端检验出数据帧有错或数据帧丢失,则发送端需要重发有错或丢失的数据帧。

连续ARQ协议是发送端在连续发送数据帧的同时,接收对方的应答帧。若收到确认帧,则继续发送数据帧;若数据帧出错或丢失,则需要重发。回退N帧ARQ协议的重发方式是返回重发,即发送端从出错(或丢失)数据帧及以后的各帧都要重发;选择重发ARQ协议的重发方式是选择重发,即发送端只重发出错(或丢失)的数据帧。