連續ARQ協議的交付過程
連續ARQ協議在使用過程中如何完成滑動窗口和請求重發呢?下面我們就在它的主要功能方面進行一個詳盡的描述。希望大家能夠通過本文的一些內容對這個流程以及交付過程有一個了解。
回退n幀(go-back-n)GBN,以及選擇性重傳(selective repeat)ARQ,兩種協議是滑動窗口技術與請求重發技術的結合,由于窗口尺寸開到足夠大時,幀在線路上可以連續地流動,因此又稱其為連續ARQ協議。 連續重發請求ARQ方案是指發送方可以連續發送一系列信息幀,即不用等前一幀被確認便可繼續發送下一幀,效率大大提高。但在這種重發請求方案中,需要在發送方設置一個較大的緩沖存儲空間(稱作重發表),用以存放若干待確認的信息幀。
當發送方收到對某信息幀的確認幀后,便可從重發表中將該信息幀刪除。所以,連續重發請求ARQ方案的鏈路傳輸效率大大提高,但相應地需要更大的緩沖存儲空間。 在這一協議中,當發送站點發送完一個數據幀后,不是停下來等待應答幀,而是可以連續再發送若干個數據幀。如果在此過程中又收到了接收端發來的應答幀,那么還可以接著發送數據幀。由于減少了等待時間,整個通信的吞吐量就提高了。
連續ARQ協議的主要功能可以歸結為以下兩點:
1.在不可靠的鏈路上實現可靠交付。
這點可從用下面的圖來說明。
不可靠的鏈路上實現可靠交付
因為出錯的幀都被CRC檢驗器悄悄地丟棄了,因此接收端收下的幀都是無傳輸差錯的幀。數據鏈路層協議還保證了收到的幀的順序和發送端發送的順序一致,因為序號不對的幀都不接受。因此,數據鏈路層的連續ARQ協議就在不可靠的鏈路上實現了可靠交付,即發送端發送什么,接收端就收到什么。所有的重傳對上面都是透明的。
總之,可靠交付就是:無差錯、無丟失、無重復、按順序。
2. 支持了流量控制。
在鏈路層流量控制的思想就是:當接收端來不及接收時(如緩存空間不夠或CPU忙不過來),就可以通過暫時不發送確認幀來降低發送端發送數據幀的速率。
關于連續ARQ協議特別要注意的地方就是對出錯幀和不按序到達的幀的處理。
對出錯幀的處理:
CRC檢驗器自動將其丟棄,協議沒有其他動作。但為了不白白浪費時間,可以規定,如果一個幀重傳多少次都一直出錯,那么就不要再繼續重傳下去,而是報告上層軟件,指出通信線路不可用。
對不按序到達的幀的處理(這個幀并無傳輸差錯):
如果接收端沒有數據幀要發送,接收端丟棄這個幀,同時向發送端重復發送已經發送過的最后一個確認幀。
如果接收端有數據幀要發送,接收端可以在下面要發送的自己的數據幀中,把確認信息捎帶發送給對方。這個確認信息就是期望收到對方的某個編號的數據幀。
接收端也可以每隔一段時間,向發送端重復發送已經發送過的最后一個確認幀。