1. 程式人生 > >P2P流媒體技術原理及應用

P2P流媒體技術原理及應用

作者:王洪波,馬軼慧
      英文關鍵字:P2P network; streaming media; scalability; data-driven
      關鍵字:對等網路;流媒體;可擴充套件性;資料驅動 摘要:基於P2P的流媒體技術是一項非常有前途的技術,該技術有兩方面的優點:不需要網際網路路由器和網路基礎設施的支援,因此價效比高且易於部署;流媒體使用者不只是下載媒體流,而且還把媒體流上載給其他使用者,因此,這種方法可以擴大使用者組的規模,且由更多的需求帶來更多的資源。由於P2P流媒體系統中節點存在不穩定性,因此P2P流媒體系統需要在檔案定位技術、節點選擇技術、容錯以及安全機制方面有所突破。此外在如何管理節點並建立釋出樹、如何應付不可預知的節點失效、如何適應網路狀態變化方面也面臨著一些挑戰。 英文摘要:The P2P-based streaming media technology is very promising and has two advantages. First, because P2P-based streaming media network can distribute media data without the support of routers and specific network infrastructure, it is cost-effective and easy to deploy. Second, a streaming media user can not only download streaming media, but also supply streaming media to other users. Therefore, the user groups' scale can be expanded, and the more the demands increase, the more the available resources increase. As the peers in the P2P-based streaming media network are not stable, the P2P streaming media system needs improvement in the fields of file location technology, peer selection technology, fault-tolerance and security mechanism. Moreover, challenges such as managing the nodes, constructing a distribution tree, coping with the unpredictable failure of nodes, and adapting to changes in the network, also exist.

基金專案:國家自然科學基金資助專案(863計劃)(No.90604019、60502037、60603060)

      隨著網際網路的日趨普及和新技術的迅速發展,一大批新興的網路多媒體應用開始湧現併成為人們工作、生活中重要的組成部分,例如:網路電視、體育賽事廣播、線上遊戲、遠端教育等。而這些多媒體應用需要流媒體技術的支援。

流媒體是指在資料網路上按時間先後次序傳輸和播放的連續音、視訊資料流。流媒體資料流具有3個特點:連續性、實時性、時序性,即其資料流具有嚴格的前後時序關係。由於流媒體的這些特點,它已經成為在網際網路上實時傳輸音、視訊的主要方式。本質上,流媒體技術是一種在資料網路上傳遞多媒體資訊的技術。目前資料網路具有無連線、無確定路徑、無質量保證的特點,給多媒體實時資料在資料網路上的傳輸帶來了極大的困難,流媒體技術的主要目標就是:通過一定的技術手段實現在資料網路上有效地傳遞多媒體資訊流。

傳統的流媒體服務大都是客戶/ 伺服器(C/S)模式,即使用者從流媒體伺服器點選觀看節目,然後流媒體伺服器以單播方式把媒體流推送給使用者。當流媒體業務發展到一定階段後,使用者總數大幅度增加,這種C/S模式加單播方式來推送媒體流的缺陷便明顯地顯現出來(如流媒體伺服器頻寬佔用大、流媒體伺服器處理能力要求高等),頻寬、伺服器等常常成為系統瓶頸,系統的可擴充套件性差。

近年來,人們把P2P技術引入到流媒體傳輸中而形成了P2P流媒體技術,該方法有兩方面的優點。首先,這種技術並不需要網際網路路由器和網路基礎設施的支援,因此價效比高且易於部署;第二,在這種技術中,流媒體使用者不只是下載媒體流,而且還把媒體流上載給其他使用者,因此,這種方法可以擴大使用者組的規模,且更多的需求也帶來了更多的資源。

1 P2P流媒體系統

1.1 P2P流媒體系統播送方式
P2P流媒體系統按照其播送方式可分為直播系統和點播系統,此外近期還出現了一些既可以提供直播服務也可以提供點播服務的P2P流媒體系統。

