使用 TCP 發送的資料包是否有可能攜帶不同的資料到達?

使用 TCP 發送的資料包是否有可能攜帶不同的資料到達?

有時,在我的網路庫中,當我發送資料包時,資料到達的方式與發送時不同。我假設 TCP 保證準確傳送。這是真的?還是說我自己的函式庫程式碼的打包接收過程一定有問題?

答案1

TCP 不保證在單一資料包層級準確傳送資料。

相反,TCP 提供了一個框架來確定資料的完整性,方法是在每個資料包的標頭中包含序號和校驗和(接收者應檢查這些內容),並提供一種機制,當資料包當根本沒有到達時,接收者可以請求發送者重新傳輸資料包或校驗和失敗。

答案2

嘗試匹配校驗和。如果不匹配,則資料可能在發送後和到達目的地之前被某物或某人更改。就像 MITM 的事情一樣。發送者和接收者兩端都可以。

相關內容