2.TCP三次握手、四次揮手

TCP三次握手

  1. 客戶端發送一個帶SYN的數據包給服務端。
  2. 服務端接收到後,回傳一個帶有SYN/ACK標誌的數據包以示傳達確認信號。
  3. 客戶端再發送一個帶有ACK的數據包給服務端,代表“握手”結束。
    在這裏插入圖片描述

TCP四次揮手

1)客戶端進程發出連接釋放報文,並且停止發送數據。

2)服務器收到連接釋放報文,發出確認報文,並且帶上自己的序列號,此時,服務端就進入了CLOSE-WAIT(關閉等待)狀態。TCP服務器通知高層的應用進程,客戶端向服務器的方向就釋放了,這時候處於半關閉狀態,即客戶端已經沒有數據要發送了,但是服務器若發送數據,客戶端依然要接受。這個狀態還要持續一段時間,也就是整個CLOSE-WAIT狀態持續的時間。

3)客戶端收到服務器的確認請求後,此時,客戶端就進入FIN-WAIT-2(終止等待2)狀態,等待服務器發送連接釋放報文(在這之前還需要接受服務器發送的最後的數據)。

4)服務器將最後的數據發送完畢後,就向客戶端發送連接釋放報文,由於在半關閉狀態,服務器很可能又發送了一些數據,此時,服務器就進入了LAST-ACK(最後確認)狀態,等待客戶端的確認。

5)客戶端收到服務器的連接釋放報文後,必須發出確認信號,此時,客戶端就進入了TIME-WAIT(時間等待)狀態。注意此時TCP連接還沒有釋放,必須經過2∗∗MSL(最長報文段壽命)的時間後,當客戶端撤銷相應的TCB後,才進入CLOSED狀態。

6)服務器只要收到了客戶端發出的確認,立即進入CLOSED狀態。同樣,撤銷TCB後,就結束了這次的TCP連接。可以看到,服務器結束TCP連接的時間要比客戶端早一些。

在這裏插入圖片描述

參考

TCP的三次握手與四次揮手理解及面試題(很全面)

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