劉婷,王俊峰,劉立祥
(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610064;2.中國(guó)科學(xué)院軟件研究所綜合信息學(xué)院,北京 100080)
一種基于UDP協(xié)議混合反饋機(jī)制的可靠傳輸協(xié)議
劉婷1,王俊峰1,劉立祥2
(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610064;2.中國(guó)科學(xué)院軟件研究所綜合信息學(xué)院,北京 100080)
針對(duì)TCP協(xié)議存在的帶寬利用不足以及UDP協(xié)議傳輸可靠性差的問(wèn)題,提出一種基于UDP協(xié)議的QRUDP(Quick Reliable UDP)協(xié)議。該協(xié)議支持?jǐn)?shù)據(jù)的可靠傳輸,同時(shí)采用丟包與時(shí)延混合的擁塞算法,并用局部最小RTT的算法以準(zhǔn)確計(jì)算最小RTT的值。仿真實(shí)驗(yàn)表明,該協(xié)議在高帶寬時(shí)延積,高誤碼率的網(wǎng)絡(luò)環(huán)境下能獲得更好的性能并具有較好的公平性。
QRUDP;可靠傳輸協(xié)議;混合反饋機(jī)制;擁塞控制
當(dāng)前網(wǎng)絡(luò)中端到端的流量控制主要采用TCP協(xié)議,TCP是面向連接的可靠傳輸協(xié)議,可根據(jù)當(dāng)前網(wǎng)絡(luò)狀況自適應(yīng)地調(diào)整擁塞窗口的大小。但是在傳統(tǒng)TCP中依然存在以下問(wèn)題:第一,在TCP中,若發(fā)生丟包,發(fā)送端需發(fā)送三個(gè)重復(fù)ACK接收端才判斷丟包,在丟包較高的網(wǎng)絡(luò)環(huán)境下效率較低;第二,TCP協(xié)議在一個(gè)RTT內(nèi)出現(xiàn)多個(gè)數(shù)據(jù)分組丟失的情況下,只能探測(cè)到一個(gè)數(shù)據(jù)分組的丟失,這將會(huì)大大增加發(fā)送方發(fā)現(xiàn)數(shù)據(jù)分組出現(xiàn)丟失的時(shí)間,從而影響TCP協(xié)議的效率[1];第三,傳統(tǒng)TCP協(xié)議的擁塞算法是根據(jù)丟包事件或者往返時(shí)延RTT來(lái)進(jìn)行擁塞的檢測(cè),如CUBIC[2]是基于丟包的擁塞算法,且其目標(biāo)窗口在兩次丟包期間保持不變[3],對(duì)網(wǎng)絡(luò)狀況反應(yīng)延遲,Vegas[4],Westwood[5]是基于RTT的擁塞算法,采用單一的擁塞反饋因子很難對(duì)當(dāng)前網(wǎng)絡(luò)狀況進(jìn)行準(zhǔn)確判斷。若要修改以上TCP存在的帶寬利用不足問(wèn)題且要保證現(xiàn)有TCP版本的兼容性,難度較大。
而基于傳統(tǒng)UDP協(xié)議的應(yīng)用層協(xié)議可以不受已有協(xié)議規(guī)定的限制,被廣泛地應(yīng)用于各種網(wǎng)絡(luò)場(chǎng)景中。文獻(xiàn)[6]提出的RUDP(Reliable UDP)協(xié)議為了保證其可靠性,采用類似于TCP協(xié)議的超時(shí)機(jī)制,每發(fā)送一個(gè)數(shù)據(jù)包便進(jìn)入超時(shí)等待狀態(tài),直到收到接收端的回復(fù)信息才會(huì)發(fā)送后續(xù)數(shù)據(jù)包,如果計(jì)時(shí)器超時(shí)還未收到回復(fù)信息,則認(rèn)為該包丟失,進(jìn)行重發(fā)處理。雖然RUDP協(xié)議簡(jiǎn)化了TCP的流程,但是其長(zhǎng)時(shí)間的等待傳輸效率極低。文獻(xiàn)[7]提出的UDT(UDP-based data transfer protocol)協(xié)議類似于TCP協(xié)議,除增加了可靠性之外,還增加了擁塞算法和流量控制,但是其擁塞窗口采用常見(jiàn)的AIMD算法,但是這種擁塞算法會(huì)導(dǎo)致發(fā)送速率產(chǎn)生較大的震蕩性。文獻(xiàn)[8][9]提出的QUIC (Quick UDP Internet Connections)協(xié)議,該協(xié)議是基于UDP的可靠傳輸協(xié)議,其序列號(hào)采用嚴(yán)格的遞增機(jī)制,但是該協(xié)議目前主要用于網(wǎng)頁(yè)傳輸,在大文件傳輸上效率仍然很低。
針對(duì)以上對(duì)TCP存在的帶寬利用不足的問(wèn)題以及對(duì)改進(jìn)UDP協(xié)議的分析,本文提出了一種基于UDP的可靠傳輸?shù)膽?yīng)用層協(xié)協(xié)議(QRUDP,Quick Reliable UDP),該協(xié)議采用了類似于QUIC協(xié)議的序列號(hào)機(jī)制,即序列號(hào)嚴(yán)格遞增,SNACK(Selective Negative Acknowledgment)[10]差錯(cuò)控制機(jī)制以及丟包與時(shí)延相結(jié)合的擁塞算法,并且,最大擁塞窗口的值可以自適應(yīng)地改變,同時(shí)采用了局部最小RTT的計(jì)算方法以解決傳統(tǒng)TCP協(xié)議存在的帶寬利用不足的問(wèn)題。
(1)當(dāng)前窗口小于慢啟動(dòng)閾值時(shí),進(jìn)入慢啟動(dòng)階段,擁塞窗口加1;
(2)當(dāng)前窗口大于慢啟動(dòng)閾值時(shí),進(jìn)入擁塞避免階段,每收到一個(gè)ACK,首先計(jì)算網(wǎng)絡(luò)中排隊(duì)的數(shù)據(jù)包的個(gè)數(shù),公式如下:
其中,Expected=cwnd/minRTT為期望吞吐量,Actual=cwnd/SRTT為實(shí)際的吞吐量,,cwnd為當(dāng)前的擁塞窗口,minRTT為目前觀測(cè)到的最小RTT,SRTT為平滑RTT。反映了當(dāng)前擁塞窗口值與實(shí)際網(wǎng)絡(luò)的差異,并以此來(lái)估計(jì)當(dāng)前鏈路中排隊(duì)的數(shù)據(jù)包的個(gè)數(shù),定義參數(shù)α,若diff<α,說(shuō)明當(dāng)前網(wǎng)絡(luò)中排隊(duì)的數(shù)據(jù)包較少,網(wǎng)絡(luò)帶寬尚未利用完全,可適當(dāng)增加目標(biāo)窗口,提高發(fā)送速率。
對(duì)于α的取值,動(dòng)態(tài)修改α的值會(huì)使擁塞窗口的增長(zhǎng)更符合需求。因?yàn)棣恋闹迪拗屏寺酚善骶彺娴臄?shù)據(jù)包的個(gè)數(shù),增大α,則允許路由器緩存更多的數(shù)據(jù)包,也可以獲取更大的吞吐量;減小α,則不允許路由器緩存更多的數(shù)據(jù)包,吞吐量也因此下降。在QRUDP協(xié)議中,α的計(jì)算主要分為兩個(gè)部分。1)diff<α?xí)r,此時(shí)若SRTT>last_SRTT并且α>1,說(shuō)明網(wǎng)絡(luò)已趨近擁塞,所以應(yīng)該減小?的值。若SRTT 其中,α為自定義的參數(shù),初值為1,SRTT為最近一次收到ACK時(shí)計(jì)算的平滑RTT,last_SRTT為上一次收到ACK時(shí)計(jì)算的平滑RTT,origin_cwnd為目標(biāo)窗口值。 若QRUDP協(xié)議檢測(cè)到丟包,則首先判斷diff與α的大小,若diff<α,則判斷當(dāng)前網(wǎng)絡(luò)狀況良好,不需要減少當(dāng)前擁塞窗口值;若diff≥α,則判斷當(dāng)前丟包是由擁塞引起的,按照公式cwnd=cwnd×β減小當(dāng)前擁塞窗口的值,其中,β取值為0.85。 從前面的討論可知,由于diff的計(jì)算與最小RTT相關(guān),因此,能否準(zhǔn)確地計(jì)算最小RTT的值就顯得相當(dāng)重要.但是在實(shí)際網(wǎng)絡(luò)中由于時(shí)延抖動(dòng),路由改變等一系列因素會(huì)對(duì)最小RTT的準(zhǔn)確估計(jì)造成影響。 本協(xié)議采用每收到γ個(gè)ACK就對(duì)最小RTT進(jìn)行重新計(jì)算,具體算法偽代碼如下: 以上算法采用固定時(shí)間周期就對(duì)最小RTT重新計(jì)算一次的算法,其中,ack_count表示的是累計(jì)收到的ACK的個(gè)數(shù)。對(duì)于γ的取值,若取得太小,會(huì)使最小RTT變化太快,對(duì)最小RTT的計(jì)算不夠準(zhǔn)確;若取得太大,會(huì)使最小RTT無(wú)法準(zhǔn)確地反映當(dāng)前網(wǎng)絡(luò)狀況.在本文中,對(duì)γ取10,50,100,200,1000進(jìn)行實(shí)際測(cè)試,經(jīng)實(shí)驗(yàn)表明,γ取50能較好地利用當(dāng)前帶寬并能保證最小RTT計(jì)算的準(zhǔn)確性以及時(shí)效性。 為了分析以及驗(yàn)證QRUDP協(xié)議的性能,本文使用WANem廣域網(wǎng)模擬器來(lái)模擬真實(shí)網(wǎng)絡(luò)的帶寬、時(shí)延、丟包以及時(shí)延抖動(dòng)等情況。網(wǎng)絡(luò)拓?fù)淙鐖D1所示,客戶端和服務(wù)器采用的操作系統(tǒng)均為Ubuntu12.04.1,所有協(xié)議都通過(guò)客戶端向服務(wù)器端下載700MB大小的文件來(lái)判斷協(xié)議的吞吐量,傳輸?shù)耐掏侣释ㄟ^(guò)在客戶端每秒接收的文件大小來(lái)確定,傳輸?shù)哪M時(shí)間為200s。具體的實(shí)驗(yàn)參數(shù)設(shè)置將在下文中介紹。 圖1 網(wǎng)絡(luò)拓?fù)鋱D 由于QRUDP協(xié)議的序列號(hào)機(jī)制采用的是類似于QUIC協(xié)議的序列號(hào)機(jī)制,故本實(shí)驗(yàn)分別對(duì)QRUDP協(xié)議,TCP協(xié)議以及QUIC協(xié)議在不同帶寬,不同時(shí)延以及不同誤碼率的場(chǎng)景下進(jìn)行實(shí)驗(yàn)測(cè)試,帶寬的范圍為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時(shí)隨著誤碼率的增大,QRUDP,TCP與QUIC的平均吞吐量的比較。從圖中可以看出,在誤碼率大于10-8之后,QRUDP的性能比QUIC提升了3.6%-374%,比TCP提升了94.1%-1196.3%,由于QRUDP協(xié)議采用了SNACK機(jī)制,同時(shí)采用了丟包和時(shí)延相結(jié)合的擁塞反饋機(jī)制,使之對(duì)當(dāng)前的網(wǎng)絡(luò)狀況的判斷更加準(zhǔn)確,故隨著誤碼率的增加,QRUDP的性能要好于TCP以及QUIC協(xié)議。 (2)存在時(shí)延抖動(dòng)時(shí)QRUDP、TCP與QUIC的比較 圖3和表1表示的是在帶寬=100Mbps,RTT= 114ms,時(shí)延抖動(dòng)=56ms,誤碼率=9.7×10-6時(shí),QRUDP,TCP,QUIC的吞吐量的瞬時(shí)變化情況,仿真時(shí)間為200s。從圖3以及表1可以看出,由于存在時(shí)延抖動(dòng),若采用傳統(tǒng)方式對(duì)最小RTT進(jìn)行計(jì)算,會(huì)導(dǎo)致對(duì)最小RTT計(jì)算不準(zhǔn)確從而影響協(xié)議性能,在本算法中采用一段周期就對(duì)最小RTT做一次重新計(jì)算的算法,實(shí)驗(yàn)結(jié)果表明,QRUDP協(xié)議在時(shí)延抖動(dòng)較大的場(chǎng)景下比QUIC協(xié)議性能提升了57.3%,比TCP提升了28.3%-231.9%,保證了最小RTT計(jì)算的準(zhǔn)確性以及時(shí)效性。 圖3 存在時(shí)延抖動(dòng)時(shí)的吞吐量比較 表1 存在時(shí)延抖動(dòng)時(shí)的平均吞吐量比較 (3)公平性 圖4表示的是QRUDP協(xié)議在帶寬=100Mbps,RTT=52ms,時(shí)延抖動(dòng)=20ms,誤碼率=5×10-6的場(chǎng)景下的公平性測(cè)試結(jié)果。通過(guò)圖4可以看出,每條QRUDP流之間有著很小的偏差,表現(xiàn)出了良好的公平性。 圖4 5條QRUDP流共存時(shí)吞吐量對(duì)比 本文針對(duì)現(xiàn)有TCP存在的問(wèn)題以及UDP傳輸可靠性差,沒(méi)有擁塞控制,設(shè)計(jì)了一種具有擁塞控制機(jī)制的可靠傳輸協(xié)議——QRUDP。該協(xié)議采用了混合反饋機(jī)制以解決TCP協(xié)議存在的帶寬利用不足問(wèn)題。仿真實(shí)驗(yàn)表明,QRUDP在高帶寬時(shí)延積,高誤碼率以及時(shí)延抖動(dòng)較大的網(wǎng)絡(luò)場(chǎng)景下性能比傳統(tǒng)的TCP以及QUIC協(xié)議有了較大的提升,同時(shí)還保證了較好的協(xié)議內(nèi)公平性。本文給出了QRUDP協(xié)議的詳細(xì)的描述,該協(xié)議只需要在服務(wù)器端的應(yīng)用層修改,不需要修改Linux的內(nèi)核以及中間路由器,易于網(wǎng)絡(luò)的實(shí)施。目前論文中對(duì)QRUDP協(xié)議性能的判斷還局限在仿真軟件中,未來(lái)的研究可以將QRUDP協(xié)議部署到更復(fù)雜的實(shí)際網(wǎng)絡(luò)場(chǎng)景中進(jìn)行測(cè)試。 [1]張民,羅光春,王俊峰,等.空間信息網(wǎng)絡(luò)可靠傳輸協(xié)議研究[J].通信學(xué)報(bào),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]許建利.高速長(zhǎng)時(shí)延網(wǎng)絡(luò)擁塞控制算法研究及Linux實(shí)現(xiàn)[D].成都:四川大學(xué)碩士學(xué)位論文,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-),女,四川廣安人,碩士,研究方向?yàn)榫W(wǎng)絡(luò)與信息安全技術(shù) 2016-12-06 2017-02-13 國(guó)家自然科學(xué)基金項(xiàng)目(No.91338107、No.91438120、No.91438119)、教育部博士點(diǎn)基金(No.20130181110095) 王俊峰(1976-),男,安徽蕪湖人,博導(dǎo),教授,研究方向,空間信息網(wǎng)、航空電信網(wǎng) 劉立祥(1973-),男,博士,副研究員,研究方向,網(wǎng)絡(luò)及其通信技術(shù)、網(wǎng)絡(luò)計(jì)算技術(shù)2 QRUDP協(xié)議最小RTT的設(shè)計(jì)
3 實(shí)驗(yàn)及結(jié)果分析
4 結(jié)語(yǔ)
(1.College of Computer Science,Sichuan University,Chengdu 610064;2.College of Integrated Information,Institute of Software,Chinese Academy of Sciences,Beijing 100080)