在具體的實現中 TCP 是如何處理失序的數據包?


看書去吧,別偷懶了,這種花點時間看看書查查資料就能獲取的知識,何必來知乎上浪費時間呢?又不是啥你畫了時間但是解決不了的東西。


每幀都有序號的


推薦一下我的野雞校課程:
COMP/ELEC 429 Syllabus

這本書:
Computer Networks: A Systems Approach, Fourth Edition (The Morgan Kaufmann Series in Networking)

以及UofW的網路課程(一個系列,我就給你一個鏈接自己順著看)
https://www.youtube.com/watch?v=nLrBisNqEwQ

這些都搞完了網路基礎就差不多了

然後自己寫一個File Transfer的實現

給你個cmu的鏈接,美校基本網路課項目都差不多
http://www.cs.cmu.edu/~srini/15-441/F07/project3/project3.pdf

我當時寫的是在非常不可靠的網路環境下(duplicate,distorted,missing packs)進行reliable file transfer

並沒有寫到完美,還是會有一些奇怪的bug,還是挺難的,但是學到了很多。

------------------分割線----------------------
好了,如果你問tcp是如何處理失序的數據包,你只用搜tcp congestion,sliding window就行了

另外 你也應該考慮一下:數據包不可靠怎麼處理?數據包丟失怎麼處理? 這些都是一類問題,所以我還是建議你進行系統的學習,不要有一個問題看一點,這樣對知識的封裝非常不利,過不了多久就忘了。


數據流中的每個frame都有具體的編號 以及後續是否有下一個包


題主是計算機專業的學生嗎?這是計算機網路最基本的一部分內容,印象中隨便哪本書都有明確說明


去看RFC


推薦閱讀:

為什麼使用tcpdump觀察三次握手的過程,最後一次握手後,ack變為1而不是y+1?
花生殼DDNS是什麼?
表示層( presentation layer)和會話層(session layer)為什麼會被棄用?
為何IP地址不設計得更長,讓用戶都使用公網IP,去掉路由器交換機,讓電腦的互連就像打電話一樣方便呢?
大多tcp應用採用長度+數據的格式傳輸數據,如何防止惡意虛報長度?

TAG:計算機網路 | TCPIP | TCP |