Selective Repeat 選擇重傳
GBN協議:由於累計確認的存在,一旦出錯就要重傳出錯幀之后的所有幀
解決辦法:回歸單個確認(逐一對幀),同時加大接收窗口(臨時把錯誤幀之后的幀存起來)。可以接收亂序到達的幀。
使得只重發出錯的幀。
最優秀的數據鏈路層流量控制協議!
- 超時事件 相對超時計時器一個超時幀,只會重傳一個幀
對接收方要做到:
對發送方窗口的幀,做到來者不拒。即使失序,也可以緩存在接收方的接收窗口中,並且之后會返回給發送方一個確認幀,使得自己回合真正結束。
發送方接收到確認才會移動發送窗口;接收方收到幀並發出確認會移動接收窗口
遇到丟失幀或者不正常幀,接收窗口就不會移動了,只會緩存並等待丟失幀
超時重傳,只會傳一個,但是往往"丟失幀"后面的已經被緩存下來了,因此接收方收到重傳后的幀就會移動多個格子
滑動窗口的長度:
發送窗口=接收窗口=\(2^{(n-1)}\) n是編碼序號的比特位數
- 數據幀逐一確定收一個確認一個
- 只穿出錯的幀
- 接收方緩沖比較大,可以容納期待幀之后的幀
- \(W_{發送}=W_{接收}=2^{(n-1)},n 是幀序號編碼的比特位數\)