滑動視窗機制

2021-07-03 20:29:36 字數 2813 閱讀 9823

(1).視窗機制

滑窗協議

滑動視窗協議:為了控制傳送方的傳送速度,並考慮到受傳送緩衝區大小的制約等,要求對傳送方已發出但尚未經確認的幀的數目加以限制。這個數目就稱為傳送視窗。落在這個視窗內的幀號就是等待接收方返回的ack訊號的幀號。幀號只有有限的位數,到一定時間後就反覆迴圈了。在進行的過程中,視窗位置一直在滑動。因此,本協議可看成是一種滑動視窗協議。

滑窗協議過程

一般幀號只取有限位二進位制數,到一定時間後就又反覆迴圈。若幀號配3位二進位制數,則幀號在0-7間迴圈。

傳送方每次傳送一幀後,待確認幀的數目便增1,每收到乙個確認資訊後,待確認幀的數目便減1。當重發表長度計數值,即待確認幀的數目等於傳送視窗尺寸時,便停止傳送新的幀。

滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了乙個連續的允許傳送的幀的序號,稱為傳送視窗;同時,接收方也維持了乙個連續的允許接收的幀的序號,稱為接收視窗。傳送視窗和接收視窗的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動視窗協議視窗大小一般不同。傳送方視窗內的序列號代表了那些已經被傳送,但是還沒有被確認的幀,或者是那些可以被傳送的幀。下面舉乙個例子(假設傳送視窗尺寸為2,接收視窗尺寸為1,圖中傳送方陰影部分表示開啟的傳送視窗,接收方陰影部分則表示開啟的接收視窗):

分析:①初始態,傳送方沒有幀發出,傳送視窗前後沿相重合。接收方0號視窗開啟,等待接收0號幀;②傳送方開啟0號視窗,表示已發出0幀但尚確認返回資訊。此時接收視窗狀態不變;③傳送方開啟0、1號視窗,表示0、1號幀均在等待確認之列。至此,傳送方開啟的視窗數已達規定限度,在未收到新的確認返回幀之前,傳送方將暫停傳送新的資料幀。接收視窗此時狀態仍未變;④接收方已收到0號幀,0號視窗關閉,1號視窗開啟,表示準備接收1號幀。此時傳送視窗狀態不變;⑤傳送方收到接收方發來的0號幀確認返回資訊,關閉0號視窗,表示從重發表中刪除0號幀。此時接收視窗狀態仍不變;⑥傳送方繼續傳送2號幀,2號視窗開啟,表示2號幀也納入待確認之列。至此,傳送方開啟的視窗又已達規定限度,在未收到新的確認返回幀之前,傳送方將暫停傳送新的資料幀,此時接收視窗狀態仍不變;⑦接收方已收到1號幀,1號視窗關閉,2號視窗開啟,表示準備接收2號幀。此時傳送視窗狀態不變;⑧傳送方收到接收方發來的1號幀收畢的確認資訊,關閉1號視窗,表示從重發表中刪除1號幀。此時接收視窗狀態仍不變。

若從滑動視窗的觀點來統一看待1位元滑動視窗、後退n及選擇重傳三種協議,它們的差別僅在於各自視窗尺寸的大小不同而已。1位元滑動視窗協議:傳送視窗=1,接收視窗=1;後退n協議:發視窗》1,接收視窗》1;選擇重傳協議:傳送視窗》1,接收視窗》1。

(2).1位元滑動視窗協議

當傳送視窗和接收視窗的大小固定為1時,滑動視窗協議退化為停等協議(stop-and-wait)。該協議規定傳送方每傳送一幀後就要停下來,等待接收方已正確接收的確認(acknowledgement)返回後才能繼續傳送下一幀。由於接收方需要判斷接收到的幀是新發的幀還是重新傳送的幀,因此傳送方要為每乙個幀加乙個序號。由於停等協議規定只有一幀完全傳送成功後才能傳送新的幀,因而只用一位元來編號就夠了。其傳送方和接收方執行的流程圖如圖所示。

