新四季網

一種基於UDT協議的高速網絡可靠傳輸的控制方法與流程

2023-10-08 07:14:49 2


本發明屬於高速網絡數據傳輸技術領域,具體涉及一種在高速網絡中基於udt協議的可靠傳輸的控制方法。



背景技術:

隨著高速網絡的發展,傳統的tcp傳輸協議隨著rtt傳輸時延和丟包的增加,tcp數據流並沒有佔滿可用帶寬,而此時基於udp的傳輸協議具有更大的傳輸優勢,一方面基於udp的傳輸協議傳輸代價更小、速度快、資源消耗更少,可以獲得較高的吞吐量;另一方面,基於udp的應用層傳輸協議可以調整流控和擁塞控制機制使之更適合當前網絡的傳輸特性以最大效率的利用高速網絡的傳輸帶寬。當然由於udp協議是不可靠的傳輸協議,不提供數據包的分組、組裝以及亂序到達處理的功能,應用層協議想要實現可靠的文件傳輸功能需要在udp協議之上實現可靠性。

udp-baseddatatransfer(udt)協議是一個基於udp的應用層傳輸協議,udt協議是一個傳輸協議的框架,應用程式可以調用udt協議的提供的api實現可靠的文件傳輸功能,udt協議將基於速率的擁塞控制機制和基於窗口的流控機制相結合,一方面速率控制可以更新發送分組的時間間隔,控制當前發送數據包的發送速率,另一方面基於窗口的流控機制解決了突發流量時數據包緩存的問題,並且限制未接收到應答的數據包的個數。

udt協議中,每一個數據包都有一個序列號,接收方對接收到的數據周期性的觸發ack控制包確認已收到的數據包。接收方會發送兩種類型的ack控制包,一種是由定時器發出的常規ack控制包,包含rtt、確認序號、預估鏈路帶寬等信息,另一種是lightack,為了減少處理時間,只包含確認序號,用於在高速網絡環境中及時更新ack確認信息。

接收方和發送方都維持了一個數據結構丟失鍊表用於存儲丟失包的序列號,當出現丟包現象時,接收方會發送nak控制包給發送方,在nak控制包中有檢測到的丟失數據包的序列號,發送方在收到nak控制包之後,將控制包中的序列號加入到丟失列表中,優先發送丟失列表中的數據包,丟失的數據包發送之後將其序列號從發送方丟失列表中刪除,接收方接收到重傳的數據後,將此數據包的序列號從接收方的丟失列表中刪除。

當重傳的數據丟失時,接收方無法判斷數據包是否再次發生了丟包,不會發送重複的nak控制包,發送方將丟失列表中的數據發送完之後,會繼續發送正常的數據包,也沒有對數據包有可靠性的控制。在高速網絡的環境中,udt發送方將接收窗口中可發送的數據包發送完後,一直沒有收到對丟失數據包的ack確認控制信息,等待一段時間後啟動超時重傳,從未確認的數據包開始重傳數據包,發送速度從0開始增長。

udt協議在處理丟包的時候,只重傳丟失的數據包,這樣做可以省去不必要的數據包重傳,提高網絡上帶寬的有效利用率,但是一旦啟動超時重傳,因為超時的原因並不知道,會從未確認的數據包開始重傳,這對傳輸速度有很大的影響,特別是在高速網絡環境中,傳輸速度無法佔滿可用帶寬。這種由於重傳數據的可靠性而引發的超時重傳是可以避免的,因為在發送方窗口中的數據未發送完之前,發送方會收到接收方發送的具有相同ack序列號的控制包,特別是lightack控制包,lightack控制包與發送方發送的數據包數量有關。相同的ack序列號意味著有數據包丟失了並且重傳的數據接收方也沒有收到,此時發送方需要進一步的可靠性控制,防止超時重傳對傳輸速度的影響。

udt協議作為高速傳輸網絡的一種解決方案,對文件傳輸的可靠性控制方面有嚴重的不足,使得可用的網絡帶寬造成浪費。



技術實現要素:

本發明的目的在於克服現有udt傳輸協議的缺點和不足,提供一種基於udt協議的可靠傳輸的控制方法。

在現有的傳輸協議中,udt接收方對重傳的數據沒有可靠性的控制,一旦丟包,就會導致數據包的重傳,造成不必要的資源消耗,並且影響傳輸速度。

本發明提出的在高速網絡環境中基於udt協議的可靠傳輸的控制方法,首先要在發送方添加ack控制包計數器和丟失重傳列表兩個功能部件。ack控制包計數器主要用於對具有相同ack序列號的控制包進行統計,以便確認重傳數據包的時間;丟失重傳列表主要用於記錄發送方已經重傳但是還沒有被ack控制包確認過的丟失數據包的序列號。控制傳輸的具體步驟為:

發送方啟動ack控制包計數器,獲取接收到ack的統計信息;其中,ack控制包計數器記錄上一個接收到的ack控制包的序列號sack、接收到相同ack序列號的次數tack以及重傳閾值,記錄上一個接收到的ack控制包的序列號用於判斷ack控制包是否相同;

當傳輸的數據包發生丟失時,將接收方將數據包的序列號加入到丟失列表中,通過傳輸nak控制包,顯示將丟包信息反饋給發送方,發送方重傳丟失的數據包;

發送方通過統計ack控制包計數器的信息,估測重傳的數據包是否發生丟包現象,根據所設閾值,確定重新重傳數據包的時間:若超過閾值,則認為重傳有丟包現象,將丟失重傳列表中的序列號重新加入到丟失列表中,重傳這些未確認的數據包。

原始的udt協議可靠性控制方式是通過一次重傳和超時重傳的組合方式來實現的,儘量使數據在一次重傳之後就可靠的接收,但是在實際傳輸過程中,當鏈路條件不是很好的情況下,會造成重傳的數據包丟失。重傳的數據包若丟失了,接收方沒有反饋機制告知發送方,只能通過超時重傳的方式進行重傳,嚴重影響傳輸速度。使用ack控制包計數器可以及早的發現丟包情況,並採取一定措施避開鏈路擁塞的時機。

本發明中,所述udt協議的ack控制包計數器的實現邏輯如下,對於發送方接收到的ack控制包進行統計,比較當前接收到的數據包ack序列號的值和sack的值,當兩個值相同時,表示ack控制包確認的是同一個序列號,則tack+1,否則清零tack;比較tack和重傳閾值大小,若大於重傳閾值,則啟動重傳機制,重傳丟失列表中未得到確認的數據包,否則,不做任何處理。

本發明中,重傳機制是保證udt可靠性的核心部分,在原始udt當接收方確認丟失數據包的序號時,會顯示發送nak控制包到發送方,發送方接收到nak控制包後會將序列號加入到丟失列表中重傳丟失列表中的數據包,由於udt丟失列表中的數據包具有最高傳輸優先權,數據包重傳後需要將丟失列表中的序列號刪除。

本發明中,為了保證傳輸的可靠性,維持了一個已重發但未確認的丟失列表即丟失重傳列表用來重發丟失列表中未得到確認的數據包。當丟失列表中的數據重傳後會加入到丟失重傳列表中,若網絡鏈路條件不好,ack控制包計數器統計值達到一定的閾值後,表明重傳的數據包可能發生丟失,這時退避一段時間後,重傳未確認的丟失數據包。

本發明中,發送方的可靠性控制方法會結合上述的兩個功能部件,當ack控制包計數器的統計數據到達合理的閾值時,若發送方丟失列表不為空,繼續重傳丟失列表中的數據包,ack控制包計數器不清零;若發送方的丟失列表為空,而丟失重傳列表中存在數據,就將丟失重傳列表中的序列號加入到發送方的丟失列表中,在下一個發送周期中優先發送這些數據包,ack控制包計數器清零;若發送方丟失列表為空且丟失重傳列表中也為空,根據重傳次數設置等待時間,等待時間為了避免加重網絡負擔,因為此時的鏈路狀況一定是不好的,一段等待時間後,從ack控制包確認的序列號開始發送數據包,及時重傳數據,ack控制包計數器清零,更新計數器重傳閾值。

本發明中,丟失重傳列表中的序列號更新方法,是當發送方將丟失列表中的數據包重傳後,將此序列號從丟失列表中刪除,然後加入到丟失重傳列表中。在發送方接收到ack控制包的時候,首先要更新丟失列表和重傳丟失列表中的序列號,刪除列表中序列號小於ack序號的值,因為這些數據包已經被接收方確認收到了。

本發明的技術效果在於:本方法通過增加ack控制包計數器及時的獲取重傳數據包傳輸狀況,udt協議可以獲取到丟失數據包的確切序號,重傳的數據包數量少,當確認重傳的數據包丟失後,可以將重傳數據加入到丟失列表中,及時重傳而不會加重網絡負擔;一旦無法確認丟失的數據的序列號,從ack確認的序列號開始重傳,則需要等待一段時間重傳,等待時間與rtt和鏈路帶寬有關,這樣做可以減輕鏈路的擁塞狀態,並做到及時重傳,不會對傳輸的速度產生較大幅度的影響。

附圖說明

圖1示出了本發明基於udt協議的傳輸框架添加的功能部件形成新的架構。

圖2示出了本發明中丟失重傳列表中的更新流程示意圖。

圖3示出了本發明中ack計數器判斷是否啟動重傳機制的流程示意圖。

圖4示出了本發明中重傳機制的處理流程示意圖。

圖5示出了本發明在萬兆網絡環境中傳輸20gb的文件與原始udt協議的傳輸速度對比圖。

具體實施方式

