劉婷,王俊峰,劉立祥
(1.四川大學計算機學院,成都 610064;2.中國科學院軟件研究所綜合信息學院,北京 100080)
一種基于UDP協(xié)議混合反饋機制的可靠傳輸協(xié)議
劉婷1,王俊峰1,劉立祥2
(1.四川大學計算機學院,成都 610064;2.中國科學院軟件研究所綜合信息學院,北京 100080)
針對TCP協(xié)議存在的帶寬利用不足以及UDP協(xié)議傳輸可靠性差的問題,提出一種基于UDP協(xié)議的QRUDP(Quick Reliable UDP)協(xié)議。該協(xié)議支持數(shù)據(jù)的可靠傳輸,同時采用丟包與時延混合的擁塞算法,并用局部最小RTT的算法以準確計算最小RTT的值。仿真實驗表明,該協(xié)議在高帶寬時延積,高誤碼率的網(wǎng)絡環(huán)境下能獲得更好的性能并具有較好的公平性。
QRUDP;可靠傳輸協(xié)議;混合反饋機制;擁塞控制
當前網(wǎng)絡中端到端的流量控制主要采用TCP協(xié)議,TCP是面向連接的可靠傳輸協(xié)議,可根據(jù)當前網(wǎng)絡狀況自適應地調(diào)整擁塞窗口的大小。但是在傳統(tǒng)TCP中依然存在以下問題:第一,在TCP中,若發(fā)生丟包,發(fā)送端需發(fā)送三個重復ACK接收端才判斷丟包,在丟包較高的網(wǎng)絡環(huán)境下效率較低;第二,TCP協(xié)議在一個RTT內(nèi)出現(xiàn)多個數(shù)據(jù)分組丟失的情況下,只能探測到一個數(shù)據(jù)分組的丟失,這將會大大增加發(fā)送方發(fā)現(xiàn)數(shù)據(jù)分組出現(xiàn)丟失的時間,從而影響TCP協(xié)議的效率[1];第三,傳統(tǒng)TCP協(xié)議的擁塞算法是根據(jù)丟包事件或者往返時延RTT來進行擁塞的檢測,如CUBIC[2]是基于丟包的擁塞算法,且其目標窗口在兩次丟包期間保持不變[3],對網(wǎng)絡狀況反應延遲,Vegas[4],Westwood[5]是基于RTT的擁塞算法,采用單一的擁塞反饋因子很難對當前網(wǎng)絡狀況進行準確判斷。若要修改以上TCP存在的帶寬利用不足問題且要保證現(xiàn)有TCP版本的兼容性,難度較大。
而基于傳統(tǒng)UDP協(xié)議的應用層協(xié)議可以不受已有協(xié)議規(guī)定的限制,被廣泛地應用于各種網(wǎng)絡場景中。文獻[6]提出的RUDP(Reliable UDP)協(xié)議為了保證其可靠性,采用類似于TCP協(xié)議的超時機制,每發(fā)送一個數(shù)據(jù)包便進入超時等待狀態(tài),直到收到接收端的回復信息才會發(fā)送后續(xù)數(shù)據(jù)包,如果計時器超時還未收到回復信息,則認為該包丟失,進行重發(fā)處理。雖然RUDP協(xié)議簡化了TCP的流程,但是其長時間的等待傳輸效率極低。文獻[7]提出的UDT(UDP-based data transfer protocol)協(xié)議類似于TCP協(xié)議,除增加了可靠性之外,還增加了擁塞算法和流量控制,但是其擁塞窗口采用常見的AIMD算法,但是這種擁塞算法會導致發(fā)送速率產(chǎn)生較大的震蕩性。文獻[8][9]提出的QUIC (Quick UDP Internet Connections)協(xié)議,該協(xié)議是基于UDP的可靠傳輸協(xié)議,其序列號采用嚴格的遞增機制,但是該協(xié)議目前主要用于網(wǎng)頁傳輸,在大文件傳輸上效率仍然很低。
針對以上對TCP存在的帶寬利用不足的問題以及對改進UDP協(xié)議的分析,本文提出了一種基于UDP的可靠傳輸?shù)膽脤訁f(xié)協(xié)議(QRUDP,Quick Reliable UDP),該協(xié)議采用了類似于QUIC協(xié)議的序列號機制,即序列號嚴格遞增,SNACK(Selective Negative Acknowledgment)[10]差錯控制機制以及丟包與時延相結(jié)合的擁塞算法,并且,最大擁塞窗口的值可以自適應地改變,同時采用了局部最小RTT的計算方法以解決傳統(tǒng)TCP協(xié)議存在的帶寬利用不足的問題。
(1)當前窗口小于慢啟動閾值時,進入慢啟動階段,擁塞窗口加1;
(2)當前窗口大于慢啟動閾值時,進入擁塞避免階段,每收到一個ACK,首先計算網(wǎng)絡中排隊的數(shù)據(jù)包的個數(shù),公式如下:
其中,Expected=cwnd/minRTT為期望吞吐量,Actual=cwnd/SRTT為實際的吞吐量,,cwnd為當前的擁塞窗口,minRTT為目前觀測到的最小RTT,SRTT為平滑RTT。反映了當前擁塞窗口值與實際網(wǎng)絡的差異,并以此來估計當前鏈路中排隊的數(shù)據(jù)包的個數(shù),定義參數(shù)α,若diff<α,說明當前網(wǎng)絡中排隊的數(shù)據(jù)包較少,網(wǎng)絡帶寬尚未利用完全,可適當增加目標窗口,提高發(fā)送速率。
對于α的取值,動態(tài)修改α的值會使擁塞窗口的增長更符合需求。因為α的值限制了路由器緩存的數(shù)據(jù)包的個數(shù),增大α,則允許路由器緩存更多的數(shù)據(jù)包,也可以獲取更大的吞吐量;減小α,則不允許路由器緩存更多的數(shù)據(jù)包,吞吐量也因此下降。在QRUDP協(xié)議中,α的計算主要分為兩個部分。1)diff<α時,此時若SRTT>last_SRTT并且α>1,說明網(wǎng)絡已趨近擁塞,所以應該減小?的值。若SRTT 其中,α為自定義的參數(shù),初值為1,SRTT為最近一次收到ACK時計算的平滑RTT,last_SRTT為上一次收到ACK時計算的平滑RTT,origin_cwnd為目標窗口值。 若QRUDP協(xié)議檢測到丟包,則首先判斷diff與α的大小,若diff<α,則判斷當前網(wǎng)絡狀況良好,不需要減少當前擁塞窗口值;若diff≥α,則判斷當前丟包是由擁塞引起的,按照公式cwnd=cwnd×β減小當前擁塞窗口的值,其中,β取值為0.85。 從前面的討論可知,由于diff的計算與最小RTT相關,因此,能否準確地計算最小RTT的值就顯得相當重要.但是在實際網(wǎng)絡中由于時延抖動,路由改變等一系列因素會對最小RTT的準確估計造成影響。 本協(xié)議采用每收到γ個ACK就對最小RTT進行重新計算,具體算法偽代碼如下: 以上算法采用固定時間周期就對最小RTT重新計算一次的算法,其中,ack_count表示的是累計收到的ACK的個數(shù)。對于γ的取值,若取得太小,會使最小RTT變化太快,對最小RTT的計算不夠準確;若取得太大,會使最小RTT無法準確地反映當前網(wǎng)絡狀況.在本文中,對γ取10,50,100,200,1000進行實際測試,經(jīng)實驗表明,γ取50能較好地利用當前帶寬并能保證最小RTT計算的準確性以及時效性。 為了分析以及驗證QRUDP協(xié)議的性能,本文使用WANem廣域網(wǎng)模擬器來模擬真實網(wǎng)絡的帶寬、時延、丟包以及時延抖動等情況。網(wǎng)絡拓撲如圖1所示,客戶端和服務器采用的操作系統(tǒng)均為Ubuntu12.04.1,所有協(xié)議都通過客戶端向服務器端下載700MB大小的文件來判斷協(xié)議的吞吐量,傳輸?shù)耐掏侣释ㄟ^在客戶端每秒接收的文件大小來確定,傳輸?shù)哪M時間為200s。具體的實驗參數(shù)設置將在下文中介紹。 圖1 網(wǎng)絡拓撲圖 由于QRUDP協(xié)議的序列號機制采用的是類似于QUIC協(xié)議的序列號機制,故本實驗分別對QRUDP協(xié)議,TCP協(xié)議以及QUIC協(xié)議在不同帶寬,不同時延以及不同誤碼率的場景下進行實驗測試,帶寬的范圍為1Mbps-100Mbps,RTT的范圍為50ms-200ms,誤碼率的范圍為10-9-10-5。其中,TCP協(xié)議采用了CUBIC,Illinois[11],Scalable[12]三種不同的高速擁塞控制算法。 (1)不同誤碼率下QRUDP、TCP與QUIC的比較 圖2 不同誤碼率下的平均吞吐量比較 圖2表示的是在帶寬=10Mbps,RTT=50ms時隨著誤碼率的增大,QRUDP,TCP與QUIC的平均吞吐量的比較。從圖中可以看出,在誤碼率大于10-8之后,QRUDP的性能比QUIC提升了3.6%-374%,比TCP提升了94.1%-1196.3%,由于QRUDP協(xié)議采用了SNACK機制,同時采用了丟包和時延相結(jié)合的擁塞反饋機制,使之對當前的網(wǎng)絡狀況的判斷更加準確,故隨著誤碼率的增加,QRUDP的性能要好于TCP以及QUIC協(xié)議。 (2)存在時延抖動時QRUDP、TCP與QUIC的比較 圖3和表1表示的是在帶寬=100Mbps,RTT= 114ms,時延抖動=56ms,誤碼率=9.7×10-6時,QRUDP,TCP,QUIC的吞吐量的瞬時變化情況,仿真時間為200s。從圖3以及表1可以看出,由于存在時延抖動,若采用傳統(tǒng)方式對最小RTT進行計算,會導致對最小RTT計算不準確從而影響協(xié)議性能,在本算法中采用一段周期就對最小RTT做一次重新計算的算法,實驗結(jié)果表明,QRUDP協(xié)議在時延抖動較大的場景下比QUIC協(xié)議性能提升了57.3%,比TCP提升了28.3%-231.9%,保證了最小RTT計算的準確性以及時效性。 圖3 存在時延抖動時的吞吐量比較 表1 存在時延抖動時的平均吞吐量比較 (3)公平性 圖4表示的是QRUDP協(xié)議在帶寬=100Mbps,RTT=52ms,時延抖動=20ms,誤碼率=5×10-6的場景下的公平性測試結(jié)果。通過圖4可以看出,每條QRUDP流之間有著很小的偏差,表現(xiàn)出了良好的公平性。 圖4 5條QRUDP流共存時吞吐量對比 本文針對現(xiàn)有TCP存在的問題以及UDP傳輸可靠性差,沒有擁塞控制,設計了一種具有擁塞控制機制的可靠傳輸協(xié)議——QRUDP。該協(xié)議采用了混合反饋機制以解決TCP協(xié)議存在的帶寬利用不足問題。仿真實驗表明,QRUDP在高帶寬時延積,高誤碼率以及時延抖動較大的網(wǎng)絡場景下性能比傳統(tǒng)的TCP以及QUIC協(xié)議有了較大的提升,同時還保證了較好的協(xié)議內(nèi)公平性。本文給出了QRUDP協(xié)議的詳細的描述,該協(xié)議只需要在服務器端的應用層修改,不需要修改Linux的內(nèi)核以及中間路由器,易于網(wǎng)絡的實施。目前論文中對QRUDP協(xié)議性能的判斷還局限在仿真軟件中,未來的研究可以將QRUDP協(xié)議部署到更復雜的實際網(wǎng)絡場景中進行測試。 [1]張民,羅光春,王俊峰,等.空間信息網(wǎng)絡可靠傳輸協(xié)議研究[J].通信學報,2008,29(6):63-68. [2]Ha S,Rhee I,Xu L.CUBIC:a New TCP-Friendly High-Speed TCP Variant[J].ACM SIGOPS Operating Systems Review,2008,42(5): 64-74. [3]許建利.高速長時延網(wǎng)絡擁塞控制算法研究及Linux實現(xiàn)[D].成都:四川大學碩士學位論文,2012. [4]Luo Y,Yin M,Jiang H,et al.An Improved Congestion Avoidance Control Model for TCP Vegas Based on Ad Hoc Networks[C].Chinese Control and Decision Conference,2014:2310-2314. [5]Mascolo,Saverio,Casetti,et al.TCP Westwood:Bandwidth Estimation for Enhanced Transport Over Wireless Links[J].Proceedings of Mobicom,2011. [6]He E,Leigh J,Yu O,et al.Reliable Blast UDP:Predictable High Performance Bulk Data Transfer[C].Cluster Computing,2002.Proceedings.2002 IEEE International Conference on.IEEE,2002:317-324. [7]Gu Y,Grossman R L.UDT:UDP-Based Data Transfer for High-Speed Wide Area Networks[J].Computer Networks the International Journal of Computer&Telecommunications Networking,2007,51(7):1777-1799. [8]Carlucci G,De Cicco L,Mascolo S.HTTP over UDP:an Experimental Investigation of QUIC[C].ACM Symposium on Applied Computing.ACM,2015:609-614. [9]Das S R.Evaluation of QUIC on Web Page Performance[J].Massachusetts Institute of Technology,2014. [10]Durst R C,Miller G J,Travis E J.TCP Extensions for Space Communications[J].Wireless Networks,1997,3(5):389-403. [11]Liu S,Basar T,Srikant R.TCP-Illinois:A Loss-and Delay-Based Congestion Control Algorithm for High-Speed Networks[J].Performance Evaluation,2008,65(6):417-440. [12]Kelly T.Scalable TCP:Improving Performance in Highspeed Wide Area Networks[J].Acm Sigcomm Computer Communication Review,2003,33(2):83-91. A Reliable Transport Protocol Based on UDP Protocol with Hybrid Feedback Mechanism LIU Ting1,WANG Jun-Feng1,LIU Li-Xiang2 Aiming at the problem of insufficient bandwidth utilization existing in the traditional TCP and UDP protocol transmission in poor reliability,proposes a QRUDP protocol based on UDP.The protocol supports the reliability of packet transmission,and,it uses packet loss and delay mixed congestion control,and uses local minimum RTT algorithm to calculate the value of minimum accurately.Simulation results show that the protocol can obtain better performance and has better fairness under the high bandwidth,long time delay and large delay jitter network environment. QRUDP;Reliable Transmission Protocol;Hybrid Feedback Mechanism;Congestion Control 1007-1423(2017)05-0003-05 10.3969/j.issn.1007-1423.2017.05.001 劉婷(1992-),女,四川廣安人,碩士,研究方向為網(wǎng)絡與信息安全技術(shù) 2016-12-06 2017-02-13 國家自然科學基金項目(No.91338107、No.91438120、No.91438119)、教育部博士點基金(No.20130181110095) 王俊峰(1976-),男,安徽蕪湖人,博導,教授,研究方向,空間信息網(wǎng)、航空電信網(wǎng) 劉立祥(1973-),男,博士,副研究員,研究方向,網(wǎng)絡及其通信技術(shù)、網(wǎng)絡計算技術(shù)2 QRUDP協(xié)議最小RTT的設計
3 實驗及結(jié)果分析
4 結(jié)語
(1.College of Computer Science,Sichuan University,Chengdu 610064;2.College of Integrated Information,Institute of Software,Chinese Academy of Sciences,Beijing 100080)