国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

UDX:基于UDP的可靠傳輸協(xié)議

2013-09-08 10:18于本成曹天杰
計算機工程與設(shè)計 2013年6期
關(guān)鍵詞:重傳包率傳輸

于本成,曹天杰

(1.中國礦業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,江蘇 徐州221000;2.徐州工業(yè)職業(yè)技術(shù)學(xué)院信息管理技術(shù)學(xué)院,江蘇 徐州221000;3.中國礦業(yè)大學(xué) 信息安全國家重點實驗,江蘇 徐州221000)

0 引 言

目前主流的網(wǎng)絡(luò)傳輸協(xié)議為可靠傳輸TCP和實時傳輸UDP[1-2]。TCP提供的是面向連接、可靠的字節(jié)流服務(wù),當(dāng)客戶和服務(wù)器彼此交換數(shù)據(jù)前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數(shù)據(jù)。TCP提供超時重發(fā),丟棄重復(fù)數(shù)據(jù),檢驗數(shù)據(jù),流量控制等功能,保證數(shù)據(jù)能從一端傳到另一端。UDP是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議,UDP不提供可靠性,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報發(fā)送出去,但是并不能保證它們能到達目的地。由于UDP在傳輸數(shù)據(jù)報前不用在客戶和服務(wù)器之間建立一個連接,且沒有超時重發(fā)等機制,故而傳輸速度很快。而通用數(shù)據(jù)交換 (universal data eXchange,以下簡稱 UDX)協(xié)議是完全基于標準C++開發(fā)的一套類似TCP的UDP傳輸庫,是一種可靠傳輸算法,主要原理是兼顧TCP的可靠性和UDP的實時性,而其最重要的優(yōu)勢是算法的可控性。通過分析、比較、設(shè)計后對UDX協(xié)議進行優(yōu)化,達到了UDX追求的最大帶寬利用率,吞吐量及實時性,適合窄帶環(huán)境,其算法始終貫穿其中。UDX協(xié)議,其能夠與TCP協(xié)議、UDT協(xié)議共存,并且UDX能有效降低有線、無線網(wǎng)絡(luò)中的丟包率,提高傳輸效率及響應(yīng)速度,提高信道的利用率和提升網(wǎng)絡(luò)性能。UDX支持流式,和數(shù)據(jù)包式可靠傳輸,支持中轉(zhuǎn),P2P,對文件傳輸進行了優(yōu)化,支持斷點續(xù)傳,中轉(zhuǎn)等。

1 流量控制之分析

UDP的特性適合傳輸不需要確認的數(shù)據(jù),可以再應(yīng)用程設(shè)計傳輸協(xié)議來實現(xiàn)可靠傳輸,比如RUDP協(xié)議。但是光可靠傳輸還不夠,流量控制是很重要的,滑動窗口協(xié)議是TCP的流量控制算法[3],由不同部分組成:Aimd、Slow Start、對超時事件的處理。在這個算法中,最重要的是rto超時時間與basertt的測量這兩個量。

在流量控制上主要有往返時間的增量控制、丟包時間差控制、ACK返回控制等主流控制方法。這些控制方法的核心就是控制發(fā)送窗口的大小,窗口大小與流量大小成正比關(guān)系。RTT方法代表的TCP實現(xiàn)是TCP VEGAS[4]。通過公式Expected=WindowSiz/BaseRTT和Actual= WindowSize/RTT及Diff=Expected-Actual來動態(tài)更改發(fā)送窗口大小。當(dāng)流量超過負荷時就會發(fā)生丟包現(xiàn)象,而當(dāng)丟包發(fā)生時采用折半發(fā)送窗口解除擁塞[5]。

對于擁塞預(yù)測,傳統(tǒng)的RENO算法是通過丟包檢測,這個算法理論上說是檢測的本質(zhì),但是對于超大延時網(wǎng)絡(luò),如果當(dāng)丟包后再去擁塞避免則為時已晚。因為網(wǎng)關(guān)上已經(jīng)有太多的包必須被丟棄。這樣的情況會馬上引發(fā)慢啟動。傳輸效率大大損失,這在其他UDP傳輸算法上,比如UDT,VTCP上表現(xiàn)比較明顯。擁塞預(yù)測方式主要有RTT測量和ACK頻率測量以及流量增量測量。

