TCP為什麼一定進行三次握手?

2021-09-13 10:49:28 字數 760 閱讀 7807

客戶端向

伺服器端

傳送乙個連線請求時,由於某種原因

長時間駐留在網路節點中

,無法達到伺服器端,由於

tcp的超時重傳機制

,當客戶端在特定的時間內沒有收到伺服器端的確認應答資訊,則會

重新向伺服器端

傳送連線請求

,且該連線請求得到伺服器端的響應並正常建立連線,進而傳輸資料,當資料傳輸完畢,並釋放了此次tcp連線。若此時

第一次傳送的連線請求

報文段延遲了一段時間後,到達了伺服器端,本來這是乙個早已失效的報文段,但是

伺服器端

收到該連線請求後

誤以為客戶端又發出了一次

新的連線請求

,於是伺服器端向客戶端

發出確認應答報文段

,並同意建立連線。

如果沒有

採用三次握手建立連線,由於伺服器端傳送了確認應答資訊,則表示新的連線已成功建立,但是客戶端此時並沒有向伺服器端發出任何連線請求,因此

客戶端忽略伺服器端的確認

應答報文,更不會向伺服器端傳輸資料。而

伺服器端卻認為新的連線已經建立了

,並在一直

等待客戶端傳送資料

,這樣伺服器端一直處於等待接收資料,直到超出計數器的設定值,則認為伺服器端出現異常,並且關閉這個連線。在這個等待的過程中,浪費伺服器的資源。如果採用三次握手,客戶端就不會向伺服器發出確認應答訊息,伺服器端由於沒有收到客戶端的確認應答資訊,從而判定客戶端並沒有請求建立連線,從而不建立該連線。

白話理解TCP為什麼一定要進行三次握手

這篇文章主要介紹了白話理解tcp為什麼一定要進行三次握手,本文用通俗易懂的語言清晰 簡潔 有趣的表達了為什麼一定要進行三次握手,需要的朋友可以參考下 首先簡單介紹一下tcp三次握手 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn...

白話理解TCP為什麼一定要進行三次握手

首先簡單介紹一下tcp三次握手 www.cppcns.com在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn...

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

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