安基網 首頁 系統 網絡學院 查看內容

TCP傳輸協議中如何解決丟包問題

2019-10-21 16:29| 投稿: xiaotiger |來自: 互聯網


免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

摘要: 一、回答這個問題之前,要考慮TCP協議為什么會丟包,在什么樣的情況下會丟包。1、TCP協議定義(Transimission Control Protocol)是以一種面向連接的、可靠的、基于字節流的傳輸層通信協議。2、TCP是基于不可靠的網路實現可靠傳輸,肯定會存在丟包問題。3、如果在通信過程中,發現缺少數據或者丟包,那 ...

一、回答這個問題之前,要考慮TCP協議為什么會丟包,在什么樣的情況下會丟包。

1、TCP協議定義(Transimission Control Protocol)是以一種面向連接的、可靠的、基于字節流的傳輸層通信協議。

2、TCP是基于不可靠的網路實現可靠傳輸,肯定會存在丟包問題。

3、如果在通信過程中,發現缺少數據或者丟包,那邊么最大的可能性是程序發送過程或者接受過程中出現問題。

例如:我有2臺服務器 ,A和B服務器。

A服務器發送數據給B服務器頻率過高時,B服務器來不及處理,造成數據丟包。(原因可能是程序邏輯問題,多線程同步問題,緩沖區溢出問題)

如果A服務器不對發送頻率進行控制,或者數據進行重發的話,那么B服務器收到數據就會少。就會造成丟失數據

流程圖:

二、TCP協議丟包后,如何解決丟包的問題

為了滿足TCP協議不丟包。TCP協議有如下規定

1、數據分片:發送端對數據進行分片,接受端要對數據進行重組,由TCP確定分片的大小并控制分片和重組

2、到達確認:接收端接收到分片數據時,根據分片數據序號向發送端發送一個確認

3、超時重發:發送方在發送分片時設置超時定時器,如果在定時器超時之后沒有收到相應的確認,重發分片數據

4、滑動窗口:TCP連接的每一方的接受緩沖空間大小固定,接收端只允許另一端發送接收端緩沖區所能接納的數據,TCP在滑動窗口的基礎上提供流量控制,防止較快主機致使較慢主機的緩沖區溢出

5、失序處理:作為IP數據報來傳輸的TCP分片到達時可能會失序,TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層;

6、重復處理:作為IP數據報來傳輸的TCP分片會發生重復,TCP的接收端必須丟棄重復的數據;

7、數據校驗:TCP將保持它首部和數據的檢驗和,這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到分片的檢驗和有差錯,TCP將丟棄這個分片,并不確認收到此報文段導致對端超時并重發

TCP三次握手和四次釋放



小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

本文出自:https://www.toutiao.com/a6723937011201212942/

免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


鮮花

握手

雷人

路過

雞蛋

相關閱讀

最新評論

 最新
返回頂部
湖北快3 购买技巧