自動重傳請求(automatic repeat-request,arq)是osi模型中數(shù)據(jù)鏈路層的錯誤糾正協(xié)議之一。
它包括停止等待arq協(xié)議和連續(xù)arq協(xié)議,錯誤偵測(error detection)、正面確認(rèn)(positive acknowledgment)、逾時重傳(retransmission after timeout)與負(fù)面確認(rèn)繼以重傳(negative acknowledgment and retransmission)等機(jī)制。如果在協(xié)議中,發(fā)送方在準(zhǔn)備下一個數(shù)據(jù)項目之前先等待一個肯定的確認(rèn),則這樣的協(xié)議稱為par(positive acknowledgement with retransmission,支持重傳的肯定確認(rèn)協(xié)議)或者arq(automatic repeat request,自動重復(fù)請求協(xié)議)。
自動重傳請求(automatic repeat request),通過接收方請求發(fā)送方重傳出錯的數(shù)據(jù)報文來恢復(fù)出錯的報文,是通信中用于處理信道所帶來差錯的方法之一,有時也被稱為后向糾錯(backward error correction,bec);另外一個方法是信道糾錯編碼。
停等式arq
在停等式arq中,數(shù)據(jù)報文發(fā)送完成之后,發(fā)送方等待接收方的狀態(tài)報告,如果狀態(tài)報告報文發(fā)送成功,發(fā)送后續(xù)的數(shù)據(jù)報文,否則重傳該報文。
停等式arq,發(fā)送窗口和接收窗口大小均為1,發(fā)送方每發(fā)送一幀之后就必須停下來等待接收方的確認(rèn)返回,僅當(dāng)接收方確認(rèn)正確接收后再繼續(xù)發(fā)送下一幀。該方法所需要的緩沖存儲空間最小,缺點(diǎn)是信道效率很低。
回退n幀的arq
在回退n幀的arq中,當(dāng)發(fā)送方接收到接收方的狀態(tài)報告指示報文出錯后,發(fā)送方將重傳過去的n個報文?;赝薾,發(fā)送窗口大于1(2^(k-1)),接收窗口等于1。允許發(fā)送方可以連續(xù)發(fā)送信息幀,但是,一旦某幀發(fā)生錯誤,必須重新發(fā)送該幀及其后的n幀。這種方式提高了信道的利用率,但允許已發(fā)送有待于確認(rèn)的幀越多,可能要退回來重發(fā)的幀也越多。
選擇性重傳arq
在選擇性重傳arq中,當(dāng)發(fā)送方接收到接收方的狀態(tài)報告指示報文出錯,發(fā)送方只發(fā)送傳送發(fā)生錯誤的報文。選擇重傳協(xié)議,發(fā)送窗口和接收窗口都大于1 且小于(2^(k-1))。發(fā)送方僅重新傳輸發(fā)生錯誤的幀,并緩存錯誤幀之后發(fā)送的幀。與回退n相比,減少了出錯幀之后正確的幀都要重傳的開銷。
混合arq
在混合arq中,數(shù)據(jù)報文傳送到接收方之后,即使出錯也不會被丟棄。接收方指示發(fā)送方重傳出錯報文的部分或者全部信息,將再次收到的報文信息與上次收到的報文信息進(jìn)行合并,以恢復(fù)報文信息。