專利名稱:自適應(yīng)多媒體流鏈路傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多媒體流鏈路傳輸方法,尤其是一種可以根據(jù)網(wǎng)絡(luò)流量情況自適應(yīng)地采用單播或多播作為數(shù)據(jù)傳輸方式的方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,單播和多播技術(shù)相繼得到了極大的發(fā)展,尤其是隨著多媒體技術(shù)的發(fā)展,流媒體技術(shù)的應(yīng)用范圍越來越廣,如網(wǎng)絡(luò)視頻會議、網(wǎng)絡(luò)現(xiàn)場音樂會、網(wǎng)絡(luò)遠程教學(xué)、網(wǎng)絡(luò)實時直播等。通常來說,在網(wǎng)絡(luò)帶寬環(huán)境能夠無限滿足流媒體傳輸需求的前提下,單播和多播技術(shù)在傳送性能上并無本質(zhì)差別,但是對于如今龐大的網(wǎng)絡(luò)用戶群而言這種理想情況基本是不會出現(xiàn)的。當只有一個或兩個客戶機向同一個服務(wù)器發(fā)出請求時,二者之間可能沒有明顯的性能差異;但當有三至五個客戶機向同一個服務(wù)器提出請求時,二者的差異就會變得比較顯著,此時,采用單播方式傳送數(shù)據(jù)的服務(wù)器將明顯力不從心,丟包和延遲現(xiàn)象比較嚴重,接收端的視頻明顯滯后、不連續(xù);當有五個以上的客戶機同時提出服務(wù)請求時,就可能造成廣播風(fēng)暴,整個網(wǎng)絡(luò)系統(tǒng)處于崩潰的邊緣。雖然網(wǎng)絡(luò)流量較大時多播方式的傳輸速度較快,且不會導(dǎo)致網(wǎng)絡(luò)中流量的迅速增加,但是,由于UDP是一種無連接不可靠的傳輸層協(xié)議,沒有擁塞控制、流量控制和重傳機制,并且,即使降低傳輸速率也不能改善其丟包率,因此,其可靠性有時不能滿足要求。可見,單播和多播各有優(yōu)缺點,如何能夠在不浪費網(wǎng)絡(luò)中帶寬資源的前提下,充分利用單播和多播各自的優(yōu)點,從而提供符合更高要求的服務(wù)成為目前的研究重點。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的上述缺陷,本發(fā)明提供了一種自適應(yīng)多媒體流鏈路傳輸方法,能夠根據(jù)網(wǎng)絡(luò)流量情況自適應(yīng)選擇單播或多播方式進行數(shù)據(jù)傳輸,當網(wǎng)絡(luò)流量較大時能不影響用戶基本的服務(wù)需求,并且方便多播用戶加入多播組;當網(wǎng)絡(luò)流量較小時,能充分利用網(wǎng)絡(luò)中的資源。本發(fā)明所采用的技術(shù)方案是
一種自適應(yīng)多媒體流鏈路傳輸方法,用于改進所述多媒體流鏈路中的源節(jié)點(包括服務(wù)器節(jié)點)到目的節(jié)點(包括客戶機節(jié)點)間的數(shù)據(jù)傳輸,服務(wù)器節(jié)點根據(jù)實測的網(wǎng)絡(luò)有效流量和向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點或進程數(shù)自動選擇采用單播還是多播方式向客戶機節(jié)點傳輸數(shù)據(jù),若網(wǎng)絡(luò)有效流量較大或向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點和/或進程數(shù)較多,則采用多播方式傳輸數(shù)據(jù),若網(wǎng)絡(luò)有效流量較小且向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點和/或進程數(shù)較少,則采用單播方式傳輸數(shù)據(jù)。優(yōu)選為,所述網(wǎng)絡(luò)有效流量的大小由所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)以及客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬來確定,如果所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)較少且所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較小,則確定所述網(wǎng)絡(luò)有效流量較小。較優(yōu)地,所述網(wǎng)絡(luò)有效流量的確定可以通過數(shù)據(jù)傳輸前的控制信息的周期性傳送來實現(xiàn),所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值可以由所述控制信息中的數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間RTT來反映,若RTT較大,表示所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較大,若RTT較小,表示所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較小。所述RTT大小的確定方法可以為參考網(wǎng)絡(luò)有效流量很小時數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間設(shè)定一個數(shù)據(jù)傳輸標準時間,將控制信息傳輸實際時間與所述數(shù)據(jù)傳輸標準時間進行比較,如果控制信息傳輸實際時間小于所述數(shù)據(jù)傳輸標準時間,則確定所述RTT較小;
所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)多少的確定方法可以為設(shè)定一個服務(wù)鏈接數(shù)的經(jīng)驗值作為服務(wù)鏈接數(shù)標準值或者參考網(wǎng)絡(luò)有效流量很小時服務(wù)器節(jié)點的服務(wù)鏈接數(shù)設(shè)定一個經(jīng)驗公式,再將該經(jīng)驗公式的結(jié)果數(shù)值作為服務(wù)鏈接數(shù)標準值,將控制信息傳輸時的服務(wù)鏈接數(shù)實際值與所述服務(wù)鏈接數(shù)標準值進行比較,如果所述控制信息傳輸時的服務(wù)鏈接數(shù)實際值小于所示服務(wù)鏈接數(shù)標準值,則確定所述服務(wù)鏈接數(shù)較少。較優(yōu)地,所述數(shù)據(jù)傳輸標準時間t -=、/2+αΤ,所述服務(wù)鏈接數(shù)標準值 Nstd=Ntl+β η,其中,、為所述的網(wǎng)絡(luò)有效流量很小時數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間,T為網(wǎng)絡(luò)擁塞時時間波動容限,Ntl為所述的網(wǎng)絡(luò)有效流量很小時服務(wù)器節(jié)點的服務(wù)鏈接數(shù),η為鏈接數(shù)波動容限,α、β分別為往返時間和鏈接數(shù)權(quán)值,α ≤ 1,0≤ β ≤1。較優(yōu)地,所述網(wǎng)絡(luò)有流量的確定還可以包括判斷客戶機節(jié)點所請求的帶寬與服務(wù)器節(jié)點剩余的帶寬的大小關(guān)系,將所述客戶機節(jié)點所請求的帶寬小于服務(wù)器節(jié)點剩余的帶寬作為將所述網(wǎng)絡(luò)有效流量判定為較小的必要條件。上述任一項技術(shù)方案中,較優(yōu)地,還可以設(shè)定一個向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)標準值或進程數(shù)標準值,當實測到向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)或進程數(shù)的實際值小于相應(yīng)的標準值,則判定為向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點或進程數(shù)較少,如判定應(yīng)該采用的數(shù)據(jù)傳輸方式不同于實際采用的數(shù)據(jù)傳輸方式,則由所述服務(wù)器節(jié)點對數(shù)據(jù)傳輸方式做出調(diào)整。較優(yōu)地,向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)標準值或進程數(shù)標準值為2或3,所述單播方式基于TCP協(xié)議傳輸數(shù)據(jù),所述多播方式基于UDP協(xié)議傳輸數(shù)據(jù)。較優(yōu)地,當采用UDP多播方式傳輸數(shù)據(jù)時,根據(jù)所述服務(wù)器節(jié)點的系統(tǒng)性能和多媒體鏈路的網(wǎng)絡(luò)性能在應(yīng)用層設(shè)定UDP數(shù)據(jù)包的大小,若上述性能較好,則將UDP數(shù)據(jù)包分得大些,否則,分得小些,且數(shù)據(jù)包中報文段(即凈載數(shù)據(jù))的大小上限值為1472字節(jié)或者所述UDP數(shù)據(jù)包的大小為小于或等于通過所述控制信息獲取的網(wǎng)絡(luò)中各路由器的MTU值的最小值。較優(yōu)地,當選擇UDP多播方式傳輸數(shù)據(jù)時,在應(yīng)用層實現(xiàn)以下重傳和/或丟包 (1)重傳當數(shù)據(jù)丟包導(dǎo)致達不到基本的服務(wù)質(zhì)量時要求重傳;或當單向傳輸時間遠低于播放所允許的延遲時間時,根據(jù)序列號控制實現(xiàn)選擇性的重傳;(2)丟包采用下列任一種丟包機制或兩種丟包機制的組合;(a)如果重傳時間長于播放所允許的延遲時間則將重傳的包丟掉;(b)當網(wǎng)絡(luò)擁擠時,采用間隔幾個連續(xù)的包丟掉一個包的丟包控制方式。
本發(fā)明的有益效果是
采用本發(fā)明的方法能夠根據(jù)網(wǎng)絡(luò)流量情況自適應(yīng)地選擇單播或多播方式傳輸數(shù)據(jù),還能夠根據(jù)網(wǎng)絡(luò)流量情況以及請求相同數(shù)據(jù)的客戶機或進程的數(shù)量的變化隨時調(diào)整數(shù)據(jù)傳輸方式,因此實現(xiàn)在網(wǎng)絡(luò)流量不大時采用單播方式傳輸數(shù)據(jù),既提高了數(shù)據(jù)傳輸?shù)目煽啃裕?保證了服務(wù)的質(zhì)量,又避免了網(wǎng)絡(luò)流量的浪費;在網(wǎng)絡(luò)較繁忙時采用多播方式傳輸數(shù)據(jù),既可以保證基本的數(shù)據(jù)傳輸質(zhì)量,同時降低服務(wù)器端的負擔,以不影響用戶基本的服務(wù)需求, 又方便多播用戶加入多播組,避免因單播引起的對網(wǎng)絡(luò)資源的過度占用而導(dǎo)致網(wǎng)絡(luò)系統(tǒng)崩潰,有利于網(wǎng)絡(luò)系統(tǒng)的穩(wěn)定。
圖1是本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖2是本發(fā)明的一個實施例中數(shù)據(jù)傳輸標準時間與網(wǎng)絡(luò)擁塞時的時間波動容限之間的關(guān)系示意圖3是本發(fā)明的一個實施例中標準鏈接數(shù)與鏈接數(shù)波動容限之間的關(guān)系示意圖; 圖4是本發(fā)明的一個實施例的流程圖; 圖5是本發(fā)明的、、t2以及數(shù)據(jù)傳輸標準時間之間關(guān)系示意圖。
具體實施例方式為了更好地解釋本發(fā)明,以便更好理解,下面結(jié)合附圖通過具體實施方式
對本發(fā)明作更詳細地描述,但是不構(gòu)成對本發(fā)明保護范圍的限制。參見圖1至圖5,本發(fā)明提供了一種自適應(yīng)多媒體流鏈路傳輸方法,用于改進所述多媒體流鏈路(如圖1所示)中的源節(jié)點到目的節(jié)點間的數(shù)據(jù)傳輸速率和質(zhì)量等(以服務(wù)器節(jié)點作為源節(jié)點、客戶機節(jié)點作為目的節(jié)點的實施例進行說明),服務(wù)器節(jié)點根據(jù)實測的網(wǎng)絡(luò)有效流量和向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點或進程數(shù)自動選擇采用單播還是多播方式向客戶機節(jié)點傳輸數(shù)據(jù),若網(wǎng)絡(luò)有效流量較大或向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點和/或進程數(shù)較多,則采用多播方式傳輸數(shù)據(jù),既可以方便其他客戶機節(jié)點或同一客戶機節(jié)點的不同進程請求相同數(shù)據(jù)時加入多播組,又不影響當前的數(shù)據(jù)傳輸,不增加服務(wù)器節(jié)點的流量負載,保證用戶的基本服務(wù)需求;若網(wǎng)絡(luò)有效流量較小且向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點和/或進程數(shù)較少,則采用單播方式傳輸數(shù)據(jù), 可以充分利用網(wǎng)絡(luò)中的資源,提高多媒體流的傳輸效率。本發(fā)明通過確定所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)以及客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬來確定所述網(wǎng)絡(luò)有效流量的大小。如果所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)較少且所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較小,則確定為所述網(wǎng)絡(luò)有效流量較小,此外,則認為所述網(wǎng)絡(luò)有效流量較大。具體地,可以在開始傳輸數(shù)據(jù)前通過控制報文信息的傳送來確定所述網(wǎng)絡(luò)有效流量,其中,所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值可以由所述控制報文信息中的數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間RTT來反映,若RTT較大,表示所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較大,若RTT較小, 表示所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較小。
所述RTT大小的確定方法可以為參考網(wǎng)絡(luò)有效流量很小時數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間設(shè)定一個數(shù)據(jù)傳輸標準時間,將控制信息傳輸實際時間與所述數(shù)據(jù)傳輸標準時間進行比較,如果控制信息傳輸實際時間小于所述數(shù)據(jù)傳輸標準時間,則確定所述RTT較??;反之,則確定所述RTT較大。所謂網(wǎng)絡(luò)有效流量很小,可以是人為選定的一種極佳的網(wǎng)絡(luò)狀態(tài)下的網(wǎng)絡(luò)有效流量,可以依據(jù)經(jīng)驗確定。所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)多少的確定方法可以為設(shè)定一個服務(wù)鏈接數(shù)的經(jīng)驗值作為服務(wù)鏈接數(shù)標準值或者參考網(wǎng)絡(luò)有效流量很小時服務(wù)器節(jié)點的服務(wù)鏈接數(shù)設(shè)定一個經(jīng)驗公式,再將該經(jīng)驗公式的結(jié)果數(shù)值作為服務(wù)鏈接數(shù)標準值,將控制信息傳輸時的服務(wù)鏈接數(shù)實際值與所述服務(wù)鏈接數(shù)標準值進行比較,如果所述控制信息傳輸時的服務(wù)鏈接數(shù)實際值小于所述服務(wù)鏈接數(shù)標準值,則確定所述服務(wù)鏈接數(shù)較少;反之,則確定所述服務(wù)鏈接數(shù)較大。通常,所述服務(wù)器節(jié)點通過周期性地發(fā)送控制報文信息獲取實時的RTT信息和服務(wù)器節(jié)點的服務(wù)鏈接數(shù)信息,并實時與相應(yīng)的標準值進行對比以實時判斷所述網(wǎng)絡(luò)有效流量的大小,所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)為向其請求服務(wù)的所有客戶機節(jié)點的總數(shù),包括向其請求同一服務(wù)的客戶機節(jié)點的總數(shù)量和向其請求不同服務(wù)的客戶機節(jié)點的總數(shù)量。其中,所述控制報文信息的發(fā)送周期應(yīng)根據(jù)實際情況確定,既不能太長也不能太短。如果太長則不能及時獲取網(wǎng)絡(luò)有效流量情況,導(dǎo)致算法性能的下降;如果太短,雖然能很好的即時地得到反應(yīng),獲知網(wǎng)絡(luò)有效流量情況,但是同時將導(dǎo)致控制信息(包括控制報文信息和ACK應(yīng)答信息)的大量增多,對網(wǎng)絡(luò)是一種額外的負擔。優(yōu)選為,設(shè)定所述數(shù)據(jù)傳輸標準時間t -=、/2+α T,所述服務(wù)鏈接數(shù)標準值 Nstd=Ntl+β η,其中,、為所述網(wǎng)絡(luò)有效流量很小時數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間,T為網(wǎng)絡(luò)擁塞時時間波動容限,Ntl為所述網(wǎng)絡(luò)有效流量很小時服務(wù)器節(jié)點的服務(wù)鏈接數(shù),η為鏈接數(shù)波動容限,當網(wǎng)絡(luò)中節(jié)點處理能力強時,η的取值可以相應(yīng)大一點。α、β分別為往返時間和鏈接數(shù)權(quán)值,α ^ 1,0^ β ^ I0權(quán)值α可根據(jù)所述服務(wù)器節(jié)點到所述客戶機節(jié)點的跳數(shù)確定,跳數(shù)越大應(yīng)選取的α值就越大,權(quán)值β可根據(jù)所述服務(wù)器節(jié)點的處理能力確定,處理能力越強應(yīng)選取的β值就越大。參見圖2和圖3,圖2示出了當tQ=200ms、α =0. 9時,T取不同值時的數(shù)據(jù)傳輸標準時間;圖3示出了當Ν(ι=70時,網(wǎng)絡(luò)有效流量小時η取不同值時所允許的最大鏈接數(shù)(即所述服務(wù)鏈接數(shù)標準值),其中, 日5分別表示β取不同的值。實踐中,所述網(wǎng)絡(luò)有效流量的確定最好還要結(jié)合比較所述客戶機節(jié)點所請求的帶寬Bi與所述服務(wù)器節(jié)點剩余的帶寬B的大小關(guān)系,優(yōu)選為將所述客戶機節(jié)點所請求的帶寬小于服務(wù)器節(jié)點剩余的帶寬作為將所述網(wǎng)絡(luò)有效流量判定為較小的必要條件。即當 tci<t0/2+ α Τ、N^N0+β η和B^B同時成立時,才判定為網(wǎng)絡(luò)有效流量較小,其他情況均可以判定為網(wǎng)絡(luò)有效流量較大,其中,i表示第i個客戶機節(jié)點,tci表示第i個客戶機節(jié)點的控制信息傳輸時的RTT實際值,Ni表示第i個客戶機節(jié)點的控制信息傳輸時的服務(wù)鏈接數(shù)實際值,Bi表示第i個客戶機節(jié)點所請求的帶寬,B表示服務(wù)器節(jié)點剩余的帶寬。當繼續(xù)有客戶機節(jié)點請求數(shù)據(jù)傳輸時,將或多或少地影響到多媒體鏈路上原有數(shù)據(jù)傳輸?shù)乃俾屎唾|(zhì)量,因此更優(yōu)地,還可以在上述各個技術(shù)方案中根據(jù)服務(wù)器節(jié)點的實際處理能力以及向該同一服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)或進程數(shù)的多少動態(tài)調(diào)整數(shù)據(jù)傳輸方式,以適應(yīng)多變的網(wǎng)絡(luò)傳輸環(huán)境。由于網(wǎng)絡(luò)流量的檢測和判斷是周期性進行的,因此從整個網(wǎng)絡(luò)傳輸過程來看,請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)或進程數(shù)多少的判斷與網(wǎng)絡(luò)流量大小的判斷是交織、交替進行的。下面僅以先進行客戶機節(jié)點數(shù)或進程數(shù)多少的判斷,再進行網(wǎng)絡(luò)流量大小的判斷為例,旨在具體說明二者相結(jié)合的判斷過程和原理。如圖4所示,可以設(shè)定一個向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)標準值或進程數(shù)標準值,當實測到向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)或進程數(shù)的實際值小于相應(yīng)的標準值,則判定為向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點或進程數(shù)較少,若同時網(wǎng)絡(luò)有效流量較小,則采用單播方式傳輸數(shù)據(jù),否則采用多播方式傳輸數(shù)據(jù),如判定應(yīng)該采用的數(shù)據(jù)傳輸方式不同于實際采用的數(shù)據(jù)傳輸方式不同,則由所述服務(wù)器節(jié)點對數(shù)據(jù)傳輸方式做出調(diào)整。例如,當前的數(shù)據(jù)傳輸方式為單播,此時,如果繼續(xù)有客戶機節(jié)點請求傳輸數(shù)據(jù), 經(jīng)判斷向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)的實際值小于相應(yīng)的標準值,繼續(xù)進行網(wǎng)絡(luò)流量大小的判斷,如果網(wǎng)絡(luò)有效流量較小,則繼續(xù)采用單播方式,如果網(wǎng)絡(luò)有效流量較大,則應(yīng)調(diào)整為多播方式;如果經(jīng)判斷向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)的實際值大于或等于相應(yīng)的標準值,則應(yīng)直接調(diào)整為多播方式。事實上,也可以設(shè)定小于或等于相應(yīng)的標準值時,采用單播方式,而大于相應(yīng)的標準值時,采用多播方式。體現(xiàn)在程序控制上,可以采用下列語句進行上述的兩種判斷并確定采用單播還是多播的數(shù)據(jù)傳輸方式
if ((Wto/2+ α Τ) &&(Ni<N0+ β η) &&(Bi(B))
{
if (請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)和/或進程數(shù) >=客戶機節(jié)點數(shù)和/或進程數(shù)的標準值)
{
多播; }
else {
單播 };
ι
else {多播;
ι
如圖5所示,上述程序段中、為服務(wù)器節(jié)點發(fā)出控制報文信息的時間點,t2為客戶機節(jié)點收到該控制報文信息的時間點,t2-、即為控制報文信息從服務(wù)器節(jié)點發(fā)送開始,到所述客戶機節(jié)點接收到該控制報文信息所經(jīng)歷的時延,或者為控制報文信息從服務(wù)器節(jié)點發(fā)送開始到服務(wù)器節(jié)點端收到來自客戶機節(jié)點的確認總共經(jīng)歷的時延的一半。請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)或進程數(shù)多少的判斷所采用的標準值可以依據(jù)經(jīng)驗確定,優(yōu)選地,向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)標準值或進程數(shù)標準值為2或3。所述多播方式優(yōu)選基于UDP協(xié)議傳輸數(shù)據(jù)。所述單播方式優(yōu)選基于TCP協(xié)議傳輸數(shù)據(jù),以保證數(shù)據(jù)傳輸?shù)目煽啃?,同時,也有利于充分利用網(wǎng)絡(luò)中的資源(主要是帶寬資源)。由于此時網(wǎng)絡(luò)中的有效流量較小,TCP的窗口機制可以將自身的發(fā)送窗口增大,使得 TCP報文的大小變大,報文長度增加,由于同一個TCP報文只有一個IP頭,這樣,在IP層分包時產(chǎn)生的報頭就少,同時控制信息也較少,產(chǎn)生的ACK應(yīng)答信息也較少,這樣可以在一定程度上提高多媒體流鏈路傳輸在時間上的效率。經(jīng)過前述的兩種判斷,如果當前的服務(wù)器節(jié)點采用TCP單播方式向客戶機節(jié)點發(fā)送數(shù)據(jù)時,如果通過控制報文信息獲取的網(wǎng)絡(luò)中的數(shù)據(jù)流量(有效流量)變得足夠大時(RTT 足夠大和/或服務(wù)器節(jié)點的服務(wù)鏈接數(shù)足夠多),數(shù)據(jù)傳輸方式將變?yōu)閁DP多播;如果當前的數(shù)據(jù)傳輸方式是UDP多播,且請求同一服務(wù)的客戶機節(jié)點小于或等于2 (或3)個時,如果通過控制報文信息獲取網(wǎng)絡(luò)的數(shù)據(jù)流量變得足夠小時(沒有時間延時或RTT足夠小,且客戶機節(jié)點所請求的帶寬服務(wù)器節(jié)點能夠提供),數(shù)據(jù)傳輸方式變?yōu)門CP單播,若請求同一服務(wù)的客戶機節(jié)點多于2 (或3)個時,則仍保持UDP多播不需進行調(diào)整。整個過程循環(huán)反復(fù), 以保證多媒體流的傳輸速度和質(zhì)量。適時地將單播調(diào)整為多播,可以保證傳輸?shù)乃俾?,避免對網(wǎng)絡(luò)帶寬資源的過多占用,還可以避免單播方式下的以下兩個方面的缺陷
(1)服務(wù)器節(jié)點因必須始終保持監(jiān)聽狀態(tài)以了解每一個動態(tài)加入的客戶機節(jié)點的服務(wù)請求,而創(chuàng)建套接字以及為套接字的偵聽而消耗系統(tǒng)的CPU資源,過于頻繁的偵聽可能造成系統(tǒng)的不穩(wěn)定以及破壞多媒體流傳輸?shù)膶崟r性。(2)服務(wù)器節(jié)點面對不同客戶機節(jié)點的同一服務(wù)請求,需要進行重復(fù)轉(zhuǎn)發(fā),幾個客戶機節(jié)點就需要占用幾倍的網(wǎng)絡(luò)帶寬資源,對網(wǎng)絡(luò)帶寬資源造成了極大地浪費,且容易造成丟包、延遲等,當客戶機節(jié)點的數(shù)量達到一定數(shù)量(如五個以上)時,還容易造成廣播風(fēng)暴,造成網(wǎng)絡(luò)系統(tǒng)的崩潰。適時地將多播調(diào)整為單播,可以實現(xiàn)可靠性較高的高速傳輸,還能夠使整個網(wǎng)絡(luò)的帶寬資源得到充分利用,避免浪費。由于UDP傳輸方式是面向報文的,發(fā)送方(服務(wù)器節(jié)點)的傳輸層將應(yīng)用層產(chǎn)生的報文添加首部后就向下交付給IP層,如果交付的UDP報文的長度超過IP層的MTU值(最大傳輸單元),就需要在IP層進行拆分,如果交付的UDP報文沒有超過IP層的MTU值,就不作處理,并且保留這些報文的邊界,因此,發(fā)送數(shù)據(jù)的應(yīng)用程序需要選擇合適的報文大小。較優(yōu)地,當采用UDP多播方式傳輸數(shù)據(jù)時,可以根據(jù)所述服務(wù)器節(jié)點的系統(tǒng)性能和多媒體鏈路的網(wǎng)絡(luò)性能在應(yīng)用層設(shè)定UDP數(shù)據(jù)包的大小,尤其是多媒體鏈路的網(wǎng)絡(luò)性能,如,若網(wǎng)絡(luò)狀態(tài)好(通常指網(wǎng)絡(luò)有效流量小),則將UDP數(shù)據(jù)包分得大些,以提高系統(tǒng)性能 (尤其是速度),否則,分得小些,以降低丟包率。在局域網(wǎng)的環(huán)境下,由于以太網(wǎng)鏈路層的MTU值一般為1500字節(jié),減去包頭數(shù)據(jù) (IP包頭20字節(jié)和UDP包頭8字節(jié))后的MSS值一般默認為1472字節(jié),因此,數(shù)據(jù)包中報文段的大小優(yōu)選為不大于1472字節(jié),以避免分片重組,尤其是以UDP多播方式傳輸數(shù)據(jù)時。 在廣域網(wǎng)絡(luò)的環(huán)境下,網(wǎng)絡(luò)中的各個路由器可能會有配置成不同的值(如小于默認值),UDP 數(shù)據(jù)包如果大于設(shè)定的MTU值時,UDP數(shù)據(jù)包就需要在IP層進行分片,此時會產(chǎn)生很多數(shù)據(jù)包的碎片,當網(wǎng)絡(luò)有效流量大時,一旦分片之后的數(shù)據(jù)包發(fā)生丟包時,分片之前的UDP數(shù)據(jù)包就會被整個丟掉,由此會對多媒體流的數(shù)據(jù)傳輸?shù)目煽啃栽斐奢^大的影響。在UDP傳輸?shù)膶嶋H應(yīng)用時,數(shù)據(jù)包的大小較小時傳輸速率也較高,通??梢垣@得較好的性能,但是數(shù)據(jù)包越小,數(shù)據(jù)報頭的開銷也就越大,當數(shù)據(jù)包過小時反而會對傳輸性能帶來負面影響,因此,需要選取適當?shù)臄?shù)據(jù)包的大小,如所述控制報文信息中還可以包括獲取網(wǎng)絡(luò)中各路由器的MTU值的信息,以通過控制報文信息獲取網(wǎng)絡(luò)中各個路由器的MTU值,選取其中的最小值來確定UDP數(shù)據(jù)包的大小,確保數(shù)據(jù)包的大小不大于所述各路由器中的最小MTU值,以避免UDP數(shù)據(jù)包通過各路由器時還需要進行分片,進而避免由于分片而導(dǎo)致的一系列負面影響。較優(yōu)地,當網(wǎng)絡(luò)有效流量小時所述數(shù)據(jù)包應(yīng)盡量大,當所述網(wǎng)絡(luò)有效流量大時所述數(shù)據(jù)包不應(yīng)超過網(wǎng)絡(luò)有效流量小時的大小。由于UDP是一種無連接不可靠的傳輸層協(xié)議,沒有擁塞控制、流量控制和重傳機制,因此,為了保證數(shù)據(jù)傳輸?shù)目煽啃?,上述任意一項技術(shù)方案中,當選擇多播方式傳輸數(shù)據(jù)時,可以通過應(yīng)用層來保證數(shù)據(jù)傳輸?shù)目煽啃裕缈梢圆捎冒ǘ〞r、重傳、丟包和/ 或序列號等機制,具體方式包括(1)重傳當數(shù)據(jù)丟包導(dǎo)致達不到基本的或人為要求的服務(wù)質(zhì)量時要求重傳;或當單向傳輸時間遠低于播放所允許的延遲時間時,采用重傳作為控制機制,并根據(jù)序列號進行選擇性的重傳;(2)丟包采用下列一種或兩種丟包機制的組合,(a)如果重傳時間長于播放所允許的延遲則將重傳的包丟掉;(b)當網(wǎng)絡(luò)擁擠時,通過間隔χ個連續(xù)的包丟掉y個包的丟包控制方式保證服務(wù)質(zhì)量。較優(yōu)地,所述方式(b)中,所述χ、y值為預(yù)設(shè)可調(diào)的,在一定時長內(nèi)χ值固定或不固定,通常X值大于y值,通常y值取1 ;包的大小也為預(yù)設(shè)可調(diào)的,在一定時長內(nèi)包的大小為相同或不同的,在一定時長內(nèi)包的大小為固定或不固定的。例如可以每隔四個包丟掉一個包。序列號能夠保證接收的數(shù)據(jù)包能夠有序排列,當數(shù)據(jù)丟包達不到基本的服務(wù)質(zhì)量時可以要求重傳。一般流媒體對播放時間有嚴格的限制,通常不采用重傳機制進行丟包恢復(fù),但是如果單向傳輸時間遠低于播放所允許的延遲,則可以采用重傳作為控制機制。為最大限度的保證服務(wù)質(zhì)量和傳輸速度,可以根據(jù)序列號進行選擇性的重傳,既不破壞數(shù)據(jù)流的平滑性,又能夠確保數(shù)據(jù)包的傳輸不產(chǎn)生過大的時延抖動,如果重傳時間長于播放所允許的延遲還可以將重傳的包丟掉,以保證在不影響數(shù)據(jù)傳輸質(zhì)量的基礎(chǔ)上最大化利用網(wǎng)絡(luò)資源。在流媒體傳輸中(如多媒體視頻流),通常對數(shù)據(jù)傳輸?shù)目煽啃砸蟛桓撸鄬τ诳煽啃詠碚f,UDP的應(yīng)用更加注重實際性能(尤其是流暢度、平滑性等),所以為了獲得更好的使用效果(如更高的畫面刷新速率)往往可以犧牲一定的可靠性(如畫面質(zhì)量),因此適當?shù)臄?shù)據(jù)丟失不會過多的影響視頻播出的效果。另外,由于UDP傳輸在網(wǎng)絡(luò)擁擠的情況下丟包是正常現(xiàn)象,因此,在網(wǎng)絡(luò)有效流量較大(網(wǎng)絡(luò)擁擠時)可以通過控制丟包的方式丟掉一定數(shù)量的數(shù)據(jù)包來保證服務(wù)(傳輸速度)。如果連續(xù)丟包將會導(dǎo)致視頻不清楚,無法保證基本的服務(wù),因此在控制丟包時應(yīng)該實現(xiàn)在間隔連續(xù)的幾個數(shù)據(jù)包丟掉一個數(shù)據(jù)包,這種丟包方式可以有效避免多媒體流多播中,某個鏈路上的網(wǎng)絡(luò)擁塞影響整個多播會話,還能夠避免被動的連續(xù)丟包現(xiàn)象的發(fā)生,并且能夠不影響基本的視頻傳輸質(zhì)量,同時降低服務(wù)器節(jié)點的負擔,保證一定的服務(wù)質(zhì)量。在整個網(wǎng)絡(luò)系統(tǒng)中,單播和多播往往是同時存在的,當網(wǎng)絡(luò)有效流量比較大而且多播長時間存在的情況下,當有其他客戶機節(jié)點(如其他目的主機或同一主機的不同進程) 有相同服務(wù)請求時,如果選擇以UDP多播方式傳輸數(shù)據(jù),該客戶機節(jié)點可以通過IGMP報文加入相應(yīng)的多播組而不會影響當前多播組的數(shù)據(jù)傳輸,并且相對于TCP而言其數(shù)據(jù)報頭開銷較小,傳輸速度也更快,還避免了網(wǎng)絡(luò)中流量的迅速增加,且UDP數(shù)據(jù)包在鏈路中傳輸?shù)乃俾什粫吮?,同時會迫使已有的TCP連接根據(jù)窗口機制將本身的數(shù)據(jù)速率退避,即UDP數(shù)據(jù)包優(yōu)先占用空閑網(wǎng)絡(luò)帶寬資源,而TCP只占用剩余的網(wǎng)絡(luò)帶寬資源,因此,選用UDP多播方式時其數(shù)據(jù)傳輸速率不會受限制,能夠以最大的速度進行傳輸,保證了服務(wù)質(zhì)量。本發(fā)明的方法能夠根據(jù)網(wǎng)絡(luò)流量情況自適應(yīng)選擇TCP單播/UDP多播方式傳輸數(shù)據(jù),既能夠在網(wǎng)絡(luò)流量小時保證數(shù)據(jù)傳輸?shù)母呖煽啃裕苊鈳捹Y源的浪費,還能夠在網(wǎng)絡(luò)流量大時保證數(shù)據(jù)傳輸?shù)母咚俾?,保證服務(wù)質(zhì)量。
權(quán)利要求
1.一種自適應(yīng)多媒體流鏈路傳輸方法,其特征在于服務(wù)器節(jié)點根據(jù)實測的網(wǎng)絡(luò)有效流量和向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點或進程數(shù)自動選擇采用單播還是多播方式向客戶機節(jié)點傳輸數(shù)據(jù),若網(wǎng)絡(luò)有效流量較大或向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點和/或進程數(shù)較多,則采用多播方式傳輸數(shù)據(jù),若網(wǎng)絡(luò)有效流量較小且向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點和/或進程數(shù)較少,則采用單播方式傳輸數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于所述網(wǎng)絡(luò)有效流量的大小由所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)以及客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬來確定,如果所述服務(wù)器節(jié)點的服務(wù)鏈接數(shù)較少且所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較小,則確定所述網(wǎng)絡(luò)有效流量較小。
3.根據(jù)權(quán)利要求2所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于所述網(wǎng)絡(luò)有效流量的確定通過數(shù)據(jù)傳輸前的控制信息的周期性傳送來實現(xiàn),所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值由所述控制信息中的數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間RTT來反映,若RTT較大,表示所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較大,若RTT較小,表示所述客戶機節(jié)點所請求的服務(wù)帶寬和網(wǎng)絡(luò)所能提供的總帶寬的比值較小。
4.根據(jù)權(quán)利要求3所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于所述RTT大小的確定方法為參考網(wǎng)絡(luò)有效流量很小時數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間設(shè)定一個數(shù)據(jù)傳輸標準時間,將控制信息傳輸實際時間與所述數(shù)據(jù)傳輸標準時間進行比較,如果控制信息傳輸實際時間小于所述數(shù)據(jù)傳輸標準時間,則確定所述RTT 較?。凰龇?wù)器節(jié)點的服務(wù)鏈接數(shù)多少的確定方法為設(shè)定一個服務(wù)鏈接數(shù)的經(jīng)驗值作為服務(wù)鏈接數(shù)標準值或者參考網(wǎng)絡(luò)有效流量很小時服務(wù)器節(jié)點的服務(wù)鏈接數(shù)設(shè)定一個經(jīng)驗公式,再將該經(jīng)驗公式的結(jié)果數(shù)值作為服務(wù)鏈接數(shù)標準值,將控制信息傳輸時的服務(wù)鏈接數(shù)實際值與所述服務(wù)鏈接數(shù)標準值進行比較,如果所述控制信息傳輸時的服務(wù)鏈接數(shù)實際值小于所述服務(wù)鏈接數(shù)標準值,則確定所述服務(wù)鏈接數(shù)較少。
5.根據(jù)權(quán)利要求4所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于所述數(shù)據(jù)傳輸標準時間t std=tQ/2+aT,所述服務(wù)鏈接數(shù)標準值Nstd=NQ+i3n,其中,tQ為所述的網(wǎng)絡(luò)有效流量很小時數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間,T為網(wǎng)絡(luò)擁塞時時間波動容限,Ntl為所述的網(wǎng)絡(luò)有效流量很小時服務(wù)器節(jié)點的服務(wù)鏈接數(shù),η為鏈接數(shù)波動容限,α、β分別為往返時間和鏈接數(shù)權(quán)值,0 ( α ^ 1,0 ^ β彡1。
6.根據(jù)權(quán)利要求5所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于所述網(wǎng)絡(luò)有效流量的確定還包括判斷客戶機節(jié)點所請求的帶寬與服務(wù)器節(jié)點剩余的帶寬的大小關(guān)系,將所述客戶機節(jié)點所請求的帶寬小于服務(wù)器節(jié)點剩余的帶寬作為將所述網(wǎng)絡(luò)有效流量判斷為較小的必要條件。
7.根據(jù)權(quán)利要求1-6中任一項權(quán)利要求所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于還設(shè)定一個向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)標準值或進程數(shù)標準值, 當實測到向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)或進程數(shù)的實際值小于相應(yīng)的標準值,則判定為向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點或進程數(shù)較少,如判定應(yīng)該采用的數(shù)據(jù)傳輸方式不同于實際采用的數(shù)據(jù)傳輸方式,則由所述服務(wù)器節(jié)點對數(shù)據(jù)傳輸方式做出調(diào)整。
8.根據(jù)權(quán)利要求7所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于向所述服務(wù)器節(jié)點請求相同數(shù)據(jù)的客戶機節(jié)點數(shù)標準值或進程數(shù)標準值為2或3,所述單播方式基于TCP協(xié)議傳輸數(shù)據(jù),所述多播方式基于UDP協(xié)議傳輸數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于當采用UDP多播方式傳輸數(shù)據(jù)時,根據(jù)所述服務(wù)器節(jié)點的系統(tǒng)性能和多媒體鏈路的網(wǎng)絡(luò)性能在應(yīng)用層設(shè)定 UDP數(shù)據(jù)包的大小,若上述性能較好,則將UDP數(shù)據(jù)包分得大些,否則,分得小些,且UDP數(shù)據(jù)包的大小為小于或等于通過所述控制信息獲取的網(wǎng)絡(luò)中各路由器的MTU值的最小值。
10.根據(jù)權(quán)利要求9所述的自適應(yīng)多媒體流鏈路傳輸方法,其特征在于當選擇UDP多播方式傳輸數(shù)據(jù)時,在應(yīng)用層實現(xiàn)以下重傳和/或丟包(1)重傳當數(shù)據(jù)丟包導(dǎo)致達不到基本的服務(wù)質(zhì)量時要求重傳;或當單向傳輸時間遠低于播放所允許的延遲時間時,根據(jù)序列號控制實現(xiàn)選擇性的重傳;(2)丟包采用下列一種或兩種丟包機制的組合;(a)如果重傳時間長于播放所允許的延遲則將重傳的包丟掉;(b)當網(wǎng)絡(luò)擁擠時,采用間隔幾個連續(xù)的包丟掉一個包的丟包控制方式。
全文摘要
本發(fā)明涉及一種自適應(yīng)多媒體流鏈路傳輸方法,服務(wù)器節(jié)點根據(jù)實測的網(wǎng)絡(luò)流量情況自動選擇單播/多播方式向客戶機節(jié)點傳輸數(shù)據(jù),網(wǎng)絡(luò)流量較大/較小時分別采用多播/單播方式,網(wǎng)絡(luò)流量大小的確定方法為通過數(shù)據(jù)傳輸前周期性傳送控制信息來實時監(jiān)測服務(wù)鏈接數(shù)和數(shù)據(jù)從服務(wù)器節(jié)點到客戶機節(jié)點的往返時間RTT,還結(jié)合了對客戶機節(jié)點請求的帶寬與服務(wù)器節(jié)點剩余的帶寬的大小關(guān)系的判斷,另外還設(shè)定了數(shù)據(jù)包大小和相應(yīng)的重傳、丟包控制機制。本發(fā)明的方法能夠根據(jù)網(wǎng)絡(luò)流量情況自適應(yīng)選擇單播或多播方式進行數(shù)據(jù)傳輸,既能在網(wǎng)絡(luò)流量較大時不影響用戶基本的服務(wù)需求,且方便多播用戶加入多播組;還能在網(wǎng)絡(luò)流量較小時,充分利用網(wǎng)絡(luò)中的資源。
文檔編號H04L12/18GK102215174SQ20111019709
公開日2011年10月12日 申請日期2011年7月14日 優(yōu)先權(quán)日2011年7月14日
發(fā)明者丁泉龍, 王昆侖, 韓艷 申請人:丁泉龍