2 中轉(zhuǎn)模式解析與設(shè)計

如今P2PNAT已經(jīng)是比較成熟的技術(shù)[6,7],也有很詳細的原理及實現(xiàn),但是真正能穩(wěn)定使用的代碼卻很少,主要原因是參數(shù)設(shè)置復(fù)雜、代碼庸長、不便于項目實施。UDX開發(fā)庫支持P2P,但并不是所有網(wǎng)絡(luò)都能夠進行P2P的,比如對稱型網(wǎng)絡(luò)。

如何解決該問題,一般常見的方式就是中轉(zhuǎn),中轉(zhuǎn)模式是由服務(wù)器中轉(zhuǎn)數(shù)據(jù),即A->SERVER->B。而本文設(shè)計了新的UDX中轉(zhuǎn)模式如圖1所示。

圖1 UDX內(nèi)部的數(shù)據(jù)流中轉(zhuǎn)模式

新模式的優(yōu)勢是對于應(yīng)用層來說A->B之間只有一個IUDX接口,一條鏈接。而實際上數(shù)據(jù)的傳遞可能經(jīng)過了多條路由。A->SERVER1->B,A->SERVER2->B,A->SERVERN->B,當(dāng)其中一個中轉(zhuǎn)掛掉時,不影響AB之間的數(shù)據(jù)傳輸,提高了實時傳輸?shù)陌踩匦?。而且UDX會選比較快速的路徑進行傳輸。UDX是一個比較方便使用的UDP庫,可以利用接口簡單設(shè)置P2P服務(wù)器參數(shù)和超時,便可以完成P2P聯(lián)接,讓應(yīng)用程序開發(fā)變得相當(dāng)簡單,具體過程如下:

2.1 設(shè)置P2P回調(diào)函授,當(dāng)P2P成功或超時能得到通知

代碼片段1:

把主界面從這些接口派生,可以接收到UDX內(nèi)部發(fā)出的一些事件,這些事件是由UDX內(nèi)部線程回調(diào)的。關(guān)健的一步設(shè)置回調(diào)關(guān)聯(lián),利用UDX的接口SetSink把UDX和主界面關(guān)聯(lián)起來。

2.2 設(shè)置P2P參數(shù),進行P2P

代碼片段2:

2.3 處理P2P結(jié)果

代碼片段3

2.4 處理中轉(zhuǎn)結(jié)果—中轉(zhuǎn)回調(diào)事件

代碼片段4:

3 UDX協(xié)議分析與全雙工思考

3.1 如何檢測當(dāng)前鏈路實際可用流量

在以前的版本中,UDX以RTT為測量方法,通過VEGAS算法,估計流量,DIFF=EXPECT -ACT,原理就是控制當(dāng)前處在網(wǎng)絡(luò)上的變化流量在一定范圍中 (A,B),A<DIFF<B。最近UDX通過流量的增量DELBEW來測量網(wǎng)絡(luò)帶寬,但卻犧牲了反應(yīng)的靈敏性,沒有VEGAS能更加靈活的控制發(fā)送速度,VEGAS可以預(yù)測擁賽。所以現(xiàn)有的UDX算法,是以犧牲丟包來檢測最佳流量[8]。

3.2 如何在最大流量處保持發(fā)送速度

問題1已經(jīng)解決了確定最佳發(fā)送速度的時刻,但是本文算法一直以時間T在不斷前進,而且不斷有回包應(yīng)答,由于每個應(yīng)答都會增加發(fā)送窗口,實際上卻并不是不停增加發(fā)送速度就能增加實際的發(fā)送流量。

本文設(shè)計的解決方案是當(dāng)最大發(fā)送速度時便停止增加窗口,使其穩(wěn)定在一個大小,流量發(fā)送就會很平穩(wěn)。設(shè)計UDX內(nèi)部4個變量:最佳發(fā)送速度、最大發(fā)送速度、實際發(fā)送速度、最大流量相互制約控制發(fā)送速度。判斷條件是:最大流量時,實際發(fā)送速度 > 最佳發(fā)送流量的*1.25倍(實驗值)。

3.3 在其他流加入時,如何提升竟?fàn)幮宰屪约旱乃惴苡行Ю脦?/h3>