1.1.1 直播
在流媒體直播服務中,使用者只能按照節目列表收看當前正在播放的節目。在直播領域,互動性較少,技術實現相對簡單,因此P2P技術在直播服務中發展迅速。 2004年,香港科技大學開發的CoolStreaming原型系統將高可擴充套件和高可靠性的網狀多播協議應用在P2P直播系統當中,被譽為流媒體直播方面的里程碑,後期出現的PPLive和PPStream等系統都沿用了其網狀多播模式。

P2P直播是最能體現P2P價值的表現,使用者觀看同一個節目,內容趨同,因此可以充分利用P2P的傳遞能力,理論上,在上/下行頻寬對等的基礎上,線上使用者數可以無限擴充套件。

1.1.2 點播
與直播領域相對應,在P2P流媒體點播服務中,使用者可以選擇節目列表中的任意節目觀看。在點播領域,P2P技術的發展速度相對緩慢,一方面是因為點播當中的高度互動性實現的複雜程度較高;另一方面是節目源版權因素對P2P點播技術的阻礙。目前,P2P的點播技術主要朝著適用於點播的應用層傳輸協議技術、底層編碼技術、以及數字版權技術等方面發展。

與P2P流媒體直播不同,P2P流媒體點播終端必須擁有硬碟,其成本高於直播終端。目前P2P點播系統還需在技術上進一步探索,期望大規模分散式數字版權保護(DRM)系統的研究,以及底層編碼技術的發展能為P2P點播系統的實施鋪平道路。

1.2 P2P流媒體系統網路結構
      目前存在很多P2P流媒體的研究成果及實際系統,它們在其覆蓋網路的組織結構上可以被大體分成兩大類,即基於樹(Tree-based)的覆蓋網路結構和資料驅動隨機化的覆蓋網路結構[1]

      (1)基於樹的方法
      大部分系統都可以歸類為基於樹的方法。在這種方法中,節點被組織成某種傳輸資料的拓撲(通常是樹,如圖1所示),每個資料分組都在同一拓撲上被傳輸。拓撲結構上的節點有明確定義的關係,例如,樹結構中的“父節點-子節點”關係。這一方法是典型的推送方法,即:當節點收到資料包,它就把該資料包的拷貝轉發到它的每一個子節點。既然所有的資料包都遵循這一結構,那麼保證這一結構在給所有接受節點提供高效能時是最優的。更進一步,當節點隨意加入和離開時,該結構必須得以維持。特別地,如果某節點突然崩潰或者其效能顯著下降,它在該樹結構上所有的後代節點都停止接收資料,且該樹結構必須被修復。最後,當組建基於樹的結構時,避免出現環是一個必須要解決的重要問題。基於樹的方法可能是最自然的方法,不需要複雜的視訊編碼演算法。然而,其中需要重點考慮的一個問題是節點失效,特別地,靠近樹根的節點失效將中斷大量使用者的資料傳輸,潛在地帶來瞬時低效能的結果。此外,在該結構中大多數節點都是葉子節點,他們的上行頻寬沒有被使用到。為了解決這些問題,已有研究提出了一些帶有彈性的結構,如基於多重樹的方法[2-3]


