TCP協議建立連接的三次握手

1.客戶端將報文段數據包SYN同步標誌位置爲1,系統隨機生成一個Sequence Number J,並將這個報文段數據包發送給服務端,其連
接狀態由CLOSED變爲SYN_SENT狀態。這是第一次握手。(這個Sequence Number不能固定,如果序列號是固定的,中間如果斷
了連接,重新建立連接,中間的數據包就沒辦分清是屬於哪次連接的。)

2.服務端收到了客戶端的連接請求後,就要給客戶端一個應答,服務端也把報文段數據包中的SYN同步標誌位設置爲1,同時將ACK標誌
位也設置爲1,然後生成一個ack的值,這個ack的值爲客戶端發送來的的Sequence Number J + 1,最後也要隨機生成一個Sequence
Number 比如爲K,將這個報文段數據包打包發送給客戶端,此時服務端的連接狀態爲SYN_RCVD狀態。客戶端收到服務端的應答後其
連接狀態變爲ESTABLISHED,表示已經建立連接。這是第二次握手。

3.客戶端收到服務端的應答後還要再次給服務端發送一個信息,將報文數據包中的ACK標誌位設爲1,並將服務端發來的Sequence
Number K + 1後作爲一個ack放到報文數據包中發送給服務端(即ack = K + 1),服務端收到客戶端的確認信息後它的連接狀態也變爲
ESTABLISHED,完成了第三次握手。這樣兩端就建立了連接。在這裏插入圖片描述

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