專利名稱:大并發(fā)流媒體實時傳送的方法
技術(shù)領(lǐng)域:
本發(fā)明屬網(wǎng)絡(luò)多媒體技術(shù)領(lǐng)域。具體地說,涉及一種在網(wǎng)絡(luò)多媒體中自組織地指導(dǎo)大并發(fā)流媒體服務(wù)器公平有效的在因特網(wǎng)中實時傳送多媒體信息的方法。
背景技術(shù):
隨著計算機技術(shù)的快速發(fā)展,流媒體應(yīng)用越來越受人關(guān)注。在各種流媒體應(yīng)用中,例如視頻點播(VoD),交互電視(ITV),虛擬教學(xué),必須保證高質(zhì)量和即時播放。為了確保每一幀都在預(yù)定的時間點解碼,在播放之前,先在解碼端緩沖區(qū)內(nèi)預(yù)存一部分視頻流。然而因為隨機干擾及各種故障的影響,在傳輸視頻流過程中,存在很多問題,例如數(shù)據(jù)延時,數(shù)據(jù)丟失等等。因為骨干網(wǎng)帶寬將會是充足的,所以當(dāng)大量用戶同時要求服務(wù)時,瓶頸是流媒體服務(wù)器。流媒體服務(wù)器需要穩(wěn)定地支持大并發(fā),而各個媒體流又有實時性等要求。為了保證流媒體服務(wù)器的這幾項指標,需要有效地克服用戶的到達時間和數(shù)目的波動、碼率的波動、硬件故障和網(wǎng)絡(luò)故障等等各種隨機干擾。
針對這一問題,前人提出很多方法。例如Kim利用多服務(wù)器系統(tǒng),將數(shù)據(jù)分布到并行的存儲節(jié)點,進行多對一服務(wù),保證連續(xù)傳輸(參見Seougyun Kim,Jiseung Nam and Soon-jiaYeom,Effective delivery of Virtual Class on Parallel Media Stream Server,IEEE ICCE’02,Dec.2002,pp.134-135);在“A.C.M.Fong and S.C.Hui,Low-bandwidth internet streaming ofmultimedia lectures,IEEE Engineering Science and Education Journal,Vo.10,Issue.6,pp.212-218,Dec.2003”中,通過一個交換服務(wù)器控制通信,但音視頻數(shù)據(jù)直接在流媒體服務(wù)器和客戶之間傳輸,從而緩解帶寬,延時和丟包等限制??紤]到很多應(yīng)用都要求長時間連續(xù)運行,Sultan提出一個支持多處理器服務(wù)器間會話的無縫動態(tài)遷移的操作系統(tǒng)機制(參見FlorinSultan,Aniruddha Bohra,and Liviou Iftode,Service ContinuationsAn Operating SystemMechanism for Dynamic Migration of Internet Service Sessions,Proc.IEEE SRDS’03,Oct.2003,pp.177-186)。Gao提出一個代理協(xié)助的視頻傳輸結(jié)構(gòu),采用基于中央服務(wù)器的周期性廣播策略來有效利用中央服務(wù)器和網(wǎng)絡(luò)資源,并利用代理服務(wù)器減少用戶的服務(wù)延時(參見LixinGao,Zhi-Li Zhang and Don Towsley,proxy-Assisted Techniques for Delivering ContinuousMulltimedia Streams,IEEE/ACM Transactions on Networking,Vol.11,No.6,pp.884-894,Dec.2003)。在Onoe的方法中,服務(wù)器利用端到端的客戶報告和網(wǎng)絡(luò)信息為傳輸流媒體服務(wù)器估計發(fā)送速率(參見Yuko Onoe,Hiroaki Hagino,Yukio Atsumi,Yuuichirou Miyazaki,HirotakaKomaki,Takayuki Kushida and Nagatsugu,Network information based Rate Controls onMultimedia Stream servers,Distributed Computing Systems Workshops,2003.Proceedings.23rdinternational conference on 2003,pp.543-548)。Q前人還提出了系統(tǒng)可以隨著網(wǎng)絡(luò)條件的變化,調(diào)整比特率,自適應(yīng)LMS帶寬控制器指導(dǎo)包丟失從而最小化帶寬消耗。服務(wù)器端的實時速率控制器通過修整碼流來適應(yīng)可利用的帶寬。最后完整的視頻碼流在客戶端采用差值重構(gòu)。
但是這些方法大多針對網(wǎng)絡(luò)擁塞的速率控制,并且對硬件要求很高,所以不能很好的解決服務(wù)器端資源共享和干擾抑制的問題。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)存在的問題,本發(fā)明從一個全新的角度研究了服務(wù)器端的資源調(diào)度問題,提出了一種使網(wǎng)絡(luò)中大并流媒體實時傳送的方法。該方法是一種基于反饋機制的自組織流媒體服務(wù)器的干擾抑制方法(FAIRFeedback-based Autonomous Interference-Resisting)。仿真實驗說明本方案的效果很好,非常便于實現(xiàn),能有效抑制用戶的到達時間和數(shù)目的波動、碼率的波動以及硬件故障和網(wǎng)絡(luò)故障等等各種隨機干擾,從而明顯提升流媒體服務(wù)器所支持的并發(fā)數(shù)目、穩(wěn)定性和對網(wǎng)絡(luò)的使用效率。
上面所說的問題本質(zhì)上是一個調(diào)度問題,所以本發(fā)明定位設(shè)計和實現(xiàn)一個高效的解決上述問題的調(diào)度方法。本調(diào)度方法主要的思想定位在(1)總體調(diào)度盡量簡單,從而保證調(diào)度方法在大并發(fā)流大的輸入/輸出(I/O)吞吐時的實際可行性,并為將來的可擴展性打下良好的基礎(chǔ)。
(2)調(diào)度的權(quán)力適當(dāng)下放到每個媒體流(session);由各個媒體流基于反饋控制自組織地進行協(xié)調(diào)和控制,從而達到總體資源在每個媒體流之間的動態(tài)合理分配,并且滿足各個流的服務(wù)質(zhì)量(QoS)需求。
在這樣的策略下,視頻服務(wù)器具有很好的擴展性和通用性,同時,由于各個流的需求各個流自身最了解,各個流的自組織控制能有效滿足各個流的QoS需求。
本發(fā)明提出的使網(wǎng)絡(luò)中的大并發(fā)流流媒體能夠?qū)崟r傳送的方法,其包括(a)在系統(tǒng)運行之前,先進行適當(dāng)?shù)膮?shù)配置,即服務(wù)器依據(jù)系統(tǒng)運行的硬件的輸入輸出吞吐能力,預(yù)設(shè)定所支持的最大流媒體數(shù)目,同時根據(jù)發(fā)布影片的碼率信息,為各個流媒體設(shè)定參考的預(yù)定任務(wù)進度,并且為本發(fā)明所采用的比例積分控制環(huán)節(jié),預(yù)設(shè)定合適的參數(shù)KP、KI,即當(dāng)前誤差增益以及積累誤差增益;設(shè)定一個輪詢的幀間隔時間,一般設(shè)定在0.01秒到0.1秒的數(shù)量級上,也可根據(jù)實際運用作相應(yīng)調(diào)整;設(shè)定最大窗口值為N,也可根掘?qū)嶋H情況或運行效果進行調(diào)整。
(b)在每一個幀間隔時間內(nèi),使令牌在各個流媒體之間輪詢;
(c)獲得令牌的流媒體判斷它的當(dāng)前窗口值是否為零,如果該當(dāng)前窗口值不為零,根據(jù)該流媒體的發(fā)送計劃處理和發(fā)送數(shù)據(jù);(d)如果所述當(dāng)前窗口值為零,則制定系統(tǒng)的N個發(fā)送計劃,其步驟是根據(jù)系統(tǒng)的當(dāng)前時間和流媒體會話的起始時間,計算出該流媒體會話當(dāng)前的任務(wù)進度偏差,結(jié)合該流媒體會話的累積和任務(wù)進度偏差,通過比例積分參數(shù)KP、KI的設(shè)定,給出一個新的發(fā)送參考值,然后依此計算出在接下來的N個幀間隔內(nèi)所要發(fā)送的數(shù)據(jù)總量,將其平推到下N個幀間隔內(nèi),并恢復(fù)當(dāng)前窗口值為N。至此,便制定好了新的發(fā)送計劃,并重置當(dāng)前窗口不為零,便可根據(jù)發(fā)送計劃,處理和發(fā)送數(shù)據(jù)。
(e)每次執(zhí)行一個發(fā)送計劃后,將所述流媒體的當(dāng)前窗口值遞減1。
在本發(fā)明的步驟(c)中,在獲得令牌的流媒體判斷它的當(dāng)前窗口值是否為零之前,包括步驟確定所述流媒體是否有任務(wù)需要處理;如果確定所述流媒體沒有任務(wù)需要處理,則該流媒體將令牌傳遞給下一個流媒體;如果確定所述流媒體有任務(wù)需要處理,則需進一步確定在內(nèi)存中該流媒體是否有足夠的數(shù)據(jù)需要處理;如果沒有,則流媒體服務(wù)器從磁盤讀取數(shù)據(jù)。如果有,則流媒體服務(wù)器把數(shù)據(jù)發(fā)送給用戶端。
在本發(fā)明的步驟(d)中,所述計算該流媒體的總的任務(wù)進度誤差包括步驟根據(jù)所述參考的預(yù)定任務(wù)進度以及該流媒體的實際任務(wù)進度計算出任務(wù)誤差值;將該任務(wù)誤差值乘以所述當(dāng)前誤差增益然后與積累誤差累加作為新的積累誤差;將所述新的積累誤差乘以所述積累誤差增益后與所述新的積累誤差相加作為該流媒體的總的任務(wù)進度誤差。
令牌在所有流媒體之間傳遞一次時,計算處理任務(wù)所需要的時間;判斷所述處理任務(wù)所需要的時間是否小于任意預(yù)設(shè)定的一個時間值,如果所述處理任務(wù)所需要的時間小于預(yù)設(shè)定的一個時間值,使服務(wù)器在所述處理任務(wù)所需要的時間與所述預(yù)設(shè)定的一個時間之內(nèi)休眠,如果所述處理任務(wù)所需要的時間大于預(yù)設(shè)定的一個時間值,服務(wù)器不作任何處理。
采用上述方法能有效抑制用戶的到達時間、數(shù)目的波動、碼率的波動以及硬件故障和網(wǎng)絡(luò)故障等等各種隨機干擾,從而明顯提升流媒體服務(wù)器所支持的并發(fā)數(shù)、穩(wěn)定性和對網(wǎng)絡(luò)的使用效率。
圖1是本發(fā)明的采用基于反饋機制的自組織流媒體服務(wù)器的干擾抑制策略的結(jié)構(gòu)圖。
圖2是本發(fā)明的優(yōu)選實施例的服務(wù)器輪轉(zhuǎn)調(diào)度的流程圖;
圖2是本發(fā)明的優(yōu)選實施例的服務(wù)器輪轉(zhuǎn)調(diào)度的流程圖;圖3是本發(fā)明的優(yōu)選實施例中每一個流媒體獲得令牌之后,利用系統(tǒng)資源處理和發(fā)送流媒體數(shù)據(jù)的流程圖;圖4是本發(fā)明的優(yōu)選實施例為下一個M個幀間隔設(shè)定發(fā)送計劃的流程圖;圖5到圖7示出了使用基于反饋機制的自組織流媒體服務(wù)器的干擾抑制策略、在并發(fā)用戶數(shù)目恒定的情況下各個系統(tǒng)運行的情況;其中,圖5為OLM3S,圖6為OLM12S,圖7為FIM。
圖8到圖10示出了對于不同的用戶到達參數(shù)λ,系統(tǒng)的輸出控制速率和系統(tǒng)所抗的干擾。其中,圖8中,λ=0.0125,圖9中,λ=0.0130,圖10中,λ=0.0135。
圖11、12分別顯示了對于系統(tǒng)運行過程中發(fā)生的隨機大、小故障,本發(fā)明相比較一般機制所體現(xiàn)的抗故障和恢復(fù)能力。
圖13是采用本發(fā)明的方法的服務(wù)器運用在網(wǎng)絡(luò)中的示例結(jié)構(gòu)圖。
圖中標號1表示服務(wù)器采用令牌環(huán)的方式對所有的流媒體會話進行輪詢處理;2表示存儲設(shè)備;3表示傳輸子系統(tǒng);4表示碼率平整處理器;5表示數(shù)率控制器;6表示發(fā)送緩沖區(qū)。
具體實施例方式
為了解決現(xiàn)有技術(shù)中的問題,本發(fā)明提供了一種新穎的基于反饋機制的自組織流媒體服務(wù)器的干擾抑制方法,參見圖1。圖1描述的是視頻服務(wù)器的架構(gòu)。1表示服務(wù)器采用令牌環(huán)的方式對所有的流媒體會話進行輪詢處理;2表示存儲設(shè)備,包括磁盤(陣列)和內(nèi)存,功能是讀取媒體文件內(nèi)容,供控制和發(fā)送模塊使用。3表示傳輸子系統(tǒng),負責(zé)發(fā)送媒體數(shù)據(jù)到各個客戶端。4表示碼率平整處理器;5表示數(shù)率控制器;速率控制器和碼率平整處理器用于反應(yīng)QoS并控制發(fā)送速率。6表示服務(wù)器的發(fā)送數(shù)據(jù)緩沖區(qū)。
為了保證總體調(diào)度盡量簡單和具有良好的普適性,本發(fā)明采用令牌環(huán)形式的輪詢調(diào)度。下面詳細說明采用了基于反饋機制的自組織流媒體服務(wù)器的干擾抑制方法的視頻服務(wù)器的工作流程。
第一,本發(fā)明的優(yōu)選實施例的服務(wù)器輪轉(zhuǎn)調(diào)度的方法,參見圖2所示(對應(yīng)算法1)。在服務(wù)器上電之后,進行初始化(步驟202)。在步驟202中,服務(wù)器根據(jù)網(wǎng)絡(luò)環(huán)境的狀況,為每個媒體流將其窗口初始化為0,并且也將各個媒體流的積累誤差初始化為零。在步驟204,在服務(wù)器繼續(xù)運行的情況下,流程繼續(xù)到步驟208,否則服務(wù)器結(jié)束工作(步驟206)。在步驟208,服務(wù)器將當(dāng)前的系統(tǒng)時間賦值給變量Loop_begin。接下來,在步驟210,在每一個幀間隔(即一幅畫面)時間內(nèi),服務(wù)器使令牌在每一個流媒體之間輪詢。得到令牌時,相應(yīng)的一個流媒體獲得一小片時間。服務(wù)器首先判斷該流媒體的狀態(tài)是否處于播放狀態(tài)(步驟210),也就是說判斷該流媒體是否有任務(wù)需要處理。如果是,則流程繼續(xù)到步驟212。在步驟212,如果在內(nèi)存中沒有足夠的數(shù)據(jù),則從磁盤中讀取數(shù)據(jù)(步驟214),然后執(zhí)行步驟216的操作。如果在內(nèi)存中數(shù)據(jù)足夠多,則流程直接進行到步驟216。在步驟216,該流媒體可以進行流媒體數(shù)據(jù)的處理和發(fā)送。在步驟210,如果該流媒體不是處于播放狀態(tài),則將令牌交給下一個流媒體。下一個流媒體重復(fù)步驟210-216的操作。每一次令牌在各個流媒體之間輪詢完一次之后,服務(wù)器記錄下完成一次輪詢時的系統(tǒng)時間,并將其賦值給變量Loop_end。服務(wù)器計算變量Loop_begin和Loop_end之間的差值,作為在令牌輪詢一次期間各個流媒體處理各個幀的所需時間總量tn。如果該時間小于一個預(yù)定的時間值tv,則令服務(wù)器在tv-tn時間內(nèi)休眠(步驟220,222)。在此之后,流程返回到204。如果tn大于tv,則服務(wù)器不作任何處理,返回到步驟204。
第二,本發(fā)明的優(yōu)選實施例中每一個流媒體獲得令牌之后,利用系統(tǒng)資源處理和發(fā)送流媒體數(shù)據(jù)的方法,參見圖3(對應(yīng)算法2)。首先,在步驟302,服務(wù)器查看獲得令牌的流媒體的當(dāng)前窗口值是否為零?!爱?dāng)前窗口”是指系統(tǒng)當(dāng)前處理的任務(wù)在一個發(fā)送計劃中的位置。如果當(dāng)前窗口值為零,則為下M個幀間隔設(shè)定發(fā)送計劃(步驟304),發(fā)送計劃的指定將在后文介紹。接下來,流程進行到步驟306,服務(wù)器根據(jù)該流媒體的設(shè)定的發(fā)送計劃封裝數(shù)據(jù)。如果在步驟302,當(dāng)前窗口值不是零,則在步驟306,服務(wù)器根據(jù)流媒體原有的發(fā)送計劃來封裝數(shù)據(jù)。數(shù)據(jù)封裝完畢之后,服務(wù)器將獲得令牌的流媒體當(dāng)前的窗口值遞減1。在本發(fā)明中,對于當(dāng)前窗口的操作是利用向下遞減直到零來實現(xiàn)的。但是,本發(fā)明并不局限于此,而可以采用任何適當(dāng)?shù)拈撝狄约捌渌挠嫈?shù)方式來操作當(dāng)前窗口。
第三,本發(fā)明的優(yōu)選實施例為下一個M個幀間隔設(shè)定發(fā)送計劃的過程,參見圖4(對應(yīng)算法3)。在步驟402,服務(wù)器將流媒體的參考任務(wù)進度Ref(t)減去該流媒體的實際發(fā)送任務(wù)進度Act(t)從而計算出任務(wù)進度的誤差值。為了使各個流媒體能夠進行自組織地協(xié)調(diào)和控制,服務(wù)器給流媒體設(shè)定一個當(dāng)前誤差的增益,將該當(dāng)前誤差的增益乘以任務(wù)進行的誤差值,然后與原始積累誤差累加作為新的積累誤差(步驟404)。在步驟406,服務(wù)器給獲得令牌的流媒體設(shè)定一個積累誤差增益,將任務(wù)進度誤差乘以積累誤差增益并且加上當(dāng)前的積累誤差,計算出該流媒體的任務(wù)的總誤差。在步驟408,服務(wù)器為流媒體設(shè)定新的窗口大小M,并且根據(jù)新的窗口大小M和總誤差設(shè)定下M個幀間隔總共需發(fā)送的數(shù)據(jù)量。在新的發(fā)送計劃中,將總的數(shù)據(jù)發(fā)送量平攤到M個幀間隔中。上述下一個M個幀間隔設(shè)定發(fā)送計劃的方式在本發(fā)明中僅僅是示例性的,對于本領(lǐng)域普通技術(shù)人員而言,依據(jù)本發(fā)明的教導(dǎo)可以采用其它的方式來為下一個M個幀間隔設(shè)定發(fā)送計劃。
FAIR算法的偽代碼如下
仿真實驗為了驗證本發(fā)明所能達到的效果,我們用詳盡的實驗數(shù)據(jù)來說明FAIR的性能及與其他典型策略之間的性能對比情況。
在給出實驗數(shù)據(jù)之前,我們先簡單介紹一下我們所采用的實驗方法、實驗所關(guān)注的性能指標、及所采用的對比策略的情況。
(1)試驗設(shè)置對于流媒體服務(wù)器算法而言,最重要的性能指標是在相同的硬件條件下、相同的網(wǎng)絡(luò)等外部環(huán)境下、及相同的服務(wù)請求和服務(wù)質(zhì)量需求下,服務(wù)器所支持的并發(fā)用戶數(shù)、系統(tǒng)運行的穩(wěn)定性、及服務(wù)器對網(wǎng)絡(luò)的影響。所以,我們在實驗中主要觀察服務(wù)器在各種硬件條件下的并發(fā)用戶數(shù)、系統(tǒng)的穩(wěn)定運行時間及單個用戶流的發(fā)送速率波動情況這三個性能指標。
我們的策略設(shè)計通過簡化總體調(diào)度以取得服務(wù)器系統(tǒng)在各種硬件條件和并發(fā)數(shù)水平上的可擴展性和適用性,同時以滑動窗口的方法來降低服務(wù)器發(fā)送速率控制對網(wǎng)絡(luò)的不良影響。公平性、抗干擾性和可擴展性是提升服務(wù)器并發(fā)數(shù)和穩(wěn)定性的基礎(chǔ)和關(guān)鍵,所以,以下將以詳盡的實驗數(shù)據(jù)來說明我們所提出的方法在各種情況下的定量性能。
為此,我們用Visual C++搭建了一個仿真環(huán)境,模擬不同的用戶到達情況、不同的硬件條件及多媒體碼流情況,從而得出各種方法的性能評估數(shù)據(jù)。具體而言,實驗用一個隨機的泊松過程來描述用戶的到達,泊松過程的參數(shù)為λ。每個用戶的點播持續(xù)時間服從1800秒~6300秒的均勻分布。λ與并發(fā)的用戶數(shù)的關(guān)系見表1。點播影片的信息來自于網(wǎng)站http//www-tkn.ee.tu-berlin.de/research/trace/ltvt.html。系統(tǒng)故障則這樣來模擬故障的發(fā)生服從N(μ,σ2)。
(2)干擾的模擬在一次輪詢所花實際時間小于虛擬時間時,我們認為系統(tǒng)沒有受到干擾,置乘性干擾信號為1。當(dāng)輪詢所花時間超過虛擬時間時,認為系統(tǒng)受到干擾,大小為虛擬時間/實際時間。影響這個干擾信號的因素主要有影片的碼率波動、用戶數(shù)量和用戶的發(fā)送速率。發(fā)送速率對干擾信號的作用反映了反饋機制自適應(yīng)調(diào)整對系統(tǒng)中其他用戶帶來的干擾。相對而言,開環(huán)系統(tǒng)由于以恒定的1倍速率發(fā)送數(shù)據(jù),所以干擾不受發(fā)送速率影響。
設(shè)定我們的策略(FIM)起始有3秒的時延,目標發(fā)送計劃是客戶端保留12秒的緩沖數(shù)據(jù)。由于開環(huán)系統(tǒng)(OLM)不會調(diào)節(jié)客戶端的緩沖數(shù)據(jù)量,為公平起見,我們給出兩套開環(huán)系統(tǒng)1)起始3秒時延。2)起始12秒時延。前者與FIM響應(yīng)時間一致,后者在穩(wěn)定工作狀態(tài)時,客戶端緩沖數(shù)據(jù)量與FIM一致。接下來的實驗中,我們就這3個系統(tǒng)進行比較,主要關(guān)注客戶端緩沖區(qū)的狀況,認為發(fā)生下溢就代表系統(tǒng)無法正常工作。
表1λ與并發(fā)用戶數(shù)的關(guān)系見下表
下面是仿真試驗的試驗結(jié)果。
1)恒定并發(fā)用戶數(shù)量首先,我們觀察在并發(fā)用戶數(shù)恒定的情況下,各個系統(tǒng)的運行,見圖5~7。
可以看到,雖然擴大了4倍的起始時延,對于開環(huán)系統(tǒng)而言,仍不能明顯地增加并發(fā)的用戶數(shù)。而使用了輪詢反饋機制的系統(tǒng),支持的并發(fā)數(shù)可達122,與開環(huán)系統(tǒng)相比提升約20%。
2)隨機用戶到達現(xiàn)在我們考慮用戶數(shù)量的隨機波動。由于我們的模擬只關(guān)注一個用戶的狀態(tài),那么我們認為在一個較長的時間域上,該用戶一直沒有發(fā)生緩沖區(qū)的下溢,則認為系統(tǒng)能夠正常運行,支持參數(shù)為λ的用戶到達。經(jīng)過實驗,從長時間域上來看,各個系統(tǒng)能夠支持的λ見表2。
表2
表中的Util體現(xiàn)了系統(tǒng)的工作效率,認為之前測得的恒定并發(fā)用戶數(shù)是系統(tǒng)滿負荷工作狀態(tài),與動態(tài)的并發(fā)用戶數(shù)的期望比較,得到工作效率。3個系統(tǒng)比較后看出,F(xiàn)IM支持的并發(fā)用戶數(shù)最多,能承受并發(fā)數(shù)的波動最大,而且工作效率最高。
3)發(fā)送速率和干擾接下來,我們觀察發(fā)送速率和干擾。由于OLM不會自身產(chǎn)生干擾,所以我們只觀察FIM。關(guān)心控制器給出的控制速率(Controlled Rate)、實際的發(fā)送速率(Actual Rate)和干擾信號(Disturbance)。對于不同的用戶到達參數(shù)λ,見圖8~10。
可以看到,當(dāng)λ較小時,并發(fā)用戶數(shù)較小,產(chǎn)生的干擾很小(基本上都為1),從而發(fā)送的速率波動也很小。當(dāng)λ增加,并發(fā)用戶數(shù)增加,則干擾信號也增強,使得系統(tǒng)漸漸偏離預(yù)定的發(fā)送計劃,為了趕上發(fā)送計劃,系統(tǒng)相應(yīng)地加大控制速率來抵抗干擾的影響,使實際的發(fā)送速率穩(wěn)定在1倍速率左右,不至于偏離發(fā)送計劃。
由于實際情況中,故障發(fā)生的概率很小,那么對于單個用戶的一次點播,是否有故障對實驗結(jié)果沒有影響,故我們不考慮故障。以上的3組實驗都沒有加入故障的影響。
4)故障的影響最后我們加入故障的影響??紤]長時間域上的情況,限于作圖的篇幅,我們只給出最前的3次連續(xù)播放,并適當(dāng)加大故障的影響(使得作圖顯示的效果明顯,但實際工作時不會有那么大的故障)。故障的發(fā)生服從N(μ,σ2)。對于小故障(N(10000,20002)),持續(xù)時間的參數(shù)θ=0.7,作用在OLM上,會使得客戶端緩沖數(shù)據(jù)量很不穩(wěn)定,見圖11。當(dāng)故障增大(N(7000,20002)),持續(xù)時間的參數(shù)θ=0.4,即使OLM起始時延12秒,仍會受到極大的影響,導(dǎo)致客戶端緩沖區(qū)下溢,見圖12。
而在以上兩種情況下,F(xiàn)IM表現(xiàn)了很好的抗故障和恢復(fù)能力,只要故障發(fā)生前后,并發(fā)用戶數(shù)不在滿負荷狀態(tài)附近(實驗中λ并不大),即有一定的空余資源,則FIM能有效地利用這些資源,使整個系統(tǒng)迅速恢復(fù)到最佳工作狀態(tài)。
圖13采用本發(fā)明的方法的服務(wù)器運用在網(wǎng)絡(luò)中的示例結(jié)構(gòu)圖。在該實施例中,視頻服務(wù)器通過網(wǎng)絡(luò)分發(fā)樹給大量分布的客戶提供視頻點播服務(wù)。視頻服務(wù)器上實施本發(fā)明所提出的FAIR算法,對每個客戶的點播請求進行調(diào)度。
根據(jù)本發(fā)明,為了使系統(tǒng)資源在各個媒體流之間分配,服務(wù)器設(shè)定一個令牌,在每個幀間隔時間內(nèi)輪令牌在各個客戶(媒體流)之間傳遞。當(dāng)某個客戶得到令牌后,就可以得到一小片時間的系統(tǒng)資源進行流媒體數(shù)據(jù)的處理和發(fā)送(見Algorithm 2)。記第n個幀間隔所需的時間為tn(即Algorithm 1中的AT),tv(即Algorithm 2中的VTU)為一個虛擬時間單位。當(dāng)tn<tv時,服務(wù)器在tv-tn時間內(nèi)休眠,避免在服務(wù)器輕載情況下,令牌頻繁輪轉(zhuǎn)。當(dāng)tn>tv時,服務(wù)器不做處理。顯然,各個幀間隔所需的時間是不定的,但是服務(wù)器的輪轉(zhuǎn)調(diào)度則是基于虛擬時間單位tv的。
根據(jù)本發(fā)明,各個客戶進行自組織地協(xié)調(diào)和控制,從而滿足各個客戶的QoS需求。在多個客戶通過輪詢機制共享資源時,其他客戶實際上對某個給定客戶形成強干擾作用。所以,在本發(fā)明的優(yōu)選實施例中,采用基于速率窗口的發(fā)送速率非線性反饋控制巧妙地對客戶進行自組織協(xié)調(diào)和控制,達到了很好的性能。設(shè)每M次幀間隔(即窗口大小為M),控制器為接下來的M個幀間隔制定發(fā)送計劃(見Algorithm 3,其中Kp是當(dāng)前誤差的增益,Ki是積累誤差的增益)。根據(jù)參考任務(wù)進度(圖1中的參考值(t),即Algorithm 3中的參考值)和實際任務(wù)進度(圖1中的反饋值(t),即Algorithm 3中的Act)之間的差值(Algorithm 3的Error),并考慮到積累誤差(Algorithm 3中的EI),控制器計算出下M個幀間隔總共需發(fā)送的數(shù)據(jù)量。為了平滑速率,將總的發(fā)送量平攤到M個幀間隔中(圖1中的發(fā)送計劃(t))。
總之,本發(fā)明的流媒體服務(wù)器能夠有效地克服用戶的到達時間和數(shù)目的波動、碼率的波動、硬件故障和網(wǎng)絡(luò)故障等等各種隨機干擾,從而穩(wěn)定地支持大并發(fā),同時滿足各個媒體流實時性的要求。
上述內(nèi)容描述了本發(fā)明的最佳模式,應(yīng)該理解并且認識到,有許多等效于在此公開的示例性實施例的方式,并且在不脫離本發(fā)明的范圍和精神的情況下可以進行修改和變形,本發(fā)明不受示例性實施例的限制。
權(quán)利要求
1.一種用于使網(wǎng)絡(luò)中的大并發(fā)流流媒體能夠?qū)崟r傳送的方法,其特征在于包括a.服務(wù)器根據(jù)系統(tǒng)運行的硬件的輸入/輸出吞吐能力,預(yù)設(shè)定所支持的最大流媒體數(shù)目,并且為各個流媒體設(shè)定參考的預(yù)定任務(wù)進度、當(dāng)前誤差增益、積累誤差增益、幀間隔時間以及最大窗口值N;b.在每一個幀間隔時間內(nèi),使令牌在各個流媒體之間輪詢;c.獲得令牌的流媒體判斷它的當(dāng)前窗口值是否為零,如果該當(dāng)前窗口值不為零,根據(jù)該流媒體的發(fā)送計劃發(fā)送和處理數(shù)據(jù);d.如果所述當(dāng)前窗口值為零,則制定系統(tǒng)的N個發(fā)送計劃,其步驟是根據(jù)系統(tǒng)的當(dāng)前時間和流媒體會話的起始時間,計算出該流媒體會話當(dāng)前的任務(wù)進度偏差,結(jié)合該流媒體會話的累積和任務(wù)進度偏差,通過比例積分參數(shù)KP、KI的設(shè)定,給出一個新的發(fā)送參考值,然后依此計算出在接下來的N個幀間隔內(nèi)所要發(fā)送的數(shù)據(jù)總量,將其平推到下N個幀間隔內(nèi),并恢復(fù)當(dāng)前窗口值為N;再根據(jù)該新的發(fā)送計劃發(fā)送和處理數(shù)據(jù);e.每次執(zhí)行一個發(fā)送計劃后,將所述流媒體的當(dāng)前窗口值遞減1。
2.如權(quán)利要求1的所述方法,其特征在于,在步驟c中,在獲得令牌的流媒體判斷它的當(dāng)前窗口值是否為零之前,包括步驟確定所述流媒體是否有任務(wù)需要處理;如果確定所述流媒體沒有任務(wù)需要處理,則該流媒體將令牌傳遞給下一個流媒體;如果確定所述流媒體有任務(wù)需要處理,則需進一步確定在內(nèi)存中該流媒體是否有足夠的數(shù)據(jù)需要處理;如果沒有,則流媒體服務(wù)器從磁盤讀取數(shù)據(jù)。如果有,則流媒體服務(wù)器把數(shù)據(jù)發(fā)送給用戶端。
3.如權(quán)利要求1的所述方法,其特征在于,在步驟d中,所述計算該流媒體的總的任務(wù)進度誤差包括步驟根據(jù)所述參考的預(yù)定任務(wù)進度以及該流媒體的實際任務(wù)進度計算出任務(wù)誤差值;將該任務(wù)誤差值乘以所述當(dāng)前誤差增益然后與積累誤差累加作為新的積累誤差;將所述新的積累誤差乘以所述積累誤差增益后與所述新的積累誤差相加作為該流媒體的總的任務(wù)進度誤差。
4.如權(quán)利要求1-3之一的所述方法,其特征在于進一步包括步驟f.令牌在所有流媒體之間傳遞一次時,計算處理任務(wù)所需要的時間;g.判斷所述處理任務(wù)所需要的時間是否小于任意預(yù)設(shè)定的一個時間值,如果所述處理任務(wù)所需要的時間小于預(yù)設(shè)定的一個時間值,使服務(wù)器在所述處理任務(wù)所需要的時間與所述預(yù)設(shè)定的一個時間之內(nèi)休眠,如果所述處理任務(wù)所需要的時間大于預(yù)設(shè)定的一個時間值,服務(wù)器不作任何處理。
全文摘要
本發(fā)明屬于網(wǎng)絡(luò)多媒體技術(shù)領(lǐng)域,具體是一種使網(wǎng)絡(luò)中的大并發(fā)流媒體實時傳送的方法。在該方法中,服務(wù)器設(shè)定最大支持流媒體數(shù)目,且為各個流媒體設(shè)定參考任務(wù)進度、當(dāng)前誤差增益及積累誤差增益等。在每一個幀間隔時間內(nèi),使令牌在各個流媒體之間輪詢。獲得令牌的流媒體判斷它的當(dāng)前窗口值是否為零,若不為零,根據(jù)發(fā)送計劃發(fā)送和處理數(shù)據(jù);若為零,計算該流媒體的總的任務(wù)進度誤差,據(jù)此設(shè)定新的發(fā)送計劃,并將該流媒體的當(dāng)前窗口值遞減1。本發(fā)明的流媒體服務(wù)器能夠有效地抑制用戶的到達時間、數(shù)目、碼率的波動、硬件故障和網(wǎng)絡(luò)故障等隨機干擾,從而明顯提升流媒體服務(wù)器所支持的并發(fā)數(shù)目、穩(wěn)定性和對網(wǎng)絡(luò)的使用效率。
文檔編號H04L12/40GK1688138SQ20051002578
公開日2005年10月26日 申請日期2005年5月12日 優(yōu)先權(quán)日2005年5月12日
發(fā)明者葉德建, 孫澔峻, 張佐 申請人:復(fù)旦大學(xué)