国产精品一区在线观看你懂的,三级电影网站免费观看,日韩黄色网,大黄网站在线观看

當前位置: 首頁 >應用方案 >技術應用 >

關于TCP協(xié)議流量控制機制的詳解說明

TCP流控機制前言

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

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

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

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

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

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

本文將介紹TCP滑動窗口,并且如何通過滑動窗口實現(xiàn)流量控制機制。

一、TCP協(xié)議簡介

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

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

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

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

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

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

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


二、滑動窗口

1、通過TCP連接報文查看雙方接收窗口大小

1 TCP流控機制詳解

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

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

2-TCP流控機制詳解

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

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

3-TCP流控機制詳解

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

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

4-TCP流控機制詳解

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


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


相關閱讀:

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

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

3、UDP協(xié)議與TCP協(xié)議區(qū)別對比及應用場景方案

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

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



點擊撥打: 億佰特官網(wǎng) 4000-330-990