[CN] HW2

看板PangSir作者 (雞尾酒)時間12年前 (2012/05/17 15:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串27/30 (看更多)
想請問助教(或其他在看版的同學們)一個實作方面的問題: (抱歉一直修改問題 因為我一直發現自己之前想法有錯...) 假設 client 端用 RRQ 從 server 端下載檔案 但因為網路問題 client 端抓到 DATA #1 後 一直等不到檔案 所以送出指令 ACK #1 結果送出 ACK #1 後 上一回合的 DATA #2~N 突然出現了 這時 client 端 socket 中的 packet 就會像是: [DATA #2 (512 bytes)] [DATA #3 (512 bytes)] ... [DATA #N (100 bytes)] 這時 server 成功收到 client 剛剛送的 ACK #1 又再次重新傳送一整批資料 DATA #2~N client 端的 socket 就變成 [DATA #2 (512 bytes)] ... [DATA #N (100 bytes)] [DATA #2 (512 bytes)] ... 這時候 根據 TFTP protocol DATA 是否全傳送完 是用 packet 的長度來判斷 (若 packet 的長度 < 512 bytes 則表示這是最後一個 DATA packet) 因此在上述的排隊中 當 client 端處理到 DATA #N 之時 因為後面立刻接著 DATA #2 的開頭 所以並不會察覺到檔案完結 而是把下一個 packet 的內容 當成檔案的一部分... 請問這種狀況 應該怎麼處理呢? 感謝助教(和同學們)! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.55.133 ※ 編輯: kiwaygo 來自: 140.112.55.133 (05/17 15:23) ※ 編輯: kiwaygo 來自: 140.112.55.133 (05/17 15:30) ※ 編輯: kiwaygo 來自: 140.112.55.133 (05/17 15:38)
文章代碼(AID): #1FjAJDRl (PangSir)
討論串 (同標題文章)
完整討論串 (本文為第 27 之 30 篇):
CN
16年前, 05/01
CN
16年前, 05/01
CN
16年前, 05/03
CN
16年前, 05/03
CN
16年前, 05/03
CN
16年前, 05/03
CN
16年前, 05/03
CN
16年前, 05/03
CN
16年前, 05/03
CN
16年前, 05/03
文章代碼(AID): #1FjAJDRl (PangSir)