TCP連接3次握手的理解

在TCP的連接中有有這樣一個功能:

1:客戶端向服務器發送一個syn

2:服務器回一個ack併發一個syn

3:客戶端回一個ack

剛開始一直很疑問,僅僅要1.2不就行了,再網上找了找發現好多人有同樣的疑問,現在把我的理解寫出來,和大家交流。

首先我們要知道爲什麼要進行連接,這是爲了發送數據做準備。

 

首先客戶端對服務器說:可以開始數據傳遞?

服務器說:可以。並問一句:可以開始數據傳遞?

客戶端:可以。

然後雙方就可以進行數據傳遞了。

如果是兩次握手的話,服務器就應該說:可以。

這樣就結束了,但從數據傳遞的角度來說這是有缺陷的,因爲數據傳遞包括了發和收兩個基本動作,當服務器收到客戶端傳遞數據的請求時,這表明客戶端發送功能正常,服務器接受功能正常,如果客戶端接受了服務器的迴應但並沒有再回應服務器時,那麼客戶端是知道雙方發送和接受都是正常的,但服務器不知道自己的發送功能是否正常,因此最後的一個握手就是告訴服務器我們都是正常的,可以開始數據傳遞了。

下面這個例子可以生動的理解3次握手。

一箇中國人和一個美國人要進行交流

美國人說:could you speak english(你能說英語嗎?)

中國人說:可以,但我認爲漢語更好。

美國人說:好吧,咱用漢語交流。

發佈了21 篇原創文章 · 獲贊 6 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章