現(xiàn)在的應(yīng)用越來越多,不同的應(yīng)用有不同的網(wǎng)絡(luò)需求。有時為了保證一些數(shù)據(jù)能夠最快的傳輸出去,必須讓其占用更多的帶寬,典型的就是視頻語音數(shù)據(jù)。這里的核心問題是當(dāng)網(wǎng)絡(luò)在一個平橫狀態(tài)下,UDX保持在最佳狀態(tài),如何檢測有其他流加入?

經(jīng)過反復(fù)實驗,當(dāng)有流加入時會有更多的丟包、更長的往返時間、傳輸質(zhì)量的下降和流量的減少。早期的版本,UDX會因為平橫打破去尋找新的平橫點。由于以前算法的缺陷有時在沒有找到新的平衡點時可能已經(jīng)擊穿了網(wǎng)絡(luò),這樣UDX可能就失效了,會重新進入慢起動,效率有很大損失。如果單純的去看丟包率,往返時間是不會找到真正的解決辦法的,雖然在某些網(wǎng)絡(luò)上可以固定一些參數(shù),比如往返時間的變化率,流量增量等,可以檢測到但都不夠靈活和準確。

筆者最終選擇了逼近算法,而不是通過某一個量來檢測。當(dāng)平橫打破時,設(shè)計UDX偵測RTT的變化,這些變化本質(zhì)上是引起了流量的變化,結(jié)合實際的應(yīng)答流量,來影響前面提到的4個量,并通過問題1的公式很快達到新的平橫。

3.4 當(dāng)其他流離開時如何恢復(fù)到最佳狀態(tài),即以最小的RTT,換取最大的帶寬

以前的UDX版本達到了新的平橫是不能回到最開始的平橫點時。新的平橫點是建立在有新的流加入竟?fàn)幍臅r候產(chǎn)生的,當(dāng)別的流已經(jīng)離開,如何回到之前的平橫點呢?經(jīng)過嘗試,修改最大發(fā)送速度、丟包后減少的增量、窗口步進的步長等許多方法都沒有成功。最終發(fā)現(xiàn)不必調(diào)整當(dāng)前發(fā)送速度,但并不是真正的不去調(diào)整它,而是要調(diào)整本質(zhì)----控制發(fā)送速度的最佳發(fā)送速度。

在新的平橫點時最佳發(fā)送速度也發(fā)生了變化,以前UDX都沒有在流變化時去修改這個值,UDX就一直處于這個新的平衡點,這個新的平橫點是處于最大流量的點,也是非常接近擁塞點,若不調(diào)整稍有網(wǎng)絡(luò)波動就會發(fā)生丟包。最佳速度根據(jù)往返時間進行調(diào)整后,發(fā)送速度也會自然因為本文前面提到的四個量的平橫判斷條件,逐步恢復(fù)到最佳點。

3.5 不管是大包小包,滿足以上4點要求

目前主流算法上,對流量計算都是假定每個包是一個最小單元MSS。在此基礎(chǔ)上進行傳輸流量計算是不準確的。比如UDT中計算m_dPktSndPeriod= m_dCWndSize/(m_iRTT+ m_iRCInterval);這里 m_dCWndSize就是發(fā)送窗口的大小,如果其中每個包都是以MSS來計算的話,這個算法是無錯的。但是有些應(yīng)用發(fā)的包很小,比如一些命令、在竟技游戲中一個操作都只有幾個字節(jié),特別是視頻方面BPI偵都有可能,均小于MSS,計算出來的流量和實際流量差距就非常大了,故UDT是不適合這種應(yīng)用的收發(fā)的。盡管在窄帶下?lián)砣刂品矫?,以前版本的UDX已經(jīng)領(lǐng)先UDT,但和UDT有同樣問題。一切假定也是MSS。

3.6 如何讓一個連接在處于良好的雙工狀態(tài)并滿足以上要求

其實本質(zhì)答案也是第一個問題,就是檢測最大流量的方式。檢測方式主要有兩種:一種是VEGAS為代表的以RTT為核心的算法,VEGAS這類算法RTT是共享的,一邊的傳輸會嚴重影響另一邊的傳輸,并且是以單邊流量低者為衡量,顯然大大降低有效利用率;另一種是以RENO為代表的丟包檢測,RENO算法可以完成檢測,但是直到丟包為止,必然間接影響到回包,同樣會影響到另一方。

