Go-Back-N 和選擇重傳協議的區別


Go-Back-N 是一種資料鏈路層協議,它使用滑動視窗方法來可靠地按順序傳遞資料幀。它是一種滑動視窗協議的特殊情況,傳送視窗大小為 N,接收視窗大小為 1。

選擇重傳協議也是一種資料鏈路層協議,它使用滑動視窗方法來可靠地傳遞資料幀。在這裡,只有錯誤或丟失的幀會被重傳,而正確的幀會被接收並緩衝。

通讀本文,瞭解這兩種資料鏈路層協議的工作原理以及它們之間的主要區別。

什麼是 Go-Back-N 協議?

Go-Back-N ARQ 協議是自動重傳請求 (ARQ) 協議的一個變體。

  • 傳送方傳送多個由視窗大小確定的幀,即使接收方沒有響應確認 (ACK) 資料包。

  • 傳送視窗大小為 N,接收視窗大小為 1 是基本**滑動視窗協議**的一個特例。它可以在請求確認之前向對等方傳送**N**個幀。

  • 它基於協議流水線的概念,允許在第一個幀被確認之前傳遞多個幀。

  • Go-Back-N ARQ 中的幀被連續編號,因為 Go-Back-N ARQ 同時提供多個幀,因此需要一種編號策略來區分不同的幀。這些數字稱為順序號。

  • 一次可以傳送的幀的最大數量完全取決於傳送方的視窗大小。如果在商定的時間範圍內未收到某個幀的確認,則當前視窗中的所有幀都將被重傳。

什麼是選擇重傳協議?

選擇重傳是自動重傳請求 (ARQ) 協議的一個變體,用於可靠通訊中處理序列號和重傳。

  • 選擇重傳允許傳送方在不等待接收方傳送單個 ACK 的情況下發送一組幀,就像在 Go-Back-N ARQ 中一樣。

  • 它使用兩個大小相等的視窗:一個用於儲存要傳送的幀的傳送視窗和一個用於儲存接收方接收到的幀的接收視窗。大小為幀最大序列號的一半。例如,如果序列號為 0-15,則視窗大小為 8。

  • 即使在期間沒有收到任何幀的確認,選擇重傳協議也允許它根據傳送視窗中幀的可用性發送多個幀。

  • 傳送視窗的大小決定了可以傳送的幀的最大數量。

Go-Back-N 和選擇重傳協議的區別

下表突出顯示了 Go-Back-N 和選擇重傳協議之間的主要區別:

關鍵Go-Back-N選擇重傳
定義在 Go-Back-N 中,如果發現傳送的幀有疑或損壞,則會重傳所有幀直到最後一個數據包。在選擇重傳中,僅重傳有疑或損壞的幀。
傳送方視窗大小傳送方視窗大小為 N。傳送方視窗大小與 N 相同。
接收方視窗大小接收方視窗大小為 1。接收方視窗大小為 N。
複雜度Go-Back-N 比較容易實現。在選擇重傳中,接收方視窗需要對幀進行排序。
效率Go-Back-N 的效率 = N / (1 + 2a),其中 "a" 是傳播延遲與傳輸延遲的比率,"N" 是傳送的資料包數量。選擇重傳的效率 = N / (1 + 2a)。
確認確認型別是累積的。確認型別是單個的。
排序傳送方和接收方都不需要排序。接收方需要對幀進行排序。
亂序資料包亂序資料包會被拒絕,並且整個視窗會被重傳。選擇重傳協議接受亂序資料包。
最小序列號Go-Back-N 協議中的最小序列號為 N+1,其中 "N" 是傳送的資料包數量。選擇重傳協議中的最小序列號為 2N,其中 "N" 是傳送的資料包數量。

結論

Go-Back-N 消耗更多頻寬,因為它即使只有一個數據包丟失也會重傳整個視窗。如果錯誤率很高,Go-Back-N 會消耗大量頻寬。如果您需要考慮頻寬需求,選擇重傳是更好的選擇,因為它只會重傳有缺陷或丟失的資料包,而不是整個視窗。

Go-Back-N 使用累積確認,可以減少流量;但是,累積確認丟失的風險始終存在。如果發生這種情況,則所有相應資料包的確認都會丟失。

更新於: 2022-07-27

18K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.