三次握手與四次揮手

1、TCP報頭格式

wKioL1eUUcWiG8zaAAFbggpXhQU397.png-wh_50

SYN(synchronous建立聯機)

ACK(acknowledgement 確認)

PSH(push傳送)

FIN(finish結束)

RST(reset重置)

URG(urgent緊急)


2、三次握手

所謂的三次握手就是建立連接的過程。

第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SENT狀態,等待服務器確認。

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態。

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED(TCP連接成功)狀態,完成三次握手。

wKioL1eUUQDxMgVJAAG6Do4dpUo288.png-wh_50


4、四次揮手

由於TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這原則是當一方完成它的數據發送任務後就能發送一個FIN來終止這個方向的連接。收到一個 FIN只意味着這一方向上沒有數據流動,一個TCP連接在收到一個FIN後仍能發送數據。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。

1) TCP客戶端發送一個FIN,用來關閉客戶到服務器的數據傳送。

2) 服務器收到這個FIN,它發回一個ACK,確認序號爲收到的序號加1。和SYN一樣,一個FIN將佔用一個序號。

3) 服務器關閉客戶端的連接,發送一個FIN給客戶端。

4) 客戶端發回ACK報文確認,並將確認序號設置爲收到序號加1。

wKioL1eUUpPht5kQAAGkuOwA_zE537.png-wh_50









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章