ARQ
自動重傳請求(Automatic Repeat-reQuest,ARQ)是OSI模型中數據鏈路層的錯誤糾正協
議之一。它通過使用確認和超時這兩個機制,在不可靠服務的基礎上實現可靠的信息傳輸
。如果發送方在發送後一段時間之內沒有收到確認幀,它通常會重新發送。ARQ可能包括
停止等待ARQ協議和連續ARQ協議,錯誤檢測(Error Detection)、正面確認(Positive
Acknowledgment)、超時重傳(Retransmission after Timeout)和 負面確認及重傳
(Negative Acknowledgment and Retransmission)等機制。
停止並等待協議的工作原理如下:
1.發送點對接收點發送數據包,然後等待接收點回復ACK並且開始計時。
2.在等待過程中,發送點停止發送新的數據包。
3.當數據包沒有成功被接收點接收時候,接收點不會發送ACK. 這樣發送點在等待一定時
間後,重新發送數據包。
4.反覆以上步驟直到收到從接收點發送的ACK.
發送點的等待時間應當至少大於傳輸點數據包發送時間(數據包容量除以發送點傳輸速度)
,接收點ACK接收時間(ACK容量除以接收點傳輸速度),數據在連接上的傳送時間,接
收點檢驗接收數據是否正確的時間之和。在實際應用當中,等待時間是這個和的2到3倍。
這個協議的缺點是較長的等待時間導致低的數據傳輸速度。在低速傳輸時,對連接頻道
的利用率比較好,但是在高速傳輸時,頻道的利用率會顯著下降。
連續ARQ協議(Continuous ARQ)
為了克服停止並等待ARQ協議長時間等待ACK的缺點。這個協議會連續發送一組數據包,
然後再等待這些數據包的ACK.
選擇重傳 (Selective Repeat)
發送點連續發送數據包但對每個數據包都設有個一個計時器。
當在一定時間內沒有收到某個數據包的ACK時,發送點只重新發送那個沒有ACK的數據包
這個方法的缺點是接收點收到的數據包的順序可能不是發送的數據包順序。因此在數據
包里必須含有順序字符來幫助接受點來排序。
倒退N (Go-back-N)
這個方法解決了選擇重複中數據包順序被打亂的問題。
發送點連續發送數據包,每個數據包都含有順序字符。
接受點發現某個數據包沒有接受到,對發送點發NACK.在NACK中指明沒有接受的數據包。
接收點丟棄從第一個沒有收到的數據包開始的所有數據包。
發送點收到NACK後,從NACK中指明的數據包開始重新發送
這個辦法的問題是如何正確選擇表明數據包的順序字符的數量。這個數量因當包括ACK
或者ACK從接收點到達發送點的時間。
方法
ARQ協議對錯誤糾正的方法是:
丟棄已經接收的含有錯誤的數據包。
向發送點請求重新發送數據包。
應用
UMTS 的 ARQ 機制是在基地台控制站(Radio Network Controller,RNC),使用安置
在協議數據單元(Protocol Data Unit,PDU)前的序號來作為是否有封包丟失的依據
,有不少的延遲時間。
優點和缺點
ARQ協議的優點是它非常的簡單。因而被廣泛的應用在分組交換網絡中。
ARQ協議的缺點是需要接收方發送ACK,這樣增加了網絡的負擔也影響了傳輸速度。重
複發送數據包來糾正錯誤的方法也嚴重的影響了它的傳輸速度。
-------------
資料來源:
http://zh.wikipedia.org/zh-hk/ARQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.115.63