滑動視窗協議


滑動視窗協議是資料鏈路層協議,用於可靠且順序地交付資料幀。滑動視窗也用於傳輸控制協議 (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

    此協議也允許在收到第一個幀的確認之前傳送多個幀。但是,這裡只重新傳輸錯誤的或丟失的幀,而正確的幀則被接收並緩衝。

更新於:2023年10月31日

84K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告