(2)資料驅動方法
近年來,人們又提出用於P2P的資料驅動的方法。資料驅動的覆蓋網路與基於樹結構的最大不同在於它不組建和維護一個傳輸資料的明顯拓撲結構,它用資料的可用性去引導資料流,而並不是在高度動態的P2P環境下不斷地修復拓撲結構。

      一個不用明確維護拓撲結構的資料分發方法是使用Gossip協議。在典型的Gossip協議中,節點給一組隨機選擇的節點發送最近生成的訊息;這些節點在下一次做同樣的動作,其他節點也做同樣的動作,直到該訊息傳送到所有節點。對Gossip目標節點進行隨機選擇可以在存在隨機失效的情況下使系統獲得較好的健壯性,另外還可以避免中心化操作。然而,Gossip不能直接用作視訊廣播,因為其隨機推送可能導致高頻寬視訊的大量冗餘。此外,在沒有明確的拓撲結構支援下,最小化啟動和傳輸時延成為主要問題。為了解決這些問題,一些解決方案,例如Chainsaw[4]、Cool-Streaming[5]採用拉取技術,即:節點維持一組夥伴並週期性地同夥伴交換資料可用性資訊,接著節點可以從一個或多個夥伴找回沒有獲得的資料,或著提供可用資料給夥伴。由於節點只在沒有資料時去主動獲取,所以避免了冗餘。此外,由於任一資料塊可能在多個夥伴上可用,所以覆蓋網路對時效是健壯的。最後,隨機化的夥伴關係意味著節點間的潛在的可用頻寬可以被完全利用。

2 P2P流媒體中的關鍵技術
      由於P2P流媒體系統中節點存在不穩定性,P2P流媒體系統需要解決如下幾個關鍵技術[6]:檔案定位、節點選擇、容錯以及安全機制等。

2.1檔案定位技術
流媒體服務實時性強,快速準確的檔案定位是流媒體系統要解決的基本問題之一。在P2P流媒體系統中,新加入的客戶在覆蓋網路中以P2P的檔案查詢方式,找到可提供所需媒體內容的節點並建立連線,接受這些節點提供的媒體內容。

      P2P方式的檔案查詢研究是近年來P2P計算的一個研究熱點。在P2P網路結構中常用的檔案定位方式是通過分散式雜湊表(DHT)演算法[7]來實現,每個檔案經雜湊運算後得到一個唯一的識別符號,每個節點也對應一個識別符號,檔案儲存到與其識別符號相近的節點中。查詢檔案時,首先雜湊運算檔名得到該檔案的識別符號,通過不同的路由演算法找到存放該檔案的節點。雖然DHT方式查詢檔案快速有效,但是也存在一些固有的問題,如DHT是將檔案均勻分佈在各個節點上,不能反映媒體檔案的熱門度,導致負載的不均衡;其次DHT不能提供關鍵字的搜尋,如同時包含媒體檔名、媒體型別等豐富資訊的檔案的查詢。

      文獻[8]在泛洪機制基礎上做了改進,在無結構的P2P網路中採用了或然性的泛洪技術,通過或然性的分析選取優化的分支進行泛洪操作,從而使其伸縮性比正常泛洪機制提高99%。DirectStream[9]是一個基於目錄的P2P流媒體點播系統,其媒體檔案的查詢方式是通過目錄伺服器來維護所有媒體伺服器資訊和客戶資訊(包括IP地址、緩衝大小等)。當新客戶的請求到達時,在目錄中查詢請求的媒體檔案,快速返回侯選節點,侯選節點可以是媒體伺服器,也可以是可提供該影片片段的客戶,從而具有P2P的特性。但是由於其目錄伺服器的集中式管理,DirectStream系統的規模受到了限制。

2.2 節點的選擇
在一個典型的P2P覆蓋網路中,網路中的節點來自各個不同自治域,節點可以在任一時間自由地加入或離開覆蓋網路,導致覆蓋網路具有很大的動態性和不可控性。因此,如何在服務會話初始時,確定一個相對穩定的可提供一定服務質量(QoS)保證的服務節點或節點集合是P2P流媒體系統迫切需要解決的問題。

節點的選擇可以根據不同的 QoS需求採取不同的選擇策略。若希望服務延遲小,可以選擇鄰近的節點快速建立會話,如在區域網內有提供服務的節點,就不選擇網際網路上的節點,這也可以避免網際網路上的頻寬波動和擁塞;若希望高質量服務,則可選擇能夠提供高頻寬、CPU能力強的節點,如在寬頻接入的PC機和不對稱數字使用者線(ADSL)接入的終端之間選擇前者;若希望得到較穩定的服務,應選擇相對穩定的節點,如在系統中停留時間較長,不會頻繁加入或退出系統的或正在接受服務的節點。通常選擇的策略是上述幾種需求的折衷。具有代表性的節點選擇機制有:PROMISE體系中的端到端的選擇機制和感知拓撲的選擇機制、P2Cast系統的“最合適” (Best Fit,簡稱BF)節點選擇演算法等。

