摘要:網狀多播以其穩(wěn)定性、易操作性和健壯性被廣泛應用,但高流暢性和低延遲策略始終是視頻點播技術面臨的挑戰(zhàn)。文章圍繞如何設計一個高流暢和低延遲的點播系統(tǒng),對比研究了三種典型的基于BitTorrent的VOD解決方案Bass、Bitos、Give-to-Get和常用的基于BitTorrent協(xié)議的VOD系統(tǒng)的性能評估方式,總結了在基于BitTorrent的VOD系統(tǒng)的優(yōu)化過程中遇到的問題和解決思路。
關鍵詞:P2P;BitTorrent;VOD;對比;評估
0 引言
2009年7月份,第24次中國互聯(lián)網發(fā)展狀況統(tǒng)計報告顯示,截至2009年6月底,中國網民規(guī)模達到3.38億人,其中網絡視頻應用的使用率已高達67.1%,且保持10%的增幅。目前的網絡視頻應用大致可分為三種類型——第一種:線上下載線下觀看,也就是把完整的視頻文件下載到本地后再啟動本地播放器觀看;第二種:直播,當視頻內容在廣播時,用戶收看,如電視頻道直播;第三種:點播,視頻內容以流的形式到達用戶,用戶可以在任何時候觀看能夠獲取的任何一個節(jié)目,如優(yōu)酷,PPLIVE等。對于用戶而言,顯然點播是最方便的。
傳統(tǒng)的中心服務器,客戶機模式的視頻點播服務模式不具有可擴展性,既不能讓大量用戶同時訪問系統(tǒng),也不能為大量用戶同時提供足夠的帶寬以獲取流暢視頻服務。P2P網絡因為其節(jié)點在作客戶機獲取數(shù)據的同時,也作為服務器為其他節(jié)點提供服務,所以能夠快速高效地在網絡上傳遞數(shù)據。將P2P這種網絡特性引入視頻點播服務,能夠有效地地避免傳統(tǒng)服務器的上述不足。BitTorrent協(xié)議是P2P網絡中應用最為廣泛的仂議,在當前的網絡中已經存在多種以BitTorrent協(xié)議為基礎的P2P點播系統(tǒng)。但是,低延遲和高流暢性始終是P2P點播研究開發(fā)和布署的重點和難點。
本文圍繞如何設計一個兼具低延遲和高流暢度且服務器負載低的視頻點播系統(tǒng),對比分析了以BitTorrent協(xié)議為基礎的三個具有代表性的視頻點播系統(tǒng),歸納了基于BitTorrent的視頻點播系統(tǒng)的常用的性能評估方式。
1 基于BitTorrent的視頻點播系統(tǒng)
BitTorrent采用了優(yōu)秀的片選算法和“針鋒相對(Tit-For-Tat)”的節(jié)點阻塞機制。片選算法并沒有考慮對時間的敏感性,因此不能夠直接應用于點播系統(tǒng)。據我們了解,研究界將BitTorrent協(xié)議引入視頻點播服務經歷了三個階段。第一個階段是BitTorrent網絡和中心服務器共存的模式,如BASS,Toast等,本文對BASS作了分析;第二個階段是將BitTorrent的片選算法改造為適應于對時序有要求的點播模式,典型的代表有BiTos;第三個階段是在對片選算法改進的基礎上對阻塞機制也做了改進,典型的代表是Tribler系統(tǒng)。
1.1 BASS
如圖1所示,我們把BASS(由BitTorrent輔助的流媒體點播系統(tǒng))歸為第一代基于BitTorrent的視頻點播系統(tǒng)。

該系統(tǒng)針對中心服務器的帶寬利用率對客戶節(jié)點數(shù)的線性增長關系,在傳統(tǒng)服務器旁再附加一個BitTorrent的tracker服務器,讓客戶機同時通過媒體服務器和BitTorrent網絡下載播放數(shù)據。該方案延用了傳統(tǒng)BitTorrent的tit-for-tat(針鋒相對)和rarest-piece-first(最少片斷優(yōu)先)機制,通過對傳統(tǒng)BitTorrent客戶端的修改,不下載當前播放點之前的數(shù)據,減輕了傳統(tǒng)媒體服務器的壓力,使從Bifrorrcnt網絡上獲取的數(shù)據片斷不再從媒體服務器獲取,但沒有考慮BitTorrent下載的片斷和播放時間的同步。
1.2 BiTos
我們把BiTos歸為第二代基于BitTonrrnt的視頻點播系統(tǒng)。BiTos的設計者借鑒了CoolStreaming的滑動窗口策略,通過給即將播放的數(shù)據片斷更高的下載優(yōu)先級滿足了邊下載邊播放的需求;通過修改BitTorrent的機制,使得層疊網單獨使用BitTorrent網絡就能夠提供流媒體服務。
BiTos在下載片斷中執(zhí)行以下平衡策略:①播放順序優(yōu)先,保證平滑的播放效果。②稀有優(yōu)先原則,保證并行下載片段且在下載過程中丟棄已經超過播放期限(deadlihe)的數(shù)據片段。
BiTos的平衡策略通過以下四種手段實現(xiàn):①將媒體文件的片斷劃分為四個集合:當前已接收到的所有的片斷屬于接收緩存區(qū)集合B;在當前播放點后m時段內的片斷屬于高優(yōu)先級集合H;經預估在播放點到達之前不能夠下載到的片斷屬于放棄下載的集合D;屬于將要被播放的內容,且不屬于前兩個集合的片斷歸為剩余片斷集合R。②添加一個專門的模塊用來檢測片斷能否及時地到達,不能夠到達的放入集合D。③以P的概率下載H中的片斷,以1-P的概率下載R中的片斷。在下載H和R時,均采用最少優(yōu)先策略;如果H中兩個片斷同樣稀少,則優(yōu)先選擇離播放點最近的片斷。④根據播放點與可供播放的緩沖區(qū)的長度之間的比例關系調控概率。通過實驗評估,認為當集合H的大小為媒體文件的8%,P=80%時,整體下載性能最優(yōu)。

