天天看點

TCP三向交握四次揮手

通信基本流程

我們都知道TCP協定是面向連接配接的協定,可以保證資料不丢失,不重複,不亂序的到達接收方。TCP的通信過程大概是下圖所示。

TCP三向交握四次揮手

上圖為TCP整個完整的通信過程,首先經過三次握手建立連接配接(綠色部分),連接配接建立後可以正常通信(藍色部分),通信完畢需要四次揮手斷開連接配接(紅色部分)。

三次握手

三次握手可以這麼了解:

TCP用戶端是男孩子,TCP伺服器是女孩子,男孩子要追女孩子,首先要建立戀愛關系。需要一個建立戀愛關系的過程。

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

女孩:你想追我?想清楚了!(伺服器要求用戶端确認連接配接)

男孩:沒錯,你就是我的夢中情人!(用戶端确認連接配接)

三次握手确立了TCP伺服器和用戶端的“戀愛關系”。為什麼需要三次握手,兩次握手不行嗎?從通信角度看,對于用戶端兩次就夠了,但對于伺服器不夠,因為,兩次握手伺服器僅僅知道用戶端和伺服器之間的信道是通的,但伺服器和用戶端之間還未知,是以需要收到用戶端發來的确認消息雙方才能确認雙方的消息通路都是ok的。

TCP三向交握四次揮手

四次揮手

對于連接配接的斷開需要四次揮手,可以了解為男孩和女孩要分手,需要經過一番如下商量。

男孩:我們不合适,我們分手吧。(用戶端已經沒有資料可以傳輸)

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

女孩給男孩算賬中……(沒有發送完的資料繼續傳輸)

女孩:算好了,分手!(伺服器這端資料傳輸完畢)

繼續閱讀