TCP三次握手四次揮手介紹

學過計算機網絡的同窗都知道TCP協議是計算機網絡課程裏面最複雜的協議之一,尚未通訊就要搞個什麼三次握手,斷開還要什麼四次分手,中間還要什麼流量控制啦,擁塞控制,滑動窗口什麼的,初學者看了就會頭暈。

TCP三次握手四次揮手介紹TCP三次握手四次揮手介紹

通訊基本流程服務器

咱們都知道TCP協議是面向鏈接的協議,能夠保證數據不丟失,不重複,不亂序的到達接收方。TCP的通訊過程大概是下圖所示。
TCP三次握手四次揮手介紹TCP三次握手四次揮手介紹
上圖爲TCP整個完整的通訊過程,首先通過三次握手創建鏈接(綠色部分),鏈接創建後能夠正常通訊(藍色部分),通訊完畢須要四次揮手斷開鏈接(紅色部分)。網絡

三次握手計算機網絡

三次握手能夠這麼理解:blog

TCP客戶端是男孩子,TCP服務器是女孩子,男孩子要追女孩子,首先要創建戀愛關係。須要一個創建戀愛關係的過程。it

男孩:咱們能夠戀愛嗎?(客戶端請求服務器創建鏈接)table

女孩:你想追我?想清楚了!(服務器要求客戶端確認鏈接)請求

男孩:沒錯,你就是個人夢中情人!(客戶端確認鏈接)im

三次握手確立了TCP服務器和客戶端的「戀愛關係」。爲何須要三次握手,兩次握手不行嗎?從通訊角度看,對於客戶端兩次就夠了,但對於服務器不夠,由於,兩次握手服務器僅僅知道客戶端和服務器之間的信道是通的,但服務器和客戶端之間還未知,因此須要收到客戶端發來的確認消息雙方纔能確認雙方的消息通路都是ok的。
TCP三次握手四次揮手介紹TCP三次握手四次揮手介紹d3

四次揮手通信

對於鏈接的斷開須要四次揮手,能夠理解爲男孩和女孩要分手,須要通過一番以下商量。

男孩:咱們不合適,咱們分手吧。(客戶端已經沒有數據能夠傳輸)

女孩:什麼?這麼快就分手了,不能這麼快完,我要給你算總帳!(服務器這端還有未發送完的數據)

女孩給男孩算帳中……(沒有發送完的數據繼續傳輸)

女孩:算好了,分手!(服務器這端數據傳輸完畢)

男孩:好的,咱們從從此仍是朋友……(等待Time_Wait時間到,恢復單身)
TCP三次握手四次揮手介紹TCP三次握手四次揮手介紹 這裏有個注意的點是,客戶端在收到服務器發送的數據傳輸完畢的消息後(第三次揮手),不能當即關閉鏈接(恢復單身,尋找新歡),必須等待2MSL時間才能關閉,由於這期間最後一次揮手服務器未必能收到,若是沒有收到,服務器會從新發送第三次揮手的消息,這時候若是客戶端關閉,將沒法迴應第四次揮手消息,使得四次揮手過程沒法完成。

相關文章
相關標籤/搜索