計算機網路中的選擇重發ARQ是什麼?
選擇重發自動重傳請求(ARQ)是一種資料鏈路層可能用來控制錯誤的技術。
控制ARQ的技術
通常,有三種技術透過自動重傳請求(ARQ)來控制錯誤,它們是:
- 停止等待ARQ
- 後退N ARQ
- 選擇重發ARQ
錯誤控制的要求
錯誤控制機制有一些要求,如下所示:
錯誤檢測 - 傳送方和接收方,或任何一方必須確定傳輸過程中是否存在錯誤。
肯定確認 (ACK) - 接收方每收到一個正確的幀,都應進行確認。
否定確認 (NACK) - 每當接收方收到損壞的幀或重複的幀時,它會向傳送方傳送NACK,傳送方必須重新傳輸正確的幀。
重傳 - 傳送方始終維護一個時鐘並設定超時週期。如果先前傳輸的資料幀的ACK在超時前沒有到達,則傳送方會重新傳輸該幀,認為該幀或其ACK在傳輸過程中丟失了。
讓我們看看選擇重發ARQ的工作情況。
選擇重發ARQ
它也稱為滑動視窗協議,用於資料鏈路層的錯誤檢測和控制。
在選擇重發中,傳送方傳送由視窗大小指定的多個幀,甚至不需要像後退N ARQ那樣等待接收方的單個確認。在選擇重發協議中,重新傳輸的幀是亂序接收的。
在選擇重發ARQ中,只有丟失或錯誤的幀才會被重新傳輸,而正確的幀則被接收並緩衝。
接收方在跟蹤序列號的同時將幀緩衝在記憶體中,並且僅對丟失或損壞的幀傳送NACK。傳送方將傳送/重新傳輸收到NACK的包。
示例
以下是選擇重發ARQ的示例:
解釋
步驟1 - 幀0從傳送方傳送到接收方並設定計時器。
步驟2 - 傳送方在不等待接收方確認的情況下,傳送另一個幀,幀1,併為其設定計時器。
步驟3 - 同樣,幀2也在不等待之前的確認的情況下發送到接收方,並設定計時器。
步驟4 - 每當傳送方在幀0計時器內從接收方收到ACK0時,它就會關閉併發送到下一個幀,幀3。
步驟5 - 每當傳送方在幀1計時器內從接收方收到ACK1時,它就會關閉併發送到下一個幀,幀4。
步驟6 - 如果傳送方在時間段內沒有從接收方收到ACK2,則它宣告幀2超時並再次重新發送幀2,因為它認為幀2可能丟失或損壞。