自動重傳請求
此條目包含過多行話或專業術語,可能需要簡化或提出進一步解釋。 (2013年12月30日) |
此條目沒有列出任何參考或來源。 (2013年12月30日) |
自動重傳請求(Automatic Repeat-reQuest,ARQ)是OSI模型中資料鏈結層和傳輸層的一種錯誤更正協議。此協議透過使用確認和超時這兩種機制,在不可靠的服務基礎上實作出可靠的訊息傳輸。如果發送方在傳送後的一段時間內沒有收到確認訊框,它通常會重新傳送。ARQ可能包括停止等待ARQ協議和連續ARQ協議,並包含錯誤檢測(Error Detection)、正面確認(Positive Acknowledgment)、超時重傳(Retransmission after Timeout)以及負面確認及重傳(Negative Acknowledgment and Retransmission)等機制。
停止並等待ARQ協議(stop-and-wait)
編輯停止並等待協議的工作原理如下:
- 發送點對接收點發送數據包,然後等待接收點回復ACK並且開始計時。
- 在等待過程中,發送點停止發送新的數據包。
- 當數據包沒有成功被接收點接收時候,接收點不會發送ACK。這樣發送點在等待一定時間後,重新發送數據包。
- 反覆以上步驟直到收到從接收點發送的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,這樣增加了網絡的負擔也影響了傳輸速度。重複發送數據包來糾正錯誤的方法也嚴重的影響了它的傳輸速度。
參見
編輯參考文獻
編輯- Peterson and Davie, Computer Networks: A Systems Approach, Third Edition, 2003
- RFC 3366 - Advice to link designers on link Automatic Repeat reQuest (ARQ)
- Negative acknowledgement ARQ for live video
- 本條目引用的公有領域材料來自聯邦總務署的文檔《Federal Standard 1037C》 (MIL-STD-188提供支持)。