【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★
文章目錄
- 一、 選擇重傳協議 ( SR ) 引入
- 二、 選擇重傳協議 ( SR ) 幀分類
- 三、 發送方 事件 ( 確認幀、超時事件 )
- 四、 接收方 事件 ( 接收幀 )
- 五、 滑動窗口長度
- 五、 選擇重傳協議 SR 重點
- 六、 選擇重傳協議 SR 計算示例
一、 選擇重傳協議 ( SR ) 引入
后退 NNN 幀協議 ( GBN ) 弊端 : 累計確認 機制 , 導致的批量重傳 , 這些重傳的幀 , 可能已經傳輸成功 , 就是因為之前的幀出錯 , 導致傳輸成功的幀被丟棄 ;
上述弊端 解決方案 : 設置 單個幀確認機制 , 加大 接收窗口 , 設置接收緩存 , 可處理亂序到達的幀 ;
二、 選擇重傳協議 ( SR ) 幀分類
發送方 幀 分類 :
① 發送窗口外 , 發送完畢 , 被確認的幀 ; 滑動窗口已經劃過的位置 ;
② 發送窗口內 , 發送完畢 , 被確認的幀 ;
③ 發送窗口內 , 發送完畢 , 等待確認的幀 ; 此時該數據幀需要被緩存 ;
④ 發送窗口內 , 還能發送的幀 ;
⑤ 發送窗口外 , 還不能發送的幀 ; 滑動窗口還沒有滑到的位置 ;
接收方 幀 分類 :
① 接收窗口外 , 已經成功接收的幀 ;
② 接收窗口內 , 希望收到 , 但是未收到的幀 ;
③ 接收窗口內 , 希望收到 , 剛收到的幀 ;
④ 接收窗口內 , 不希望收到 , 卻提前收到的幀 , 已經緩存下來 ;
⑤ 接收窗口內 , 等待接收的幀 ;
三、 發送方 事件 ( 確認幀、超時事件 )
上層調用事件 : 上層發送數據時 , 先檢查 發送窗口 ;
① 如果 發送窗口 未滿 : 則 生成 數據幀 , 發送數據 ;
② 如果 發送窗口 已滿 : 發送方將該信息通知上層 , 讓 上層 延遲發送 ;
ACKACKACK 確認幀 事件 : 逐一確認 ;
① 接收確認幀 : 接收方收到 ACK 確認幀 ;
② 標記已接收 : 發送窗口 內 將該 幀序號 對應的幀 標記為 已接收 ;
③ 移動發送窗口 : 如果 該 幀序號 是 發送窗口 的下界 ( 最左側窗口 ) , 將 發送窗口 移動到 最小序號的 沒有確認 的幀位置 ; 可能移動 一個位置 , 也可能移動多個位置 ;
④ 發送未發送幀 : 發送窗口 移動完畢后 , 如果發現 該 發送窗口 中有沒有發送的幀 , 就將這些幀發送出去 ;
超時事件 : 每個幀 都有 自己的定時器 , 如果 某個 幀出現了定時器超時事件 , 重傳該單個幀 ;
四、 接收方 事件 ( 接收幀 )
接收方 事件 :
① 接收正確幀 : 接收方 接收 正確的幀 , 不管其幀的順序 ;
② 失序處理 : 失序的幀 , 將會被緩存起來 , 并向 發送方 發送該 失序幀 的 ACK 確認幀 ;
③ 移動接收窗口 : 如果 接收到的 幀序號 是 接收窗口 的下界 ( 最左側窗口 ) , 將成功接收到的連續數據交付給上層 , 將 接收窗口 移動到 最小序號的 沒有接收到 的幀位置 ; 可能移動 一個位置 , 也可能移動多個位置 ;
五、 滑動窗口長度
發送窗口 與 接收窗口 大小相等 , 便于流量控制 ;
使用 nnn 比特 對 幀進行編號 , 發送窗口的尺寸 WTW_TWT? 和 接收窗口尺寸 WRW_RWR?滿足如下公式要求 :
WT=WR=2n?1W_T = W_R = 2^{n - 1}WT?=WR?=2n?1
五、 選擇重傳協議 SR 重點
選擇重傳協議 SR 重點 :
① 數據幀 逐一確認 , 接收方收到一個幀 , 就會單獨發送該幀的確認幀 ;
② 重傳 出錯 的 單個幀 ;
③ 接收方 有緩存 ;
④ 滑動窗口大小 : WT=WR=2n?1W_T = W_R = 2^{n - 1}WT?=WR?=2n?1 ;
六、 選擇重傳協議 SR 計算示例
數據鏈路層 使用 選擇重傳協議 SR , 發送方發送了 0,1,2,30 , 1, 2,30,1,2,3 幀 , 當前時刻 , 收到了 111 號確認幀 , 0,20, 20,2 號幀出現超時 , 則需要重發哪些幀 ???
SR 協議是收到一幀 , 確認一幀 ;
111 號幀 已經確認 , 不用重發 ;
0,20 , 20,2 幀 超時 , 必須重發 ;
333 號幀 等待確認 , 當前時刻不用管 , 如果超時 , 就需要重發 , 當前沒有超時 , 等待即可 ;
因此最終只需要重發 0,20 , 20,2 數據幀 ;
總結
以上是生活随笔為你收集整理的【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】数据链路层 : 流量控制
- 下一篇: 【计算机网络】数据链路层 : 信道划分