TCP連接的建立與終止

建立連接

TCP是通過三次握手建立連接的,其過程如下:

1. 客戶端向服務器發送一個SYN報文段,該報文段不包含數據,SYN標誌被置爲1,同時指定源端口、目的端口、以及初始序列號(Client_ISN)

2. 服務器收到客戶端的SYN報文段後,在服務端爲該連接分配TCP緩存及相關變量,然後服務器向客戶端回發一個SYN報文段(SYNACK),該報文段包含服務端指定的初始序列號(Server_ISN),同時該報文段的確認序列號(ACK)被置爲 Client_ISN+1

3.  客戶端收到服務端發送過來的SYNACK報文段之後,客戶端爲該連接分配緩存及相關變量,然後向服務器發送一個ACK報文段,該報文段的ACK爲Server_ISN+1,且SYN標誌被爲0(前兩個報文段的SYN標誌爲1)

終止連接

TCP是全雙工的協議,因此每個方向必須單獨關閉,終止一個連接一共需要4次握手。當一方完成它的數據發送便向對方發送一個FIN來終止該方向的連接,當另一方收到這個信號後,便通知應用層另一端已經終止該方向的數據傳送,同時自動回送一個ACK(ACK_Number = FIN_Number + 1);但此時反方向的數據傳送依然可以繼續進行,當需要終止反方向的數據發送時,也需要重複上述過程,其過程如下圖所示:

TCP的狀態變遷圖



發佈了65 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章