色猫咪av在线网址_91精品国产福利在线观看雪梨还会玩转热点_丁香花的视频免费观看_国产手机在线A∨免费视频_十八禁av无码免费网站APP_综合色一区二区亚洲_日韩精品小电影_漂亮人妻熟睡中被公侵犯_全新成人高清无码片_高级厕所偷窥白领美女嘘嘘

當(dāng)前位置: 首頁(yè) >應(yīng)用方案 >技術(shù)應(yīng)用 >

關(guān)于TCP協(xié)議流量控制機(jī)制的詳解說(shuō)明

TCP流控機(jī)制前言

TCP/IP協(xié)議是計(jì)算機(jī)通信網(wǎng)絡(luò)中目前使用最多的協(xié)議,同時(shí)也融入了生活的方方面面,不管是瀏覽網(wǎng)頁(yè)使用的http/https超文本傳輸協(xié)議、物聯(lián)網(wǎng)設(shè)備使用的MQTT/MQTTS協(xié)議與下載文件使用的ftp協(xié)議、工業(yè)以太網(wǎng)中使用的Modbus TCP協(xié)議等很多應(yīng)用層協(xié)議,都是基于TCP/IP協(xié)議。TCP/IP協(xié)議在傳輸數(shù)據(jù)的同時(shí),也提供了以下功能:

1、慢啟動(dòng):網(wǎng)絡(luò)環(huán)境擁塞檢測(cè);

2、重傳機(jī)制:保證數(shù)據(jù)的完整性,與連接可靠性;

3、滑動(dòng)窗口:流量控制,降低網(wǎng)絡(luò)環(huán)境壓力,避免數(shù)據(jù)丟包;

4、Keep-alive:網(wǎng)絡(luò)異常檢測(cè)。

正因?yàn)橐蕴W(wǎng)在我們生活中廣泛的引用,以及物聯(lián)網(wǎng)無(wú)線數(shù)傳終端設(shè)備的普及,而以太網(wǎng)設(shè)備的處理能力以及網(wǎng)絡(luò)接口的速度又可能差異巨大。比如目前主流的PC、交換機(jī)與路由器等網(wǎng)絡(luò)設(shè)備都支持1000Mbps的連接速度,而老的產(chǎn)品能支持到100Mbps,甚至某些低成本以太網(wǎng)模組產(chǎn)品只能支持到10Mbps,所有怎樣才能保證以太網(wǎng)設(shè)備在通訊的時(shí)候,接收數(shù)據(jù)的穩(wěn)定性,并且在接收方?jīng)]有能力接收數(shù)據(jù)的情況下“告訴”對(duì)方暫時(shí)不要發(fā)送數(shù)據(jù)呢?

本文將介紹TCP滑動(dòng)窗口,并且如何通過(guò)滑動(dòng)窗口實(shí)現(xiàn)流量控制機(jī)制。

一、TCP協(xié)議簡(jiǎn)介

TCPTransmission Control Protocol,傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。TCP提供了一種全雙工的、面向連接的、可靠的字節(jié)流服務(wù),是TCP/IP協(xié)議簇中最重要也是最復(fù)雜的協(xié)議。

TCP協(xié)議的主要特點(diǎn)包括:

  1. 面向連接:通信前需要先三次握手建立連接,通信后四次揮手釋放連接。

  2. 可靠性:通過(guò)序號(hào)解決報(bào)文亂序/丟失、超時(shí)重傳、擁塞控制、滑動(dòng)窗口、檢驗(yàn)和等方式保證數(shù)據(jù)傳輸?shù)目煽啃浴?/span>

  3. 字節(jié)流:沒(méi)有固定的報(bào)文邊界,數(shù)據(jù)在TCP中以字節(jié)流的形式傳輸。

  4. 全雙工通信:通信兩端在任意時(shí)刻可以互相發(fā)送數(shù)據(jù),既可以是客戶端也可以是服務(wù)端。

TCP假設(shè)它可以從較低級(jí)別的協(xié)議獲得簡(jiǎn)單的、可能不可靠的數(shù)據(jù)報(bào)服務(wù),原則上TCP協(xié)議應(yīng)該能夠在從硬線連接到分組交換或電路交換網(wǎng)絡(luò)的各種通信系統(tǒng)之上操作。


二、滑動(dòng)窗口

1、通過(guò)TCP連接報(bào)文查看雙方接收窗口大小

1 TCP流控機(jī)制詳解

上圖中是通過(guò)wireshark抓取的一段TCP連接報(bào)文,Win=64240表示客戶端(192.168.3.111:53065)的接收窗口為64240WS=256代表窗口縮放256倍,即64240*256。Win=64240表示服務(wù)器(192.168.3.207:8000)的接收窗口為64240,WS=32代表窗口縮放32倍,即64240*32

2、正常接收數(shù)據(jù)時(shí)接收窗口的變化

2-TCP流控機(jī)制詳解

從上圖中可以看出,當(dāng)發(fā)送方應(yīng)用層有大量數(shù)據(jù)發(fā)送的時(shí)候,發(fā)送方并不一定會(huì)等待接收方的ACK,并且接收方的接收窗口會(huì)有一個(gè)變小,再變大的過(guò)程。

3、當(dāng)接收方無(wú)法處理數(shù)據(jù)時(shí)的窗口狀態(tài)

3-TCP流控機(jī)制詳解

上圖為客戶端(192.168.3.111)一直往服務(wù)器(192.168.3.207)發(fā)送數(shù)據(jù)且服務(wù)器不從協(xié)議棧讀出數(shù)據(jù)的一段報(bào)文,從上圖中可以看到,服務(wù)器的接收窗口一直處于下降狀態(tài)??蛻舳藬?shù)據(jù)正常在發(fā)送

4、接收方窗口滿后,發(fā)送方被流控。

4-TCP流控機(jī)制詳解

當(dāng)發(fā)送方一直發(fā)送,直到接收方ACK Win=160的時(shí)候,發(fā)送方發(fā)送了最后160字節(jié)。后續(xù)發(fā)送方一直發(fā)送窗口檢測(cè)包,而非應(yīng)用層數(shù)據(jù)。(此時(shí)在一些操作系統(tǒng)下若發(fā)送方應(yīng)用層使用阻塞api,那么發(fā)送線程就會(huì)阻塞在發(fā)送函數(shù)中)無(wú)法繼續(xù)發(fā)送數(shù)據(jù)。


今天的分享就到這里啦,億佰特人每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的物聯(lián)網(wǎng)應(yīng)用發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的官網(wǎng)進(jìn)行了解,還有客服在線答疑哦!


相關(guān)閱讀:

1、無(wú)線模塊通過(guò)TCP/IP協(xié)議向PC端數(shù)據(jù)傳輸解析

2、基礎(chǔ)通信協(xié)議棧:TCP協(xié)議、IP協(xié)議詳解

3、UDP協(xié)議與TCP協(xié)議區(qū)別對(duì)比及應(yīng)用場(chǎng)景方案

4、什么是TCP協(xié)議粘包以及如何解決TCP粘包問(wèn)題

5、物聯(lián)網(wǎng)應(yīng)用中常見(jiàn)通信協(xié)議匯總分享



4000-330-990

https://www.wjx.cn/jq/84863372.aspx