討論這個問題的大部分部落格都會引用《計算機網路》的內容:
防止已失效的連線請求又傳送到伺服器端,因而產生錯誤
不幸的是, 這種解釋是不準確的, tcp 採用三次握手的原因其實非常簡單, 遠沒有大部分部落格所描述的那樣雲山霧繞。
這裡先給出結論:
為了實現可靠資料傳輸, tcp 協議的通訊雙方, 都必須維護乙個序列號, 以標識傳送出去的資料報中, 哪些是已經被對方收到的。 三次握手的過程即是通訊雙方相互告知序列號起始值, 並確認對方已經收到了序列號起始值的必經步驟。如果只是兩次握手, 至多只有連線發起方的起始序列號能被確認, 另一方選擇的序列號則得不到確認
TCP為什麼是三次握手,不是兩次握手?
自己開發了一 票智慧型分析軟體,功能很強大,需要的點選下面的鏈結獲取 1.三次握手的作用有兩個 1 讓client和server雙方都知道雙方可以傳送和接收到對方的訊息 2 避免網路堵塞時,client以為沒有連線上,傳送多次請求,而server會為前面多次無效請求建立連線,造成資源浪費 2.具體說...
TCP為什麼不兩次握手三次揮手?
為什麼不是兩次握手的原因 假定出現一種異常情況,即傳送方a發出的第乙個連線請求報文段並沒有丟失,而是在某些網路結點長時間滯留,以致延誤到連線釋放以後的某個時間才到接收端b,本來這是乙個早已失效的報文段,但接收方b接收到後誤認為是傳送方a又發出了一次新的連線請求,於是就向a發出確認報文段,同意建立連線...
TCP為什麼需要三次握手
晚上看到的面試題,tcp三次握手的印象很深,但為什麼需要3次握手,還是想不起來了。簡單而言 如果不是三次握手的話,那麼到底需要幾次握手最佳呢?2次握手,或者4次以上的握手?先看2次握手的情況 客戶端給伺服器傳送建立連線的請求,伺服器同意連線請求發回應給客戶端,連線就此建立。有問題的就是網路中經常會出...