TCP為什麼要進行三次握手

2021-09-27 21:37:28 字數 279 閱讀 8207

今天無意中想起了這個問題,談談我的理解。

先上圖:

先約定兩個名字。a代表連線建立的發起方(客戶端),b代表連線建立的接收方(服務端)。

tcp連線是在實際通道中是全雙工的,即邏輯上分成兩個通道,乙個是a->b,另乙個b->a。

要在不可靠的通道上建立起可靠的連線,那麼必須保證兩個通道是可靠的。而三次握手的過程就是確保兩個通道是可靠的,第一次和第二次握手可以讓a知道a->b的通道是可靠的,而第二次和第三次握手可以讓b知道保證b->a的通道是可靠的,三次握手也就確保了資源不會白白浪費。

TCP為什麼要三次握手?

在 計算機網路 一書中其中有提到,三次握手的目的是 為了防止已經失效的連線請求報文段突然又傳到服務端,因而產生錯誤 這種情況是 一端 client a發出去的第乙個連線請求報文並沒有丟失,而是因為某些未知的原因在某個網路節點上發生滯留,導致延遲到連線釋放以後的某個時間才到達另一端 server b。...

為什麼TCP連線要三次握手?

因為網路層是不可靠的。雙方在通訊的時候,就算是 tcp 連線,在網路層都有可能丟包,只不過是傳輸層有處理丟包的策略。若 tcp 連線是兩次握手,那麼突然來了乙個已失效的客戶端連線請求報文,伺服器會把這次失效的連線當成正常的連線對待。謝希仁版計算機網路中給出的例子如下 client 發出的第乙個連線請...

什麼是TCP 三次握手及為什麼進行三次握手?

tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 1.客戶端向伺服器傳送乙個 syn置位的 tcp報文,其中包含連線的初始序列號 x和乙個視窗大小 表示客戶端上用來儲存從伺服器...