1.3 Tribler
我們把采用了Give-to-Get機制的Tdbler系統(tǒng)歸為第三代基于BitTorrent的視頻點播系統(tǒng)。該系統(tǒng)采用獨立于視頻的編碼和重疊網的視頻點播服務機制。系統(tǒng)根據視頻點播對時序的強關聯(lián)性和數(shù)據傳播的有序性,在阻塞機制上用基于鄰居節(jié)點累計轉發(fā)片斷數(shù)量的控制策略,替代傳統(tǒng)BitTorrent協(xié)議中基于鄰居節(jié)點上傳速率的控制策略,提高了視頻片斷在P2P網絡上的傳播效率。該機制中每個節(jié)點都動態(tài)地維護一個長度為10的鄰居列表,視頻片斷的上傳和下載都在節(jié)點和它和鄰居列表中的節(jié)點之間發(fā)生。假設使用了Give-to-Get機制的系統(tǒng)中有一個節(jié)點P,它的鄰居分別是P0,P1,P2……P9,Pi、Pi為P的鄰居中的任意兩個結點。對于上傳服務:P基于以下原則決定向哪些Pi提供服務:①把PO到P9按照從P中獲取的片斷被轉發(fā)的數(shù)量排序,對排在前3位的提供上傳服務。②如果P0到P9中存在Pi和Pj序位相同的情況,再按Pi和Pj轉發(fā)的總的片斷的數(shù)量排序,優(yōu)先為轉發(fā)片斷最多的鄰居提供上傳服務。③這樣的排序周期為A T。P對于它鄰居的轉發(fā)數(shù)量的信息是從Pi的鄰居中獲取(不包括P)的。對于下載任務:P將需要下載的片斷分為如圖3所示三個集合:高優(yōu)先級,中優(yōu)選級,低優(yōu)先級。正在播放時,對于高優(yōu)先級中的片斷,使用實際播放順序下載;其余情況下,無論是哪個集合,部使用最少優(yōu)先原則下載。

1.4 分析對比
我們將從服務器帶寬消耗和播放延遲兩個維度對BASS系統(tǒng)和傳統(tǒng)服務器模式作一對比。文獻的第六部分,使用播放連續(xù)度考察了BiTos系統(tǒng)中的P和集合A對性能的影響;文獻的第四部分,借助離散事件仿真器對比了BiTos系統(tǒng)和Give-to-Get的性能。綜合上述分析對比,可得出表1所示結果。