2.3 容錯機制
由於P2P流媒體系統中節點的動態性,正在提供服務的節點可能會離開系統,傳輸鏈路也可能因擁塞而失效。為了保證接受服務的連續性,必須採取一些容錯機制使系統的服務能力不受影響或儘快恢復。

對於節點失效的問題,可以採取主備用節點的方式容錯。在選擇傳送節點時,應選擇多個服務節點,其中某個節點(集)作為活動節點(集),其餘節點則作為備用節點。當活動節點失效時則由備用節點繼續提供服務。值得研究的問題是如何快速有效地檢測節點的失效,以及如何保證在主備用節點切換的過程中流媒體服務的連續性。流媒體服務的實時性較強,因此節點的故障檢測時間應儘可能短,才能保證服務不中斷。目前有大量關於如何縮短故障檢測時間的研究,大都是採用軟狀態協議詢問節點的存在,需要考慮詢問頻度與詢問訊息開銷之間的折衷。

資料的編碼技術也可以提供系統的容錯性,如前向錯誤編碼(FEC)和多描述編碼(MDC)。FEC通過給壓縮後的媒體碼流加上一定的冗餘資訊來有效地提高系統的容錯性,而MDC的基本思想是對同一媒體流的內容採用多種方式進行描述,每一種描述都可以單獨解碼並獲得可以接受的解碼質量,多個描述方式結合起來可以使解碼質量得到增強。這兩種編碼都能適應客戶異構性的特點,客戶可以根據自己的能力選擇收取多少資料進行解碼。此外,將FEC和MDC結合,能取得更好的容錯效果。

2.4 安全機制
網路安全是P2P流媒體系統的基本要求,必須通過安全領域的身份識別認證、授權、資料完整性、保密性和不可否認性等技術,對P2P資訊進行安全控制。對產權的控制,現階段可採用DRM技術控制;對於基於企業級的P2P流媒體播出系統可以安裝防火牆阻止非法使用者訪問;因特網上的P2P流媒體系統可以通過資料包加密方式保證安全。在P2P流媒體系統內,可採用使用者分級授權的辦法,阻止非法訪問。

3 P2P流媒體的應用
網路的迅猛發展和普及為P2P流媒體業務發展提供了強大市場動力,P2P流媒體技術的應用將為網路資訊交流帶來革命性變化。目前常見的P2P流媒體的應用主要有:

(1)視訊點播(VOD):這是最常見、最流行的流媒體應用型別。

(2)視訊廣播:視訊廣播可以看作是視訊點播的擴充套件,它把節目源組織成頻道,以廣播的方式提供。

(3)互動式網路電視(IPTV):IPTV利用流媒體技術通過寬頻網路傳輸數字電視訊號給使用者,這種應用有效地將電視、電信和計算機3個領域結合在一起,具有很好的發展前景。

(4)遠端教學:遠端教學目前應用也比較廣泛,而且具有很好的市場應用前景。遠端教學可以看作是前面多種應用型別的綜合,在遠端教學中,可以採用多種模式,甚至混合的方式實現。遠端教學以應用物件明確、內容豐富實用、運營模式成熟,成為目前商業上較為成功的流媒體應用.

(5)互動遊戲:需要通過流媒體的方式傳遞遊戲場景的互動遊戲近年來得到了迅速的發展。
其他流媒體系統的一些新的應用和服務,例如虛擬現實漫遊、無線流媒體、個人數字助理(PDA)等也在迅速地變革和發展。