(3).後退n協議

由於停等協議要為每乙個幀進行確認後才繼續傳送下一幀,大大降低了通道利用率,因此又提出了後退n協議。後退n協議中,傳送方在發完乙個資料幀後,不停下來等待應答幀,而是連續傳送若干個資料幀,即使在連續傳送過程中收到了接收方發來的應答幀,也可以繼續傳送。且傳送方在每傳送完乙個資料幀時都要設定超時定時器。只要在所設定的超時時間內仍未收到確認幀,就要重發相應的資料幀。如:當傳送方傳送了n個幀後,若發現該n幀的前乙個幀在計時器超時後仍未返回其確認資訊,則該幀被判為出錯或丟失,此時傳送方就不得不重新傳送出錯幀及其後的n幀。

後退n幀的基本原理

go-dack-n策略的基本原理

當接收方檢測出失序的資訊幀後,要求傳送方重發最後乙個正確接收的資訊幀之後的所有未被確認的幀;或者當傳送方傳送了n個幀後,若發現該n幀的前乙個幀在計時器超時後仍未返回其確認資訊,則該幀被判為出錯或丟失,此時傳送方就不得不重新傳送出錯幀及其後的n幀。這就是go-dack-n(退回n)法名稱的由來。因為,對接收方來說,由於這一幀出錯, 就不能以正常的序號向它的高層遞交資料,對其後傳送來的n幀也可能都不能接收而丟棄。

後退n幀的工作情況

go-dack-n法操作過程如下圖。圖中假定傳送完8號幀後,發現2號幀的確認返回在計時器超時後還未收到,則傳送方只能退回從2號幀開始重發。

從這裡不難看出,後退n協議一方面因連續傳送資料幀而提高了效率,但另一方面,在重傳時又必須把原來已正確傳送過的資料幀進行重傳(僅因這些資料幀之前有乙個資料幀出了錯),這種做法又使傳送效率降低。由此可見,若傳輸通道的傳輸質量很差因而誤位元速率較大時,連續測協議不一定優於停止等待協議。此協議中的傳送視窗的大小為k,接收視窗仍是1。

(4).選擇重傳協議

在後退n協議中,接收方若發現錯誤幀就不再接收後續的幀,即使是正確到達的幀,這顯然是一種浪費。另一種效率更高的策略是當接收方發現某幀出錯後,其後繼續送來的正確的幀雖然不能立即遞交給接收方的高層,但接收方仍可收下來,存放在乙個緩衝區中,同時要求傳送方重新傳送出錯的那一幀。一旦收到重新傳來的幀後,就可以原已存於緩衝區中的其餘幀一併按正確的順序遞交高層。這種方法稱為選擇重發(selectice repeat),其工作過程如圖所示。顯然,選擇重發減少了浪費,但要求接收方有足夠大的緩衝區空間。

滑動視窗機制

1 視窗機制 滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了乙個連續的允許傳送的幀的序號,稱為傳送視窗 同時,接收方也維持了乙個連續的允許接收的幀的序號,稱為接收視窗。傳送視窗和接收視窗的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動視窗協議視窗大小一般不同。傳送方視窗內的序列號代表...

滑動視窗機制

1 視窗機制 滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了乙個連續的允許傳送的幀的序號,稱為傳送視窗 同時,接收方也維持了乙個連續的允許接收的幀的序號,稱為接收視窗。傳送視窗和接收視窗的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動視窗協議視窗大小一般不同。傳送方視窗內的序列號代表...

滑動視窗機制

1 視窗機制 滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了乙個連續的允許傳送的幀的序號,稱為傳送視窗 同時,接收方也維持了乙個連續的允許接收的幀的序號,稱為接收視窗。傳送視窗和接收視窗的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動視窗協議視窗大小一般不同。傳送方視窗內的序列號代表...