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