陳園園 朱欣穎
摘 要:在深入研究現有的P2P網絡拓撲結構的基礎上,構建了一個新的P2P流媒體點播系統模型,該系統模型包含跟蹤服務器、資源服務器、超級節(jié)點和普通節(jié)點四個部分。它能快速定位到資源,減少路由查詢次數,增加系統的擴展性、魯棒性和數據吞吐量,能夠很好的滿足點播服務的要求。
關鍵詞:P2P;流媒體點播;網絡拓撲結構
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-2163(2015)06-
Abstract: In-depth study of existing P2P network topology, the paper constructs a new P2P streaming media on-demand system model, which includes four parts tracking server, resource servers, super nodes and ordinary nodes. It can quickly locate the resources, reduce routing queries, increase system scalability, robustness and data throughput, therefore can well meet the requirements of on-demand services.
Keywords: P2P; Streaming Media On-demand; Network Topology
0 引 言
近年來,隨著P2P技術的發(fā)展,許多P2P流媒體點播系統進入了人們的生活,為廣大的用戶提供了豐富的媒體服務。然而,由于用戶節(jié)點的動態(tài)性、節(jié)點性能的差異性以及用戶操作的隨意性,導致P2P流媒體點播系統無法保證用戶獲得高質量的流媒體點播服務。因此,為了提高P2P流媒體點播系統的服務質量和用戶觀感,設計一種新的P2P流媒體點播系統模型具有十分重要的意義。
1 數據調度問題的模型
1.1 節(jié)點可利用帶寬的評估
在實際的系統中,某一個數據塊會被多個對等節(jié)點擁有,那么選擇哪個節(jié)點進行傳輸即是一個亟需解決的重要問題。在本文中,以節(jié)點的網絡帶寬為主要依據選擇節(jié)點進行數據的傳輸,不同節(jié)點的帶寬是不同的,同一節(jié)點在不同時期的帶寬也是不同的,因此需要研發(fā)一特定算法去估計每個節(jié)點的帶寬。
要評估一個節(jié)點的帶寬,可以根據其歷史帶寬來進行識讀估計。最先想到的方法是取其歷史帶寬記錄的平均值作為下一個調度周期的估計帶寬,具體方法是,通過記錄這個節(jié)點最近 個周期的實際帶寬,再把這 個帶寬記錄求和,由此獲得平均值。但是使用這種方法估計下一個調度周期的網絡帶寬卻不準確,因為可能出現如下情況,即 個周期的前幾個周期,節(jié)點提供的網絡帶寬很大,而最近幾個調度周期,相應的網絡帶寬卻很小,那么如果用歷史帶寬記錄平均值的方式做出的帶寬估計肯定也很大,就會導致請求節(jié)點將繼續(xù)向這個資源節(jié)點發(fā)出傳輸數據塊請求,為此可能導致傳輸時間過長,甚至直接導致失敗。
本文對上述的方式進行了改進,使用公式(1)來估計每個資源節(jié)點的帶寬。在本算法中,記錄了節(jié)點n-1個周期的實際帶寬,調度周期 的估計帶寬包括2部分,一部分是節(jié)點前n-2個周期的實際帶寬平均后的加權值,另一部分是節(jié)點最近一次(n-1周期)網絡帶寬加權后的結果值。這種設計既考慮了節(jié)點的歷史帶寬,也顧及了節(jié)點最近一次的帶寬。
其中, 表示資源節(jié)點 在第 個周期能夠提供帶寬的估計值, 表示資源節(jié)點 在第 個周期實際提供的帶寬大小。而且,n是一個正整數,表示要估計的調度周期。n是一個常量(01.2 數據分片
在P2P點播系統中,一般的資源都是體積可觀的,為了方便數據的調度,一個至關重要的操作就是如何對資源數據進行合理分片[1]。
為了能夠實現合理的分片,需要討論如下三個方面的因素:
(1)從數據調度的方面考慮,系統希望把資源文件分得越小越好,節(jié)點可以選擇從不同的鄰居節(jié)點調度某一片數據,這樣就增加了數據調度的靈活性。
(2)從調度開銷方面考慮,希望數據片的容量越大越好。主要的調度開銷有:
每一片數據都需要一個頭文件來描述其詳情,包括數據片的序列號、時間戳等信息,因此數據片越大,頭文件的開銷就越小;
每一個對等節(jié)點都需要使其鄰居節(jié)點知道該節(jié)點中緩存了哪些數據片,節(jié)點一般使用位圖來表示這些信息,如果數據片分得過小,那么位圖必然很長,并且位圖還是所有開銷中最大的;
數據片是從其它節(jié)點獲取的,如此勢必導致額外開銷,如請求數據片信息等。
(3)從流媒體點播對數據實時性方面考慮,一般播放器多需要數據片在播放之前即已到達,而數據片在網絡中傳輸經常是拆分成多個數據包,如果這個數據片過于龐大,就必然增加傳輸失敗的概率,從而導致數據片將無法及時在播放之前到達。
綜合考慮上述因素,本文采用先分塊,再分片的方式。具體的方式是:先把資源文件分成大小相同的數據塊(除文件的最后一塊數據可能小于其它塊的大小外),每一塊的大小均為512KB,而后再把數據塊分成64片,每一片數據的大小則為8KB(同樣是除最后一塊數據的最后一片數據大小外)。資源分片的原理示意圖如1所示。
如果媒體資源文件的大小為 ,記最后一個獨立數據塊的大小為 ,而此后一個但愿數據片的大小記為 ,則其各自大小均可由下面的公式得到。
如上方式中,系統傳輸數據的時候以數據片為單位傳輸,而資源表示時以數據塊為單位,這樣既減小了系統的額外開銷,又滿足了數據調度的實時性要求,還增加了數據調度的靈活性。
1.3 緩存數據表示與交換
流媒體在點播的時候,需要緩存一定數量的數據塊進行播放和提供給其它對等節(jié)點使用,本節(jié)將具體研究節(jié)點是如何標識緩存的數據塊以及如何進行標識信息的交換。
在系統模型中,每一個完整的媒體文件都被分為同等大小的數據塊,為了表示數據塊的位置,利于數據調度,根據數據塊的位置分配一個唯一序列號,從0開始分配。當節(jié)點需要點播某一部資源時,該節(jié)點就開始緩存數據內容,并通過維護一個位圖BM來表示數據塊的存在情況。
位圖信息用來表示數據塊的可用信息。一個位圖由很多位組成,每一位代表對應序號的一塊數據,位圖的長度表示了點播資源文件所擁有的數據塊數量。如果 表示節(jié)點緩存了數據塊 ;反之, 就表示節(jié)點沒有緩存數據塊 。播放節(jié)點通過與鄰居交換緩存位圖,根據位圖信息可以知道哪些節(jié)點擁有哪些數據塊,作為自身數據調度的依據。另外,在交換位圖時,每一個鄰居節(jié)點還將自己的播放位置通知給相互交換位圖的節(jié)點,而通過位圖信息和播放位置,就可以預測哪些數據塊也是其它節(jié)點需要的。
1.4 鄰居節(jié)點的選擇
在模型中,當用戶點播某一部資源時,超級節(jié)點會選擇某些個擁有這部資源的節(jié)點返回給點播用戶。在選擇這些節(jié)點的過程中,超級節(jié)點會考慮這些資源節(jié)點與點播節(jié)點的位置關系,優(yōu)先返回位于點播節(jié)點同一或者附近區(qū)域位置的資源節(jié)點,如此即可減少網絡傳輸延時,降低主干網的壓力,提高服務質量。另外,本文提出的調度策略中,計算數據片的優(yōu)先級時也考慮了位置因素。
2 P2P流媒體點播系統模型
基于上述調度模型,通過研究現有的幾種P2P網絡拓撲結構及系統模型,本文設計了如圖2所示的P2P流媒體點播系統模型。
從圖2中可以看出,系統中包括跟蹤服務器、資源服務器、超級節(jié)點和普通節(jié)點。這樣的結構設計,主要是為了快速定位到資源,減少路由查詢次數,增加網絡中數據的吞吐量,同時系統的擴展性和魯棒性,滿足點播的服務質量。下面將詳細介紹系統的每一個組成部分。
2.1 跟蹤服務器
這個服務器保存著系統所有資源的目錄信息,這些資源來自資源服務器和普通節(jié)點,普通用戶可以根據給定的信息點播系統中的資源。服務器還管理著普通節(jié)點的加入、退出、資源點播和發(fā)布等操作,以及普通節(jié)點相關信息(包括IP地址、端口號、會話號)的實時記錄,再根據不同的資源內容選擇和管理超級節(jié)點。
2.2 資源服務器
這個服務器的主要作用是存儲了系統中供用戶點播的原始資源,如果系統中的節(jié)點要點播某一資源時,且其它節(jié)點都沒有保存,此時節(jié)點就會從資源服務器上實現下載,并進行欣賞。
2.3 超級節(jié)點
超級節(jié)點擁有良好性能(包括計算處理能力、存儲能力、網絡帶寬、I/O端口)和公共IP地址,而且表現出在線時間長的實際優(yōu)勢。超級節(jié)點不僅具備普通節(jié)點的所有功能,還進一步提供了管理資源分布信息的功能。普通節(jié)點在點播資源的同時把自己緩存資源的情況告知于超級節(jié)點,超級節(jié)點統計這些信息,供其它普通節(jié)點查詢資源的分布信息,作為節(jié)點調度數據的重要基礎。超級節(jié)點和普通節(jié)點還組成一個簇,形成一個邏輯子網,子網中的所有普通節(jié)點都成為鄰居節(jié)點。
2.4 普通節(jié)點
普通節(jié)點可以點播網絡中的資源進行欣賞,同時也為其它的普通節(jié)點提供資源,加速數據的傳輸,并且普通節(jié)點還可以向網絡中的其它節(jié)點發(fā)布自己的整部資源,供其它普通節(jié)點選擇使用。性能好且在線時間長,具有公共IP地址的普通節(jié)點可以被服務器選擇升級為超級節(jié)點。
3 結束語
本文通過對影響P2P流媒體點播系統拓撲結構的分析,搭建了一個P2P流媒體點播系統模型,該系統模型包含跟蹤服務器、資源服務器、超級節(jié)點和普通節(jié)點。系統能快速地定位資源,減少路由查詢次數,增加系統的擴展性、魯棒性和數據的吞吐量,較好地利用帶寬資源,滿足用戶的點播服務要求。
參考文獻:
[1] 趙惠.P2P流媒體點播系統的算法研究[D].成都:西華大學,2008.
[2] 管磊.P2P技術揭秘---P2P網絡技術原理與典型系統開發(fā)[M].北京:清華大學出版社,2011:89-103.
[3] 石志磊.流媒體技術及其系統設計與實現[D].北京:北京郵電大學,2011.