筆者設(shè)計UDX算法是不同于前面二者的,是通過檢測流量的增量來控制的。在雙工的時候,并不會因為RTT的變化而影響單邊的流量算法,相當(dāng)于獨立的兩條鏈路,從而得到雙工傳輸較好質(zhì)量。

4 利用VEGAS+SACK來實現(xiàn)UDX算法

經(jīng)過以上分析最終選擇利用VEGAS+SACK來實現(xiàn)算法。VEGAS可以精確控制當(dāng)前傳送的最大流速,可以確定發(fā)送窗口大小。SACK[9]可以實現(xiàn)協(xié)帶多個ACK,防止ACK丟失,從而可以大大提高效率。

4.1 算法設(shè)計過程中兩點思考

對于周期性發(fā)送新數(shù)據(jù)的問題,考慮到每收到一個ACK時,表明管道中有一個數(shù)據(jù)分組離開網(wǎng)絡(luò),可以立即追加一個新的分組。所以把周期性發(fā)送1個管道的數(shù)據(jù)量改成半個管道數(shù)據(jù),可以大大提高雙工時的效率和公平性。

設(shè)計重傳策略,把重傳包放在一個fifo的數(shù)組中,總是考慮最先傳送的包是否超時,達到防止過多的重傳。對網(wǎng)絡(luò)差的情況下,效率提高明顯。工作流程如圖2所示。

圖2 工作流程

4.2 ACK設(shè)計

同時回傳多個包的ack,可以彌補其中某些ack丟失,從而節(jié)省了重傳帶寬增加了傳輸效率。當(dāng)然快速重傳的設(shè)計是當(dāng)某個包,聯(lián)續(xù)收到34個sack的時候,可以斷定,此包已經(jīng)丟失,可以在大于一個rto的情況進行重傳。Ack設(shè)計如圖3所示。

圖3 ACK設(shè)計

當(dāng)VEGAS在小于diff的時候會不斷增大窗口,則會導(dǎo)致當(dāng)緩沖全部用完,而最前面的序號沒有確認,實際可發(fā)數(shù)據(jù)變得非常少,遠小于發(fā)送窗口大小,rtt會因為數(shù)據(jù)發(fā)送量的減少而變短。由于rtt變短,造成發(fā)送窗口的繼續(xù)變大,當(dāng)窗口大小大于實際流量帶寬的時候,更容易發(fā)生丟失,從而造成一種死循環(huán)。

針對這一問題的優(yōu)化方案是:增加一個最大窗口,當(dāng)發(fā)送窗口在最大窗口一半時,如果發(fā)生包丟失,窗口大小立即--。而小于最大窗口一半時,+=1/wndsize。當(dāng)沒有丟包時,如果小于最大窗口一半時wndsize++,大于一半時 +=1/wndsize。這樣當(dāng)接近伐值時可以慢速增長和發(fā)生擁塞時快速減少發(fā)送數(shù)據(jù),使發(fā)送流量接近最大發(fā)送速度。優(yōu)化算法后,在丟包率本身就很高的網(wǎng)絡(luò)這種處理方法會大大的降低發(fā)送速度。因為丟包過多,窗口不能變得很大。這種網(wǎng)絡(luò)條件下只有盡可能的多發(fā)數(shù)據(jù),有效數(shù)據(jù)的絕對量則多一些,當(dāng)然丟包會更多一些。必定浪費很多帶寬,在多個流竟?fàn)幍臈l件下,會嚴重影響其他流。本文算法是一種保守的處理方法,扶強不扶弱,從而可以減少浪費。此算法更適應(yīng)用在文件傳輸和即時通訊領(lǐng)域。

5 UDT協(xié)議和UDX的測試結(jié)果比較

5.1 主要特點

UDT的CC算法適合大塊數(shù)據(jù)的數(shù)據(jù)源共享高帶寬(廣域網(wǎng))的情況;主要目標是效率、公平、穩(wěn)定。和TCP并存。UDX追求的是最大帶寬利用率,吞吐量及實時性。

5.2 性能比較

