快速瞭解 TCP 連接的 11 種狀態及其轉換

本文意在用簡短的文字總結一下 TCP 的 11 種狀態及其轉換過程。

TCP 的 11 種狀態

1. CLOSED

2. LISTEN

3. SYN-SENT

4. SYN-RECEIVED

5. ESTABLISHED

6. FIN-WAIT-1

7. FIN-WAIT-2

8. CLOSE-WAIT

9. CLOSING

10. LAST-ACK

11. TIME-WAIT

TCP 狀態轉換流程

三次握手(連接建立)

TCP 通過三次握手建立可靠連接,具體流程如下:

  1. 1. CLOSED → SYN-SENT(客戶端發起連接)
  1. 2. LISTEN → SYN-RECEIVED(服務器接收連接請求)
  1. 3. SYN-SENT → ESTABLISHED(客戶端確認連接)
  1. 4. SYN-RECEIVED → ESTABLISHED(服務器確認連接)

此時連接建立完成,雙方可以開始數據通信。

四次揮手(連接釋放)

TCP 通過四次揮手確保連接安全關閉,具體流程如下:

  1. 1. ESTABLISHED → FIN-WAIT-1(主動關閉方發送 FIN)
  1. 2. ESTABLISHED → CLOSE-WAIT(被動關閉方收到 FIN)
  1. 3. FIN-WAIT-1 → FIN-WAIT-2(主動關閉方收到 ACK)
  1. 4. CLOSE-WAIT → LAST-ACK(被動關閉方發送 FIN)
  1. 5. FIN-WAIT-2 → TIME-WAIT(主動關閉方收到 FIN)
  1. 6. LAST-ACK → CLOSED(被動關閉方收到 ACK)
  1. 7. TIME-WAIT → CLOSED(主動關閉方等待超時)

特殊狀態轉換

  1. 1. CLOSING
  1. 2. TIME-WAIT
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Bjq39k78p9uliudcIW0T9Q