專(zhuān)利名稱(chēng):基于用戶數(shù)據(jù)報(bào)協(xié)議的快速可靠的擁塞控制改進(jìn)算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)傳輸控制協(xié)議算法改進(jìn)領(lǐng)域,具體說(shuō)是當(dāng)傳輸層選擇用戶數(shù)據(jù)報(bào) (UDP)協(xié)議時(shí),能同時(shí)滿足快速傳輸、可靠性和穿透NAT設(shè)備的要求的改進(jìn)算法。
背景技術(shù):
目前的互聯(lián)網(wǎng)是基于互聯(lián)網(wǎng)協(xié)議的第四版(簡(jiǎn)稱(chēng)IPv4)架構(gòu)的,隨著網(wǎng)絡(luò)各種應(yīng)用迅速普及、發(fā)展,IP地址資源愈加匾乏。為了解決該問(wèn)題,各企業(yè)、公司及Internet服務(wù)提供商部署了大量網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備(Network Address Translation, NAT)。利用這些NAT 設(shè)備和相應(yīng)的NAT技術(shù),可以使一個(gè)局域網(wǎng)內(nèi)的所有主機(jī)通過(guò)一個(gè)或幾個(gè)公網(wǎng)IP地址來(lái)訪問(wèn)Internet。但由于局域網(wǎng)與Internet編址方式的不同,NAT設(shè)備掩藏了內(nèi)網(wǎng)主機(jī)IP地址。因此,為了使位于不同NAT之后的主機(jī)便于穿透這些NAT設(shè)備節(jié)點(diǎn)、彼此建立連接,很多應(yīng)用程序會(huì)傳輸層采用了用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol, UDP)。而UDP是面向 非連接的協(xié)議,它不與對(duì)方建立連接,而直接就把數(shù)據(jù)包發(fā)送過(guò)去,發(fā)送數(shù)據(jù)速度快, 效率高,可支持海量并發(fā)連接,但由于UDP不提供差錯(cuò)校驗(yàn)和重傳機(jī)制,存在可靠性差的特
為了彌補(bǔ)在傳輸層選用UDP協(xié)議傳輸數(shù)據(jù)可靠性差的缺點(diǎn),已有學(xué)者引入 TCP (Transmission Control Protocol)的可靠控制和擁塞控制機(jī)制,設(shè)計(jì)了一種基于UDP 的可靠數(shù)據(jù)傳輸協(xié)議。經(jīng)過(guò)大量實(shí)際應(yīng)用測(cè)試和客戶反饋表明,上述傳輸數(shù)據(jù)的可靠機(jī)制已初見(jiàn)成效,但擁塞控制的效果不理想,尤其是在文件傳輸和視頻播放的情況下,通訊系統(tǒng)呈現(xiàn)出不穩(wěn)定,帶寬利用率低的現(xiàn)象。究其原因有兩點(diǎn)。一從瓶頸鏈路產(chǎn)生擁塞,到發(fā)送端獲得擁塞信息,有一定的時(shí)間間隔,發(fā)送端無(wú)法及時(shí)準(zhǔn)確估計(jì)鏈路的擁塞信息,因此發(fā)送端采取的擁塞控制策略存在滯后問(wèn)題,控制效果不理想。另一點(diǎn)是目前采用的加性增長(zhǎng)、乘性減小(Additive Increase Multiplicative Decrease, AIMD)擁塞控制算法在復(fù)雜的高速網(wǎng)絡(luò)中適應(yīng)性不強(qiáng),效率比較低下,如在正常情況下發(fā)送窗口增加慢,導(dǎo)致大的發(fā)送窗口在擁塞發(fā)生后恢復(fù)慢,限制了獲取空閑帶寬的能力,使得鏈路在相當(dāng)長(zhǎng)一段時(shí)間內(nèi)利用率低, 不能有效地進(jìn)行大數(shù)據(jù)量傳輸,難以充分利用網(wǎng)絡(luò)帶寬;而當(dāng)擁塞發(fā)生時(shí),大發(fā)送窗口卻成倍減小,從而造成大量數(shù)據(jù)分組丟失,網(wǎng)絡(luò)呈現(xiàn)劇烈振蕩現(xiàn)象。因此,基于傳輸層的UDP協(xié)議,在保證能夠正確穿透NAT設(shè)備和傳輸可靠性的基礎(chǔ)上,在應(yīng)用層設(shè)計(jì)出能夠確保高速網(wǎng)絡(luò)環(huán)境下信息流高效平穩(wěn)運(yùn)行的擁塞控制算法,對(duì)網(wǎng)絡(luò)應(yīng)用有很好的推動(dòng)和參考價(jià)值。
對(duì)于UDP協(xié)議可靠性的研究和改進(jìn)已經(jīng)成為當(dāng)前的熱點(diǎn)問(wèn)題。在大量通信終端頻繁向?qū)S梅?wù)器發(fā)送小尺寸報(bào)文的環(huán)境中,王繼剛提出了 RUDP協(xié)議,該改進(jìn)協(xié)議為了保證可靠性,發(fā)送端每發(fā)一條數(shù)據(jù)報(bào)文,就進(jìn)入超時(shí)等待狀態(tài),直到收到接收端回復(fù)的確認(rèn)信息才進(jìn)行后續(xù)的發(fā)送。如果發(fā)送端超時(shí)還沒(méi)有收到確認(rèn)信息,則認(rèn)為該報(bào)文丟失,進(jìn)行重發(fā)處理??梢?jiàn),該過(guò)程與TCP的超時(shí)等待機(jī)制非常相似,雖然該RUDP比TCP要簡(jiǎn)化許多,但其繁多的延時(shí)不適于大數(shù)據(jù)的快速傳輸。Doan Thanh Tran進(jìn)一步改進(jìn)上述RUDP協(xié)議,發(fā)送端每發(fā)一條數(shù)據(jù)報(bào)文,就進(jìn)入超時(shí)等待隊(duì)列,繼續(xù)發(fā)送下一報(bào)文,而接收端則對(duì)所接收到的報(bào)文作出應(yīng)答確認(rèn);發(fā)送端收到確認(rèn)后從等待隊(duì)列中將等待確認(rèn)的報(bào)文移除;如果等待隊(duì)列中等待確認(rèn)的報(bào)文超時(shí)還未收到確認(rèn),則發(fā)送端重發(fā)該報(bào)文。周錦才在Doan提出算法的基礎(chǔ)上,提出在每發(fā)出一條報(bào)文都進(jìn)入等待隊(duì)列并且繼續(xù)發(fā)送下一報(bào)文,而不是直到收到該報(bào)文的確認(rèn)信息后再發(fā)送下一條報(bào)文,比Doan的RUDP節(jié)省了大量的等待時(shí)間。但是, 它仍然要對(duì)每條報(bào)文進(jìn)行確認(rèn),耗費(fèi)較多的資源。基于上述3個(gè)改進(jìn)RUDP的不足,王海軍提出了批量確認(rèn)或定時(shí)確認(rèn)的概念。批量確認(rèn)即接收端在收到一定數(shù)量的數(shù)據(jù)包后統(tǒng)一向發(fā)送端發(fā)送一條確認(rèn)消息(或者發(fā)送端在發(fā)送一定數(shù)量的數(shù)據(jù)包后要求接收端回復(fù)一條確認(rèn)消息);將批量確認(rèn)中的一定數(shù)量的數(shù)據(jù)包相應(yīng)改為一定的時(shí)間間隔就成為定時(shí)確認(rèn),暫且將批量確認(rèn)和定時(shí)確認(rèn)統(tǒng)稱(chēng)為BA2RUDP (Bulk Ack 2 Reliable UDP) 3A2RUDP的算法較之前面兩個(gè)RUDP已經(jīng)節(jié)省了很多時(shí)間和資源,但它仍然存在著不足發(fā)送端的發(fā)送指針只有一個(gè),即發(fā)送端每次收到確認(rèn)后,若有需要重傳的數(shù)據(jù)包,發(fā)送指針都得暫時(shí)停止發(fā)送操作,查找相應(yīng)需要重發(fā)的數(shù)據(jù)包進(jìn)行重發(fā)操作,重發(fā)操作完成后再繼續(xù)后面的發(fā)送。 這個(gè)過(guò)程仍然是一個(gè)停止等待的過(guò)程,耗費(fèi)相當(dāng)?shù)臅r(shí)間。萬(wàn)國(guó)府提出一種補(bǔ)發(fā)機(jī)制,在此基礎(chǔ)上,結(jié)合數(shù)據(jù)包的重發(fā)機(jī)制、流量控制和擁塞控制機(jī)制,給出一種增強(qiáng)型可靠UDP傳輸協(xié)議ERUDP ( Enhanced Reliable UDP),該協(xié)議在高清媒體播放終端系統(tǒng)中獲得了實(shí)際應(yīng)用。實(shí)測(cè)結(jié)果表明,該文獻(xiàn)提出的傳輸方式在速度上優(yōu)于TCP以及傳統(tǒng)的RUDP (Reliable UDP,可靠UDP),同時(shí)又保證了可靠性。王艷芳提出了一種基于UDP的數(shù)據(jù)可靠傳輸擴(kuò)展協(xié)議——UDT,力求實(shí)現(xiàn)大量數(shù)據(jù)的實(shí)時(shí)可靠傳輸。其主要思想是在協(xié)議中建立數(shù)據(jù)實(shí)時(shí)可靠傳輸相關(guān)的新技術(shù)和新算法,并對(duì)已有的相關(guān)的技術(shù)和算法進(jìn)行改進(jìn)。這些新技術(shù)和新算法、改進(jìn)的技術(shù)和算法可以實(shí)現(xiàn)更有效地利用網(wǎng)絡(luò)資源、提高傳輸效率、減少數(shù)據(jù)包丟失、減少端到端的時(shí)間延遲和延遲抖動(dòng)。
靳海力為解決TCP的效率問(wèn)題和UDP的通信可靠性問(wèn)題,對(duì)UDP協(xié)議進(jìn)行改進(jìn), 在UDP上建立滑動(dòng)窗口機(jī)制,用于保證數(shù)據(jù)包無(wú)重復(fù)、無(wú)丟包地按序提交給應(yīng)用進(jìn)程,并能提供擁塞控制能力,同時(shí)CPU占用率在同等條件下沒(méi)有明顯增加。黃遠(yuǎn)峰針對(duì)使用UDP 協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)實(shí)時(shí)數(shù)據(jù)傳輸時(shí)的丟包問(wèn)題,在對(duì)基于UDP的數(shù)據(jù)可靠傳輸協(xié)議-UDT的原理進(jìn)行深入分析的基礎(chǔ)上,提出了基于時(shí)間和數(shù)據(jù)包數(shù)目相結(jié)合的確認(rèn)機(jī)制和改進(jìn)的AMD (加性增加乘性減少)擁塞控制算法,由此實(shí)現(xiàn)網(wǎng)絡(luò)音視頻數(shù)據(jù)的高質(zhì)量實(shí)時(shí)傳輸。實(shí)驗(yàn)證明,使用改進(jìn)的UDT協(xié)議,可以有效提高數(shù)據(jù)傳輸?shù)目煽啃院托省?br>
上述研究主要是針對(duì)UDP協(xié)議的可靠性和擁塞控制機(jī)制展開(kāi)研究。在實(shí)際測(cè)試過(guò)程中發(fā)現(xiàn)效果并不是很理想,主要表現(xiàn)在以下幾個(gè)方面(I).擁塞狀態(tài)估計(jì)的滯后問(wèn)題。由于Internet是一個(gè)復(fù)雜的巨系統(tǒng),加上其本質(zhì)上的異構(gòu)性和大規(guī)模分布,使得鏈路端擁塞信息無(wú)法及時(shí)的反饋到發(fā)送端。當(dāng)路由器發(fā)生擁塞時(shí),發(fā)送端要經(jīng)過(guò)一個(gè)往返延時(shí)的時(shí)間才能獲得分組丟失信息,在這段時(shí)間內(nèi),發(fā)送端窗口又發(fā)送了大量的數(shù)據(jù),而發(fā)現(xiàn)分組丟失時(shí)這些新增加的數(shù)據(jù)分組都要被丟掉,過(guò)多分組丟失嚴(yán)重影響系統(tǒng)性能。
(2).全局同步問(wèn)題。由于Internet上數(shù)據(jù)的突發(fā)本質(zhì),到達(dá)路由器的包也往往是突發(fā)的。如果隊(duì)列是滿的或者幾乎是滿的,就會(huì)導(dǎo)致在短時(shí)間內(nèi)連續(xù)大量地丟 包。而引人擁塞控制機(jī)制的CC2010,在發(fā)送端發(fā)送數(shù)據(jù)時(shí)具有自適應(yīng)特性,發(fā)送端發(fā)現(xiàn)包丟失就急劇地減小發(fā)送窗口,包到達(dá)速率就迅速下降,于是網(wǎng)絡(luò)擁塞得以解除。但發(fā)送端得知網(wǎng)絡(luò)不再擁塞后又開(kāi)始增加發(fā)送速度,最終又造成網(wǎng)絡(luò)擁塞。而且這種現(xiàn)象常常會(huì)周而復(fù)始地進(jìn)行下去,從而在一段時(shí)間內(nèi)網(wǎng)絡(luò)處于鏈路帶寬利用率很低的狀態(tài),降低了整體吞吐量,這就是所謂的“TCP全局同步”現(xiàn)象。
(3).高速網(wǎng)絡(luò)適應(yīng)性差。設(shè)計(jì)的加性增長(zhǎng)、乘性減小的擁塞控制算法在復(fù)雜的高速網(wǎng)絡(luò)中適應(yīng)性不強(qiáng),效率比較低下,如在正常情況下發(fā)送窗口增加慢,導(dǎo)致大的發(fā)送窗口在擁塞發(fā)生后恢復(fù)慢,限制了獲取空閑帶寬的能力,使得鏈路在相當(dāng)長(zhǎng)一段時(shí)間內(nèi)利用率低,不能有效地進(jìn)行大數(shù)據(jù)量傳輸,難以充分利用網(wǎng)絡(luò)帶寬;而當(dāng)擁塞發(fā)生時(shí),大發(fā)送窗口卻成倍減小,從而造成大量數(shù)據(jù)分組丟失,網(wǎng)絡(luò)呈現(xiàn)劇烈振蕩現(xiàn)象。
因此,本發(fā)明要解決在UDP協(xié)議引入擁塞控制機(jī)制的有效性問(wèn)題。當(dāng)發(fā)送端發(fā)送的數(shù)據(jù)超過(guò)瓶頸鏈路的帶寬時(shí),就會(huì)導(dǎo)致瓶頸鏈路緩沖區(qū)隊(duì)列長(zhǎng)度增加。當(dāng)隊(duì)列長(zhǎng)度增加到一定程度時(shí),緩沖區(qū)會(huì)溢出,造成大量數(shù)據(jù)丟失,產(chǎn)生擁塞現(xiàn)象,網(wǎng)絡(luò)性能急劇下降。
目前,并沒(méi)有很好的方法使發(fā)送端能夠準(zhǔn)確、及時(shí)估計(jì)網(wǎng)絡(luò)擁塞狀態(tài)。因此,本發(fā)明改變以往被動(dòng)估計(jì)鏈路端擁塞狀態(tài)的思想,在發(fā)送端以瓶頸鏈路緩沖區(qū)的隊(duì)列長(zhǎng)度為平衡點(diǎn),設(shè)計(jì)發(fā)送端發(fā)送窗口控制策略。該控制策略總是以期望留在鏈路緩沖區(qū)的個(gè)數(shù)作為平衡值,當(dāng)估計(jì)實(shí)際留在緩沖區(qū)的個(gè)數(shù)大于這個(gè)平衡值時(shí),就調(diào)小發(fā)送窗口,當(dāng)估計(jì)實(shí)際留在緩沖區(qū)的個(gè)數(shù)小于這個(gè)平衡值時(shí),就增大發(fā)送窗口。這樣,就能主動(dòng)去控制鏈路緩沖區(qū)的排隊(duì)長(zhǎng)度,從而主動(dòng)避免了緩沖區(qū)隊(duì)列溢出和擁塞現(xiàn)象的出現(xiàn)
發(fā)明內(nèi)容
一種基于用戶數(shù)據(jù)報(bào)(UDP)協(xié)議的快速可靠的擁塞控制改進(jìn)算法。該算法在保證能夠正確穿透網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT, Network Address Translation)設(shè)備和傳輸可靠性的基礎(chǔ)上,在應(yīng)用層和穿輸層之間設(shè)計(jì)出能夠確保高速網(wǎng)絡(luò)環(huán)境下信息流高效平穩(wěn)運(yùn)行的快速、可靠的擁塞控制策略(FAST RELIABEL UDP,簡(jiǎn)稱(chēng)FRUDP),具體包括如下步驟1.設(shè)計(jì)FRUDP控制、數(shù)據(jù)包頭格式。FRUDP有兩種包數(shù)據(jù)包和控制包,通過(guò)數(shù)據(jù)類(lèi)型(標(biāo)志位)來(lái)區(qū)分,如果是O表示是數(shù)據(jù)包,I表示是控制包。
步驟2.設(shè)計(jì)FRUDP主要功能模塊,包括估計(jì)模塊、窗口控制模塊、數(shù)據(jù)處理模塊和突發(fā)控制模塊組成。其中估計(jì)模塊估計(jì)鏈路端分組排隊(duì)延時(shí)的變化情況,計(jì)算網(wǎng)絡(luò)擁塞狀態(tài);窗口控制模塊根據(jù)估計(jì)模塊獲得網(wǎng)絡(luò)擁塞狀態(tài)調(diào)整發(fā)送端發(fā)送窗口大小,決定在一個(gè)往返延時(shí)內(nèi)要發(fā)送多少個(gè)分組;數(shù)據(jù)處理模塊從候選池(包含新數(shù)據(jù)分組,已發(fā)送未確認(rèn)分組、已發(fā)送但丟失分組)決定要發(fā)送哪些分組,突發(fā)控制模塊決定要在什么時(shí)候發(fā)送這些分組。
為了使各FRUDP連接能夠快速獲得準(zhǔn)確的傳播延時(shí),在發(fā)送端設(shè)計(jì)一種協(xié)同控制同步回退策略,該策略充分利用各連接能夠獲得局部信息, 確定同步回退時(shí)間和合理的回退幅度,在一有新連接到達(dá)時(shí),新、舊連接能夠快速同步回退清空隊(duì)列,使得新連接能夠快速獲得準(zhǔn)確傳播延時(shí)。具體包括如下定義Flag為標(biāo)志位,初值為真為連接記錄的最大窗口取值;步驟1.定義如下四種狀態(tài)初態(tài)=FRUDP連接建立,開(kāi)始傳輸數(shù)據(jù),F(xiàn)lag為真。
終態(tài)數(shù)據(jù)傳輸結(jié)束,F(xiàn)RUDP連接釋放。
暫態(tài)非平衡態(tài),即發(fā)送窗口變化的絕對(duì)值不小\ Zvahie。
平衡態(tài)連續(xù)發(fā)送窗口變化的絕對(duì)值恒小于pvalue
步驟2.定義如下3種事件事件1:FRUDP發(fā)送端發(fā)送窗口變化的絕對(duì)值首次出現(xiàn)連續(xù)次大于ZVGlhie。
事件2 =FRUDP發(fā)送端發(fā)送窗口變化的絕對(duì)值首次連續(xù)次小于pVOlue (很小的常數(shù))。
事件3 =FRUDP連接數(shù)據(jù)傳輸完畢。
步驟3.定義如下2個(gè)條件條件1:同時(shí)滿足以下4點(diǎn)i· Flag為Flase,本次平衡態(tài)傳輸流量小于上次平衡態(tài)傳輸流量,表明因新建連接引起的平衡態(tài)轉(zhuǎn)移。
.兩次平衡態(tài)之間沒(méi)有通過(guò)舊連接回退狀態(tài),避免連續(xù)回退情況。
ii1.傳播延時(shí)沒(méi)有減小,排除新連接回退到平衡態(tài)后又繼續(xù)回退。
iv .系統(tǒng)運(yùn)行到達(dá)同步時(shí)間。
條件2: Flag為真,該連接發(fā)送窗口連續(xù)ZIWIOT次變大,往返延時(shí)連續(xù)ZIWIIW次變小。
步驟4.定義如下4個(gè)動(dòng)作動(dòng)作1:在指定的回退時(shí)間(往返延時(shí)的整數(shù)倍)內(nèi),減小發(fā)送窗口,回退。
動(dòng)作2 :在指定的回退時(shí)間(往返延時(shí)的整數(shù)倍)內(nèi),減小發(fā)送窗口,設(shè)置Flag為假。
動(dòng)作3 :記錄進(jìn)入暫態(tài)的時(shí)間Z/。
步驟5.當(dāng)處于初始狀態(tài)時(shí),若有事件I發(fā)生,進(jìn)入到暫態(tài)。
當(dāng)處于暫態(tài)時(shí),若 有事件3發(fā)生,進(jìn)入到終態(tài)。
當(dāng)處于暫態(tài)時(shí),若有事件2發(fā)生,進(jìn)入到平衡態(tài)。
當(dāng)處于平衡態(tài)時(shí),若有事件I發(fā)生,執(zhí)行動(dòng)作3,進(jìn)入到暫態(tài)。
當(dāng)處于平衡態(tài)時(shí),若滿足條件1,執(zhí)行動(dòng)作1,進(jìn)入到暫態(tài)。
當(dāng)處于平衡態(tài)時(shí),若滿足條件2,執(zhí)行動(dòng)作2,進(jìn)入到暫態(tài)。
窗口控制模塊改變以往被動(dòng)估計(jì)鏈路端擁塞狀態(tài)的思想,在發(fā)送端以瓶頸鏈路緩沖區(qū)的隊(duì)列長(zhǎng)度為平衡點(diǎn),協(xié)同合作設(shè)計(jì)擁塞控制策略。該控制策略總是以期望留在鏈路緩沖區(qū)的個(gè)數(shù)作為平衡值,當(dāng)估計(jì)實(shí)際留在緩沖區(qū)的個(gè)數(shù)大于這個(gè)平衡值時(shí),就按調(diào)小發(fā)送窗口,當(dāng)估計(jì)實(shí)際留在緩沖區(qū)的個(gè)數(shù)小于這個(gè)平衡值時(shí),就按比例增大發(fā)送窗口,從而實(shí)現(xiàn)了主動(dòng)控制鏈路緩沖區(qū)的排隊(duì)長(zhǎng)度,主動(dòng)避免了緩沖區(qū)隊(duì)列溢出和擁塞現(xiàn)象的出現(xiàn)。其特征在于,具體包括如下步驟1:根據(jù)估計(jì)模塊估計(jì)的傳播延時(shí),充分利用個(gè)連接發(fā)送端能夠獲得的局部信息和上一采樣周期網(wǎng)絡(luò)運(yùn)行狀態(tài),協(xié)同合作分析判斷網(wǎng)絡(luò)運(yùn)行狀態(tài)(輕度、中度、滿負(fù)荷和平衡態(tài))。
步驟2 :根據(jù)模式狀態(tài)選擇參數(shù)調(diào)整策略。如當(dāng)發(fā)送端窗口連續(xù)較大增長(zhǎng),排隊(duì)延時(shí)小,且沒(méi)有丟包時(shí),判斷網(wǎng)絡(luò)系統(tǒng)處于輕度負(fù)荷,此時(shí)應(yīng)采取積極窗口增大策略。若發(fā)現(xiàn)丟包但排隊(duì)時(shí)延小,說(shuō)明仍處于輕度負(fù)荷。當(dāng)發(fā)送端窗口變化緩慢時(shí),說(shuō)明系統(tǒng)處于平衡態(tài)附近,選擇較小的窗口控制策略,增加系統(tǒng)穩(wěn)定性。當(dāng)丟包時(shí)間間隔有連續(xù)較大增長(zhǎng),排隊(duì)延時(shí)長(zhǎng)、丟包率大時(shí)說(shuō)明網(wǎng)絡(luò)處于重負(fù)荷擁塞狀態(tài),應(yīng)采取大幅度窗口減少策略等。
圖1網(wǎng)絡(luò)體系結(jié)構(gòu)。
圖2 FRUDP數(shù)據(jù)包格式。
圖3服務(wù)器端和客戶端連接建立和關(guān)閉。
圖4 FRUDP網(wǎng)絡(luò)擁塞控制結(jié)構(gòu)。
圖5同步回退策略狀態(tài)事件轉(zhuǎn)換圖。
圖6協(xié)同擁塞控制策略圖。
具體實(shí)施方式
FRUDP建立在UDP之上,應(yīng)用程序級(jí)別的面向連接協(xié)議,協(xié)議包含了可靠控制和擁塞控制策略,是一種基于UDP的數(shù)據(jù)快速、可靠應(yīng)用層擁塞控制協(xié)議。從計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)的角度來(lái)看,F(xiàn)RUDP的層次結(jié)構(gòu)如圖1所示。
新組成的五層網(wǎng)絡(luò)體系結(jié)構(gòu)中,實(shí)際用來(lái)傳輸數(shù)據(jù)的仍然是傳輸層的UDP,新添加的FRUDP層具有數(shù)據(jù)包確認(rèn)、重發(fā)和擁塞控制等保證數(shù)據(jù)可靠傳輸?shù)目刂茩C(jī)制,這樣就實(shí)現(xiàn)了一種基于UDP的面向連接的快速、可靠數(shù)據(jù)傳遞機(jī)制。
FRUDP有兩種包數(shù)據(jù)包和控制包,他們通過(guò)數(shù)據(jù)類(lèi)型(標(biāo)志位)來(lái)區(qū)分,如果是O 表示是數(shù)據(jù)包,I表示是控制包。數(shù)據(jù)包結(jié)構(gòu)如圖2所示。
如圖3所示,連接建立以后,服務(wù)器端和客戶端都將進(jìn)入發(fā)送或接收數(shù)據(jù)的狀態(tài)。 服務(wù)器根據(jù)流量控制和速率控制向客戶端發(fā)送(或重傳)應(yīng)用程序數(shù)據(jù)包,客戶端接收數(shù)據(jù)包,并據(jù)此向服務(wù)器發(fā)送控制包,控制包在服務(wù)器和客戶端之間相互傳送。FRUDP實(shí)體的發(fā)送和接收程序共享同一個(gè)UDP端口來(lái)發(fā)送和接收包。同時(shí),接收程序也負(fù)責(zé)觸發(fā)和處理所有的控制事件,包括可靠控制、擁塞控制以及與之相關(guān)的各種控制機(jī)制,例如帶寬估計(jì)、確認(rèn)、重傳和差錯(cuò)控制等。
在應(yīng)用層設(shè)計(jì)如圖4所示的FRUDP網(wǎng)絡(luò)擁塞控制結(jié)構(gòu)。主要由由估計(jì)模塊、窗口控制模塊、數(shù)據(jù)處理模塊和突發(fā)控制模塊組成。其中估計(jì)模塊估計(jì)鏈路端分組排隊(duì)延時(shí)的變化情況,計(jì)算網(wǎng)絡(luò)擁塞狀態(tài);窗口控制模塊根據(jù)估計(jì)模塊獲得網(wǎng)絡(luò)擁塞狀態(tài)調(diào)整發(fā)送端發(fā)送窗口大小,決定在一個(gè)往返延時(shí)內(nèi)要發(fā)送多少個(gè)分組;數(shù)據(jù)處理模塊從候選池(包含新數(shù)據(jù)分組,已發(fā)送未確認(rèn)分組、已發(fā)送但丟失分組)決定要發(fā)送哪些分組,突發(fā)控制模塊決定要在什么時(shí)候發(fā)送這些分組。發(fā)送端窗口調(diào)整策略如下FRUDP連接(以下簡(jiǎn)稱(chēng)連接)將發(fā)送端獲得的最小往返延時(shí)作為傳播延時(shí)。因此,當(dāng)網(wǎng)絡(luò)中已存在處于平衡狀態(tài)下FRUDP連接(以下簡(jiǎn)稱(chēng)舊連接),若處于持 續(xù)擁塞時(shí),新建的 FRUDP連接(以下簡(jiǎn)稱(chēng)新連接)將難以快速獲得準(zhǔn)確的傳播延時(shí),從而無(wú)法準(zhǔn)確計(jì)算實(shí)際留在緩沖區(qū)的數(shù)據(jù)包個(gè)數(shù),影響算法的控制效果。
為了在持續(xù)擁塞的情況下,使各連接能夠快速獲得準(zhǔn)確的傳播延時(shí),我們?cè)诎l(fā)送端設(shè)計(jì)一種協(xié)同控制同步回退策略,該策略充分利用各連接能夠獲得局部信息,確定同步回退時(shí)間和合理的回退幅度,在一有新連接到達(dá)時(shí),新、舊連接能夠快速同步回退清空隊(duì)列,使得新連接能夠快速獲得準(zhǔn)確傳播延時(shí)。
為了方便描述該策略算法思想,采用如圖5所示的狀態(tài)事件圖模型來(lái)描述。該模型包括4種狀態(tài)、3個(gè)事件、2個(gè)條件和3個(gè)動(dòng)作,具體定義見(jiàn)發(fā)明內(nèi)容。定義ZHtrfae=^mmanr /32,ZfUifft=S ,/500 , jEWT2£J7l=2。
窗口控制模塊充分利用個(gè)連接發(fā)送端能夠獲得的局部信息和上一采樣周期網(wǎng)絡(luò)運(yùn)行狀態(tài),如圖6所示,協(xié)同合作分析判斷網(wǎng)絡(luò)運(yùn)行狀態(tài)(輕度、中度、滿負(fù)荷和平衡態(tài))。根據(jù)模式狀態(tài)選擇參數(shù)調(diào)整策略。如當(dāng)發(fā)送端窗口連續(xù)較大增長(zhǎng),排隊(duì)延時(shí)小,且沒(méi)有丟包時(shí),判斷網(wǎng)絡(luò)系統(tǒng)處于輕度負(fù)荷,此時(shí)應(yīng)采取積極窗口增大策略。若發(fā)現(xiàn)丟包但排隊(duì)時(shí)延小,說(shuō)明仍處于輕度負(fù)荷。當(dāng)發(fā)送端窗口變化緩慢時(shí),說(shuō)明系統(tǒng)處于平衡態(tài)附近,選擇較小的窗口控制策略,增加系統(tǒng)穩(wěn)定性。當(dāng)丟包時(shí)間間隔有連續(xù)較大增長(zhǎng),排隊(duì)延時(shí)長(zhǎng)、丟包率大時(shí)說(shuō)明網(wǎng)絡(luò)處于重負(fù)荷擁塞狀態(tài),應(yīng)采取大幅度窗 口減少策略等。
權(quán)利要求
1.一種基于用戶數(shù)據(jù)報(bào)(UDP)協(xié)議的快速可靠的擁塞控制改進(jìn)算法,該算法在保證能夠正確穿透網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT, Network Address Translation)設(shè)備和傳輸可靠性的基礎(chǔ)上,在應(yīng)用層和穿輸層之間設(shè)計(jì)出能夠確保高速網(wǎng)絡(luò)環(huán)境下信息流高效平穩(wěn)運(yùn)行的快速、 可靠的擁塞控制策略(FAST RELIABEL UDP,簡(jiǎn)稱(chēng)FRUDP),其特征在于,具體包括如下步驟1:設(shè)計(jì)FRUDP控制、數(shù)據(jù)包頭格式,F(xiàn)RUDP有兩種包數(shù)據(jù)包和控制包,通過(guò)數(shù)據(jù)類(lèi)型(標(biāo)志位)來(lái)區(qū)分,如果是O表示是數(shù)據(jù)包,I表示是控制包;步驟2 :設(shè)計(jì)FRUDP主要功能模塊,包括估計(jì)模塊、窗口控制模塊、數(shù)據(jù)處理模塊和突發(fā)控制模塊組成;其中估計(jì)模塊估計(jì)鏈路端分組排隊(duì)延時(shí)的變化情況,計(jì)算網(wǎng)絡(luò)擁塞狀態(tài); 窗口控制模塊根據(jù)估計(jì)模塊獲得網(wǎng)絡(luò)擁塞狀態(tài)調(diào)整發(fā)送端發(fā)送窗口大小,決定在一個(gè)往返延時(shí)內(nèi)要發(fā)送多少個(gè)分組;數(shù)據(jù)處理模塊從候選池(包含新數(shù)據(jù)分組,已發(fā)送未確認(rèn)分組、 已發(fā)送但丟失分組)決定要發(fā)送哪些分組,突發(fā)控制模塊決定要在什么時(shí)候發(fā)送這些分組。
2.根據(jù)權(quán)利要求1所述的基于用戶數(shù)據(jù)報(bào)協(xié)議的快速可靠的擁塞控制改進(jìn)算法,其特征在于,為了使各FRUDP連接能夠快速獲得準(zhǔn)確的傳播延時(shí),在發(fā)送端設(shè)計(jì)一種協(xié)同控制同步回退策略,該策略充分利用各連接能夠獲得局部信息,確定同步回退時(shí)間和合理的回退幅度,在一有新連接到達(dá)時(shí),新、舊連接能夠快速同步回退清空隊(duì)列,使得新連接能夠快速獲得準(zhǔn)確傳播延時(shí),具體包括如下定義Flag為標(biāo)志位,初值為真;為連接記錄的最大窗口取值;步驟1:定義如下四種狀態(tài)初態(tài)=FRUDP連接建立,開(kāi)始傳輸數(shù)據(jù),F(xiàn)lag為真;終態(tài)數(shù)據(jù)傳輸結(jié)束,F(xiàn)RUDP連接釋放;暫態(tài)非平衡態(tài),即發(fā)送窗口變化的絕對(duì)值不小于zwiiwe ;平衡態(tài)連續(xù)發(fā)送窗口變化的絕對(duì)值恒小于/ms/we ;步驟2:定義如下3種事件事件 :frudp發(fā)送端發(fā)送窗口變化的絕對(duì)值首次出現(xiàn)連續(xù)Z/1M/ 次大I zvaiue ; 事件2 frudp發(fā)送端發(fā)送窗口變化的絕對(duì)值首次連續(xù)prmm次小于pvalirn (很小的常數(shù));事件3 =FRUDP連接數(shù)據(jù)傳輸完畢;步驟3:定義如下2個(gè)條件條件1:同時(shí)滿足以下4點(diǎn)i · Flag為Flase,本次平衡態(tài)傳輸流量小于上次平衡態(tài)傳輸流量,表明因新建連接引起的平衡態(tài)轉(zhuǎn)移; .兩次平衡態(tài)之間沒(méi)有通過(guò)舊連接回退狀態(tài),避免連續(xù)回退情況;iii·傳播延時(shí)沒(méi)有減小,排除新連接回退到平衡態(tài)后又繼續(xù)回退;iv.系統(tǒng)運(yùn)行到達(dá)同步時(shí)間;條件2:Flag為真,該連接發(fā)送窗口連續(xù)ZfBmf次變大,往返延時(shí)連續(xù)ZfBttB次變步驟4.定義如下4個(gè)動(dòng)作動(dòng)作1:在指定的回退時(shí)間(往返延時(shí)的整數(shù)倍)內(nèi),減小發(fā)送窗口,回退;動(dòng)作2:在指定的回退時(shí)間(往返延時(shí)的整數(shù)倍)內(nèi),減小發(fā)送窗口,設(shè)置Flag為假; 動(dòng)作3 :記錄進(jìn)入暫態(tài)的時(shí)間Ζ ;步驟5.當(dāng)處于初始狀態(tài)時(shí),若有事件I發(fā)生,進(jìn)入到暫態(tài);當(dāng)處于暫態(tài)時(shí),若有事件3發(fā)生,進(jìn)入到終態(tài);當(dāng)處于暫態(tài)時(shí),若有事件2發(fā)生,進(jìn)入到平衡態(tài);當(dāng)處于平衡態(tài)時(shí),若有事件I發(fā)生,執(zhí)行動(dòng)作3,進(jìn)入到暫態(tài);當(dāng)處于平衡態(tài)時(shí),若滿足條件1,執(zhí)行動(dòng)作1,進(jìn)入到暫態(tài);當(dāng)處于平衡態(tài)時(shí),若滿足條件2,執(zhí)行動(dòng)作2,進(jìn)入到暫態(tài)。
3.根據(jù)權(quán)利要求1所述的基于用戶數(shù)據(jù)報(bào)協(xié)議的快速可靠的擁塞控制改進(jìn)算法,其特征在于,窗口控制模塊改變以往被動(dòng)估計(jì)鏈路端擁塞狀態(tài)的思想,在發(fā)送端以瓶頸鏈路緩沖區(qū)的隊(duì)列長(zhǎng)度為平衡點(diǎn),協(xié)同合作設(shè)計(jì)擁塞控制策略,該控制策略總是以期望留在鏈路緩沖區(qū)的個(gè)數(shù)作為平衡值,當(dāng)估計(jì)實(shí)際留在緩沖區(qū)的個(gè)數(shù)大于這個(gè)平衡值時(shí),就按調(diào)小發(fā)送窗口,當(dāng)估計(jì)實(shí)際留在緩沖區(qū)的個(gè)數(shù)小于這個(gè)平衡值時(shí),就按比例增大發(fā)送窗口,從而實(shí)現(xiàn)了主動(dòng)控制鏈路緩沖區(qū)的排隊(duì)長(zhǎng)度,主動(dòng)避免了緩沖區(qū)隊(duì)列溢出和擁塞現(xiàn)象的出現(xiàn),具體包括如下步驟1:根據(jù)估計(jì)模塊估計(jì)的傳播延時(shí),充分利用個(gè)連接發(fā)送端能夠獲得的局部信息和上一采樣周期網(wǎng)絡(luò)運(yùn)行狀態(tài),協(xié)同合作分析判斷網(wǎng)絡(luò)運(yùn)行狀態(tài)(輕度、中度、滿負(fù)荷和平衡態(tài));步驟2:根據(jù)模式狀態(tài)選擇參數(shù)調(diào)整策略,如當(dāng)發(fā)送端窗口連續(xù)較大增長(zhǎng),排隊(duì)延時(shí)小,且沒(méi)有丟包時(shí),判斷網(wǎng)絡(luò)系統(tǒng)處于輕度負(fù)荷,此時(shí)應(yīng)采取積極窗口增大策略;若發(fā)現(xiàn)丟包但排隊(duì)時(shí)延小,說(shuō)明仍處于輕度負(fù)荷;當(dāng)發(fā)送端窗口變化緩慢時(shí),說(shuō)明系統(tǒng)處于平衡態(tài)附近,選擇較小的窗口控制策略,增加系統(tǒng)穩(wěn)定性;當(dāng)丟包時(shí)間間隔有連續(xù)較大增長(zhǎng),排隊(duì)延時(shí)長(zhǎng)、丟包率大時(shí)說(shuō)明網(wǎng)絡(luò)處于重負(fù)荷擁塞狀態(tài),應(yīng)采取大幅度窗口減少策略等。
全文摘要
本發(fā)明提出一種基于傳輸層的UDP協(xié)議,在保證能夠正確穿透NAT設(shè)備和傳輸可靠性的基礎(chǔ)上,在應(yīng)用層和穿輸層之間設(shè)計(jì)出能夠確保高速網(wǎng)絡(luò)環(huán)境下信息流高效平穩(wěn)運(yùn)行的快速、可靠的擁塞控制策略(FASTRELIABELUDP,簡(jiǎn)稱(chēng)FRUDP)。FRUDP主要由估計(jì)模塊、窗口控制模塊、數(shù)據(jù)處理模塊和突發(fā)控制模塊組成。其中估計(jì)模塊在發(fā)送端,不需要修改網(wǎng)絡(luò)層協(xié)議,根據(jù)發(fā)送端能夠獲得的局部信息,協(xié)同合作估計(jì)傳輸路徑傳播延時(shí),準(zhǔn)確估計(jì)各進(jìn)程實(shí)際留在鏈路緩沖區(qū)排隊(duì)的包的個(gè)數(shù)。窗口控制模塊,在發(fā)送端以瓶頸鏈路緩沖區(qū)的隊(duì)列長(zhǎng)度為平衡點(diǎn),協(xié)同合作設(shè)計(jì)擁塞控制策略,主動(dòng)控制鏈路緩沖區(qū)的排隊(duì)長(zhǎng)度,主動(dòng)避免了緩沖區(qū)隊(duì)列溢出和擁塞現(xiàn)象的出現(xiàn)。數(shù)據(jù)處理模塊從候選池決定要發(fā)送哪些分組,突發(fā)控制模塊決定要在什么時(shí)候發(fā)送這些分組。
文檔編號(hào)H04L12/813GK103067301SQ20131001726
公開(kāi)日2013年4月24日 申請(qǐng)日期2013年1月17日 優(yōu)先權(quán)日2013年1月17日
發(fā)明者陳曉龍 申請(qǐng)人:廣東石油化工學(xué)院