目的在於傳輸過程如果出錯,這個機制能夠重新傳送packets/frames
目前有三種做法~ 各有利弊
Stop and Wait
當A成功傳送packet 0 給B時,B經過確認無誤便會傳送要求packet1的ACK給A,以便A繼續傳送下一個封包。(ACK 內含Resquest Number)
失敗情況:A沒傳送成功,B接收不到,會有一個 wait time超過的話,B會再發送RN給A
S&W ARQ 成功率非常高,但缺點是沒有效率
Go back n
Most popular scheme~
概念是先傳送一連串的封包(解決站線不傳的問題),最後再檢查失敗狀況
使用sliding window ARQ
sliding window:當ACQ 傳到的的時候(表示n-th的packet已經傳到了),上圖的為Go Back 7
也就是傳7個封包後會檢查sliding window 以上圖為例
傳完第7個(packet6) 所得的sliding window 為[5,11]
然後會有個等待時間
若這個wait time 中間NodeA沒有拿到 7的ACQ(表示packet6是否傳成功)
就會對照sliding window
~下次的連續封包要從packet 5開始傳
Note: Go back n Node B 所接收的packet 必須要為連續的,若中間斷掉,之後所傳的packet都是做拉基 XD
Selective repeat
每個packet 都有計時器的功能
也就是當n過了多久都還沒有收到
便會重新再傳一次
雖然這樣如果封包斷掉,之後的packet也不會變成拉基,但是每個封包就會又多加接收端不需要的資訊。
沒有留言:
張貼留言