TCP的三次握手和四次揮手

2022-07-24 07:21:13 字數 1105 閱讀 7089

所謂的三次握手的作用:是指建立乙個tcp連線時,需要客戶端和服務端總共傳送3個包以確認連線的建立

官方解釋:

過度解釋:

客戶端傳送連線請求訊息到服務端,服務端收到請求訊息後知道自己與客戶端可以連線成功,但是客戶端不知道服務端是否接受到自己的請求。因此服務端需要給客戶端傳送乙個訊息。當客戶端接受到服務端的訊息後,確認自己與服務端可以進行連線。這個時候客戶端需要再次給服務端傳送乙個請求,因為如果此時客戶端沒有進行任何請求操作的話,伺服器會一直等待客戶端的請求,這樣會造成資源的浪費。其實第三次握手的主要作用是為了防止已經失效的請求報文又突然傳遞到了服務端,因此造成錯誤的產生

大白話解釋:

男孩:我們可以戀愛嗎?(客戶端請求伺服器建立連線)

女孩:你想追我?想清楚了!(伺服器要求客戶端確認連線)

男孩:沒錯,你就是我的夢中情人!(客戶端確認連線)

所謂四次揮手的作用:即終止tcp連線,就是指斷開乙個tcp連線時,需要客戶端和服務端總共傳送4個包以確認連線的斷開

官方解釋:

過度解釋:

客戶端向伺服器傳送訊息,告訴伺服器需要斷開連線,此時客戶端已經不能向服務端傳送訊息,服務端接收到客戶端的訊息後,還可以繼續向客戶端傳送訊息,這裡只說告訴客戶端我收到了你的關閉請求。當服務端的響應資料完成後,在次告訴客戶端我這邊也要關閉請求了,這時服務端已經不能向客戶端傳送資料了,客戶端收到伺服器的確認請求後,此時,客戶端就進入fin-wait-2(終止等待2)狀態,等待伺服器傳送連線釋放報文(在這之前還需要接受伺服器傳送的最後的資料)

大白話解釋:

為什麼客戶度還需要等待2秒

tcp允許不同的實現可以設定不同的msl值。第一,保證客戶端傳送的最後乙個ack報文能夠到達伺服器,因為這個ack報文可能丟失,站在伺服器的角度看來,我已經傳送了fin+ack報文請求斷開了,客戶端還沒有給我回應,應該是我傳送的請求斷開報文它沒有收到,於是伺服器又會重新傳送一次,而客戶端就能在這個2msl時間段內收到這個重傳的報文,接著給出回應報文,並且會重啟2msl計時器

tcp 四次揮手 TCP的三次握手和四次揮手

三次握手 第一次握手 客戶端傳送syn包 syn x 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack x 1 同時自己也傳送乙個syn包 syn y 即syn ack包,此時伺服器進入syn recv狀態 第三次握手 客戶端收到伺服...

TCP三次握手和四次揮手

一 tcp三次握手 three way handshake 1 tcp三次握手的作用 三次握手的目的是連線伺服器指定埠,建立tcp連線,並同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。在socket程式設計中,客戶端執行connect 時,將觸發三次握手。2 tcp三次握手過程 第一步 ...

TCP三次握手和四次揮手

三次握手 四次揮手 需四次揮手原因 由於tcp的半關閉特性,tcp連線時雙全工 即資料在兩個方向上能同時傳遞 因此,每個方向必須單獨的進行關閉。這個原則就是 當一方完成它的資料傳送任務後就能傳送乙個fin來終止這個方向上的連線。當一端收到乙個fin後,它必須通知應用層另一端已經終止了那個方向的資料傳...