TCP的ACK機制

我們先來回顧一下TCP的完整協議,通過上面兩張圖我們就能知道,首先是創建連接傳送數據。

三次握手 在這裏插入圖片描述

  • 發起連接的是客戶端
  • 接收連接的是服務端
  • 服務端處於監聽狀態,當有連接過來,狀態就變爲SYN_RCVD
  • 回覆一個SYN、ACK消息,客戶端收到消息後狀態變爲ESTABLISHED
  • 再回復一個ACK消息,服務端接收到消息後服務端也處於ESTABLISHED
  • 在這之後客戶端與服務器直接就可以進行消息的收發了。

消息收發

  • 客戶端通過write()進行向服務器發送數據
  • 服務器通過read()進行數據的讀取。

四次揮手

在這裏插入圖片描述

  • 斷開連接的一方稱爲客戶端
  • 被斷開的一方稱爲服務端
  • 客戶端調用close(),發送FIN到服務端
  • 服務端收到FIN後,調用close(),狀態變爲Close_WAIT,同時發送ACK消息到客戶端。
  • 客戶端收到FIN消息後,狀態變爲FIN_WAIT_2,狀態變爲WAIT_TIME
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章