為了更加清楚的理解本發明的處理流程和優點,下面結合附圖和具體實施例對本發明做進一步的說明。附圖是示意性的而不應理解為對本發明進行任何限制。

參見圖1,本方法在udt協議傳輸機構基礎上,在發送方添加ack控制包計數器和丟失重傳列表兩個功能部件。其中,ack控制包計數器的主要功能是對具有相同ack序列號的控制包進行統計,以便確認重傳數據包的時間,主要使用的數據包是接收方反饋的ack控制包;丟失重傳列表是用來記錄發送方已經重傳但是還沒有被ack控制包確認過的丟失數據包的序列號,主要使用的數據包是接收方反饋的nak控制包。丟失重傳列表和原始的丟失列表之間有數據包序列號的交換,在圖2會有詳細的介紹。

在計數器中包含有以下一組變量(t0,tack,sack),用來表示計數器的當前狀態,這個三元組的含義分別為:t0表示接收到相同ack控制包的重傳閾值,tack為ack控制包的統計值,sack,為ack控制包中的序列號值。

參見圖3,ack計數器判斷是否啟動重傳機制的流程示意圖。首先,需要設定接收ack的重傳閾值,初始值設為t0;設定ack控制包的統計值tack,初始值設為0,定義變量sack,記錄ack控制包中的序列號值。

ack控制包計數器的工作過程流程為:

將當前ack確認的序列號的值和sack比較:

如果相同,則接收到重複確認序列號的ack控制包,tack=tack+1;

如果不相同,則說明相同確認序列號的ack控制包的個數為0了,即tack=1;

將sack的值更新為當前ack確認的序列號的值。

將tack的值和設置的閾值t0進行比較,檢測重複的ack控制包的個數是否達到可重傳規定的閾值;

若tack>=t0表示含有sack序列號的ack控制包的個數已經超過所設閾值,代表著這個ack序列號之後重傳的數據包在接收端有極大的可能性丟失了,可以重新啟動的重傳機制。

重傳機制包括在udt協議中,接收方和發送方都會有丟失數據包的信息,但發送方第一次將在丟失列表中的數據包重傳之後就會將這些丟包信息刪除,如果重傳的數據包丟失了,接收方無法知道重傳的數據包丟失,而發送方可以通過接收到多次相同序列號的ack控制來判斷。但是,這時候發送方的丟失列表中丟失數據包的信息已經清空了,而從確認序列號開始重傳數據包會造成不必要的帶寬浪費,在發送方維持一個已重傳但未確認的丟失列表——丟失重傳列表,可以在鏈路條件不好的情況下,只重傳丟失重傳列表中的數據包,有效的利用帶寬。

參見圖2,丟失重傳列表的初始化和運行過程為:

在傳輸過程中,若發送方收到nak控制包則將nak中的數據包序列號加入到發送方的丟失列表中,丟失列表中的數據包具有最高的傳輸權限,優先傳輸已丟失的數據包。

重傳成功的數據包將其序列號從丟失列表中刪除,並加入丟失重傳列表中。

在接收到ack確認信息的時候,需要對重傳數據列表和已重傳但未確認的數據列表更新,更新策略包括:當接收到ack控制包,包括常規ack控制包和lightack控制包,讀取他們確認的序列號值,首先更新丟失重發列表,將列表中序列號小於ack確認的序列號的數據包刪除,因為這些數據包接收方已經接收到了。

參見圖4,在發送方確認重傳的數據包丟失之後,會啟動重傳機制,對未確認的丟失數據包的重傳過程進一步還包括:

若發送方的丟失列表不為空,說明還有丟失的數據沒有重傳完,而丟失的數據包具有最高重傳優先級,因此,發送方繼續丟失列表中的數據包,ack控制包計數器不清零。

若發送方的丟失列表為空,表示沒有待重發的數據包,此時:

若發送方的丟失重傳列表中不為空,則需要比較重傳丟失列表中的最小序列號rlmin的值和sack的大小,若rlmin=sack,表示重傳的數據包丟失,就將丟失重傳列表中的序列號加入到發送方的丟失列表中,在下一個發送周期中,優先發送這些數據包,並且將ack控制包計數器清零。

若發送方的丟失重傳列表為空,表示沒有重發的丟失數據;或者,發送方的丟失重傳列表不為空,但是rlmin>sack,表示丟失重傳列表的數據包不是接收方想要的數據,則設置一段等待時間後,立即從sack開始及時重傳數據包,並將ack控制包計數器清零。

設置一段等待時間,是為了防止鏈路條件不好的情況下加重網絡負擔,等待時間與udt協議預估的網絡帶寬以及rtt有關。

參見圖5,本方法在10gb/s帶寬的網絡環境中傳輸20gb大小文件的與原始udt協議的實時流量對比圖,從圖中可以看出本方法相對於原始udt協議更容易獲得穩定的網絡帶寬。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