UDT測試結(jié)果如圖4,圖5,圖6所示。體現(xiàn)了UDT協(xié)議的效率、公平、穩(wěn)定。在相同網(wǎng)絡(luò)環(huán)境下測試結(jié)果:UDX:250KB/秒,丟包率是38.4%.Udx:386KB/秒,包率12%。

圖4 UDT測試結(jié)果 (1)

5.3 UDT測試

在控制臺中是UDT 4.6版本的客戶端連上了測試公網(wǎng)的服務(wù)器模擬發(fā)送數(shù)據(jù)。對appclient的輸出信息做了簡單修改,比如輸出的第一列是實時速度,最后一列是丟包數(shù),第二列是發(fā)送總數(shù)。從最后得到的圖形看出,這個版本的UDT在發(fā)送速度在最高點3mb左右,轉(zhuǎn)化成B就是400kB,最小在0.98mb就是110KB左右,因為UDT沒有平均速度,只有實時速度,不能準確的知道平均速度是多少,現(xiàn)在憑上面測試出的實時速度,最多在250KB/秒,而丟包率是5111/(5111+8189)=38.4%。測試結(jié)果如圖7所示。

圖7 UDT測試結(jié)果

5.4 UDX測試

經(jīng)測試得到如下截圖,在紅框里顯示的是實時速度和平均速度,很顯然是386KB遠大于UDT。并且右上角丟包率是12%也遠小于UDT。在從流量軟件上看兩者的流量圖區(qū)別,UDT開始發(fā)包流量很高,然后迅速下降,而且不能保持。后者是UDX,流量相對穩(wěn)定、密集且飽滿。UDX測試與比較UDT結(jié)果如圖8所示。

圖8 UDX測試與比較UDT結(jié)果

6 UDX在改進算法后與最新版本的VTCP比較測試結(jié)果

與該版本的VTCP的作者討論交流后該版本的測試數(shù)據(jù)也很詳細,包括平均速度、實時速度、丟包等,圖最下方配上流量圖。VTCP測試結(jié)果如圖9所示。

圖9 VTCP測試結(jié)果

本文最重視的是速度,UDX是225kB/S,VTCP是193KB/秒,其實已經(jīng)相當(dāng)接近了,然而丟包率VTCP是23%而UDX是13%。左下角是兩次比較的流量圖。UDX測試結(jié)果與比較VTCP結(jié)果如圖10所示。

圖10 UDX測試結(jié)果與比較VTCP結(jié)果

7 優(yōu)化后的UDX優(yōu)勢

7.1 帶寬的評估、預(yù)測

(1)在檢測最大發(fā)送窗口的時候,是參照RENO算法,丟包檢測。但是在之個過程中,UDX還檢測了ACK的回復(fù)率,當(dāng)出現(xiàn)ACK回復(fù)頻率發(fā)生變化 (變化率K>0.35)時表明現(xiàn)在網(wǎng)絡(luò)出現(xiàn)了波動,可以預(yù)測已經(jīng)達到擁塞臨界,這有點象VEGAS一樣,可以提前預(yù)測出現(xiàn)擁塞,這時UDX調(diào)整慢啟動閥值,提前進入擁塞避免階段。

(2)結(jié)合了SACK算法,每個ACK協(xié)帶了多個應(yīng)答包,從而精確實現(xiàn)了選擇性重傳。減少了不必要的重傳。與傳統(tǒng)ACK不同點是,協(xié)帶了更多的ACK,而且設(shè)計了新的ACK結(jié)構(gòu),增加壓縮ACK方法,從而應(yīng)答數(shù)據(jù)量也比較少。

(3)在擁塞避免階段,通過計算DIFF= minrtt*(wnd/minrtt-wnd/rtt)<avgbew*0.35f,提前預(yù)測擁塞。這個不同點在avgbew,這個值是通過ACK應(yīng)答計算而來,接近真實值,從而避免了傳統(tǒng)VEGAS的計算值不準確(一般不準確發(fā)生在,由于網(wǎng)關(guān)的硬件限速)。

(4)丟包檢測算法,每個發(fā)送包上記錄了,上次發(fā)送的時間和最大發(fā)送序號,當(dāng)收到ACK時和當(dāng)前對應(yīng)量進行比較,可以精確知道哪個包需要重傳,而不必等到超時到來。從而可以快速響應(yīng)重傳節(jié)省了時間。