由此可見,為提高流暢度和減小播放時延,對基于BitTorrent的VOD系統(tǒng)的研究應主要集中在對片選算法和阻塞機制的改進和優(yōu)化上。
2 基于BitTorrent協(xié)議的VOD系統(tǒng)的性能評估方式
常見的對基于BitTorrent協(xié)議的VOD系統(tǒng)性能的評估方式主要從兩個方面入手:其一是根據BitTorrent協(xié)議具體實現(xiàn)中的片選算法、阻塞機制等建模并仿真;其二是從宏觀角度入手,在真實網絡環(huán)境中通過對BitTorrent客戶端、Tracker服務器實時狀態(tài)信息、日志文件、用戶行為等信息的獲取來評估其性能。
2.1 建模分析
BitTorrent協(xié)議的片選算法多種多樣,并且靈活多變,僅靠有限的測試、理想狀態(tài)的仿真和有限的經驗數(shù)據,不足以評估一個算法或者機制的優(yōu)越性。可以將片選算法原則概括為兩種:第一種是傳統(tǒng)的最少優(yōu)先原則;第二種是貪婪原則,即前面提到的播放順序優(yōu)先原則(離播放點最近的片斷優(yōu)先級最高)。最少優(yōu)先原則能夠動態(tài)地最大化網絡中數(shù)量較少片斷的分布,有利于整個BitTorrent重疊網處于一種帕累托最優(yōu)(Pareto Optimality)狀態(tài)。貪婪原則能夠最大地縮短播放時延。如何在恰當?shù)臅r候使用恰當?shù)钠x原則,使得視頻點播系統(tǒng)兼具高流暢度和低時延,是一個值得探討的問題。
2.2 基于統(tǒng)計歷史的性能評估
為了研究BitTorrent的特性,我們選取一個包含較大文件的種子,分別對tracker服務器和客戶端的行為做了長達5個月的跟蹤,分析了BitTorrent的一般行為,論證了BitTorrent協(xié)議在解決網絡上共享較大文件這一關鍵問題的優(yōu)越性。
首先,通過Tracker服務器的監(jiān)控獲取了5個月中每個時間點的節(jié)點總數(shù)、上傳者總數(shù)、下載者總數(shù)等,以及不同時間點下的上傳、下載字節(jié)數(shù)量,統(tǒng)計了不同地區(qū)的用戶節(jié)點數(shù)量等信息,詳盡地分析了5個月期間不同用戶產生的不同行為。其次,通過對校園網內一個Client節(jié)點的監(jiān)控,獲取了單個節(jié)點上傳、下載、網絡吞吐量以及對網絡突發(fā)流量的反應等信息。
在研究基于BitTorrent協(xié)議的VOD系統(tǒng)時,我們通過修改BitTorrent協(xié)議中Tracker服務器和對等節(jié)點客戶端的日志模塊,來實現(xiàn)對VOD行為的完全監(jiān)控,由此獲取用戶點播過程中產生的大量有價值的信息,從而進一步提高VOD系統(tǒng)的性能。
2.3 基于離散事件仿真的性能評估
離散事件的仿真是通過離散事件發(fā)生器來模擬網絡事件,從而對大規(guī)模的網絡行為做出理論上的分析。常見的離散事件仿真器有NS-2、Matlab和基于C++的Adevs。
傳統(tǒng)的P2P仿真器大體可以分為兩類:一是基于重疊網層次(Overlay-Level)的仿真器,如PeerSim、P2PSim等。它們側重于P2P重疊網(各種DHT網絡及非結構P2P網絡)層次上的查找算法的仿真,而沒有提供對BitTorrent中特有的文件下載過程的仿真。并且只關注網絡應用層,沒有考慮底層網絡流量等因素。二是基于包層次(Packet-Level)的仿真,最典型的如NS-2。這一層次的仿真器優(yōu)點是可以提供較為真實的底層網絡流量仿真,且準確率較高,通過二次開發(fā),可以做到對BitTorrent協(xié)議的仿真。此類仿真器由于對網絡層以下仿真,較之重疊網層次的仿真器計算開銷大,對于擁有大量節(jié)點的P2P網絡便無能為力,而其提供的某些方面的準確率并不是必須的,完全可以簡化。
在對BitTorrent協(xié)議的仿真中,文獻中提到了GPS(A General Peer-to-Peer Simulator)開源仿真器。GPS是一個消息級(Message-Level)的、事件驅動的對等網絡仿真器,其關鍵技術是利用宏模型(Macro-Model)來仿真消息級的流量。由于采用了較為成熟的流模型(Flow-Model)來仿真網絡流量,其準確率接近于傳統(tǒng)的包層次的仿真器,而由于其開銷方面顯著減小,因此可以用來仿真擁有較大數(shù)量節(jié)點的P2P網絡。

2.4 真實環(huán)境表現(xiàn)
當前針對BitTorrent協(xié)議的研究主要集中在上述的建模分析、系統(tǒng)日志分析、實驗仿真等方面。在真實的網絡環(huán)境中,由于存在著多種不同的BitTorrent客戶端,其實現(xiàn)方式也有很大不同,因此,如何在真實的環(huán)境中通過對不同版本的BitTorrent客戶端行為的分析來正確評估BitTorrent協(xié)議是一個重要的有待解決的問題。
文獻提供了一個開源的綜合評估框架:在相同的網絡環(huán)境下,同時通過不同的客戶端(Azureus,Tribler,Transmission,hrktorrent,BitTorrent Mainline等)傳送同一個文件,系統(tǒng)保證對各個客戶端的操作完全同步,各個客戶端在文件下載過程中產生的日志文件會自動匯總到一起,這些日志文件有助于我們作進一步的評估分析。
3 結束語
在Internet上提供大規(guī)模的點播服務是一項極具挑戰(zhàn)性的工作。本文分析了三種基于BitTorrent的視頻點播系統(tǒng)的關鍵算法及總體表現(xiàn)情況,概括了常用的幾類BitTorrent協(xié)議性能評估方式,為進一步研究基于BitTorrent協(xié)議的VOD系統(tǒng)提供了參考。