4 結束語
P2P流媒體發展如此迅速,目前,諸如CoolStreaming、PPLive等P2P流媒體軟體吸引了大量的使用者,顯示出了巨大的生命力,但是另一方面構建一個有效的P2P流媒體系統還面臨著許多挑戰:

(1)管理節點並建立釋出樹
為了給大量的接收者提供媒體內容,構建應用級多播樹的方法應用較廣,但建立有效的多播樹,並在節點不斷加入和退出時維護多播樹存在一定難度。

(2)應付不可預知的節點失效
在P2P網路中,由於節點行為的不可預知性,為了快速地恢復系統的正常工作,要求系統具有很好的可靠性,否則服務中斷將時常發生。

(3)適應網路狀態變化
在一個媒體流會話期間網路狀態可能改變,如擁塞或丟包率上升,因此流媒體系統的適應性是必需的。

儘管P2P流媒體系統的設計方面仍存在一些需要解決的問題,但其優越性仍然引起了許多大學、研究機構以及商業機構的重視,隨著運營商的加入,P2P流媒體的研究勢必取得更大的進展並將更加廣泛地應用於商業領域。

5 參考文獻
[1] LIU J C, RAO S, LI B, et al. Opportunities and challenges of peer-to-peer Internet video broadcast [J]. Proceedings of the IEEE, Special Issue on Recent Advances in Distributed Multimedia Communications, 2007.
[2] CASTRO M, DRUSCHEL P, KERMARREC A M, et al. SplitStream: High-bandwidth multicast in cooperative environments [C]// Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, Oct 19 - 22, 2003, Bolton Landing, NY, USA .New York, NY,  USA: ACM Press,2003:298-313.
[3] PADMANABHAN V N, WANG H K, CHOU P A, et al .Distributing streaming media content using cooperative networking [C]//Proceedings of ACM/IEEE Network and Operating System Support for Digital Audio and Video (NOSSDAV’02) , May 12-14, 2002, Miami, FL, USA. New York, NY, USA: ACM Press, 2002:177-186.
[4] PAI V, TAMILMANI K, SAMBAMURTHY V, et al. Chainsaw: Eliminating trees from overlay multicast [C]// Proceedings of 4th International Workshop on Peer-to-Peer Systems, Feb 24-25, 2005, Ithaca, NY, USA. 2005:127-140.
[5] ZHANG Xinyan, LIU Jiangchuan, LI Bo, et al. CoolStreaming/DONet: a data-driven overlay network for peer-to-peer live media streaming [C]//Proceedings of 24th Annual Joint Conference of the IEEE Computer and Communications Societies: Vol 3, Mar 13-17, Miami, FL, USA. Piscataway, NJ,USA:IEEE,2005: 2102-2111.
[6] 龔海剛, 劉明, 毛鶯池, 等. P2P流媒體關鍵技術的研究進展 [J]. 計算機研究與發展, 2005, 42(12):2033-2040.
[7] STOICA I, MORRIS R, KARGER D, et al. Chord: a scalable peer-to-peer lookup service for Internet applications [C]// Proceedings of the International Conference of the Special Interest Group on Data Communication (SIGCOMM '01), Aug 27-31,2001, San Diego, CA, USA. New York, NY, USA: ACM Press, 2001:149-160.
[8] BANAEI-KASHANI F, CHEN C C, SHAHANI C. WSPDS: Web services peer-to-peer discovery service [C]// Proceedings of International Symposium on Web Services and Applications (ISWS'04),Jun 21-24,2004, Las Vegas, NV, USA. Las Vegas, NV, USA: CSREA Press, 2004:733-743.
[9] GUO Y, SUH K, KUROSE J, et al. A peer-to-peer on-demand streaming service and its performance evaluation [C]// Proceedings of 2003 IEEE International Conference on Multimedia & Expo (ICME 2003):Vol 1, July 6-9, 2003,Baltimore, MD, USA. Los Alamitos CA, USA: IEEE Computer Society, 2003:649-652.

收稿日期:2007-09-27