(5)快速恢復(fù),當(dāng)UDX聯(lián)續(xù)收到二個新的ACK時立即恢復(fù)到先前的發(fā)送窗口,減少了恢復(fù)開消。

(6)結(jié)合WEST WOOD,通過統(tǒng)計方式計算流量,通過RTT/WND=BEW的公式,計算理論發(fā)送窗口和實際窗口進行比較,從而提高穩(wěn)定性,使發(fā)送穩(wěn)定在實際的帶寬。

7.2 快速重傳

UDX的ACK設(shè)計,其實就是SACK協(xié)議,但是實現(xiàn)手法是不同于SACK,SACK是首尾序號對,而UDX是一個起始序號,及后面的相對序號組成,這樣可以容納更多的ACK。當(dāng)發(fā)送方收到任何一個ACK時就可以準確的確定哪個包已經(jīng)丟掉了,這時可以馬上重傳,而不需要等到超時后再重傳,從而提高了實時性及間接的提高了吞吐量。

7.3 AIDM 的改進[10]

(1)慢啟動階段是W +=1,擁塞避免階段是W +=1/W;

(2)UDX在窗口管理上,也采用了不同的設(shè)計方法。其中引入了一個飽和狀態(tài),也就是最佳狀態(tài)。而實際發(fā)送速度是這個最佳狀態(tài)時的1.25倍發(fā)送速度。這樣可以保證較高的竟?fàn)幮浴?/p>

(3)UDX中度量的單位是當(dāng)前流量,控制窗口的核心思想是控制流量的增量。當(dāng)增量趨近于實際流量的<=5%波動時,認為流量已經(jīng)最大,這時進入飽和狀態(tài),當(dāng)UDX進入飽和狀態(tài)時,轉(zhuǎn)入擁塞避免加速模式,窗口不增大反而會減小,達到一個動態(tài)平橫,使發(fā)送速度,始終穩(wěn)定在一個水平上。

(4)另外不同點是,窗口控制是傳統(tǒng)TCP是每周期增長幅度最大為1,而UDX是ACK驅(qū)動窗口增長的,并沒有限制在RTT內(nèi)變化值,所以加速可能會在一個RTT內(nèi)超過1。

(5)UDX針對不同的網(wǎng)絡(luò)進行了RTT的自動適應(yīng)算法,引入了一個筆者定義的理論流量的概念,其與實際收到的數(shù)據(jù)計算的流理進行比較,當(dāng)理論流量小于實際流量時會對窗口進行校正,使其保持在當(dāng)前流量的窗口大小,這樣流量更加平穩(wěn),不會出現(xiàn)偏差。只有流量的平穩(wěn)性才能讓其他參數(shù)有意義,否則流量控制成為空談,這也是其他算法的缺點。

(6)丟包控制:UDX每收到一個丟包信號時,會對擁塞窗口進行調(diào)整,采用sstresh=wnd*a,wnd+=b;其中a,b(可負)是UDX經(jīng)驗值,具體參數(shù)可以調(diào)整。

(7)結(jié)合丟包控制:UDX在每100個ACK到來會計算一次丟包率,根據(jù)丟包率對A,B進行調(diào)整,這樣更能結(jié)合實際網(wǎng)絡(luò)狀況對窗口進行調(diào)整。為了追求最大速度,UDX是適當(dāng)?shù)脑试S丟包,以保證數(shù)據(jù)的最大吞吐量。

7.4 算法的優(yōu)化

主要優(yōu)化在于重傳策略,及超時時間計算,重傳策略上不同與其他算法,主要是

(1)超時重傳是由ACK驅(qū)動,而不是僅依靠定時器,這樣可以更快的重傳數(shù)據(jù),增加實時性。

(2)由于UDP的特性,目前 UDX是采用1.5倍計算的超時時間。超時時間為RTT+4*|dRTT|,如果按傳統(tǒng)的TCP的指數(shù)退避算法計算超時時間,在丟包和大延遲的網(wǎng)絡(luò),性能會急劇下降。

(3)UDX主要重傳發(fā)生在ACK到來時,由于收到ACK,說明網(wǎng)絡(luò)正常,這時重發(fā)數(shù)據(jù),比盲目依靠定時器重傳可靠的多。UDX定時器只會每次發(fā)一個重發(fā)包,當(dāng)網(wǎng)絡(luò)恢復(fù)時,就會重新依靠ACK把重發(fā)包快速發(fā)出去。

