《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 具有負(fù)載分享的P2P IPTV重迭網(wǎng)絡(luò)的設(shè)計(jì)
具有負(fù)載分享的P2P IPTV重迭網(wǎng)絡(luò)的設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2014年第1期
郭劍峰1, 陳小波2, 陳瀟君1,2, 陳祖爵2
1. 江蘇大學(xué) 附屬醫(yī)院, 江蘇 鎮(zhèn)江 212013; 2. 江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院, 江蘇 鎮(zhèn)江 212013
摘要: 針對(duì)在IPTV服務(wù)中當(dāng)網(wǎng)上收視人數(shù)大規(guī)模增長(zhǎng)時(shí)網(wǎng)絡(luò)帶寬消耗及服務(wù)器負(fù)載大大提高的問(wèn)題,提出了利用P2P(Peer-to-Peer)概念中的應(yīng)用層群播所形成的重迭網(wǎng)絡(luò)來(lái)解決IPTV負(fù)載分享的問(wèn)題,并通過(guò)P2P中Chord路由算法,加速構(gòu)建與尋找對(duì)應(yīng)的群播代理人節(jié)點(diǎn)。實(shí)驗(yàn)證明將Chord與應(yīng)用層群播代理人做有效結(jié)合,可以提供用戶具有服務(wù)質(zhì)量、擴(kuò)充性與負(fù)載分享的全方位P2P IPTV服務(wù)。
中圖分類(lèi)號(hào): TP391
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)01-0107-04
The design of P2P IPTV overlay network with load sharing
Guo Jianfeng1,Chen Xiaobo2, Chen Xiaojun1,2, Chen Zujue2
1. Affiliated Hospital of Jiangsu University, Zhenjiang 212013, China;2. School of Computer Science and Telecommunication Engineering, Jiangsu University, Zhenjiang 212013, China
Abstract: In IPTV, when online viewership growth greatly, it will make the consumption of network bandwidth and server load greatly. This paper proposed an approach of the application layer of P2P to solve the IPTV load sharing problem, and used the Chord routing algorithm in P2P to speed up the construction and find the corresponding multicast agent node. Experimental results show that the Chord and application layer multicast agent can provide users with the quality of service,scalability and load sharing of P2P IPTV service.
Key words : internet protocol television; overlay network; load sharing; multicast agent

    隨著寬帶網(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。