文獻標(biāo)識碼: A
文章編號: 0258-7998(2014)01-0107-04
隨著寬帶網(wǎng)絡(luò)的蓬勃發(fā)展,網(wǎng)絡(luò)電視IPTV(Internet Protocol Television)服務(wù)成為許多營運商搶攻的新市場,其不僅可依照一般電視節(jié)目來播放影音,更可透過上傳視頻來進行互動式多媒體服務(wù)需求,提高使用者與服務(wù)之間的互動性[1]。
目前大多數(shù)營運商是通過CDN(Content Delivery Network)方式,采用網(wǎng)絡(luò)群播將用戶所需的節(jié)目傳送到距離用戶最近的服務(wù)器提供給用戶觀看[2]。但建設(shè)成本將隨用戶的增加而提高,同時分散各個區(qū)域的服務(wù)器也將加大設(shè)備維護的難度及成本。實際上在現(xiàn)今大部分的網(wǎng)絡(luò)皆無法使用網(wǎng)絡(luò)群播來進行數(shù)據(jù)傳送,因為網(wǎng)絡(luò)群播包含以下原因,導(dǎo)致因特網(wǎng)提供商(ISP)不愿使用此功能[3]。
(1)擴展性不足。網(wǎng)絡(luò)群播的運作原理是讓想要收到數(shù)據(jù)的用戶加入某一個群組之中,但是這些群組的信息是由網(wǎng)絡(luò)上的路由器來負(fù)責(zé)組織及維護。
(2)布建不易。需要網(wǎng)絡(luò)上所有的路由器都啟動群播的功能,如果某些路由器不提供這項服務(wù),就可能造成該地區(qū)的用戶不能使用群播功能。
(3)群播群組管理困難。由于網(wǎng)絡(luò)上的用戶加入與離開非常頻繁,有用戶加入時需要重新使用群播路由協(xié)議來建立群播樹;而用戶離開的話需要刪減多余群播樹的分支。
有學(xué)者提出應(yīng)用層群播ALM(Application Layer Multicast)的概念,將群播實現(xiàn)于各個端點的計算機上,使用應(yīng)用程序與其他計算機上的應(yīng)用程序建立連接來達成群播功能,不再依靠路由器的支持來使用群播功能[4]。由發(fā)送端將數(shù)據(jù)送給某個需要這份數(shù)據(jù)的節(jié)點,收到的節(jié)點再進行轉(zhuǎn)送。透過這種方式將數(shù)據(jù)送到所有需要這份數(shù)據(jù)的節(jié)點上,此路徑可視為一個邏輯的網(wǎng)絡(luò)拓?fù)?。該方法會造成?shù)據(jù)從起始點傳送到終點的時間變長,因此這并不是一個有效率的網(wǎng)絡(luò)拓?fù)洹?br/>
本文采用類似Ad-Hoc的網(wǎng)絡(luò)拓?fù)湫螒B(tài),讓每一個節(jié)點完全地?fù)碛凶灾鳈?quán),達成彼此傳送數(shù)據(jù)的目的。節(jié)點基本的功能包含了自行建構(gòu)網(wǎng)絡(luò)、搜尋目標(biāo)和所需的資源,主要在于運用Distributed Hash Table(DHT)的方式,讓每一個節(jié)點持有少量的索引信息,再透過 DHT 來進行運作,而Chord就是其中一種。透過Chord 進行信息交換,用以減少服務(wù)器的負(fù)擔(dān),提高服務(wù)器運作效率及服務(wù)質(zhì)量。
1 研究方法
1.1 群播代理人
為了能夠在用戶較多的情況下,有效減輕系統(tǒng)與網(wǎng)絡(luò)帶寬的負(fù)荷,在架構(gòu)中為每一個子網(wǎng)群播設(shè)置一個群播代理人MA(Multicast Agent)服務(wù)器來代為轉(zhuǎn)送群播視頻封包到其他的子網(wǎng)上, 代理人之間使用單播來互相溝通。
1.2 Chord
Chord是建立在應(yīng)用層中的查詢算法,它利用一致性哈希算法[5]將每一個節(jié)點都給予一個唯一的ID,將其建構(gòu)成一個環(huán)的網(wǎng)絡(luò)形態(tài)。如圖1所示,在Chord環(huán)上的各點表示存在的MA,每一個MA的指針列表FT(Finger Table)中最多負(fù)責(zé)O(logN)筆數(shù)據(jù),查詢時只需O(logN)次即可找到所要的數(shù)據(jù),在MA加入和離開時也只需花費O(logN)的消息量。FT是用來儲存Chord 環(huán)上ID值與Successor的關(guān)系,節(jié)點間利用自己的FT來查詢和幫助其他MA找尋ID的successor。而FT之間會定時進行信息交換,以確保各節(jié)點仍正常在Chord環(huán)中。
在IPTV 基礎(chǔ)下架構(gòu)Chord環(huán),需以服務(wù)器作為MA的引導(dǎo)節(jié)點,所有的MA都必須透過引導(dǎo)節(jié)點加入Chord環(huán)中進行注冊并且加入群播樹中接收所需IPTV 內(nèi)容,MA之間所建構(gòu)出的傳輸路徑以及維持該架構(gòu)的相關(guān)信息會分散于每個MA上,每個MA 都包含了3個Table來記錄這些消息:
(1)Finger Table(FT):MA加入Chord環(huán)進行注冊。
(2)Multicast Spanning Tree Table(MSTT):記錄群播樹中的傳輸路徑,當(dāng)有節(jié)點失效時可以根據(jù)MSTT中的數(shù)據(jù)與其他節(jié)點重新連接。
(3)Leaf Node Table(LNT):記錄每個MA剩余空間的子節(jié)點。
2 應(yīng)用層群播樹建構(gòu)方法
ABTP(Average Bandwidth-Time Product)由參考文獻[6]所提出的BTP(Bandwidth-Time Product)衍生而來,BTP希望能夠結(jié)合帶寬與成員在線的時間兩項參數(shù),將兩個參數(shù)相乘之后作為群播樹調(diào)整的標(biāo)準(zhǔn)。但是BTP的帶寬值僅依照單次帶寬測試的結(jié)果來決定,這可能會因為短時間帶寬的波動影響,造成不必要的群播樹調(diào)整,而ABTP是將各次測得的帶寬大小平均之后,再乘上成員所留在群播樹中的時間,得到平均帶寬時間乘積,避免了測試頻寬的過程中因為其他程序暫時消耗額外帶寬所造成的影響。本文群播樹建構(gòu)算法將以ABTP值為調(diào)整標(biāo)準(zhǔn),用以解決當(dāng)有大量使用者觀看節(jié)目時,服務(wù)器無法負(fù)擔(dān)大量帶寬需求,造成傳輸質(zhì)量下降及負(fù)荷過大的問題。算法的基本概念是讓各應(yīng)用層群播樹成員MA互相交換在群播樹上的位置,將由ABTP 參數(shù)所計算出數(shù)值較高者,往樹的上層提升,以達到優(yōu)化狀態(tài)。此算法架構(gòu)分為:
(1)成員注冊:當(dāng)使用者(MA)欲觀看節(jié)目時,先向引導(dǎo)節(jié)點進行注冊Chord動作,用來加入Chord 結(jié)構(gòu),提高之后找尋節(jié)點地址效率。
(2)成員加入:成員要加入群播樹時會先從引導(dǎo)節(jié)點開始查詢LNT。當(dāng)MA收到加入的要求時會先查看本身是否能夠負(fù)擔(dān),無法負(fù)擔(dān)時,便從LNT中挑選剩余負(fù)擔(dān)能力最大的子節(jié)點,讓新成員加入。如果LNT中沒有可加入的節(jié)點,則告知新成員依循廣度優(yōu)先BFS(Breadth-First Search)方式找尋適當(dāng)?shù)墓?jié)點當(dāng)作其父節(jié)點(Parent Node)。而在節(jié)點加入群播樹中,找尋節(jié)點的方式是透過Chord環(huán)中FT來進行搜尋適當(dāng)?shù)墓?jié)點位置。圖2為新成員加入的方法:①新加入的MA,也就是節(jié)點N,向引導(dǎo)節(jié)點B,提出加入的請求;②如果B已經(jīng)到達負(fù)載上限,到達的分支的極限,則B便會選擇還具有負(fù)擔(dān)能力成員M2告知N;③N轉(zhuǎn)向成員M2要求加入群播樹; ④因為M2還具有能力負(fù)擔(dān),所以送出回復(fù)OK給新來的成員表示同意;⑤N送出Acknowledgement來回答M2的接受,之后M2便開始負(fù)責(zé)轉(zhuǎn)傳內(nèi)容給新加入的成員N。
(3)成員離開:成員離開群播樹時,為避免離開成員子節(jié)點收看節(jié)目中斷,成員應(yīng)該要依循正確方式離開,等待子節(jié)點回報完成與新節(jié)點進行連接后才可離開。圖3中,M1欲要離開此群播樹:①通知子節(jié)點M3,自己即將要離開;②M3會對自己的祖父M0送出加入的請求,信息里會特別標(biāo)示為MA rebuilding,避免因為M0沒有額外的空間容納,而拒絕了底下成員的加入;③M0傳回確認(rèn)接收消息給M3;④M3會送出Acknowledgement給M0,并告知M1自己已經(jīng)與M0連接完成;⑤M1收到M3與M0連接成功的信息后,便告知M0自己要離開;⑥M0回傳確認(rèn)信息;⑦此時M1可離開,結(jié)束收看節(jié)目動作。
(4)群播樹調(diào)整:為了讓群播樹能夠適應(yīng)不停變化的網(wǎng)絡(luò)狀況,需要將性能好的成員往上提升來達到IPTV重迭網(wǎng)絡(luò)優(yōu)化。比較兩個不同層的成員的ABTP大小,比較后使其互相交換位置,在系統(tǒng)運行一段時間之后,ABTP最大的成員將會占據(jù)群播樹的上層位置。在群播樹調(diào)整的動作中,會設(shè)定服務(wù)器也就是群播樹根節(jié)點的ABTP為無限大,因而無法被取代。當(dāng)新成員加入群播樹時,因其在線時間為0,所以它的ABTP會被設(shè)置為0。依照加入的程序,這個新的成員會被置放在樹的底層位置。隨著在系統(tǒng)中的時間增長,其ABTP值會逐漸地成長,一旦ABT值超越了自己現(xiàn)在父節(jié)點的ABTP時,便會進行位置交換。如圖4所示,M3因為擁有較大的帶寬,因此ABTP值有機會超越自己的父節(jié)點M1,最后在一次群播樹調(diào)整的過程與M1交換位置。為了減少群播樹調(diào)整時受到影響的節(jié)點,發(fā)動群播樹調(diào)整的節(jié)點選擇將其子節(jié)點里ABTP最小的成員更換連接,成為自己父節(jié)點的子節(jié)點,其他成員則一并提升位置。
3.2 實驗結(jié)果及分析
3.2.1 優(yōu)化標(biāo)準(zhǔn)對群播樹調(diào)整次數(shù)的影響
由于群播樹調(diào)整動作復(fù)雜,因此群播樹調(diào)整次數(shù)的多少,也會造成群播樹成員負(fù)擔(dān)。如圖5所示,以帶寬為標(biāo)準(zhǔn)時,由于成員加入離開頻繁,因此造成優(yōu)化次數(shù)增加。因為考量了時間的參數(shù),ABTP避免了帶寬大幅變動所造成許多不必要的群播樹調(diào)整。
3.2.2 優(yōu)化標(biāo)準(zhǔn)對控制消息數(shù)量影響
圖6所示是在不同系統(tǒng)中有不同成員數(shù)量時,每個成員傳送控制消息的平均數(shù)量,系統(tǒng)在穩(wěn)定狀況的成員達到預(yù)定的數(shù)量之后,進行2.5 h的計算。以帶寬作為衡量標(biāo)準(zhǔn)時,雖然可以將有較大帶寬的成員放置在群播樹的上層,但因為帶寬大的成員有可能很快便會離開系統(tǒng),因此系統(tǒng)中的成員便需要時常進行修復(fù)的動作,而產(chǎn)生較多的控制信息。ABTP 結(jié)合了帶寬大小與成員在線時間長短兩項因素來作為衡量標(biāo)準(zhǔn),所以控制信息數(shù)量相對較少。
3.2.3 中斷次數(shù)與優(yōu)化標(biāo)準(zhǔn)的關(guān)系
由圖7中可以看到把帶寬大的成員優(yōu)先放在上層的作法,會使成員時常遭受到父節(jié)點離開所造成的中斷。而以ABTP 和成員上線時間作為標(biāo)準(zhǔn)的情況下,在線時間較短的成員不會被排在系統(tǒng)的下層,當(dāng)這些成員要離開時,受到影響的成員也就較少。
利用了Chord的分布式特點,并利用應(yīng)用層群播代理人的方式,嘗試建構(gòu)具有網(wǎng)絡(luò)層群播效率與單播穩(wěn)定度的應(yīng)用層群播樹,并透過應(yīng)用層群播代理人所形成的IPTV重迭網(wǎng)絡(luò)及該重迭網(wǎng)絡(luò)的擴展性、穩(wěn)定度與負(fù)載分享可以有效提升IPTV使用者的影片質(zhì)量。本研究中的多項實驗項目,包含了構(gòu)建的重迭網(wǎng)絡(luò)上針對既有的不同優(yōu)化標(biāo)準(zhǔn)來比較群播樹的調(diào)整次數(shù)、控制信息的數(shù)量、群播樹成員離開的影響,驗證了平均帶寬與上線時間乘積(ABTP)度量值可以建構(gòu)出有效的IPTV重迭網(wǎng)絡(luò)。
參考文獻
[1] 李曉蔚. 全媒體時代電視的涅槃與重生[J].新聞界,2012(14):37-39.
[2] 王傳安, 賈丙靜, 趙海燕. WiMax接入技術(shù)在IPTV系統(tǒng)中的應(yīng)用[J]. 電子技術(shù)應(yīng)用, 2011,37(11):112-115.
[3] 吳吉義, 鄭繼文.P2P在IPTV中的應(yīng)用[J].電子技術(shù)應(yīng)用,2007,33(9):103-105.
[4] 欒淑莉, 賀萍.考慮主機容量的應(yīng)用層組播協(xié)議研究[J]. 計算機應(yīng)用與軟件,2013,30(3):213-216.
[5] 吳榮玉, 樊豐, 舒建. 基于非負(fù)矩陣分解的魯棒哈希函數(shù)驗證性研究[J]. 電子技術(shù)應(yīng)用,2012,38(1):130-132.
[6] TAN G, JARVIS S A. Improving the fault resilience of overlay multicast for Media Streaming[J]. Parallel and Distributed Systems, IEEE Transactions on,2007(18):721-734.