吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析C++基礎語法梳理之計算機網絡中傳輸管理(TCP)

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 作者: C語言編程 ? 2021-10-26 10:17 ? 次閱讀

TCP 傳輸連接管理

因為 TCP 三次握手建立連接、四次揮手釋放連接很重要,所以附上《計算機網絡(第 7 版)-謝希仁》書中對此章的詳細描述:https://gitee.com/huihut/interview/raw/master/images/TCP-transport-connection-management.png

TCP 三次握手建立連接

2298daea-357f-11ec-82a8-dac502259ad0.png

【TCP 建立連接全過程解釋】

客戶端發送 SYN 給服務器,說明客戶端請求建立連接;

服務端收到客戶端發的 SYN,并回復 SYN+ACK 給客戶端(同意建立連接);

客戶端收到服務端的 SYN+ACK 后,回復 ACK 給服務端(表示客戶端收到了服務端發的同意報文);

服務端收到客戶端的 ACK,連接已建立,可以數據傳輸。

TCP 為什么要進行三次握手?

【答案一】因為信道不可靠,而 TCP 想在不可靠信道上建立可靠地傳輸,那么三次通信是理論上的最小值。(而 UDP 則不需建立可靠傳輸,因此 UDP 不需要三次握手。)

【答案二】因為雙方都需要確認對方收到了自己發送的序列號,確認過程最少要進行三次通信。

【答案三】為了防止已失效的連接請求報文段突然又傳送到了服務端,因而產生錯誤。

TCP 四次揮手釋放連接

2303d3b8-357f-11ec-82a8-dac502259ad0.png

【TCP 釋放連接全過程解釋】

客戶端發送 FIN 給服務器,說明客戶端不必發送數據給服務器了(請求釋放從客戶端到服務器的連接);

服務器接收到客戶端發的 FIN,并回復 ACK 給客戶端(同意釋放從客戶端到服務器的連接);

客戶端收到服務端回復的 ACK,此時從客戶端到服務器的連接已釋放(但服務端到客戶端的連接還未釋放,并且客戶端還可以接收數據);

服務端繼續發送之前沒發完的數據給客戶端;

服務端發送 FIN+ACK 給客戶端,說明服務端發送完了數據(請求釋放從服務端到客戶端的連接,就算沒收到客戶端的回復,過段時間也會自動釋放);

客戶端收到服務端的 FIN+ACK,并回復 ACK 給客戶端(同意釋放從服務端到客戶端的連接);

服務端收到客戶端的 ACK 后,釋放從服務端到客戶端的連接。

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

【問題一】TCP 為什么要進行四次揮手?/ 為什么 TCP 建立連接需要三次,而釋放連接則需要四次?

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

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

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

【問題三】為什么客戶端釋放最后需要 TIME-WAIT 等待 2MSL 呢?

【答案三】

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

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

TCP 有限狀態機

TCP 有限狀態機圖片

23806d6a-357f-11ec-82a8-dac502259ad0.png

今天的分享就到這里了,大家要好好學C++喲~

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1378

    瀏覽量

    79306
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73859
  • 服務端
    +關注

    關注

    0

    文章

    66

    瀏覽量

    7058

