

針對一般P2P網絡互通性差的缺陷,本文提出了基于JXTA的P2P流媒體系統設計模式并且進行了深入的實現研究。文中對傳統流媒體和P2P流媒體進行了簡要介紹,引入了基于JXTA的P2P系統構建的理論分析。通過詳細介紹流媒體系統關鍵技術,指出了使用JXTA進行P2P流媒體開發的優勢。
一、傳統流媒體
隨著計算機網絡技術的快速發展,用戶對于網絡視頻的需求進一步增加,對網絡帶寬和計算機性能要求也隨之增加。計算機網絡中,在對連續的時基媒體進行遠距離傳輸時(即通常所說的視頻和音頻媒體的網絡傳輸)通常采用流式傳輸技術,流媒體又稱為流式媒體[1]。流媒體實際上是一種特定的多媒體文件,當使用流式媒體進行傳輸時,往往只需要短暫的幾秒或者十幾秒的等待時間即可對多媒體文件進行播放,剩余多媒體文件部分可在后臺緩存和后續播放。采用流媒體傳輸時,流媒體數據經過采集、壓縮、存儲、傳輸等步驟,并且整個媒體文件不占用用戶的本地物理硬盤空間。
伴隨著流媒體的出現,傳統上音頻和視頻先下載后播放的模式被打破,有力地縮短了文件播放啟動延時,提高了用戶的滿意度。在早期技術發展中,用戶從流媒體服務器進行節目請求,服務器以單播的形式進行數據響應[2]。這種方式可視為客戶端/服務器的組合方式,這種方式操作簡單,但也存在一定的問題:比如要求服務器響應足夠快速,網絡帶寬足夠大,并且要求不能同時并發多路請求等。
二、 P2P流媒體
隨著現代電子科學技術的發展,人們開始使用P2P 技術解決傳統流媒體技術帶來的缺陷。P2P(point to point)即為端到端技術,這種技術實現了不同電腦之間的直接數據交換。在這種數據交換方式之下,并不存在真正服務器與客戶端的獨立概念,每臺計算機既可以做服務器也可以做客戶端使用,即打破了傳統的客戶端/服務器模式。P2P流媒體技術即為使用成熟的P2P技術解決流媒體傳輸的問題。在P2P流媒體中,用戶在節目播放過程中不僅可以從流媒體服務器獲取節目信息,也可以從周邊其他計算機中獲取流媒體信息[3]。使用這種方式可以有效地利用不同用戶的剩余帶寬,并且,隨著節目流媒體數量的增多,使用P2P流媒體技術可以實現節目的穩定快速緩存播放,提升用戶的視頻播放體驗。
三、基于JXTA的流媒體系統設計研究
JXTA技術
JXTA是SUN公司開發的P2P開發平臺。在JXTA開發平臺下所有的P2P網絡都是互相連通的,并且具有跨平臺的優勢,極大地簡化了分布式應用與服務的搭建過程。JXTA通過定義一系列標準協議實現了不同P2P的相互傳輸通信,建立了一種公共網絡底層機制。
基于JXTA的P2P流媒體系統包括三層:第一層為JXTA核心層,第二層為服務層,第三層為應用層。一般來說核心層位于最下層,主要實現核心的服務功能。服務層位于中間層,主要提高訪問JXTA的接口[4]。最上層為應用層,主要功能是對JXTA進行訪問。在JXTA中使用了較多的通信協議,主要包括點對等發現協議(Peer Discovery Protocol,PDP)、對等點解析協議(Peer Resolver Protocol,PRP)、對等點消息協議(Peer Information Protocol,PIP)、匯聚協議(Rendezvous Protocol,RVP)、管道綁定協議(Pipe Binding Protocol,PBP)和對等點端點協議(Peer Endpoint Protocol, PEP),這些協議實現了多媒體消息在不同網絡之間的任意傳輸,實現了端到端之間的路由、發現、組織以及通信。
流媒體系統架構
流媒體系統需要滿足客戶的不同需求,在不同時間段既可能有視頻直播的需求又可能有視頻點播的需求。本文在構建系統時講系統分成三層:其中底層為基礎架構層,中間為系統功能層,最上層為交互界面層。其中底層部分使用JXTA技術實現對等點和對等組的搜索等基本功能。中間層為實現系統的關鍵部分,在該部分中包含了軟件的核心。交互界面層實現了與普通用戶的實時有效交互。具體設計如下圖所示:
圖1 系統架構設計圖
系統關鍵技術與實現研究
JXTA網絡管理。在P2P網絡的發展過程中,P2P具體集中式模型、分布式模型以及混合式模型。JXTA網絡屬于P2P混合式模型。在JXTA網絡中,點被分成了不同的類型:包括邊緣對等點和匯聚對等點。邊緣對等點屬于普通對等點,用于存放實際資源。匯聚對等點屬于超級對等點,用于實現對資源的索引功能。在JXTA網絡中存在一種新的名詞“廣告”。廣告本質上屬于XML文檔,其目的是為了實現對等點或者對等組等信息的發布和發現等功能。
對等組管理。在JXTA網絡中存在對等組的概念。對等組是指網絡創建初期自動形成的一個網絡對等組。該網絡對等組會一直存在于P2P網絡中,并且以后的每個用戶對等組都派生子根對等組。在具體實現過程中,對等組通過Peer Group類函數進行創建,對等組中存在對等點,并且不同對等組中的對等點是不同的。對等組的提出用于方便管理對等點。由于基于JXTA的對等點可以肆意的穿透NAT等網絡設備,因為對等組的管理功能非常重要。
通信技術。在P2P網絡中,通信是通過“管道”實現的。在理解管道時可以將管道看成連接信息發送端與信息接收端的部件。在對等點相互通信時,對等點之間的管道是通信的基礎。在信息傳輸時接收端創建輸入管道,并將該輸入管道告知發布端。發布端則可以創立輸出管道,實現對等點之間的有效通信。具體通信過程如圖2所示:
圖2 對等點通信過程
資源管理。在P2P的應用中最為常見的為資源共享,其在JXTA中利用內容管理服務實現。基于JXTA的資源管理功能,對等點之間就可以實現不同文件的共享與定位獲取。內容管理服務功能允許瀏覽和下載遠程對等點的共享內容。在文件共享時,系統為每一個共享的文件創建MD5碼來作為身份的唯一標志,因此可以有效的利用MD5碼識別文件是否為同一文件。在文件被共享后會產生與之有關的“廣告”,通過廣告實現對等點或者對等組中共享文件的發布和索引等功能。在具體實現時依靠Share Manager、Share Monitor和Share Content這三個類。
JXTA具有跨平臺的優勢,極大地簡化了分布式應用與服務的搭建過程。JXTA通過定義一系列標準協議實現了不同P2P的相互傳輸通信,提出了一種公共網絡底層機制。JXTA作為P2P應用的基礎平臺,已經得到了廣泛的關注與應用。目前P2P使用的流媒體系統都各自定義底層協議,相互之間缺乏交互性。使用基于JXTA的P2P流媒體系統很好地提高了不同對等組之間的互通性,使得流媒體系統的擴展成為了可能。
(作者單位:江西財經職業學院)