【計算機網絡】TCP 如何實現可靠傳輸

TCP通過三次握手建立連接,四次揮手釋放連接,確保連接建立和連接釋放的可靠。

序列號、檢驗和、確認應答信號、重發機制、連接管理、窗口控制、流量控制、擁塞控制 標準回答 可靠傳輸就是通過TCP連接傳送的數據是沒有差錯、不會丟失、不重復并且按序到達的。TCP是通過序列號、檢驗和、確認應答信號、重發機制、連接管理、窗口控制、流量控制、擁塞控制一起保證TCP傳輸的可靠性的。 加分回答 可靠傳輸的具體實現是:

- 應用層的數據會被分割成TCP認為最適合發送的數據塊。

- 序列號:TCP給發送的每一個包都進行編號,接收方對數據包進行排序,把有序數據傳送給應用層,TCP的接收端會丟棄重復的數據。

- 檢驗和:TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。

- 確認應答:如果收到的數據報報文段的檢驗和沒有差錯,就確認收到,如果有差錯,TCP就丟棄這個報文段和不確認收到此報文段。

- 流量控制:TCP 連接的每一方都有固定大小的緩沖空間,TCP的接收端只允許發送端發送接收端緩沖區能接納的數據。當接收方來不及處理發送方的數據,能提示發送方降低發送的速率,防止包丟失。TCP 使用的流量控制協議是可變大小的滑動窗口協議。

- 擁塞控制:當網絡擁塞時,減少數據的發送。

- 停止等待協議:它的基本原理就是每發完一個分組就停止發送,等待對方確認。在收到確認后再發下一個分組。

- 超時重傳: 當 TCP 發出一個段后,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。

目錄

1. 三次握手和四次揮手

2.?流量控制

3. 擁塞控制

4.?序列號

5.?超時重傳

6. 停止等待協議


1. 三次握手和四次揮手

TCP通過三次握手建立連接,四次揮手釋放連接,確保連接建立和連接釋放的可靠。

【三次握手詳細過程】

能否使用兩次握手建立連接呢?

不行。如果TCP客戶發起的請求滯留到達,此時TCP服務器會進入連接已建立狀態,而TCP客戶端仍為關閉狀態,會導致TCP服務器的資源浪費。

【四次揮手詳細過程】


2.?流量控制

流量控制就是讓發送方的發送速率不要太快,要讓接收方來得及接收。(發送過快接收方來不及接受,可能導致數據丟失)
使用滑動窗口機制實現。

【以字節為單位的滑動窗口】

【問題】對于主機B發送的消息丟失,主機A遲遲收不到主機B的消息,雙方會陷入死鎖局面。

解決:設置持續計時器,超過則主機A發送0窗口探測報文(帶有1字節),即使主機B的接收窗口為0規定也要接收0窗口探測報文。

【問題】0窗口探測報文(帶有1字節)丟失怎么辦?

解決:對于0窗口探測報文(帶有1字節)也設置超時計時器,超時則重傳。


3. 擁塞控制

擁塞:在某段時間,若對網絡中某一資源的需求超過了該資源所能提供的可用部分,網絡性能就要變壞。

四種擁塞控制算法?:

  1. 慢開始
  2. 擁塞避免?
  3. 快重傳
  4. 快恢復

【慢開始+擁塞避免】

當 cwnd < ssthresh 時,使用慢開始算法。
當 cwnd > ssthresh 時,停止使用慢開始算法,改用擁塞避免算法。
當 cwnd = ssthresh 時,既可使用慢開始算法,也可使用擁塞避免算法。

【快重傳+快恢復】

解決個別丟失但未擁塞,發生的超時重傳而導致調用擁塞避免算法

快重傳,就是使發送方盡快進行重傳,而不是等超時重傳計時器超時再重傳。

  • 要求接收方不要等待自己發送數據時才進行捎帶確認,而是要立即發送確認;即使收到了失序的報文段也要立即發出對已收到的報文段的重復確認
  • 發送方一旦收到3個連續的重復確認,就將相應的報文段立即重傳,而不是等該報文段的超時重傳計時器超時再重傳

快恢復:ssthresh=cwnd/2,cwnd=ssthresh

【慢開始結合擁塞避免】示例

【慢開始】:指數增長

【擁塞避免?】:當cwnd=ssthresh時,每次加1

【慢開始】:當發送超時重傳,將ssthresh=cwnd/2,cwnd=1

【快重傳+快恢復】示例


4.?序列號

