跳至內容

自動重傳請求

維基百科,自由的百科全書

自動重傳請求Automatic Repeat-reQuestARQ)是OSI模型資料鏈結層傳輸層的一種錯誤更正協議。此協議透過使用確認和超時這兩種機制,在不可靠的服務基礎上實作出可靠的訊息傳輸。如果發送方在傳送後的一段時間內沒有收到確認訊框,它通常會重新傳送。ARQ可能包括停止等待ARQ協議和連續ARQ協議,並包含錯誤檢測(Error Detection)、正面確認(Positive Acknowledgment)、超時重傳(Retransmission after Timeout)以及負面確認及重傳(Negative Acknowledgment and Retransmission)等機制。

停止並等待ARQ協議(stop-and-wait)

停止並等待協議的工作原理如下:

  1. 發送點對接收點發送數據包,然後等待接收點回復ACK並且開始計時。
  2. 在等待過程中,發送點停止發送新的數據包。
  3. 當數據包沒有成功被接收點接收時候,接收點不會發送ACK。這樣發送點在等待一定時間後,重新發送數據包。
  4. 反覆以上步驟直到收到從接收點發送的ACK。

發送點的等待時間應當至少大於傳輸點數據包發送時間(數據包容量除以發送點傳輸速度),接收點ACK接收時間(ACK容量除以接收點傳輸速度),數據在連接上的傳送時間,接收點檢驗接收數據是否正確的時間之和。在實際應用當中,等待時間是這個和的2到3倍。

這個協議的缺點是較長的等待時間導致低的數據傳輸速度。在低速傳輸時,對連接頻道的利用率比較好,但是在高速傳輸時,頻道的利用率會顯著下降。

連續ARQ協議(Continuous ARQ)

為了克服停止並等待ARQ協議長時間等待ACK的缺點。這個協議會連續發送一組數據包,然後再等待這些數據包的ACK。

回退N重傳(Go-Back-N)

  • 接收點丟棄從第一個沒有收到的數據包開始的所有數據包。
  • 發送點收到NACK後,從NACK中指明的數據包開始重新發送。

選擇重傳(Selective Repeat)

  • 發送點連續發送數據包但對每個數據包都設有個一個計時器。
  • 當在一定時間內沒有收到某個數據包的ACK時,發送點只重新發送那個沒有ACK的數據包。

方法

ARQ協議對錯誤糾正的方法是:

  • 丟棄已經接收的含有錯誤的數據包。
  • 向發送點請求重新發送數據包。

應用

UMTS的ARQ機制是在基地台控制站(Radio Network Controller,RNC),使用安置在協議數據單元(Protocol Data Unit,PDU)前的序號來作為是否有封包丟失的依據,有不少的延遲時間。

優點和缺點

ARQ協議的優點是它非常的簡單。因而被廣泛的應用在分組交換網絡中。

ARQ協議的缺點是需要接收方發送ACK,這樣增加了網絡的負擔也影響了傳輸速度。重複發送數據包來糾正錯誤的方法也嚴重的影響了它的傳輸速度。

參見

參考文獻