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