序列號:TCP給發送的每一個包都進行編號,接收方對數據包進行排序,把有序數據傳送給應用層,TCP的接收端會丟棄重復的數據。


5.?超時重傳

問題:A給B發送數據,A 如何知道 B 是否正確收到了 M1 呢?
解決方法:超時重傳

  • A 為每一個已發送的分組設置一個超時計時器。
  • A 只要在超時計時器到期之前收到了相應的確認,就撤銷該超時計時器,繼續發送下一個分組 M2 。
  • 若 A 在超時計時器規定時間內沒有收到 B 的確認,就認為分組錯誤或丟失,就重發該分組。


6. 停止等待協議

它的基本原理就是每發完一個分組就停止發送,等待對方確認。在收到確認后再發下一個分組。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713992.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713992.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713992.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

springboot+vue+mysql項目使用的常用注解

實體類常用注解 Data Data 是一個 Lombok 提供的注解&#xff0c;使用 Data 注解可以簡化代碼&#xff0c;使代碼更加簡潔易讀。 作用&#xff1a;自動為類生成常用的方法&#xff0c;包括 getter、setter、equals、hashCode 和 toString 等需要加Lombok的依賴 <depende…

rk3568-一種基于wifi的網絡環境搭建方案

前言&#xff1a; PC--Ubuntu--開發板 三者之間的網絡互相ping通很重要&#xff0c;尤其是ubuntu和開發板互ping成功最關鍵&#xff0c;關系到nfs&#xff0c;tftp等常用的開發手段。現在大多數開發板都帶有wifi芯片&#xff0c;現在提供一種方案可以三個設備無線地搭建網絡環境…

Open3D0.14.1編譯、安裝、demo使用教程

寫在前面 本文內容 Open3D在0.15版之前&#xff0c;沒有提供編譯好的包&#xff0c;要使用C版本必須自己編譯&#xff0c;本文是Open3D0.14.1在Windows下和Linux(Ubuntu1804)下的編譯、使用教程&#xff1b; Open3D其他版本的編譯和使用相關教程見 各個版本的Open3D、PCL的編譯…

STL常見容器(map/multimap容器)---C++

STL常見容器目錄&#xff1a; 8.map/ multimap容器8.1 map基本概念8.2 map構造和賦值8.3 map大小和交換8.4 map插入和刪除8.5 map查找和統計8.6 map容器排序8.6.1 內置類型排序8.6.2 自定義類型排序8.6.3 自定義和內置類型混合排序 8.map/ multimap容器 兩者基本一致&#xff…

用node寫后端環境運行時報錯Port 3000 is already in use

解決方法:關閉之前運行的3000端口,操作如下 1.WindowR輸入cmd確定,打開命令面板 2.查看本機端口詳情 netstat -ano|findstr "3000" 3.清除3000端口 taskkill -pid 41640 -f 最后再重新npm start即可,這里要看你自己項目中package.joson的啟動命令是什…

Flink:動態表 / 時態表 / 版本表 / 普通表 概念區別澄清

博主歷時三年精心創作的《大數據平臺架構與原型實現&#xff1a;數據中臺建設實戰》一書現已由知名IT圖書品牌電子工業出版社博文視點出版發行&#xff0c;點擊《重磅推薦&#xff1a;建大數據平臺太難了&#xff01;給我發個工程原型吧&#xff01;》了解圖書詳情&#xff0c;…

Python+PySide6實現一個選擇文件并做處理的GUI辦公小工具(完整代碼)

目錄 專欄導讀背景安裝注意事項完整代碼結尾專欄導讀 ?? 歡迎來到Python辦公自動化專欄—Python處理辦公問題,解放您的雙手 ?????? 博客主頁:請點擊——> 一晌小貪歡的博客主頁求關注 ?? 該系列文章專欄:請點擊——>Python辦公自動化專欄求訂閱 ?? 此外還…

天翼云登錄參數JavaSrcipt逆向

天翼云登錄參數 password 、comParam_curTime、comParam_seqCode、comParam_signature JavaSrcipt逆向 目標網站 https://m.ctyun.cn/wap/main/auth/login?redirect/my 目標參數 要逆向的有 password、comParam_curTime、comParam_seqCode、comParam_signature 四個參數 …

安卓使用ExoPlayer出現膨脹類異常

1.導包 implementation com.google.android.exoplayer:exoplayer-core:2.15.1implementation com.google.android.exoplayer:exoplayer-ui:2.15.1 2.在Androidifest.xml加入權限&#xff0c;我這里加了忘了與讀寫權限 <uses-permission android:name"android.permissio…

