滑動視窗協議
滑動視窗協議是資料鏈路層協議,用於可靠且順序地交付資料幀。滑動視窗也用於傳輸控制協議 (TCP)。
在此協議中,傳送方可以在收到接收方的確認之前一次傳送多個幀。術語“滑動視窗”指的是用於儲存幀的虛擬框。滑動視窗方法也稱為視窗技術。
工作原理
在這些協議中,傳送方有一個稱為傳送視窗的緩衝區,接收方有一個稱為接收視窗的緩衝區。
傳送視窗的大小決定了出站幀的序列號。如果幀的序列號是一個 n 位欄位,則可以分配的序列號範圍為 0 到 2𝑛−1。因此,傳送視窗的大小為 2𝑛−1。因此,為了容納 2𝑛−1 的傳送視窗大小,選擇一個 n 位序列號。
序列號按模 n 編號。例如,如果傳送視窗大小為 4,則序列號將為 0、1、2、3、0、1、2、3、0、1,依此類推。序列號中的位數為 2,以生成二進位制序列 00、01、10、11。
接收視窗的大小是接收方一次可以接受的幀的最大數量。它決定了傳送方在收到確認之前可以傳送的幀的最大數量。
示例
假設我們有傳送視窗和接收視窗,每個視窗的大小為 4。因此,兩個視窗的序列號將為 0,1,2,3,0,1,2,依此類推。下圖顯示了傳送幀和接收確認後窗口的位置。
滑動視窗協議的型別
滑動視窗 ARQ(自動重傳請求)協議分為兩類:
後退 N ARQ
後退 N ARQ 允許在收到第一個幀的確認之前傳送多個幀。它使用滑動視窗的概念,因此也稱為滑動視窗協議。幀按順序編號,併發送有限數量的幀。如果在一段時間內未收到某個幀的確認,則從該幀開始的所有幀都將重新傳輸。
選擇重傳 ARQ
此協議也允許在收到第一個幀的確認之前傳送多個幀。但是,這裡只重新傳輸錯誤的或丟失的幀,而正確的幀則被接收並緩衝。
廣告