看板 Network 關於我們 聯絡資訊
這是我在看相關的ARQ(StopAndWait, GoBackN, SelectiveRepeat)產生的疑問 為了簡單描述我的問題, 我用StopAndWait來舉例 假設有個Stop-And-Wait的傳輸情形像這樣 有端點A跟B在傳輸, 視窗大小只有2, 橫軸是時間軸, 斜線代表網路傳輸 下面這個是A跟B之間在通訊的示意圖 ┌──┬──────────────────┐ │端點│ 封包編號 │ │ A │ [0] [1] [0] [1] [0] ..... │ │  │  \ \  \ \  \ │ │ B │ [0] [1] [0] [1] [0] ... │ └──┴──────────────────┘ 我想請問有沒有可能發生這樣的狀況 ┌──┬──────────────────┐ │端點│ 封包編號 │ │ A │ [0] [1] [0] [1] [0] ..... │ │  │ │\  │ │ │ │ \ │ │ │ │ \ 第2次(timeout重送) │ │ │ │ \ │ │ │ │第1次 \ │ │ │ \ \ │ │ B │ [0] [1] [0] [1] [0] ... │ └──┴──────────────────┘ 也就是因為第1個[0]傳輸了比較久 不過B還是順利接收到第1個[0] 然後也順利收到之後的[1] (為了圖面乾淨, 我把[1]的傳輸線省略) 但因為之前的第1個[0]太久沒收到回應 所以造成A當時timeout重送 而B在收到[1]之後, 也順利收到這個重送的封包 也就是B總共收到兩次第1個[0]的封包 而且很剛好的“照順序”收到 這樣不會有問題嗎? 還是有什麼沒考慮到的狀況, 所以根本不會發生呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.45.91 ※ 文章網址: https://www.ptt.cc/bbs/Network/M.1488685010.A.CCB.html
johnkk6j: 你這樣兩邊窗口都是2 就不適用stop and wait了吧 接受 03/06 13:18
johnkk6j: 窗口要2的話應該就要用selctive repeat 不然這樣應該會 03/06 13:18
johnkk6j: 產生混淆的問題 stop and wait,go back n的接受窗口應 03/06 13:18
johnkk6j: 該都是只有1的 03/06 13:18
johnkk6j: 而且你stop and wait再還沒收到序號0的ack 應該不會再 03/06 13:35
johnkk6j: 接著傳序號1的資料的 也就是傳送方在送出序號0的情況下 03/06 13:35
johnkk6j: 應該是進入一種封閉的狀況 要等收到確ack1才可以在進入 03/06 13:35
johnkk6j: 下個傳輸 03/06 13:35
我換個方式來表達我的問題看看 假設有下面這幾個流程 1. A送了序號0封包 2. A等了一段時間, 沒收到序號0的ack, 決定重送序號0的封包 3. B收到流程1的封包, 並回序號0的ack, 開始等序號1的封包 4. A收到流程3的ack, 發送序號1的封包 5. B收到流程4的封包, 並回序號1的ack, 開始等序號0的封包 6. 如果流程2的封包沒壞掉只是傳了比較久, B這時是不是有機會收到流程2的封包而錯誤? 因為我看很多教材都是說重複的封包(上述流程2的封包)會被接收端(上面的B)丟掉 但好像都假設這些重複的封包在另一個狀態時候收到 (也就是在等序號1的時候收到) 所以在想萬一這些重複的封包是在同一個狀態被收到 (也就是在等序號0的時候收到) 會有這樣的錯誤發生嗎? ※ 編輯: zelkova (218.161.45.91), 03/06/2017 18:08:37
johnkk6j: 我大概懂你的意思了 只是要達到你說的情形機率真的不高 03/06 18:31
johnkk6j: 吧 要發生這樣的情況要兩個前提 你的序號一定要很小 而 03/06 18:31
johnkk6j: 且還要你的序號0的封包很慢抵達 而且後面的又要先抵達 03/06 18:31
johnkk6j: 感覺好像挺奇怪的 @@ 還有我主要是根據forouzan這本書 03/06 18:31
johnkk6j: 的觀念來判斷的 03/06 18:31
zelkova: 看起來j大也認為 只是要序號很小 又各種巧合碰在一起 03/07 00:55
zelkova: 的確有可能發生 那上面的推測應該沒錯.. 感謝j大的意見 03/07 00:57
blackbox: 收到封包1應該要回NAK0,要求封包0重送 03/07 08:16
blackbox: 沒有NAK的話就是等timeout,那你的序號太少 03/07 08:19