(4)啟動加速時,UDX是通過理論流量作為參考的,當(dāng)計算的理論流量,在<1/MINRTT時,UDX是忽略丟包的,這樣可以較快的加速到實際最大帶寬

7.5 針對wifi調(diào)整參數(shù)

在無線3G領(lǐng)域,UDX沒有做過多的優(yōu)化,無線網(wǎng)絡(luò)主要特性和有線網(wǎng)絡(luò)還是比較明顯。其特點是波動大、流量不穩(wěn)定、丟包率不固定、完全受環(huán)境的信號影響。從這個特性上來看,UDX的若干改進還是比較適合這種環(huán)境,較其他算法,更有抗丟包和干擾。比如,ACK設(shè)計及快速重傳等。

7.6 友好性

UDX相對TCP來說,是完全不友好的,一般UDX和TCP同時運行,TCP所占流量基本一半不到。較其他算法更具有搶占性。這個主要原因還是由于UDX算法決定的。UDX在超時重傳上比較精確,造成其他的算法還沒有來得及恢復(fù)窗口時,UDX已經(jīng)恢復(fù)到了最佳窗口從而更多的利用帶寬。

7.7 在多媒體傳輸上的優(yōu)勢

(1)Udx主要體現(xiàn)在其實時性,特別適合傳送視頻,網(wǎng)絡(luò)越復(fù)雜,環(huán)境 越是惡劣,越是適合UDX。對于音頻,UDX適合在低延遲,低丟包率的網(wǎng)絡(luò) (RTT小于150MS,丟包小于5%)。因為是可靠數(shù)據(jù)傳播 ,相對于RTP這類實時協(xié)議音質(zhì)要好很多。但實時性略差,或人感覺不出來,在丟包環(huán)境,只要延遲小于100ms,語音較RTP有較大提高,實時性也感覺不出來。

(2)對于丟包大,特別是延遲大的網(wǎng)絡(luò),由于個別包的丟失,可能會造成較大的語音延遲。但UDX在算法層支持不可靠和半可靠傳輸,相當(dāng)于一個變相的折中。這時和RTP沒有明顯區(qū)別。

(3)另外一個特點可以說是另外的,UDX支持單條連接上內(nèi)置了四條子通道。每條通道相當(dāng)于一個小的UDX連接,都是可靠傳輸,也可以設(shè)置成不可靠,各條子通道不影響。

(4)特點是各個子通道可以設(shè)置優(yōu)先級別,這樣,可以支持優(yōu)先發(fā)送某些數(shù)據(jù)。

(5)比如語音或遠程控制,這類需要實時畫面的應(yīng)用,不會影響總共的吞吐量,這相當(dāng)于UDX在應(yīng)用層上一個優(yōu)化設(shè)計。

8 結(jié)束語

優(yōu)化后的UDX協(xié)議,針對wifi調(diào)整參數(shù)使得UDX的若干改進適合無線領(lǐng)域,較其他算法,更有抗丟包和干擾;在算法上主要優(yōu)化在于重傳策略,及超時時間計算兩方面,超時重傳非常精確,在其他的算法還沒有來得及恢復(fù)窗口時,UDX已經(jīng)恢復(fù)到了最佳窗口從而更多的利用代寬。其優(yōu)勢在于可靠傳輸?shù)幕A(chǔ)上追求最大代寬利用率,吞吐量及實時性。高效率是其優(yōu)點,友好性是其缺點。

[1]WANG Yanfang,DAI Yong,LIU Donghua,et al.Research and application of reliable data transmission technique based on UDP [J].Computer Engineering and Applications,2010,46(3):105-108 (in Chinese).[王艷芳,戴永,劉東華,等.基于UDP的數(shù)據(jù)可靠傳輸技術(shù)研究與應(yīng)用 [J].計算機工程與應(yīng)用,2010,46 (3):105-108.]

[2]REN Yongmao,TANG Haina,LI Jun,et al.Performance comparison of UDP-based protocols over fast long distance network [J].Information Technology Journal,2009,8 (4):600-604.

