停止等待、回退N和選擇重傳協議之間的區別
這三種協議都提供了一種流量控制機制。通讀本文以瞭解停止等待、回退N和選擇重傳協議的基本概述。
停止等待協議
這是最基本的流量控制策略。傳送方使用此方法一次向接收方傳送一個幀。傳送方將停止並等待接收方響應。傳送訊息和接收確認之間的時間間隔稱為傳送方的等待時間,在此期間傳送方處於空閒狀態。收到確認(ACK)後,傳送方將向接收方傳送下一個資料包,依此類推,只要傳送方有資料要傳送。
回退N
回退N ARQ 協議是自動重傳請求 (ARQ) 協議的一個變體。即使接收方沒有用確認 (ACK) 資料包響應,傳送方也會根據視窗大小發送多個幀。傳輸視窗大小為 N,接收視窗大小為 1 是基本滑動視窗協議的一個特例。它可以在請求確認之前向對等方傳送 N 個幀。
它基於協議流水線的概念,允許在第一個幀被確認之前傳遞多個幀。由於回退N ARQ 同時提供多個括號,因此需要一種編號策略來區分一個幀與另一個幀,因此回退N ARQ 中的架子按順序編號。這些數字稱為序列號。
一次可以傳送的幀的最大數量完全取決於傳送方的視窗大小。如果在商定的時間範圍內未收到幀的確認,則當前視窗中的所有結構都將重新傳輸。
回退N 消耗更多頻寬,因為它即使只有一個數據包丟失也會重新傳輸整個視窗。如果錯誤率較高,則回退N 將消耗大量頻寬。
回退N 使用累積確認,這可以減少流量;但是,始終存在丟失累積確認的風險。如果發生這種情況,則所有相應資料包的確認都會丟失。
選擇重傳協議
選擇重傳 ARQ 是在可靠通訊中用於處理序列號和重傳的自動重傳請求 (ARQ) 協議的一個變體。特定重複允許傳送方在不等待接收方的單個 ACK 的情況下(如在回退N ARQ 中)傳遞一組幀。
它使用兩個大小相等的視窗:一個傳送視窗,用於儲存要傳送的幀;一個接收視窗,用於儲存接收方接收到的幀。大小為幀最大序列號的一半。
即使它在此期間沒有確認任何幀,選擇重傳協議也允許它根據傳送視窗中結構的可用性發送多個幀。傳送視窗的大小決定了可以傳送的幀的最大數量。
如果您必須考慮頻寬需求,則選擇重傳是一個更好的選擇,因為它只會重新發送有缺陷或丟失的資料包,而不是整個視窗。
停止等待、回退N和選擇重傳之間的區別
下表重點介紹了停止等待、回退N和選擇重傳協議之間的主要區別:
關鍵 | 停止等待協議 | 回退N 協議 | 選擇重傳協議 |
---|---|---|---|
傳送方視窗大小 | 停止等待協議中的傳送方視窗大小為 1。 | 回退N 協議中的傳送方視窗大小為 N。 | 選擇重傳技術中的傳送方視窗大小為 N。 |
接收方視窗大小 | 停止等待協議中的接收方視窗大小為 1。 | 回退N 協議中的接收方視窗大小為 1。 | 選擇重傳技術中的接收方視窗大小為 N。 |
最小序列號 | 停止等待過程中的最小序列號為 2。 | 回退N 協議中的最小序列號為 N+1,其中 N 是傳送的資料包數量。 | 選擇重傳協議中的最小序列號為 2N,其中 N 是傳輸的資料包數量。 |
效率 | 在停止等待協議中,效率公式為 1/(1+2*a),其中 a 是傳播延遲與傳輸延遲的比率。 | 在回退N 協議中,效率公式為 N/(1+2*a),其中 a 是傳播延遲與傳輸延遲的比率,N 是傳送的資料包數量。 | 在選擇重傳協議中,效率公式為 N/(1+2*a),其中 a 是傳播延遲與傳輸延遲的比率,N 是傳送的資料包數量。 |
確認型別 | 在停止等待協議中,確認型別為單個。 | 在回退N 協議中,確認型別為累積。 | 在選擇重傳協議中,確認型別為單個。 |
支援的順序 | 在停止等待協議的接收端,不需要特定的順序。 | 在回退N 協議的接收端,僅接受按順序交付。 | 在選擇重傳協議中,接收端也可以接受亂序交付。 |
重傳 | 在停止等待協議中,如果資料包丟失,則重傳次數為 1。 | 在回退N 協議中,如果資料包丟失,則重傳次數為 N。 | 在選擇重傳協議中,如果資料包丟失,則重傳次數為 1。 |
結論
回退N 和選擇重傳是滑動視窗協議的型別,它們允許在不等待接收方確認的情況下自發地傳輸多個幀。停止等待協議的不同之處在於,它允許傳送方一次僅傳輸一個幀,然後等待接收方的確認,然後再傳輸第二個幀。