日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tcp工作原理

發布時間:2025/3/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tcp工作原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

?

?

?

TCP 三次握手建立連接

?

TCP 建立連接全過程解釋

  • 客戶端發送 SYN 給服務器,說明客戶端請求建立連接;
  • 服務端收到客戶端發的 SYN,并回復 SYN+ACK 給客戶端(同意建立連接);
  • 客戶端收到服務端的 SYN+ACK 后,回復 ACK 給服務端(表示客戶端收到了服務端發的同意報文);
  • 服務端收到客戶端的 ACK,連接已建立,可以數據傳輸。
  • ?

    ?

    ?

    ?

    TCP 四次揮手釋放連接:

    TCP 為什么要進行四次揮手?

    1:TCP 為什么要進行四次揮手? / 為什么 TCP 建立連接需要三次,而釋放連接則需要四次?

    答案:因為 TCP 是全雙工模式,客戶端請求關閉連接后,客戶端向服務端的連接關閉(一二次揮手),服務端繼續傳輸之前沒傳完的數據給客戶端(數據傳輸),服務端向客戶端的連接關閉(三四次揮手)。所以 TCP 釋放連接時服務器的 ACK 和 FIN 是分開發送的(中間隔著數據傳輸),而 TCP 建立連接時服務器的 ACK 和 SYN 是一起發送的(第二次握手),所以 TCP 建立連接需要三次,而釋放連接則需要四次。

    2:為什么 TCP 連接時可以 ACK 和 SYN 一起發送,而釋放時則 ACK 和 FIN 分開發送呢?(ACK 和 FIN 分開是指第二次和第三次揮手)

    答案:因為客戶端請求釋放時,服務器可能還有數據需要傳輸給客戶端,因此服務端要先響應客戶端 FIN 請求(服務端發送 ACK),然后數據傳輸,傳輸完成后,服務端再提出 FIN 請求(服務端發送 FIN);而連接時則沒有中間的數據傳輸,因此連接時可以 ACK 和 SYN 一起發送。

    3:為什么客戶端釋放最后需要 TIME-WAIT 等待 2MSL 呢?

    答案:

    1:為了保證客戶端發送的最后一個 ACK 報文能夠到達服務端。若未成功到達,則服務端超時重傳 FIN+ACK 報文段,客戶端再重傳 ACK,并重新計時。

    2:防止已失效的連接請求報文段出現在本連接中。TIME-WAIT 持續 2MSL 可使本連接持續的時間內所產生的所有報文段都從網絡中消失,這樣可使下次連接中不會出現舊的連接報文段。

    socket編程流程:

    ?

    總結

    以上是生活随笔為你收集整理的tcp工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。