[3]LI Wanpeng.Network flow control and flow analysis [D].Beijing:Beijing University of Posts and Telecommunications,2011(in Chinese).[李萬鵬.網(wǎng)絡(luò)流量控制及流量分析 [D].北京:北京郵電大學(xué),2011.]

[4]XIE Yining,SUN Guanglu,SU Jie,et al.Improvement and research on congestion control algorithm of TCP vegas [J].Journal of Harbin University of Science and Technology,2011,16(3):26-30 (in Chinese).[謝怡寧,孫廣路,蘇潔,等.基于TCP Vegas擁塞控制算法的研究與改進 [J].哈爾濱理工大學(xué)學(xué)報,2011,16 (3):26-30.]

[5]LI Qianmu,XU Manwu,YAN Han,et al.A novel network congestion forecast method [J].Journal of System Simulation,2006,18 (8):2101-2104 (in Chinese). [李千目,許滿武,嚴悍,等.一種網(wǎng)絡(luò)擁塞預(yù)測新方法 [J].系統(tǒng)仿真學(xué)報,2006,18(8):2101-2104.]

[6]HUANG Guimin,ZHU Xiaoshu.Research on peer-to-peer model of passing through NAT devices based-UDP protocol[J].Computer Engineering and Design,2010 (2):317-320(in Chinese).[黃桂敏,朱曉姝.基于UDP協(xié)議穿透NAT設(shè)備的對等網(wǎng)絡(luò)模型研究 [J].計算機工程與設(shè)計,2010 (2):317-320.]

[7]DUAN Zhiming.Research and design of NAT travsering scheme based on hybrid P2Pnetwork under UDP [D].Harbin:Harbin University of Science and Technology,2010 (in Chinese).[段志鳴.基于混合式P2P網(wǎng)絡(luò)UDP下NAT穿越方案的研究與設(shè)計 [D].哈爾濱:哈爾濱理工大學(xué),2010.]

[8]DUAN Lei.Design and implementation of network traffic control system [D].Beijing:Beijing University of Posts and Telecommunications,2011 (in Chinese).[段磊.網(wǎng)絡(luò)流量控制系統(tǒng)的設(shè)計與實現(xiàn) [D].北京:北京郵電大學(xué),2011.]

[9]LV Zhonglin,ZHU Minghua.Fast SACK scheme for overall throughput enhancement based on mullti-h(huán)omed SCTP [J].Computer Science,2012,39 (6A):117-119 (in Chinese).[呂重霖,朱鳴華.基于多宿SCTP的提高整體吞吐量的快速SACK策略 [J].計算機科學(xué),2012,39 (6A):117-119.]

[10]Martin Corless,Robert Shorten.Deterministic and stochastic convergence properties of AIMD algorithms with nonlinear back-off functions [J]. Automatica,2012,48 (7):1291-1299.

猜你喜歡
重傳包率傳輸
支持向量機的船舶網(wǎng)絡(luò)丟包率預(yù)測數(shù)學(xué)模型
適應(yīng)于WSN 的具有差錯重傳的輪詢服務(wù)性能研究
一種基于噴泉碼的異構(gòu)網(wǎng)絡(luò)發(fā)包算法*
基于TDMA的wireless HART網(wǎng)絡(luò)多路徑重傳算法
電磁線疊包率控制工藝研究
混合型隨機微分方程的傳輸不等式
牽引8K超高清傳輸時代 FIBBR Pure38K
無線網(wǎng)絡(luò)中基于網(wǎng)絡(luò)編碼與Hash查找的廣播重傳研究
電子制作(2018年18期)2018-11-14
面向異構(gòu)網(wǎng)絡(luò)的多路徑數(shù)據(jù)重傳研究?
界首市| 吉安县| 牙克石市| 宁阳县| 疏勒县| 西乡县| 鄱阳县| 南涧| 新宁县| 乐平市| 龙山县| 宜川县| 鹿邑县| 永德县| 佛教| 商南县| 嘉义市| 扎鲁特旗| 松原市| 商都县| 阿拉善盟| 胶南市| 紫阳县| 吉首市| 江安县| 唐河县| 威海市| 东港市| 调兵山市| 手机| 日照市| 宁晋县| 五指山市| 兴隆县| 将乐县| 五华县| 乌兰县| 太原市| 阿城市| 南平市| 沅陵县|