【Fastadmin/ThinkPHP5】使用Queue隊列方法詳細步驟

在現代應用開發中&#xff0c;合理利用隊列系統能夠有效提升系統的性能和響應速度&#xff0c;尤其是在處理耗時較長的任務時&#xff0c;如發送大量郵件、執行定時任務等。下面是如何在ThinkPHP框架中設置和使用隊列功能的詳細指南&#xff1a; 1.配置隊列服務 在applicatio…

Tomcat服務部署、優化

一 Tomcat的基本介紹 Tomcat概念 Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器&#xff0c;屬于輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發和調試 JSP 程序的首選。 當在一臺機器上配置好Apache 服務器…

VMwareWorkstation17.0虛擬機搭建WindowsXP虛擬機(完整安裝步驟詳細圖文教程)

VMwareWorkstation17.0虛擬機搭建WindowsXP虛擬機&#xff08;完整安裝步驟詳細圖文教程&#xff09; 一、Windows XP1.Windows XP簡介2.Windows XP 的下載地址 二、配置 Windows XP 虛擬機運行環境1.新建虛擬機2.選擇類型配置3.插入WinXP光盤映像文件(ISO)4.選擇操作系統5.命名…

Home Assistant:基于Python的智能家居開源系統詳解

Home Assistant&#xff1a;基于Python的智能家居開源系統詳解 在數字化和智能化的時代&#xff0c;智能家居系統成為了現代家庭的新寵。它們能夠讓我們更加方便地控制家中的各種設備&#xff0c;實現自動化和個性化的居住體驗。其中&#xff0c;Home Assistant作為一款基于Pyt…

美易官方:3月1日美股成交額前20

3月1日&#xff0c;美股市場熱鬧非凡&#xff0c;成交額前20的公司股票交易活躍&#xff0c;其中&#xff0c;英偉達&#xff08;NVIDIA&#xff09;的股價收在800美元之上&#xff0c;創下了歷史新高。這一天的股市走勢充分展示了投資者對于科技股的熱烈追捧&#xff0c;同時也…

手機NFC錄入門禁數據,實現手機開門

近場通信&#xff08;Near Field Communication&#xff0c;簡稱NFC&#xff09;&#xff1a; 是一種新興的技術&#xff0c;使用了NFC技術的設備&#xff08;例如移動電話&#xff09;可以在彼此靠近的情況下進行數據交換&#xff0c;是由非接觸式射頻識別&#xff08;RFID&am…

【二分】二分模板+二分題目

一、樸素二分 . - 力扣&#xff08;LeetCode&#xff09;. - 備戰技術面試&#xff1f;力扣提供海量技術面試資源&#xff0c;幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/binary-search/description/ int left 0, right nums.…

【leetcode】隨機鏈表的復制

大家好&#xff0c;我是蘇貝&#xff0c;本篇博客帶大家刷題&#xff0c;如果你覺得我寫的還不錯的話&#xff0c;可以給我一個贊&#x1f44d;嗎&#xff0c;感謝?? 點擊查看題目 思路: struct Node* copyRandomList(struct Node* head) {struct Node* curhead;//1.copy原鏈…

MWC 2024丨美格智能CEO杜國彬出席中國聯通創新成果發布會并發表主題演講

2月26日&#xff0c;中國聯通在MWC2024 巴塞羅那期間舉辦了以“算網為基&#xff0c;智領未來”為主題的創新成果發布會&#xff0c;集中展示最新的創新成果與最佳實踐。 中國通信標準化協會理事長聞庫、GSMA首席財務官Louise Easterbrook、中國聯通副總經理梁寶俊、華為ICT銷…

每日一“類“:深入理解Qt的心臟《QObject》

Qt框架以其強大的跨平臺能力和豐富的用戶界面元素而廣受開發者歡迎&#xff0c;而QObject類無疑是Qt框架心臟的所在。本文將深入探討QObject&#xff0c;揭示其提供的核心功能以及如何在Qt項目中有效利用這個基類。 核心功能 信號與槽 Qt獨特的信號與槽機制是其事件通信的基…

AWS 認證報名考試流程

AWS認證的考試包括&#xff0c;可以申請線上或者線下考試。 考試類型 線上&#xff1a; 優點&#xff1a;方便快捷無需通勤&#xff0c;隨時約隨時考&#xff0c;基本上每天都可以 缺點&#xff1a;對環境要求較高&#xff0c;屋子里只能有自己&#xff0c;而且不能有其他聲音…