容易理解的tcp三次握手總結

2022-05-06 01:12:15 字數 1393 閱讀 6383

在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器 進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入 established狀態,完成三次握手。

通過這樣的三次握手,客戶端與服務端建立起可靠的雙工的連線,開始傳送資料。

三次握手的最主要目的是保證連線是雙工的,可靠更多的是通過重傳機制來保證的。

但是為什麼一定要進行三次握手來保證連線是雙工的呢,一次不行麼?兩次不行麼?我們舉乙個現實生活中兩個人進行語言溝通的例子來模擬三次握手。

第一次對話:

老婆讓甲出去打醬油,半路碰到乙個朋友乙,甲問了一句:哥們你吃飯了麼?

結果乙帶著耳機聽歌呢,根本沒聽到,沒反應。甲心裡想:跟你說話也沒個音,不跟你說了,溝通失敗。說明乙接受不到甲傳過來的資訊的情況下溝通肯定是失敗的。

如果乙聽到了甲說的話,那麼第一次對話成功,接下來進行第二次對話。

第二次對話:

乙聽到了甲說的話,但是他是老外,中文不好,不知道甲說的啥意思也不知道怎樣回答,於是隨便回答了一句學過的中文 :我去廁所了。甲一聽立刻笑噴了,「去廁所吃飯」?道不同不相為謀,離你遠點吧,溝通失敗。說明乙無法做出正確應答的情況下溝通失敗。

如果乙聽到了甲的話,做出了正確的應答,並且還進行了反問:我吃飯了,你呢?那麼第二次握手成功。

通過前兩次對話證明了乙能夠聽懂甲說的話,並且能做出正確的應答。接下來進行第三次對話。

第三次對話:

甲剛和乙打了個招呼,突然老婆喊他,「你個死鬼,打個醬油咋這麼半天,看我回家咋收拾你」,甲是個妻管嚴,聽完嚇得二話不說就跑回家了,把乙自己晾那了。乙心想:這什麼人啊,得,我也回家吧,溝通失敗。說明甲無法做出應答的情況下溝通失敗。

如果甲也做出了正確的應答:我也吃了。那麼第三次對話成功,兩人已經建立起了順暢的溝通渠道,接下來開始持續的聊天。

通過第二次和第三次的對話證明了甲能夠聽懂乙說的話,並且能做出正確的應答。

可見,兩個人進行有效的語言溝通,這三次握手的過程是必須的。

同理對於tcp為什麼需要進行三次握手我們可以一樣的理解:

為了保證服務端能收接受到客戶端的資訊並能做出正確的應答而進行前兩次握手,為了保證客戶端能夠接收到服務端的資訊並能做出正確的應答而進行後兩次握手。

tcp三次握手 TCP 三次握手總結

tcp特點概述 tcp segment structure 段結構 step2 server host receives syn,replie with syn ack segment 答覆syn ack報文段 step3 client receives synack,replies with ac...

理解TCP中的三次握手

tcp三次握手 tcp transmission control protocol 傳輸控制協議 tcp是端到端的傳輸控制協議,提供可靠的連線服務,採用三次握手方式來建立連線。要理解三次握手流程,需要先了解tcp協議格式,因為在三次握手過程中,傳送的都是沒有資料,只有報頭資訊的tcp報文,通過報頭中...

TCP三次握手的個人理解

tcp三次握手 tcp ip協議是乙個協議族,裡面包括了ip協議,imcp協議,tcp協議,以及我們更加熟悉的http ftp pop3協議等等,這些協議類似於國際語言,大家在交流時同一使用的語言。osi參考模型自上而下分別是 osi參考模型 tcp ip五層模型 應用層,表示層,會話層,傳輸層 應...