當前位置:編程學習大全網 - 編程語言 - 什麽是停止等待協議?

什麽是停止等待協議?

停止等待協議(stop-and-wait)是最簡單但也是最基礎的數據鏈路層協議。很多有關協議的基本概念都可以從這個協議中學習到。

要點

只有收到序號正確的確認幀 ACKn 後,才更新發送狀態變量 V(S)壹次,並發送新的數據幀。

接收端接收到數據幀時,就要將發送序號 N(S) 與本地的接收狀態變量 V(R) 相比較。

若二者相等就表明是新的數據幀,就收下,並發送確認。

否則為重復幀,就必須丟棄。但這時仍須向發送端發送確認幀 ACKn,而接收狀態變量 V(R) 和確認序號 n 都不變。

連續出現相同發送序號的數據幀,表明發送端進行了超時重傳。連續出現相同序號的確認幀,表明接收端收到了重復幀。

發送端在發送完數據幀時,必須在其發送緩存中暫時保留這個數據幀的副本。這樣才能在出差錯時進行重傳。只有確認對方已經收到這個數據幀時,才可以清除這個副本。

實用的 CRC 檢驗器都是用硬件完成的。

CRC 檢驗器能夠自動丟棄檢測到的出錯幀。因此所謂的“丟棄出錯幀”,對上層軟件或用戶來說都是感覺不到的。

發送端對出錯的數據幀進行重傳是自動進行的,因而這種差錯控制體制常簡稱為ARQ (Automatic Repeat reQuest),直譯是自動重傳請求,但意思是自動請求重傳。

[編輯本段]

定量分析

設 tf 是壹個數據幀的發送時間,且數據幀的長度是固定不變的。顯然,數據幀的發送時間 tf 是數據幀的長度 lf (bit)與數據的發送速率 C (bit/s)之比,即

tf = lf /C = lf /C (s)

發送時間 tf 也就是數據幀的發送時延。

數據幀沿鏈路傳到結點B還要經歷壹個傳播時延 tp。

結點 B 收到數據幀要花費時間進行處理,此時間稱為處理時間 tpr,發送確認幀 ACK 的發送時間為 ta。

[編輯本段]

停止等待協議的算法

這裏不使用否認幀(實用的數據鏈路層協議大都是這樣的),而且確認幀帶有序號 n。

按照習慣的表示法,ACKn 表示“第 n – 1 號幀已經收到,現在期望接收第 n 號幀”。

ACK1 表示“0 號幀已收到,現在期望接收的下壹幀是 1 號幀”;

ACK0 表示“1 號幀已收到,現在期望接收的下壹幀是 0 號幀”。

[編輯本段]

ARQ 的優缺點

優點:比較簡單 。

缺點:通信信道的利用率不高,也就是說,信道還遠遠沒有被數據比特填滿。

為了克服這壹缺點,就產生了另外兩種協議,即連續 ARQ 和選擇重傳 ARQ。

[編輯本段]

具有最簡單流量控制的數據鏈路層協議

假定 1: 鏈路是理想的傳輸信道,所傳送的任何數據既不會出差錯也不會丟失。

假定 2: 不管發方以多快的速率發送數據,收方總是來得及收下,並及時上交主機。

這個假定就相當於認為:接收端向主機交付數據的速率永遠不會低於發送端發送數據的速率。

現在去掉上述的第二個假定。但是,仍然保留第壹個假定,即主機 A 向主機 B傳輸數據的信道仍然是無差錯的理想信道。然而現在不能保證接收端向主機交付數據的速率永遠不低於發送端發送數據的速率。

[編輯本段]

由收方控制發方的數據流

乃是計算機網絡中流量控制的壹個基本方法。

簡單解釋:收方每接受到發方壹幀後,回復確認幀,讓發方繼續發送下壹幀,並且收方將數據幀交給上層軟件識別,出現錯誤就將幀丟掉.

在接收結點:

(1) 等待。

(2) 若收到由發送結點發過來的數據幀,

則將其放入數據鏈路層的接收緩存。

(3) 將接收緩存中的數據幀上交主機。

(4) 向發送結點發壹信息,表示數據幀已

經上交給主機。

(5) 轉到(1)

在發送結點:

(1) 從主機取壹個數據幀。

(2) 將數據幀送到數據鏈路層的發送緩存。

(3) 將發送緩存中的數據幀發送出去。

(4) 等待。

(5) 若收到由接收結點發過來的信息(此信息

的格式與內容可由雙方事先商定好),則

從主機取壹個新的數據幀,然後轉到(2)。

  • 上一篇:助聽器是屬於醫療器械嗎,普通商戶可以經營嗎
  • 下一篇:征服華爾街的“數學家”
  • copyright 2024編程學習大全網