97人妻精品一区二区三区软件,人妻偷拍在线,插丝袜美女小穴视频,美女午夜福利在线

      • <i id="89dc3"></i>
        當前位置: 首頁 >應用方案 >技術應用 >

        TCP協(xié)議重傳機制詳解

        TCP/IP協(xié)議是計算機通信網(wǎng)絡中目前使用最多的網(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)絡異常檢測;

        本文將介紹TCP協(xié)議的重傳機制與如何通調整重傳機制,提高特定情況下的TCP連接穩(wěn)定性。

        一、TCP協(xié)議簡介

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

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

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

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

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

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

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

        二、重傳機制詳解

        TCP重傳機制的基本工作原理是,在數(shù)據(jù)傳輸過程中,當發(fā)送方沒有接收到確認信息(ACK)時,會重傳之前的數(shù)據(jù)。這種重傳機制確保了數(shù)據(jù)的完整性和正確性。

        重傳機制的實現(xiàn)方式主要有兩種:超時重傳和快速重傳。

        1、超時重傳

        超時重傳是TCP協(xié)議在發(fā)送數(shù)據(jù)時,設定一個定時器。當超過指定的時間(即RTO,Retransmission Timeout超時重傳時間)后,如果沒有收到對方的ACK確認應答報文,就會重發(fā)該數(shù)據(jù)。每次當遇到一次超時重傳時,都會將下一次超時時間間隔設為先前值的兩倍。這是TCP在應對網(wǎng)絡環(huán)境差、不宜頻繁反復發(fā)送的情況時采取的策略。

        1 TCP協(xié)議重傳機制

        上圖中是通過wireshark抓取的一段TCP通訊中出現(xiàn)超時重傳且自動恢復的報文截圖,IP地址為192.168.3.111的是客戶端,192.168.3.108的是服務器,客戶端一直在向服務器發(fā)送數(shù)據(jù)。

        1.1、如何判斷有沒有出現(xiàn)重傳

        2 TCP協(xié)議重傳機制

        正常情況下,服務器應該Ack 客戶端的seq(序號2031+len(數(shù)據(jù)長度20)即上圖中第二條報文的ACK=2051

        3 TCP協(xié)議重傳機制

        在上圖中我們可以看到,重傳的報文seq一直為2051,并且數(shù)據(jù)seq=2051的報文傳輸了四次,都沒有服務器的ACK。所以判斷TCP有沒有發(fā)生重傳最直觀的方法就是看有沒有重復的seq,還有一種是看seq有沒有突然下降,如下所示:

        1.2 linuxwindows下默認超時重傳的間隔與次數(shù)

        4 TCP協(xié)議重傳機制

        Linux下的重傳間隔與次數(shù)

        5 TCP協(xié)議重傳機制

        Windows的重傳間隔與次數(shù)

        TCP協(xié)議中,若在重傳次數(shù)內沒有收到對方的ACK,那么協(xié)議棧會主動RST這條鏈路。應用層會表現(xiàn)為連接斷開,由于應用層并不能知道連接斷開原因,所以某些時候會錯誤的認為是被對方主動斷開連接,如果不通過抓包,就很難找到斷開連接的原因。

        1.3 如何合理設置重傳次數(shù)以保證來保證連接的可靠性

        在一般的計算機網(wǎng)絡中,TCP通訊雙方的協(xié)議棧機制完整,系統(tǒng)資源充足,應用層處理速度快,所以一般的情況下,系統(tǒng)默認的重傳參數(shù)就能滿足幾乎大部分由于網(wǎng)絡環(huán)境異常導致的丟包。但很多低成本嵌入式以太網(wǎng)方案因為成本與資源的原因,設備處理速度慢、內存資源等限制,在某些情況下無法接收過多的數(shù)據(jù),導致數(shù)據(jù)丟包,無法ACK發(fā)送方的數(shù)據(jù)。導致連接異常斷開。但這種情況完全可以通過降低發(fā)送頻率或者增加重傳次數(shù)的方法來避免。

        2、快速重傳

        快速重傳是一種不以時間為驅動,而是以數(shù)據(jù)驅動的重傳機制??焖僦貍魍ㄟ^收到同一丟失數(shù)據(jù)包的多個重復確認(ACK)來觸發(fā)。特定的觸發(fā)條件通常被稱為“三重重復ACK”。如果接收方檢測到同一丟失數(shù)據(jù)包在重復ACK中連續(xù)三次被確認,則認為這是丟失數(shù)據(jù)包已丟失且后續(xù)數(shù)據(jù)包正在到達接收方的強烈指示。發(fā)送方在收到這樣的信號后,會假設丟包的可能性很高,并立即發(fā)起快速重傳,從而更快地從數(shù)據(jù)包丟失中恢復并保持更順暢的數(shù)據(jù)流。這兩種重傳機制共同確保了TCP協(xié)議在數(shù)據(jù)傳輸過程中的可靠性和穩(wěn)定性。


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


        相關閱讀:

        1、無線通信模塊是如何檢測數(shù)據(jù)丟包重傳

        2、無線通信模塊數(shù)據(jù)丟包重傳功能機制詳解

        3、關于TCP四次揮手詳解

        3、什么是無線通信網(wǎng)絡丟包和怎么解決數(shù)據(jù)包丟失?


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