天天看點

《UNP》學習之TCP狀态轉換

《UNP》學習之TCP狀态轉換
  • CLOSED:TCP起始狀态
  • LISTEN:綁定端口後進入listen狀态,一般是服務端
  • SYN_SENT:發送SYN連接配接請求,主動打開連接配接的一方進入SYN_SENT
  • SYN_RCVD:接收到SYN連接配接請求後進入SYN_RCVD,同時發送SYN,ACK。TCP可從LISTEN和SYN_SENT兩個狀态進入SYN_RCVD
  • ESTABLISHED:三次握手成功後進入ESTABLISHED狀态
  • CLOSE_WAIT:被動關閉的一方接收到FIN包後,發送ACK響應,進入CLOSE_WAIT狀态
  • LAST_ACK:顧名思義,在等待最後一個ACK包。CLOSE_WAIT發送FIN包關閉連接配接後進入該狀态
  • FIN_WAIT_1:主動關閉的一方先發送FIN包,從ESTABLISHED狀态進入FIN_WAIT_1
  • CLOSING:FIN_WAIT_1下是在等待對方的ACK響應和對方的FIN包,FIN包先到的話,兩端是同時關閉,FIN_WAIT_1發送ACK響應後進入CLOSING狀态,等待一個ACK,然後進入TIME_WAIT狀态
  • FIN_WAIT_2:FIN_WAIT_1下是在等待對方的ACK響應和對方的FIN包,如果ACK先到,進入FIN_WAIT_2狀态。這時候的連接配接處于半連接配接狀态,有一方已經斷開連接配接,但另一方還有資料要傳。繼續等待FIN包,FIN包到了後,發送ACK,進入TIME_WAIT狀态
  • TIME_WAIT:FIN_WAIT_1下是在等待對方的ACK響應和對方的FIN包,FIN包和ACK包都到了,發送ACK響應後,進入TIME_WAIT狀态,等待2MSL然後關閉

TIME_WAIT狀态解釋

  1. 主動關閉連接配接的一方會進入TIME_WAIT狀态,等待2MSL然後徹底關閉
  2. MSL是任何IP資料報能夠在網際網路中存活的最長時間
  3. 為什麼要等待2MSL?
  • 可靠地實作TCP全雙工連接配接的終止
  • 允許老的重複分節在網絡中消逝

繼續閱讀