為什麼說TCP協議是可靠的

2022-08-23 14:00:09 字數 668 閱讀 6403

由於ip 資料報的 mtu 有長度限制, tcp報文段過大時,需要切割。切割之後傳送出去,由於網路鏈路的不確定性,接收端接收到包的次序和傳送次序很大概率是不一致的。接收端如何把接收到的「同一批」tcp報文段資料拼接成預期的二進位制資料?

傳送方傳送了乙個tcp報文,怎麼樣確認接收方接收到了這個報文?

傳送方傳送了乙個tcp報文,接收端如何保證接收到的報文段的資料沒有在途中被「其他人」篡改?

採用序列號標識乙個tcp報文

初級解決方案: ack機制+確認號

tcp報文頭部字段檢驗和,檢驗報文段資料的checksum是否和接收到實際的報文段資料的checksum一致。不一致則丟棄

對於問題2的初級解決方案:存在兩個問題

1.效率低的問題。

傳送方保持傳送 -> 等待ack -> 傳送 -> 等待ack…的單線工作方式,這樣的工作方式叫做 stop-and-wait。stop-and-wait 雖然實現了 tcp 通訊的可靠性,但同時犧牲了網路通訊的效率。同時,在等待ack的時間段內,網路都處於閒置(idle)狀態

2.有點小缺陷

如果當前的tcp報文段一直沒有被確認,會導致後續的片段無法傳送出去。

tcp協議的優化

為什麼說TCP協議是可靠的?

我們都知道 ip 協議是 不太靠譜 因為 ip 協議是不可靠的,所以 ip 資料報可能在傳輸過程中發生錯誤或者丟失。這就意味著,tcp 協議不得不面對以下三個問題。1 每個資料報有可能傳送不成功 2 資料報在傳輸過程中有可能被丟棄 3 接收端有可能接受不到資料報 tcp 為了解決這丟包問題,提出兩個...

TCP為什麼可靠 安全

tcp為什麼安全可靠 1 序列號與確認號 當傳送錯誤的時候,會發生 a 超時重傳機制 傳送方傳送的報文中含有序列號,每當傳送乙個報文後,就啟動乙個計時器 rto 該計時器的時間一般是有當前網路來決定的,乙個rtt指的是當乙個報文從傳送到接收到對應的ack標誌的時間,rto的決定一般是傳送方嘗試傳送幾...

為什麼說ip協議是無連線協議

面向無連線是通訊技術之一。是指通訊雙方不需要事先建立一條通訊線路,二是把每個帶有目的位址的包 報文分組 送到線路上,由系統自主選定路線進行傳輸。在發包之前,不需要建立與對端目標位址之間的連線。上層如果有傳送給ip的資料,該資料會立即被壓縮成ip包傳送出去。1 為了簡化 2 為了提速 面向連線與無連線...