原文標題:C++基礎語法梳理:計算機網絡丨傳輸管理(TCP)

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    計算機網絡架構的演進

    計算機網絡架構的演進見證了信息技術的飛速發展。早期的總線型網絡架構,通過一條共享的通信線路連接各個節點,結構簡單且成本較低,但存在單點故障和傳輸效率不高的問題。隨著技術的發展,星型網絡
    的頭像 發表于 01-21 11:11 ?112次閱讀

    TCP三次握手如何影響網絡性能

    計算機網絡TCP是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。它通過三次握手過程來建立兩個網絡實體之間的連接,確保數據
    的頭像 發表于 01-06 09:13 ?240次閱讀

    TCP三次握手的網絡抓包分析

    計算機網絡TCP傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。TCP
    的頭像 發表于 01-06 09:05 ?238次閱讀

    TCP三次握手與UDP的區別

    計算機網絡,數據傳輸的可靠性和效率是兩個關鍵因素。為了滿足不同的應用需求,設計者們開發了多種傳輸層協議。其中,TCP
    的頭像 發表于 01-03 17:35 ?439次閱讀

    TCP三次握手的基本原理

    計算機網絡TCP傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。它確保了數據在
    的頭像 發表于 01-03 17:25 ?518次閱讀

    網線的功能都有哪些

    網線全稱“雙絞線”,是綜合布線工程中最常用的一種傳輸介質,主要用于連接計算機網絡設備(如交換機、路由器、集線器等)以及網絡設備之間的數據傳輸
    的頭像 發表于 11-29 09:31 ?561次閱讀

    110配線架可用于什么地方?rj4模塊化配線架可用于什么地方?

    數據能夠穩定、高速地傳輸。它支持高帶寬和高速率的數據傳輸,滿足現代計算機網絡對性能和可靠性的要求。 電話網絡:110配線架也常用于電話網絡
    的頭像 發表于 09-11 09:55 ?689次閱讀

    應用于計算機網絡服務器晶振SG3225HBN(X1G005141000500)

    計算機網絡服務器,穩定和高性能的時鐘源對于數據處理和網絡通信的準確性至關重要,SG3225HBN晶振(型號X1G005141000500)憑借其高頻率穩定性、低相位噪聲、高抗干擾能力以及
    發表于 09-05 10:05 ?0次下載

    計算機網絡中常見的默認端口號及其用途

    網絡工程領域,了解和掌握默認端口號是至關重要的。端口號是計算機網絡中最基本的概念之一,用于標識特定的網絡服務或應用程序。本文將詳細介紹常見的默認端口號及其用途,幫助網絡工程師更好地理
    的頭像 發表于 08-13 16:33 ?1708次閱讀

    一文了解TCP/IP協議

    TCP/IP協議是現代計算機網絡通信的基礎,是互聯網及局域網廣泛使用的一套協議。TCP/IP協議集包括許多協議,其中最重要的是傳輸控制協議(TCP
    的頭像 發表于 08-07 15:38 ?2372次閱讀
    一文了解<b class='flag-5'>TCP</b>/IP協議

    計算機網絡的三種通信方式

    計算機網絡的三種通信方式,即單工通信、半雙工通信和全雙工通信,是理解和設計高效網絡架構的基礎。每種通信方式都有其獨特的特性、應用場景及優缺點。以下是對這三種通信方式的詳細分析,旨在提供深入的理解。
    的頭像 發表于 08-07 15:00 ?3195次閱讀

    華納云:TCP IP協議的發展和優勢

    TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/互聯網協議)是互聯網和現代計算機網絡的基礎協議集。它定義了數據在網絡
    的頭像 發表于 07-25 16:49 ?556次閱讀

    工業計算機與普通計算機的區別

    在信息化和自動化日益發展的今天,計算機已經成為了我們日常生活和工作不可或缺的工具。然而,在計算機領域中,工業計算機和普通計算機雖然都具備基
    的頭像 發表于 06-06 16:45 ?1620次閱讀

    【RTC程序設計:實時音視頻權威指南】計算機知識基礎篇

    數據通信的加密,加密方法、算法也有很多種,有對稱加密算法,也有非對稱加密算法。在這些計算機網絡的基本概念,可以從物理層到應用層的特性進行了解,重點可以學習一下UDP和TCP這兩種最基本的網絡
    發表于 04-23 09:02

    看看PCIe設備之間的通信方式

    PCIe是以包(Packet)為單位傳輸數據的。和計算機網絡類似,其協議也是分層的。
    的頭像 發表于 03-01 14:18 ?6550次閱讀
    看看PCIe設備之間的通信方式
    百家乐下注技术| 澳门百家乐开户投注| 百家乐国际娱乐场| 大发888 m摩卡游戏| 百家乐官网是骗人吗| 曼哈顿百家乐官网的玩法技巧和规则| 百家乐屏风| 博盈开户| 六合彩票| 百家乐官网闲和庄| 娱乐城百家乐技巧| 大发888 在线登陆| 百家乐官网庄闲的概率| 网上百家乐网址| 水果老虎机游戏| 百家乐官网台布兄弟 | 必博| 百家乐官网怎么玩最保险| 百家乐庄闲偏差有多大| 博彩赌场| 百家乐官网平台| 百家乐电器维修| 博狗百家乐官网开户| 百家乐庄闲分布概率| 威尼斯人娱乐城澳门赌博| 百家乐官网游戏怎么刷钱| 百家乐稳赢投注| 万豪国际| 羊和鼠做生意摆件| 博彩机| 旧金山百家乐官网的玩法技巧和规则| 千亿娱百家乐的玩法技巧和规则 | 百家乐官网赌博代理荐| 博狗百家乐的玩法技巧和规则| 新葡京百家乐官网现金网| 百家乐娱乐送白菜| 百家乐官网视频百家乐官网| 赌博百家乐经验网| 松原市| 温州市百家乐鞋业| 百家乐官网翻天快播|