專利名稱:一種面向ipv6環境的p2p流媒體點播系統的制作方法
技術領域:
本發明屬于網絡多媒體技術領域,具體涉及一種面向IPV6環境的P2P流媒體點播系統。
技術背景數字內容產業在下一代IP網絡的應用中占有十分重要的地位。隨著近年來無線通信 和訪問的迅猛增長以及互聯網的巨大成功,無線和互聯網通信正在向著下面這個目標迅速 發展,即隨時隨地在任何設備上都能提供實時多媒體內容服務。縱觀國內外多媒體內容服 務領域的產品,絕大多數都是基于IPV4的架構式的流媒體內容分發系統。在國家大力支 持數字內容產業的大背景下,研發面向IPV6的可管理運營P2P流媒體內容分發服務系統 具有重大意義。 一方面,IPV6具有IPV4所不具備的優勢,如IPv6流標簽、QoS、多播和 IPSec等特性。另一方面,P2P技術又能夠突破傳統架構式內容分發系統的技術瓶頸,達 到更大的流媒體并發訪問量和更好的流媒體服務質量QoS。總體來說,研發面向IPV6環境 的P2P流媒體點播系統有著深遠的意義,應用前景廣闊。經對現有技術的文獻檢索發現,中國專利(申請)號CN 200610011473,名稱基于 會話初始化協議的流媒體直播P2P網絡方法,該系統基于S I F協議,客戶端利用P 2 P 網絡向S I P服務器請求節目,S I P服務器則把該請求轉發至擴展媒體服務器,擴展媒 體服務器為客戶選擇最佳節目源,可以是別的客戶或者是流媒體服務器,客戶端便可根據 該節目源的地址下載流媒體節目,并把節目緩存信息發往擴展媒體服務器,客戶端或流媒 體服務器也可向擴展媒體服務器發送節點狀態的變更信息,從而引起媒體信息數據庫的刷 新。該系統的優勢是延時小、帶寬消耗小、視頻、音頻效果好的優點,其不足是只提出了 IPV4環境下的流媒體直播的解決方案,而沒有解決IPV6環境下基于P2P的流媒體點播問 題。發明內容本發明針對現有技術的不足,在IPv6試驗床上研究和開發了一套新型的P2P流媒體內 容分發服務系統。通過深入研究流媒體分發服務中的P2P節點混合式協作分發機制、自適 應調控機制、可管理的安全與認證機制、可運營的分發激勵和計費機制等關鍵技術,并結 合IPv6流標簽、QoS等特性,支持和保障P2P內容分發,突破傳統CDN分發的技術瓶頸 和P2P內容不可控共享的缺陷,達到更大的流媒體并發訪問量和更好的流媒體服務質量QoS,并實現可運營、可管理的新型P2P應用模式,解決下一代互聯網中寬帶內容價值鏈 發展的一項關鍵技術和運營服務模式難題。本發明是通過以下技術方案實現的,本發明包括骨干節點工具、普通節點工具、內 容管理平臺。骨干節點工具負責提取內容ID信息,將其發布到內容管理平臺,并將內容 索引信息發布到P2P網絡中,同時也為點播用戶提供內容點播服務;普通節點工具首先根 據從內容管理平臺檢索到的內容ID信息,在P2P網絡中査找對應的內容索引信息,進而 從多個候選服務節點處同時進行內容獲取,在內容點播的同時為其他普通節點提供該內容 的上傳服務;內容管理平臺負責接收骨干節點發布的內容ID等信息,并對內容進行審核 管理,同時實現用戶管理、日志管理等功能。所述的骨干節點工具,通過SHA-1算法提取媒體內容的160位hash值作為內容ID, 并將該內容ID值并骨干節點的IP地址和監聽端口等打包成內容索引信息,利用Kademlia 架構的P2P網絡存儲到與該內容ID異或運算相距最近的幾個節點上。本發明設計了與IPV6 相結合的Kademlia網絡節點ID構造方式,取骨干節點IPV6地址的128位作為節點ID的 前128位,并隨機生成32位作為節點ID的后32位,從而構造160位的節點ID。以這種 方法構造的節點ID能保證節點ID間的距離大小近似等同于節點間網絡距離的大小。在內 容發布完成后,調用內容管理平臺的內容添加功能,將內容的ID值、名稱、描述等信息 輸入到內容管理平臺。在收到普通節點工具的內容服務請求時,將請求的內容讀入緩存并 以socket方式提供上傳服務。所述的普通節點工具在點播用戶終端運行。普通節點工具首先根據從內容管理平臺檢 索到的內容ID信息,在Kademlia-P2P網絡中査找對應的內容索引信息,進而從多個候選 服務節點處同時進行內容獲取,在內容點播的同時為其他普通節點提供該內容的上傳服 務。普通節點工具在啟動時需提交點播用戶的用戶名和密碼并由內容管理平臺驗證。只有 驗證通過后才能獲取啟動節點列表,從而成功地加入P2P網絡并進行流媒體點播,普通節 點工具根據從內容管理前臺獲取的媒體ID,向P2P網絡中距該內容ID距離最近的三個節 點發起內容索引信息請求。在收到該內容相關的索引信息后,普通節點工具首先根據內容 大小信息在本地申請硬盤存放空間,并啟動維護節點信息維護流程。其中普通節點工具維 護三層節點隊列,第一層是候選節點隊列,包括所有第一次加入的節點;第二層是等待服 務節點隊列,這個列表中的所有節點只有UDP狀態的信息;第三層是正在服務節點隊列, 包括所有已建立TCP連接的節點。節點信息維護流程通過定時向三個隊列中的所有節點發 送UDP數據包來獲取這些節點當前擁有的數據段信息,與此同時,根據UDP響應時間將候 選節點隊列中較快的節點加入到等待服務節點隊列中,另外從等待服務節點隊列中選取速度最快或者數據段完成度較高的節點來下載數據。下載數據通過與等待服務節點建立TCP 連接進行,建立了TCP連接的節點將被加入到正在服務節點列表中。如果出現連接或數據 傳輸超時,普通節點工具在斷開連接的同時,還會從準備服務節點中選取合適的節點開始 服務。在空閑時,普通節點工具會定時從準備服務節點中選出響應較快的一個節點進行TCP 傳輸數據測試,如果TCP傳輸速度超過了正在服務節點中的某節點,將用其替換這個較慢 的節點。普通節點工具調用DirectShow實現媒體內容的播放,媒體內容下載請求的驅動 也相應的采取"拉模式",也就是由解碼器來通知底層當前播放時所需要下載的數據段 序號。所述的內容管理平臺由Microsoft SQL Server和Tomcat Web服務器組成。從功能上 分,其中,內容管理平臺包括內容管理后臺、內容管理前臺和Web Services接口三個部 分。Tomcat服務器讀取點播用戶和管理員用戶訪問,同時對骨干節點工具添加的媒體內容 信息進行審核管理,另外Web Services接口還為普通節點工具提供啟動節點列表,Tomcat 服務器在80端口進行偵聽。內容管理后臺實現了媒體管理、骨干節點管理、點播用戶管理和管理員管理等模塊功 能,支持對骨干節點工具提交的媒體內容進行審核并發布到內容管理前臺。內容管理前臺 向成功登錄的點播用戶展示后臺審核通過后的媒體信息,支持由用戶選擇點播。除了內容 管理前臺和內容管理后臺外,內容管理平臺還對普通節點工具提供一個Web Services接 口啟動節點列表獲取接口。啟動節點列表由預先部署的骨干節點組成。只有認證通過的 普通節點工具才可以獲取啟動節點列表并得以加入網絡。本發明面向IPV6環境,IPV6協議有IPV4所不具備的優勢,如IPV6流標簽、QoS、多 播和IPSec等特點,本發明可以利用IPV6協議的特色,在IPV6環境中,可以支持基于IPV6 流標簽的差分服務,實現根據優先級高低提供不同服務質量的分發。同時,在IPV6環境 中,可以整合利用網絡層IPSec的安全特性和應用層自定義和開發的安全特性共同保障內 容分發的安全性、可信任性。本發明基于Kademlia的開源算法來實現P2P網絡構建和內容索引。Kademlia節點ID的構造由128位的IPV6地址和32位隨機數順序構成。這樣設計的ID不僅能作為節點在Kademlia架構中的網絡標識,還帶有節點在IPV6網絡上的位置信息。其次,在收到其他節點的內容索引査詢請求時,根據預先設定的規則,通過節點ID間異或運算,只返回與請求節點相近的節點信息,通過這種方式,使得請求節點盡可能從鄰居節點中獲取內容服務,在減少骨干網絡帶寬流量的同時,也得到了較好的QoS保障。與傳統的中心索引式P2P網絡架構比,不需要中心服務器的支持,健壯性更強,收斂速度快Kademlia是一種分布式哈希表(DHT)技術,它以異或(X0R)操作作為距離的度量基礎,建立了一種全新的DHT 拓撲結構。與以往的一些DHT技術如Chord、 CAN等相比,Kademlia的路由査詢更高效, 收斂速度更快。在Kademlia中,每個節點擁有一個唯一的160位的標識(記作NID),而 哈希表中〈Key, Value〉對中的Key同樣也是160位。Kademlia定義兩個標識x與y之間的 距離d為它們異或之后的值,即d(x,y) =x y。 Kademlia的核心思想在于將〈Key, Value〉 對存儲在NID與Key最"近"的節點上,也就是NID與Key之間距離最小的節點上。通過 這種操作,Kademlia能夠將數據均勻的散列到網絡中,從而避免某些節點成為網絡中的"熱 點"而最終變為整個網絡的瓶頸。Kademlia支持四種基本的消息,它們是PING、 STORE、 FIND—NODE和FIND—VALUE。 PING 消息用來探測一個節點是否在線。STORE以一個〈Key, Value〉對作為參數,要求消息接收 者保存一個該對,以供以后使用。FIND—NODE以一個160位的ID作為參數,接收者返回它 所知道的最接近該ID的n個節點的節點信息。FIND_VALUE以一個160位的ID/Key作為 參數,如果接收者先前已經收到一個STORE消息且消息的參數Key就是當前FIND_VALUE 的參數,那么接收者將STORE消息的另一個參數Value返回給發送者,否則和FIND_N0DE 一樣返回它所知道的最接近該ID的n個節點的節點信息。所有的消息都帶有一個160位 的隨機ID,由發送者產生,接收者在響應每一個消息的時候,返回的消息里面都必需復制 一份該ID,目的是為了防止地址偽造。本發明對Kademlia的改造主要基于以下兩個方面。首先,節點ID的構造由128位的 IPV6地址和32位隨機數順序構成。這樣設計的ID不僅能作為節點在Kademlia架構中的 網絡標識,還帶有節點在網絡上的位置信息。其次,在收到其他節點的FIND—VALUE請求時, 根據預先設定的規則,通過節點ID間異或運算,只返回與請求節點相近的節點信息,通 過這種方式,使得請求節點盡可能從鄰居節點中獲取內容服務,在減少骨干網絡帶寬流量 的同時,也得到了較好的QoS保障。本發明基于文件分片的策略來實現同時從多個節點獲得內容點播服務。我們將媒體文 件分成200KB大小的數據塊,每個數據塊對應一位,1表示擁有該數據塊,0則相反。由 于媒體文件數據往往比較連續,所以狀態信息數組還通過游程編碼進行壓縮。下載時一次 分配10塊共2MB的連續數據任務。普通節點工具把通過Kademlia網絡找到的擁有某個文 件數據的節點分為三類正在服務節點(與其建立連接且己獲得其狀態信息的節點);準備 服務節點(僅通過UDP方式獲得了狀態信息的節點);候選節點(包含還沒有獲得狀態信息 的節點以及無法服務節點)。進一步的,我們將正在服務的節點劃分為低速節點和高速節 點兩個子集。我們把高速節點定義為正在服務節點中所有下載速度大于平均速度的節點集 合,同樣的把低速節點定義為正在服務節點中所有下載速度小于平均速度的節點集合。分 配任務時,高速節點速度較快,所以可以讓其分配更多的任務,并且優先分配靠前的數據 塊。對于高速節點,按照節點速度在所有正在服務節點的速度總和中所占的比例,來分配 文件片斷的個數,如果該高速節點有所分配的所有片斷,則直接獲取,若不全則只下載該 節點所擁有的片斷中前面連續的部分。對于低速節點,分配的塊為當前2MB數據塊的起始 塊號+ j,如果超出了 IO塊的范圍,則分配2MB中最靠近尾部的沒有分配任務的數據塊, 其中j =(媒體平均播放速度/低速節點的下載速度)。這樣能保證前面j-1個塊播放完時, 低速節點已下完第j個塊。當低速節點的速度過慢時,需要對其進行丟棄,不再從該節點 下載數據。為保障媒體點播的QoS,我們還規定如果當前的下載速度總和小于媒體文件的 播放速度并且緩存小于某一閥值時,就進入緊急狀態,在內容被請求節點處,所有來自緊 急狀態節點的內容服務請求優先得到滿足。本發明系統對點播用戶客戶端沒有很多要求,只需安裝普通節點工具和播放流媒體必 需的解碼器。點播用戶通過IE瀏覽器進入內容管理平臺前臺門戶中,在媒體瀏覽界面上 查看媒體列表或點播列表,選擇相應的P2P直播方式點擊,能夠在瀏覽器中直接激活普通 節點工具進行點播。本發明兼容性好。雖然IPV6是下一代網絡的必然趨勢,但在目前的網絡中,大部分部 署的網絡還是而且在相當長的一段時間內還是IPV4網絡。為此,面向IPV6環境的基于 Kademlia和文件分片的P2P流媒體點播系統在支持IPV6環境的同時,經過很小的改造就 可以支持運行在IPV4環境下。同時系統的兼容性還體現在內容管理平臺,內容管理平臺 采用java開發,其對普通節點暴露的啟動節點列表獲取接口也釆用Web Services開發, 可以方便地部署于Linux系統,達到了很好的兼容性。本發明進行了試用,試用運行穩定,運行結果表明,本系統能夠長時間穩定實現P2P 方式的用戶點播。客戶端接收點播數據滿足了較好的QoS需求,程序啟動等待緩沖時間小 于15s,媒體拖動緩沖時間小于10s。系統實現了功能強大,高效快捷、操作簡單,人機 界面友善等特點,點播用戶對系統的總體使用效果感到非常滿意。
圖1本發明系統結構示意圖。圖中標號1為Kademlia-P2P網絡,2為骨干節點工具,3為普通節點工具,4為內 容管理平臺,5為點播用戶,6為平臺管理員,101為提取媒體內容ID模塊,102為計算 距媒體ID最近的三個節點并將內容索引信息發布到這三個節點模塊,103為將媒體內容到 內容管理后臺模塊,104為審核媒體內容并發布到內容管理前臺模塊,201為登錄內容管
理前臺,點擊內容點播鏈接并自動激活普通節點工具模塊,202為從內容管理平臺獲取啟 動節點列表并加入P2P網絡模塊,203為計算距媒體ID最近的三個節點并賂其查詢內容索 引信息模塊,204為根據返回的內容索引信息不斷從其他普通節點工具或骨干節點工具獲 取內容并在本地播放模塊。
具體實施方式
如圖1所示,本發明包括普通節點工具、骨干節點工具、內容管理平臺。 所述的骨干節點工具運行于骨干節點,骨干節點存儲了系統中原始的媒體文件,負責 將媒體發布到內容管理平臺,并將媒體內容索引信息發布到Kademlia-P2P網絡中,同時 也為點播用戶提供相對穩定可靠的內容點播服務。所述的內容管理平臺由Microsoft SQL Server和Tomcat Web服務器組成。從功能上 分,內容管理平臺包括內容管理后臺、內容管理前臺和Web Services接口三個部分。Tomcat 服務器讀取點播用戶和管理員用戶訪問,同時對骨干節點工具添加的媒體內容信息進行審 核管理,另外Web Services接口還為普通節點工具提供啟動節點列表,Tomcat服務器在 80端口進行偵聽。所述的普通節點工具在點播用戶終端運行。普通節點工具根據節點的網絡傳輸速度和 文件片斷信息動態地分配下載任務,從多個節點處同時獲取媒體內容片斷并在本地進行播 放,在內容播放的同時還為其他點播用戶提供該內容的上傳服務。本發明系統核心流程有兩個, 一個是媒體內容的發布流程, 一個是普通用戶的媒體點 播流程。如圖1所示,本發明的媒體發布流程,包含以下步驟101:骨干節點工具在本地選擇待發布媒體,并計算該內容的ID值。102:骨干節點工具計算査詢得到距該ID值距離最近的三個節點,并將該內容的索引信息發布到這個三個節點,包括媒體內容的ID,大小,該骨干節點的IP地址和監聽端口等信息。103:骨干節點工具將該內容的描述信息通過內容管理平臺的媒體添加頁面入庫,包 括內容的ID,媒體名稱,內容描述等信息。104:平臺管理員在內容管理后臺對內容進行審核,審核通過后將內容發布到內容管理前臺供用戶點播。如圖1所示,本發明的媒體點播流程,包含以下步驟201:點播用戶登錄內容管理前臺,査找感興趣的媒體內容,并點擊點播鏈接,點播
鏈接中包含該內容的ID值。鏈接點擊后會自動激活普通節點工具。202:普通節點工具調用內容管理平臺的Web Services接口,獲取啟動節點列表并從 而加入Kademlia-P2P網絡。系統采用XML標準文件描述啟動節點列表,記錄網絡中的骨 干節點的IP地址,監聽端口等信息。203:普通節點工具根據從內容管理前臺獲取的內容ID計算査詢得到距該ID值距離 最近的三個節點,并向這三個節點查詢該內容的索引信息。204:得到內容索引信息后,普通節點工具首先根據返回的內容大小信息在本地申請 硬盤存放空間,并啟動維護節點信息維護流程。同時按照節點的網絡傳輸速度和文件片 斷信息分配任務,下載內容并進行播放。
權利要求
1、 一種面向IPV6環境的P2P流媒體點播系統,包括普通節點工具、骨干節點工具、內容管理平臺,其特征在于,骨干節點工具負責提取內容ID信息,將其發布到內容管理 平臺,并將內容索引信息發布到Kademlia-P2P網絡中,同時也為點播用戶提供內容點播 服務;普通節點工具首先根據從內容管理平臺檢索到的內容ID信息,在Kademlia-P2P網 絡中査找對應的內容索引信息,進而從多個候選服務節點處同時進行內容獲取,在內容點 播的同時為其他普通節點提供該內容的上傳服務;內容管理平臺負責接收骨干節點發布的 內容ID信息,并對內容進行審核管理,同時實現用戶管理和日志管理功能。
2、 根據權利要求l所述的面向IPV6環境的P2P流媒體點播系統,其特征是,所述的 骨干節點工具,通過SHA-1算法提取媒體內容的160位hash值作為內容ID,并將該內容 ID值并骨干節點的IP地址和監聽端口打包成內容索引信息,利用Kademlia架構的P2P網 絡存儲到與該內容ID異或運算相距最近的幾個節點上;在內容發布完成后,調用內容管 理平臺的內容添加功能,將內容的ID值、名稱、描述信息輸入到內容管理平臺;在收到 普通節點工具的內容服務請求時,將請求的內容讀入緩存并以socket方式提供上傳服務。
3、 根據權利要求1所述的面向IPV6環境的P2P流媒體點播系統,其特征是,所述的 普通節點工具,在點播用戶客戶端運行;普通節點工具首先根據從內容管理平臺檢索到的 內容ID信息,在Kademlia-P2P網絡中査找對應的內容索引信息,進而從多個候選服務節 點處同時進行內容獲取,在內容點播的同時為其他普通節點提供該內容的上傳服務。
4、 根據權利要求l所述的面向IPV6環境的P2P流媒體點播系統,其特征是,所述的 內容管理平臺,由Microsoft SQL Server和Tomcat Web服務器組成;從功能上分,內容 管理平臺包括內容管理后臺、內容管理前臺和Web Services接口三個部分;Tomcat服務 器讀取點播用戶和管理員用戶訪問,同時對骨干節點工具添加的媒體內容信息進行審核管 理,另外Web Services接口還為普通節點工具提供啟動節點列表,Tomcat服務器在80端 口進行偵聽。
5、 根據權利要求1所述的面向IPV6環境的P2P流媒體點播系統,其特征是,基于 Kademlia的開源算法來實現P2P網絡構建和內容索引;Kademlia節點ID的構造由128位 的IPV6地址和32位隨機數順序構成。這樣設計的ID不僅能作為節點在Kademlia架構中 的網絡標識,還帶有節點在IPV6網絡上的位置信息。其次,在收到其他節點的內容索引查 詢請求時,根據預先設定的規則,通過節點ID間異或運算,只返回與請求節點相近的節 點信息,通過這種方式,使得請求節點盡可能從鄰居節點中獲取內容服務,在減少骨干網 絡帶寬流量的同時,也得到了較好的QoS保障。
6、根據權利要求1所述的面向IPV6環境的P2P流媒體點播系統,其特征是,基于文 件分片的策略來實現同時從多個節點獲得內容點播服務;媒體文件被分成200KB大小的數 據塊,每個數據塊對應一位,l表示擁有該數據塊,0則相反,并通過游程編碼進行壓縮; 下載時一次分配10塊共2MB的連續數據任務;普通節點工具把通過Kademlia網絡找到的 擁有某個文件數據的節點分為三類正在服務節點,準備服務節點,候選節點;對于正在 服務的節點,根據網絡傳輸速度劃分為低速節點和高速節點兩個子集;分配任務時,對于 高速節點,按照節點速度在所有正在服務節點的速度總和中所占的比例,來分配文件片斷 的個數,如果該高速節點有所分配的所有片斷,則直接獲取,若不全則只下載該節點所擁 有的片斷中前面連續的部分;對于低速節點,分配的塊為當前2MB數據塊的起始塊號+j, 如果超出了 10塊的范圍,則分配2MB中最靠近尾部的沒有分配任務的數據塊,其中j = 媒體平均播放速度/低速節點的下載速度;當低速節點的速度過慢時,需要對其進行丟棄, 不再從該節點下載數據;如果當前的下載速度總和小于媒體文件的播放速度并且緩存小于 某一閥值時,就進入緊急狀態,在內容被請求節點處,所有來自緊急狀態節點的內容服務 請求優先得到滿足。
全文摘要
本發明屬于網絡多媒體技術領域,具體為一種面向IPV6環境的P2P流媒體點播系統,包括普通節點工具、骨干節點工具和內容發布平臺。骨干節點工具負責提取內容ID信息,將其發布到內容管理平臺,并將內容索引信息發布到Kademlia-P2P網絡中,同時也為點播用戶提供內容點播服務;普通節點工具根據從內容管理平臺檢索到的內容ID信息,在Kademlia-P2P網絡中查找對應的內容索引信息,在內容點播的同時為其他點播用戶提供該內容的上傳服務;內容管理平臺負責接收骨干節點發布的內容ID等信息,并對內容進行審核管理。本發明功能強大、高效快捷、操作簡單,人機界面友善,能在IPV6的網絡環境下有效地提高流媒體點播系統的健壯性和QoS,同時節省昂貴的中心帶寬。
文檔編號H04N21/60GK101145929SQ20071004471
公開日2008年3月19日 申請日期2007年8月9日 優先權日2007年8月9日
發明者劉畢升, 呂智慧, 杰 吳, 張世永 申請人:復旦大學