摘要:在虛擬課堂目前的開發(fā)中,廣泛采用了分層組播技術(shù)解決多媒體數(shù)據(jù)的傳輸問題。分層組播技術(shù)是異構(gòu)網(wǎng)絡(luò)中傳輸多媒體實時數(shù)據(jù)的一個重要解決方案。文章分析了現(xiàn)有分層組播擁塞控制的優(yōu)缺點,引入單次CLR分層組播機制,合理設(shè)置速率下降值和CLR選擇條件。該算法簡單易行,不會造成過多的網(wǎng)絡(luò)反饋負擔(dān),能夠保證虛擬課堂分層組播網(wǎng)絡(luò)的穩(wěn)定性。
關(guān)鍵詞:分層組播;單次CLR;異構(gòu)網(wǎng)絡(luò);虛擬課堂
中圖分類號:TP393
文獻標(biāo)志碼:A
文章編號:1006-8228(2011)12-48-02
0 引言
網(wǎng)絡(luò)技術(shù)的應(yīng)用和快速發(fā)展已經(jīng)使人們可以通過網(wǎng)絡(luò)進行隨時隨地的學(xué)習(xí)。虛擬課堂就是在計算機網(wǎng)絡(luò)和多媒體等技術(shù)的支持下所構(gòu)建的一個虛擬的教學(xué)環(huán)境,它模擬真實的教室,讓教學(xué)活動順利自然地在虛擬的環(huán)境中實現(xiàn)。
虛擬課堂的網(wǎng)絡(luò)傳輸?shù)脑O(shè)計目標(biāo)是使學(xué)習(xí)者能夠?qū)崟r、流暢地看到多媒體學(xué)習(xí)指導(dǎo)信息,允許多個學(xué)習(xí)者同時自由、方便地加入或者退出虛擬課堂。虛擬課堂的用戶是處在異構(gòu)網(wǎng)絡(luò)環(huán)境下的,這就對信息的數(shù)據(jù)發(fā)送速率選擇帶來了很大的困難。如果以較低接入速度為標(biāo)準(zhǔn)發(fā)送組播數(shù)據(jù),那么接入速度大的用戶就會浪費大量的帶寬資源,不能獲得理想的接收效果;相反,如果以較高接入速度為標(biāo)準(zhǔn)發(fā)送組播數(shù)據(jù),接入速度較低的用戶就無法實現(xiàn)視頻信息的流暢播放。為解決這個問題,虛擬課堂用分層組播的方式來滿足異構(gòu)網(wǎng)絡(luò)環(huán)境下學(xué)習(xí)者的不同需求。
SMCC是一種半適應(yīng)性動態(tài)分層機制,它介于固定分層和動態(tài)分層之間,不對整個組進行大規(guī)模的速率調(diào)整,而是把調(diào)整范圍限定在各層之內(nèi)。這種技術(shù)的關(guān)鍵在于各層能夠從反饋者中選出代表,根據(jù)代表的速率來調(diào)節(jié)層發(fā)送速率。本文在SMCC的基礎(chǔ)上,優(yōu)化CLR(the current limitingreceiver)的動態(tài)選擇機制,合理分配使用網(wǎng)絡(luò)帶寬,較好地實現(xiàn)了對虛擬課堂網(wǎng)絡(luò)組播擁塞的響應(yīng)和控制,并保持了虛擬課堂分層組播的穩(wěn)定性。
1 分層組播原理與算法
1.1 分層組播原理
組播避免了網(wǎng)絡(luò)使用的冗余,主要用于點到多點、多點到多點的數(shù)據(jù)傳輸。組播是依托IP協(xié)議完成的,數(shù)據(jù)包在數(shù)據(jù)傳遞樹的分叉處被強制復(fù)制,而不是由信源端節(jié)點多次重復(fù)發(fā)送數(shù)據(jù)拷貝。
分層組播的基本原理是,信源端將數(shù)據(jù)分為多個層,不同層次的數(shù)據(jù)使用不同的組播組傳輸。接收端通過出入不同層次對應(yīng)的組播組來實現(xiàn)擁塞控制。如果各層編碼之間的關(guān)系是相互獨立的,則稱為“聯(lián)播”方案;如果各層之間的關(guān)系是累積式的,則稱為“累積式分層組播”方案。因為累積式分層方案中各層之間不包含重復(fù)的信息,可以更有效地利用網(wǎng)絡(luò)帶寬資源,所以是目前多種新型分層組播技術(shù)的基礎(chǔ)。
1.2 分層組播算法
原始的信源端使用一個累積式的分層編碼器,它把原始數(shù)據(jù)流分為可累加的若干層Ci(i=1,2,…n),其中C1為基礎(chǔ)層,另有n-1個加強層?;A(chǔ)層能保證信號的最低質(zhì)量要求,而Ci+1層為己有的C1,C2,……Ci提供增強信號,同時申請若干個組播組地址Zi(i=1,2,…n),發(fā)送數(shù)據(jù)流時,用一個組播組地址配套傳輸一個數(shù)據(jù)層,即Ci—Zi(i=1,2,…n)。接受端利用組播的加入機制選擇接收適合的數(shù)據(jù)層。加入不同的組播組可獲得不同的接收速率?;A(chǔ)層數(shù)據(jù)最為重要,從基礎(chǔ)層到最高加強層,數(shù)據(jù)的重要性逐層降低,相應(yīng)地傳輸優(yōu)先級也從低層到高層依次降低。當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時,優(yōu)先過濾掉當(dāng)前分層組播中最低優(yōu)先級的最高層數(shù)據(jù),從而保護高優(yōu)先級低層重要數(shù)據(jù)。假定Bi表示從基礎(chǔ)層到第i層的總的累積發(fā)送速率,Rx表示第x層的發(fā)送速率,則接受端獲得的接收速率.具體設(shè)計時首先要考慮兩個重要參數(shù),—個是編碼層數(shù)n,它決定了—個組播系統(tǒng)所要維護的組播組的個數(shù);另一個是每層的發(fā)送速率Rx,它決定了層速率調(diào)整的粒度??偟睦鄯e發(fā)送速率所覆蓋的范圍由n和Rx共同決定。
2 SMCC的進步和存在的問題
2.1 SMCC的進步
SMCC(Smooth Multirate Mulficast Congestion Control)采用分層的方式組播數(shù)據(jù),每層都獨立使用單速率組播算法TFMCC來實現(xiàn)擁塞控制,這是一種多個協(xié)議相結(jié)合的做法。SMCC將TFMCC應(yīng)用到每層的速率調(diào)節(jié)中,接收端依據(jù)條件反饋期望速率,信源端選擇各層中速率最低的接收端充當(dāng)本層的層代表CLR,并按照層代表的速率重新調(diào)整確定本層發(fā)送速率。每層的實際發(fā)送速率不再是固定不變的,而是適應(yīng)成員速率的變化,在層內(nèi)進行重新合理調(diào)節(jié)。SMCC機制非常簡單且易操作執(zhí)行,它讓層內(nèi)速率最低者成為CLR,信源端根據(jù)各層的CLR的反饋信息來調(diào)節(jié)各層的發(fā)送速率,確保完成數(shù)據(jù)傳輸。
2.2 SMCC存在的問題
在實際應(yīng)用中,SMCC的不足往往就源于CLR的上述選擇機制,因為CLR往往是隨著自身網(wǎng)絡(luò)環(huán)境的變化而不斷變化的。假如由于網(wǎng)絡(luò)狀況的變化,充當(dāng)CLR的期望速率突然下降,其結(jié)果必然是帶動層速率急劇下降,層內(nèi)所有高速的接收者的實際接收速率也必然隨之急劇下降,這種做法顯然有很大的不足。
當(dāng)某層其他接收端的網(wǎng)絡(luò)出現(xiàn)了擁塞或者新的接收端加入該層,該層的CLR就有可能被取代。當(dāng)?shù)趇層的某接收端計算所得的速率小于第i層實際發(fā)送速率并且大于i-1層最大發(fā)送速率時,該接收端就會給發(fā)送端反饋信息。發(fā)送端得此反饋信息后,經(jīng)選擇機制選擇確認新的CLR,并調(diào)整發(fā)送速率達到新的CLR的速率并與其保持一致。這種算法保證了CLR在本層的最低速率代表,使組播正常工作,但結(jié)果是CLR的頻繁更渙且不具有代表性,甚至還經(jīng)常出現(xiàn)被棄CLR反復(fù)當(dāng)選又反復(fù)陂棄的情況,最終導(dǎo)致接受速率發(fā)生震蕩,平滑率下降,反饋包數(shù)量增大,容易出現(xiàn)反饋爆炸問題。當(dāng)某層中CLR要離開組播組時,向發(fā)送端發(fā)出離開信息,發(fā)送端接到該信息后,重新在該層的接收端中選出新的CLR。選擇新CLR時,同樣會出現(xiàn)重新選擇了原先被棄CLR,而被棄CLR往往是本層中接收速率變化較多的接收端,這將給此層傳輸速率的穩(wěn)定性帶來負面影響。
3 單次CLR的選擇機制
3.1 合理設(shè)置速率差閾值掛起CLR
在SMCC機制下,在充當(dāng)CLR的接收端期望速率突然下降時,其結(jié)果必然是帶動層速率急劇下降,層內(nèi)高速的接收者的實際接收速率也必然隨之急劇下降。為避免這種由于CLR意外急劇下降而造成對全層用戶的影響,我們通過對CLR設(shè)置速率差下降閾值來控制。若i層CLR與當(dāng)前層發(fā)送速率Ri的速率差超過先前設(shè)置的閾值,就會被掛起。i層發(fā)送速率將不再隨此CLR變化,暫按掛起發(fā)生前的發(fā)送速率執(zhí)行。隨即按照CLR選擇機制選擇合適的接收端作為本層CLR,取代當(dāng)前CLR成為新的CLR。閾值的合理設(shè)置至關(guān)重要,既要保證及時掛起不合格CLR,又不可過于敏感,造成頻繁遴選。
3.2 掛起CLR無權(quán)當(dāng)選新CLR
為防止舊CLR因為速率下降超過閾值被剝奪CLR資格后,在新一輪CLR選擇過程中與其他接收端競爭,我們規(guī)定舊CLR被剝奪資格后不得參與競爭。如果沒有這個限制機制,舊CLR因為速率下降超過閾值而被剝奪CLR資格后又未被退出本層,此時合適的預(yù)備新CLR還沒來得及把發(fā)送速率上拉,舊CLR自然就有可能再次當(dāng)選。掛起CLR再次當(dāng)選很有可能引發(fā)新一輪的CLR掛起、重選的過程,則其掛起機制沒有起到合理地重新選擇CLR的功效。如果當(dāng)某層CLR由于各種原因離開原組加入到其它組接收新結(jié)構(gòu)的層數(shù)據(jù),基于同樣的原因也設(shè)置其放棄CLR的競爭。本文認為掛起讓它CLR無權(quán)當(dāng)選新CLR直至虛擬課堂本次組播結(jié)束的機制,可較好地保證組播網(wǎng)絡(luò)的穩(wěn)定性,非常有必要。
3.3 單次CLR機制在虛擬課堂應(yīng)用的適應(yīng)性分析
虛擬課堂的眾多接收端有著異構(gòu)特征,同時又有著其他分層組播網(wǎng)絡(luò)所不具備的特點。首先,虛擬課堂的組播具有很強的時效性,其組播數(shù)據(jù)流一般不會持續(xù)太長時間。這讓單次CLR機制弊端(如持續(xù)掛起數(shù)量較多)的影響只持續(xù)較短的時間,虛擬課堂下一輪組播依然有著廣泛CLR選擇余地。其次,虛擬課堂的接收端在接收組播數(shù)據(jù)過程中有著相對較好的設(shè)備穩(wěn)定性。雖然虛擬課堂的用戶其網(wǎng)絡(luò)狀態(tài)不可避免存在差異且受公共網(wǎng)絡(luò)的影響帶寬會出現(xiàn)跳變,但大多數(shù)接收端一般會保持穩(wěn)定,這使單次CLR機制出現(xiàn)弊端的概率會大幅降低。再次,目前為解決網(wǎng)絡(luò)時延抖動的問題,在虛擬課堂接收端一般會設(shè)置一個緩沖區(qū),對多媒體組播數(shù)據(jù)進行緩存、同步的處理。接收端多媒體數(shù)據(jù)接收線程把接收到的數(shù)據(jù)存放在緩沖區(qū)中,接收端視頻回放線程周期性地從緩沖區(qū)中取出視頻數(shù)據(jù)進行回放。根據(jù)緩沖設(shè)置情況調(diào)整閾值參數(shù)設(shè)置,可以讓單次CLR選擇機制在虛擬課堂中的應(yīng)用更具合理性。
4 結(jié)束語
為了盡可能避免由于CLR意外急劇下降而造成對全層用戶的影響,本文引入掛起CLR無權(quán)當(dāng)選新CLR的方法,排除了掛起再次當(dāng)選從而引發(fā)新一輪掛起與重選的漏洞,保證了組播網(wǎng)絡(luò)的穩(wěn)定性。在各層的CLR確定上我們沿用了本層最低速率當(dāng)選的規(guī)則,算法簡單,不會造成過多的網(wǎng)絡(luò)反饋負擔(dān),可以保證虛擬課堂用戶的正常學(xué)習(xí)。這種方法也有著缺陷,比如,當(dāng)層內(nèi)高速率成員較多時,多數(shù)成員的要求得不到很好的層內(nèi)滿足。這些問題是后面的工作需要完善的地方。我們相信如果引入更合適的分層模型和CLR優(yōu)選方案,分層組播將會有更好的應(yīng)用前景,在虛擬課堂中的應(yīng)用也將更加完善。