TCP連接
- TCP是面向連接的協(xié)議宛篇,它基于傳輸連接來傳送TCP報文段
- TCP傳輸連接的建立和釋放是每一次面向連接的通信中必不可少的部分告私。
- TCP傳輸連接有以下三個階段:
- 建立連接
- 數(shù)據(jù)傳輸
- 釋放TCP連接
-
TCP的傳輸連接管理就是使傳輸連接的建立和釋放都能正常的進(jìn)行栗精。
TCP三次握手建立連接
三次握手過程如上圖所示滓侍,在開始連接之前乖仇,服務(wù)器的TCP連接打開扔傅,處于監(jiān)聽狀態(tài),也叫被動打開诡蜓,客戶端可以主動向服務(wù)器端申請TCP連接熬甫,也叫主動打開,連接步驟如下:
- 客戶端向服務(wù)器端發(fā)送連接請求報文蔓罚,該報文的SYN設(shè)為1椿肩,表示是一個連接請求報文,并不攜帶數(shù)據(jù)豺谈。(一次握手)
- 服務(wù)器接收到請求報文后發(fā)回一個確認(rèn)報文郑象,SYN為1,ACK也為1,表示是一個連接請求的確認(rèn)報文茬末,這個時候服務(wù)器端處于半連接狀態(tài)(二次握手)
- 客戶端收到服務(wù)器端的請求確認(rèn)后厂榛,再次向服務(wù)器發(fā)送一個普通的確認(rèn)報文,該報文ACK為1丽惭,SYN為0击奶,該報文可以攜帶數(shù)據(jù),發(fā)送報文后即處于連接已建立狀態(tài)(三次握手)
- 服務(wù)器端收到客戶端的連接確認(rèn)報文后责掏,處于連接已建立狀態(tài)柜砾,
為什么要三次握手
假設(shè)只需要兩次握手就可以建立連接,可能會出現(xiàn)如下圖的情況:
圖中紅色部分是已失效的請求報文换衬,若由于網(wǎng)絡(luò)原因在服務(wù)器關(guān)閉連接后再次到達(dá)痰驱,則會再次處于連接已建立狀態(tài),然而此時客戶端已經(jīng)關(guān)閉了連接瞳浦,則對應(yīng)的服務(wù)器進(jìn)程就會處于空閑狀態(tài)担映,導(dǎo)致了資源的浪費(fèi)。