專利名稱:一種基于3g網(wǎng)絡(luò)音視頻傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到3 G網(wǎng)絡(luò)的音視頻傳輸方法技術(shù)領(lǐng)域,尤其是涉及到利用UDP協(xié)議(User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)進(jìn)行音視頻傳輸?shù)膶?shí)時(shí)性和穩(wěn)定性提升方面。
背景技術(shù):
通信及互聯(lián)網(wǎng)等需要進(jìn)行數(shù)據(jù)傳輸?shù)膱?chǎng)合,常用到傳輸控制協(xié)議(TCP)、其能夠用于有線、無(wú)線通信領(lǐng)域,個(gè)人計(jì)算機(jī)(PC)之間或手持終端、移動(dòng)通信設(shè)備通過(guò)有線或無(wú)線網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信。如,在移動(dòng)終端與PC,PC與PC之間進(jìn)行數(shù)據(jù)交換。但傳統(tǒng)網(wǎng)絡(luò)使用的TCP通信協(xié) 議中擁塞控制機(jī)制建立在擁塞是網(wǎng)絡(luò)丟包原因的基礎(chǔ)上,而且為了兼容不同TCP實(shí)現(xiàn)的友好性,所以該機(jī)制不能適應(yīng)有線、無(wú)線網(wǎng)絡(luò)中高誤碼率、高延遲造成的鏈路丟包以及加速慢等情況。以傳統(tǒng)TCP協(xié)議為例,由于其發(fā)展歷史及實(shí)現(xiàn)原理有其先天和后天的原因,在很多應(yīng)用領(lǐng)域已經(jīng)不能滿足現(xiàn)有需求。在算法上,采用的是保守算法,在超時(shí)重傳及發(fā)送窗口增大算法上趨于保守,使效率有一定損失。另一方面,算法在重傳策略上,也存在一些缺陷,恢復(fù)速度相對(duì)較慢。而且TCP主要是針對(duì)有線網(wǎng)設(shè)計(jì),在誤碼率較高的情況下,性能急劇下降。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決現(xiàn)有TCP通信協(xié)議存在傳輸中高誤碼率及高延遲率的技術(shù)不足,而提出的一種基于3G網(wǎng)絡(luò)音視頻傳輸方法。為解決本發(fā)明所提出的技術(shù)問(wèn)題,采用的技術(shù)方案為一種基于3G網(wǎng)絡(luò)音視頻傳輸方法,客戶端與服務(wù)器端利用UDP協(xié)議進(jìn)行音視頻傳輸,其特征在于所述方法采用的是滑動(dòng)窗口機(jī)制,UDX協(xié)議控制思想,根據(jù)TCP Reno算法,UDX檢測(cè)ACK (Acknowledgement,應(yīng)答包)的回復(fù)率,當(dāng)出現(xiàn)ACK回復(fù)頻率發(fā)生變化,變化率K > O. 35時(shí),預(yù)測(cè)已經(jīng)達(dá)到擁塞臨界,在沒(méi)有丟包前,提前進(jìn)入擁塞避免階段;在進(jìn)入擁塞避免階段后,主要通過(guò)測(cè)量客戶端與服務(wù)器端RTT往返時(shí)間,換算通道流量,采用WND (窗口句柄)=BEW*RTT公式計(jì)算一個(gè)大致相同的理論窗口,讓發(fā)送窗口不小于這個(gè)理論窗口,控制發(fā)送流量來(lái)進(jìn)行擁塞控制。所述方法在慢啟動(dòng)階段發(fā)送窗口采用W += I方式增加;擁塞避免階段發(fā)送窗口采用W += 1/W方式增加。在擁塞避免階段,實(shí)際發(fā)送速度是在擁塞臨界時(shí)的I. 25倍發(fā)送速度。作為對(duì)本發(fā)明方法的進(jìn)一步改進(jìn)的方案
還包括有快速重傳方法;所述的ACK攜帶有與各發(fā)送窗口對(duì)應(yīng)的兩個(gè)以上應(yīng)答包,通過(guò)丟包檢測(cè)算法,每個(gè)發(fā)送包上記錄上次發(fā)送的時(shí)間和最大發(fā)送序號(hào),當(dāng)收到ACK時(shí)與當(dāng)前對(duì)應(yīng)量進(jìn)行比較,確定需要重傳的包,對(duì)需重傳的包執(zhí)行快速響應(yīng)重傳。在客戶端與服務(wù)器端利用UDP協(xié)議進(jìn)行音視頻傳輸之前,客戶端登陸中央調(diào)度服務(wù)器,上報(bào)相關(guān)的位置,服務(wù)器商類型,及網(wǎng)絡(luò)狀況信息,中央調(diào)度服務(wù)器根據(jù)客戶端上報(bào)信息,采用最短路徑及服務(wù)器性能權(quán)重算法得到最優(yōu)服務(wù)器端,然后把最優(yōu)服務(wù)器端相關(guān)的音視頻源服務(wù)器和分布式轉(zhuǎn)發(fā)服務(wù)器信息傳遞給客戶端。本發(fā)明的有益效果為本發(fā)明與TCP類似,也是采用滑動(dòng)窗口協(xié)議,但是,在其具體控制方面與傳統(tǒng)的TCP算法有較大不同,控制思想也不同。本發(fā)明采用UDX (UniversalData exchange通用數(shù)據(jù)交換)協(xié)議控制思想,采用對(duì)帶寬的評(píng)估,預(yù)測(cè),檢測(cè)并預(yù)測(cè)擁塞臨界(最大發(fā)送窗口),提前預(yù)測(cè)出現(xiàn)擁塞,這時(shí)UDX調(diào)整慢啟動(dòng)閥值,提前進(jìn)入擁塞避免階段,主要是通過(guò)測(cè)量?jī)啥薘TT (Round-Trip Time,往返時(shí)延)往返時(shí)間,換算通道流量,通過(guò)控制發(fā)送流量來(lái)進(jìn)行擁塞控制。另外,本發(fā)明還結(jié)合了 SACK算法,每個(gè)ACK協(xié)帶了多個(gè)應(yīng)答包,從而精確實(shí)現(xiàn)了選擇性重傳,減少了不必要的重傳。還 有,采用了調(diào)度算法,得到最優(yōu)服務(wù)器,提供最可靠穩(wěn)定的服務(wù)。
圖I為本發(fā)明的調(diào)節(jié)算法的工作原理 圖2為傳統(tǒng)TCP傳輸協(xié)議的工作原理 圖3為傳統(tǒng)TCP傳輸協(xié)議的傳輸效果 圖4為本發(fā)明的音視頻傳輸方法的工作原理 圖5為本發(fā)明的傳輸效果 圖6為本發(fā)明與傳統(tǒng)TCP數(shù)據(jù)傳輸測(cè)試質(zhì)量比對(duì)圖。
具體實(shí)施例方式以下結(jié)合附圖和本發(fā)明優(yōu)選的具體實(shí)施例,對(duì)本發(fā)明的方法作進(jìn)一步地說(shuō)明。本發(fā)明包括有在客戶端與服務(wù)器端利用UDP協(xié)議進(jìn)行音視頻傳輸之前的調(diào)度處理方法,在傳輸過(guò)程中的擁塞控制處理方法,以及在丟包后的快速重傳處理方法。其中所述的客戶端主要指的是手機(jī)終端、手持終端、移動(dòng)通信設(shè)備等采用3 G無(wú)線聯(lián)網(wǎng)的移動(dòng)終端。參照?qǐng)DI中所示,調(diào)度處理方法是基于UDP協(xié)議傳輸音視頻的調(diào)度算法,根據(jù)網(wǎng)絡(luò)情況選擇不同服務(wù)器端,為兩點(diǎn)之間或一對(duì)多點(diǎn)進(jìn)行實(shí)時(shí)音視頻通訊的機(jī)制。如手機(jī)客戶端首先登陸中央調(diào)度服務(wù)器后,上報(bào)自己相關(guān)的位置,服務(wù)器商類型,及網(wǎng)絡(luò)狀況(延遲)等信息,中央調(diào)度服務(wù)器進(jìn)行負(fù)載均衡算法,進(jìn)行信息匹配,規(guī)則按Dijkstra (迪杰斯特拉)算法(Dijkstra算法是典型的單源最短路徑算法)思想路徑path (G) = (V,E) V(服務(wù)器最小容量)E(最小延遲,是否在同一區(qū)域)進(jìn)行描述,在這個(gè)公式下,通過(guò)中央調(diào)度服務(wù)器獲取相關(guān)信息進(jìn)行匹配,找到最佳路徑G0,也即是確定最佳的服務(wù)器端,把最佳路徑GO的信息回傳給手機(jī)客戶端,也即是根據(jù)手機(jī)客戶端上報(bào)信息情況,采用最短路徑及服務(wù)器性能權(quán)重算法得到最優(yōu)服務(wù)器端,提供最可靠穩(wěn)定的服務(wù),然后把最優(yōu)服務(wù)器端的相關(guān)的音視頻源服務(wù)器和分布式轉(zhuǎn)發(fā)服務(wù)器信息傳遞給手機(jī)客戶端。這樣手機(jī)客戶端可以通過(guò)相關(guān)信息進(jìn)行網(wǎng)絡(luò)通訊,使用服務(wù),在傳輸過(guò)程中,通過(guò)改良的UDP協(xié)議進(jìn)行音視頻傳輸,有效提高音視頻服務(wù)器的實(shí)時(shí)性,穩(wěn)定性,聯(lián)接率和縮短聯(lián)接時(shí)間。參照?qǐng)D2和圖3中所示,服務(wù)器端即為流媒體服務(wù)器,移動(dòng)終端通過(guò)傳統(tǒng)TCP傳輸以聯(lián)通WCDMA3G卡為例與流媒體服務(wù)器建立連接,一般現(xiàn)在上傳流量在8KB/秒,下載15 25KB/秒左右,TCP傳輸采用滑動(dòng)窗口機(jī)制,以窗口大小來(lái)確定實(shí)際的發(fā)送速度,窗口越大速度越大,反之,越小則傳輸?shù)臄?shù)據(jù)量越小,當(dāng)本協(xié)議建立好鏈接后,發(fā)送方發(fā)送一個(gè)分組單元給對(duì)方,接收方收到后,發(fā)送一個(gè)ACK進(jìn)行確認(rèn),當(dāng)收到一個(gè)ACK確認(rèn)后,發(fā)送方以指數(shù)的2次方方式增大窗口,所以現(xiàn)在的發(fā)送窗口增加為2,所以現(xiàn)在需要立即發(fā)送2個(gè)分
組,接收方立即回復(fù)2個(gè)ACK,這時(shí)發(fā)送方繼續(xù)擴(kuò)大為4,......8......16…..32依此類推不
斷增加,到接近最佳窗口時(shí)進(jìn)入擁塞避免階面,因?yàn)槭侵笖?shù)增長(zhǎng),所以,慢起動(dòng)并不慢。我們假定相同的條件下,當(dāng)分組單元為8時(shí)為最佳窗口時(shí),受到線路丟包,或信息丟失而起來(lái)的丟包,TCP受到丟包信息后,利用折半窗口的原則更改為4,每收到一個(gè)包后,窗口增加I/WND,然后再線性增加直到下一次丟包,再折半,其實(shí)際流量也 是波動(dòng)的,當(dāng)后來(lái)沒(méi)有丟包后,恢復(fù)較慢。參照?qǐng)D4和圖5中所示,本發(fā)明的協(xié)議實(shí)現(xiàn)方法,也是采用滑動(dòng)窗口機(jī)制,但是,在其具體控制方面與傳統(tǒng)的TCP算法有較大不同,控制思想也不同。UDX協(xié)議控制思想,根據(jù)TCP Reno算法,UDX檢測(cè)ACK的回復(fù)率,當(dāng)出現(xiàn)ACK回復(fù)頻率發(fā)生變化,變化率K > O. 35時(shí),預(yù)測(cè)已經(jīng)達(dá)到擁塞臨界,在沒(méi)有丟包前,提前進(jìn)入擁塞避免階段;在進(jìn)入擁塞避免階段后,主要通過(guò)測(cè)量客戶端與服務(wù)器端RTT往返時(shí)間,換算通道流量,采用WND = BEW*RTT公式計(jì)算一個(gè)大致相同的理論窗口,讓發(fā)送窗口不小于這個(gè)理論窗口,控制發(fā)送流量來(lái)進(jìn)行擁塞控制。本發(fā)明在慢啟動(dòng)階段和TCP類似,發(fā)送窗口采用W += I方式增加,而在擁塞避免階段發(fā)送窗口采用是W += 1/W方式增加;UDX在窗口管理上,也采用了不同的設(shè)計(jì)方法。其中引入了一個(gè)飽和狀態(tài),也就是預(yù)測(cè)擁塞臨界時(shí)為最佳狀態(tài)。而實(shí)際發(fā)送速度是這個(gè)最佳狀態(tài)時(shí)的I. 25倍發(fā)送速度,這樣可以保證較高的竟?fàn)幮?。UDX中,度量的單位是當(dāng)前流量,控制窗口的核心思想是,控制流量的增量。當(dāng)增量趨近于實(shí)際流量的<=5%波動(dòng)時(shí),認(rèn)為流量已經(jīng)最大,這時(shí)進(jìn)入飽和狀態(tài),當(dāng)UDX進(jìn)入飽和狀態(tài)時(shí),轉(zhuǎn)入擁塞避免加速模式,也即是UDX調(diào)整慢啟動(dòng)閥值,提前進(jìn)入擁塞避免階段,窗口不增大反而會(huì)減小,達(dá)到一個(gè)動(dòng)態(tài)平橫,使發(fā)送速度,始終穩(wěn)定在一個(gè)水平上。窗口控制是,傳統(tǒng)TCP是每周期增長(zhǎng)幅度最大為1,而UDX是ACK驅(qū)動(dòng)窗口增長(zhǎng)的,并沒(méi)有限制在RTT內(nèi)變化值,所以,他的加速可能會(huì)在一個(gè)RTT內(nèi)超過(guò)I。從而可以保證現(xiàn)有的吞吐量,如果持續(xù)的丟包,BEff (最佳窗口)會(huì)不斷產(chǎn)小,其結(jié)果和TCP —樣,如果只是固定丟包或偶爾丟包,只會(huì)產(chǎn)生極小的流量抖動(dòng),實(shí)際總體的傳輸量不會(huì)受到較大變化,經(jīng)過(guò)一段時(shí)間的定時(shí)測(cè)度量觀查本協(xié)議方法對(duì)無(wú)線網(wǎng)絡(luò)有著明顯的改善,測(cè)試數(shù)據(jù)如圖6所示。本發(fā)明的方法結(jié)合了 SACK算法,每個(gè)ACK協(xié)帶了多個(gè)與發(fā)送窗口對(duì)應(yīng)的應(yīng)答包,從而精確實(shí)現(xiàn)了選擇性重傳,減少了不必要的重傳,與傳統(tǒng)ACK不同點(diǎn)是,協(xié)帶了更多的ACK,增加壓縮ACK,從而應(yīng)答數(shù)據(jù)量也比較少。快速重傳
UDX的ACK設(shè)計(jì),其實(shí)就是SACK (ACK的擴(kuò)展,是一組ACK)協(xié)議,但是實(shí)現(xiàn)手法是不同于SACK, SACK是首尾序號(hào)對(duì),而UDX是一個(gè)起始序號(hào),及后面的相對(duì)序號(hào)組成,這樣可以容納更多的ACK,當(dāng)發(fā)送方收到任何一個(gè)ACK時(shí)就可以準(zhǔn)確的確定哪個(gè)包已經(jīng)丟掉了,這時(shí)可以馬上重傳,而不需要等到超時(shí)后再重傳,從而提高了實(shí)時(shí)性及間接的提高了吞吐量。本發(fā)明還優(yōu)化了重傳策略,及超時(shí)時(shí)間計(jì)算。重傳策略上不同與其他算法,主要是超時(shí)重傳是由ACK驅(qū)動(dòng),而不是僅依靠定時(shí)器,這樣可以更快的重傳數(shù)據(jù),增加實(shí)時(shí)性。由于UDP的特性,目前UDX是采用1.5倍計(jì)算的超時(shí)時(shí)間。超時(shí)時(shí)間為RTT + 4* I dRTT (往返時(shí)間的波動(dòng)值)I,如果按傳統(tǒng)的TCP的指數(shù)退避算法計(jì)算超時(shí)時(shí)間,在丟包和大延遲的網(wǎng)絡(luò),性能會(huì)急劇下降。UDX主要重傳發(fā)生在ACK到來(lái)時(shí),由于收到ACK,說(shuō)明網(wǎng)絡(luò)正常,這時(shí)重發(fā)數(shù)據(jù),比盲目依靠定時(shí)器重傳可靠的多。UDX定時(shí)器只會(huì)每次發(fā)一個(gè)重發(fā)包,當(dāng)網(wǎng)絡(luò)恢復(fù)時(shí),就會(huì)重新依靠ACK把重發(fā)包快速發(fā)出去。啟動(dòng)加速時(shí),UDX是通過(guò)理論流量作為參考的,當(dāng)計(jì)算的理論流量,在〈1/MINRTT時(shí),UDX是忽略丟包的,這樣可以較快的加速到實(shí)際最大帶寬。由于以上的優(yōu)化,使本發(fā)明的方法在實(shí)時(shí)性和響應(yīng)速度上得到較大提高,在整個(gè)傳輸系統(tǒng)中起到很重要的基礎(chǔ)作用。本發(fā)明采用UDP協(xié)議進(jìn)行實(shí)時(shí)的音視頻傳輸 方案與傳統(tǒng)的TCP進(jìn)行傳輸音視頻,從大量實(shí)際項(xiàng)目的驗(yàn)證來(lái)看,我們從實(shí)時(shí)性上有明顯改善,從最大延遲數(shù)秒降低在2秒以內(nèi),提供的音視頻質(zhì)量明顯提高,另一方面我們手機(jī)搜尋主機(jī)需要的時(shí)間明顯縮短,聯(lián)接速度明顯提高,從以TCP為代表的,聯(lián)接一次流媒體服務(wù)器平均6秒降低到3秒以內(nèi),大大縮短聯(lián)接時(shí)間。
權(quán)利要求
1.一種基于3G網(wǎng)絡(luò)音視頻傳輸方法,客戶端與服務(wù)器端利用UDP協(xié)議進(jìn)行音視頻傳輸,其特征在于所述方法采用的是滑動(dòng)窗口機(jī)制,UDX協(xié)議控制思想,根據(jù)TCP Reno算法,UDX檢測(cè)ACK的回復(fù)率,當(dāng)出現(xiàn)ACK回復(fù)頻率發(fā)生變化,變化率K > O. 35時(shí),預(yù)測(cè)已經(jīng)達(dá)到擁塞臨界,在沒(méi)有丟包前,提前進(jìn)入擁塞避免階段;在進(jìn)入擁塞避免階段后,主要通過(guò)測(cè)量客戶端與服務(wù)器端RTT往返時(shí)間,換算通道流量,采用WND = BEW*RTT公式計(jì)算一個(gè)大致相同的理論窗口,讓發(fā)送窗口不小于這個(gè)理論窗口,控制發(fā)送流量來(lái)進(jìn)行擁塞控制。
2.根據(jù)權(quán)利要求I所述的一種基于3G網(wǎng)絡(luò)音視頻傳輸方法,其特征在于所述方法在慢啟動(dòng)階段發(fā)送窗口采用W += I方式增加;擁塞避免階段發(fā)送窗口采用W += 1/W方式增加。
3.根據(jù)權(quán)利要求I所述的一種基于3G網(wǎng)絡(luò)音視頻傳輸方法,其特征在于在擁塞避免階段,實(shí)際發(fā)送速度是在擁塞臨界時(shí)的I. 25倍發(fā)送速度。
4.根據(jù)權(quán)利要求I所述的一種基于3G網(wǎng)絡(luò)音視頻傳輸方法,其特征在于還包括有快速重傳方法;所述的ACK攜帶有與各發(fā)送窗口對(duì)應(yīng)的兩個(gè)以上應(yīng)答包,通過(guò)丟包檢測(cè)算法,每個(gè)發(fā)送包上記錄上次發(fā)送的時(shí)間和最大發(fā)送序號(hào),當(dāng)收到ACK時(shí)與當(dāng)前對(duì)應(yīng)量進(jìn)行比較,確定需要重傳的包,對(duì)需重傳的包執(zhí)行快速響應(yīng)重傳。
5.根據(jù)權(quán)利要求I所述的一種基于3G網(wǎng)絡(luò)音視頻傳輸方法,其特征在于在客戶端與服務(wù)器端利用UDP協(xié)議進(jìn)行音視頻傳輸之前,客戶端登陸中央調(diào)度服務(wù)器,上報(bào)相關(guān)的位置,服務(wù)器商類型,及網(wǎng)絡(luò)狀況信息,中央調(diào)度服務(wù)器根據(jù)客戶端上報(bào)信息,采用最短路徑及服務(wù)器性能權(quán)重算法得到最優(yōu)服務(wù)器端,然后把最優(yōu)服務(wù)器端相關(guān)的音視頻源服務(wù)器和分布式轉(zhuǎn)發(fā)服務(wù)器信息傳遞給客戶端。
全文摘要
一種基于3G網(wǎng)絡(luò)音視頻傳輸方法,涉及到3G網(wǎng)絡(luò)的音視頻傳輸方法技術(shù)領(lǐng)域,解決現(xiàn)有TCP通信協(xié)議存在傳輸中高誤碼率及高延遲率的技術(shù)不足,客戶端與服務(wù)器端利用UDP協(xié)議進(jìn)行音視頻傳輸,其特征在于所述方法采用的是滑動(dòng)窗口機(jī)制,當(dāng)出現(xiàn)ACK回復(fù)頻率發(fā)生變化,預(yù)測(cè)已經(jīng)達(dá)到擁塞臨界,在沒(méi)有丟包前,提前進(jìn)入擁塞避免階段;在進(jìn)入擁塞避免階段后,采用WND=BEW*RTT公式計(jì)算一個(gè)大致相同的理論窗口,讓發(fā)送窗口不小于這個(gè)理論窗口,控制發(fā)送流量來(lái)進(jìn)行擁塞控制。提前進(jìn)入擁塞避免階段,主要是通過(guò)測(cè)量?jī)啥薘TT(Round-TripTime,往返時(shí)延)往返時(shí)間,換算通道流量,通過(guò)控制發(fā)送流量來(lái)進(jìn)行擁塞控制。音視頻質(zhì)量明顯提高,從最大延遲數(shù)秒降低在2秒以內(nèi),提供的音視頻質(zhì)量明顯提高。
文檔編號(hào)H04N21/2662GK102790913SQ20121022707
公開(kāi)日2012年11月21日 申請(qǐng)日期2012年7月3日 優(yōu)先權(quán)日2012年7月3日
發(fā)明者李良剛, 馬斌 申請(qǐng)人:深圳市時(shí)代經(jīng)緯科技有限公司