陳世嬌,甘 濤,周 楨
(1.電子科技大學 電子工程學院,四川 成都 611731;2.武漢廣播電視總臺 湖北 武漢 430015)
隨著網絡傳輸技術的不斷發展和人們對網絡需求的日益增長,P2P技術在流媒體領域的應用日益廣泛,在我國,P2P直播技術已經非常成熟,較出名的產品有PPlive[1]。BT協議是支持網絡中數據的傳輸的一個典型的P2P文件傳輸協議。BT協議下載文件片段,其下載順序是無序的,與音頻點播中文件片段的有序播放相矛盾;并且BT協議是單一地從P2P網絡中獲取文件片段,當網絡擁塞或者文件資源數目較少時,會導致數據不能及時到達甚至獲取失敗。而音頻點播系統需要的是能夠實時播放的數據流,BT片段下載算法應用于音頻點播具有啟動延遲大、播放流暢性低等缺點。
基于P2P技術在點播[2-6]領域的研究,在BT協議的基礎上,提出了一種分區域多線程的片段下載算法,該算法融合了分區域片段選擇算法以及多線程片段下載算法,經實驗證明,能夠有效地減小音頻點播的啟動延遲、提高音頻播放的流暢性。
使用BT協議下載文件的過程中,遵循以下4個片段選擇策略:
1)嚴格優先級策略
一旦某個片段的子片段被請求,那么該片段剩下的子片段將優先被請求,這樣做可以盡可能快的獲得一個完整的片段。
2)最少優先策略
對于那些資源數目較少的的片段,最有可能從當前網絡中消失。因此,節點使用最少優先策略,優先下載這些資源數目數較少的片段請求下載這樣,網絡中該片段的資源數目會增多,使系統資源處于均衡。
3)隨機選擇策略
在文件下載的開始時刻,下載開始時客戶端并沒有任何片段可供上傳,因此,需要盡快的獲取一個完整的片段進行上傳。這時就需要隨機選擇第一個片段。
4)最后階段模式
當peer的數量大于未下載的片段數量時,就進入了最后階段模式,客戶端向它的所有的對等端發送這些片段的請求,一旦某些片段到了,該客戶端就會向其它對等端發送“取消”消息來取消對這些片段的請求,避免浪費帶寬。
綜合BT協議的片段選擇算法,可以看出其應用于音頻點播系統的不足:播放順序與下載順序之間的矛盾,以及片段到達時間的不確定性,這兩者很容易影響點播的質量,造成播放的不連貫。文中在BT片段選擇算法的基礎上,提出了一種分區域的片段下載算法,能夠很好的解決BT協議片段下載算法應用于音頻點播的不足。
以播放點為基準,將下載緩沖區分為兩個區域:緊急數據區域和普通數據區域。位于緊急數據區域的片段離播放點比較近,是即將播放的數據,具有較高的優先級,采用時限優先片段選擇算法;位于普通數據區域的片段離播放點比較遠,具有較低的優先級,當緊急數據區域的片段全部下載結束后,才能進行普通數據區域片段的下載,該區域采用最少優先和時限優先相結合的片段選擇算法。下載緩沖區分區如圖1所示。

圖1 緩沖區分區Fig.1 Division of buffer
緊急數據區域的片段,距離播放點很近,其下載順序與播放的流暢性密切相關,若當播放點臨近時,所需的片段仍未到達,就會造成類似于“卡帶”的現象。為了保證播放的質量,緊急數據區域的片段選擇采用基于時限優先的多線程下載算法。
2.1.1 時限優先片段選擇算法
時限優先是指在選擇下載片段的時候,越靠近播放點的數據分片其優先級越高,這樣可以在緩沖的起始部分保證播放順序問題,緊急緩沖區域的大小設置為W=DB/C(其中:D—播放延遲,B—播放速度,C—單個文件片段的大?。?。隨著播放的進行,播放點向后移動。如圖2所示,假設緊急數據區域中含有p1~p7共7個片段,按照時限優先的片段選擇算法,這些片段的優先級從大到小排列為:p1>p2>p3>p4>p5>p6>p7。

圖2 緊急數據區域Fig.2 Domain of urgent data
2.1.2 多線程片段下載算法
在利用最少時限優先算法選擇了需要下載的片段之后,就要開始這個片段的下載。如果單獨從P2P網絡[7]中下載數據片段,由于網絡環境的不確定性,片段的及時到達不能得到有效的保證,這從兩個播放的兩個過程影響音頻播放的質量:一個是下載開始階段的播放延遲,二是播放過程中途播放的不連貫性。下面從這兩個過程分別提出應對策略。
1)要保證音頻播放的質量,音頻文件的比特率至少為128 kbps;BT協議規定,torrent文件分片的大小為2k大小,分片大小對下載效率是有影響的,一般來說,分片大了,客戶端之間互相交互所消耗的流量也會比較小,因為客戶端互相交互分片信息也是需要數據包的,但是會導致傳輸效率下降,BT協議規定的分片典型大小為256 KB,根據碼率的計算公式,可以推算出一定數據量音頻的播放時間:

當音頻文件的比特率分別為為128 kbps,196 kbps時,由公式(1)可以計算出播放一個文件片段的時間分別為16.4 s、10.7 s??梢娨粋€片段大小的數據量的播放時間就可以保證播放的啟動延遲。
2)點播系統中數據傳輸的實時性要求文件片段能夠及時到達:當網絡擁塞或者資源副本稀缺時,就可能使得從P2P網絡下載片段時不能達到足夠的下載速度,這時要啟動服務器下載線程,從流媒體服務器下載所需的片段下載。這個下載算法時針對緊急數據區域的片段下載的。
假設播放點位置距離當前正在下載的片段之間的數據片段個數為N,如圖3,則根據公式(1),播放完這N個數據分片所需要的時間為t,這時,正在下載的數據片段至少需要達到pmin的下載速率才能保證播放的流暢性,其中pmin計算公式為:

圖3 正在下載分片Fig.3 The downloading piece

由于網絡的擁塞或者其他對等端的上傳速度的限制,可能會使當前正在下載分片的下載速率pnow<pmin,這時,就要啟用服務器線程從服務器下載所需的數據分片。
普通數據區域的片段離播放點比較遠,而且是當緊急數據區域的片段全部下載結束后才開始下載的,其下載速度對播放的質量無太大的影響。普通數據區域的片段選取采用最少優先和時限優先相結合的片段選擇算法。由BT協議的片段選擇算法可知,最少優先策略能夠保證數據分片在網絡中分布的均衡性。采用最少優先和時限優先相結合的策略,是在最少優先的前提下,優先選擇靠近播放點的數據,這樣,就達到了均衡網絡負載與協調按序播放的目的。
假設普通數據區域存在未下載的文件片段為P1~P4,如圖4所示,首先按照最少優先策略對這些分片進行優先級的設定,具有相同資源數的片段具有相同的優先級;然后按照時限優先策略,對具有相同優先級的片段進行二次優先級的設定,至此,優先級的排列結束。

圖4 普通數據區域Fig.4 Domain of orainary data
搭建實驗環境,對改進算法進行驗證,這里只對音頻文件的下載速度進行相應的實驗。用3臺電腦作為實驗平臺(Linux系統),一臺作為HTTP流媒體服務器提供HTTP下載源端,一臺運行libtorrent客戶端,一臺運行基于新算法的下載客戶端。測試用的.torrent種子文件是來自公網的,提前下載好一份完整的文件,交給HTTP流媒體服務器來提供HTTP鏈接。實驗結果取二十分鐘內的平均下載速度,實驗結果見表1。

表1 下載速度比較Tab.1 Compare of the download speed
由表1可以看出,使用改進的片段選擇算法之后,從P2P網絡中獲取數據的速度要較Libtorrent客戶端大;且由于使用了HTTP下載線程,使得基于新算法的下載客戶端的總的下載速度遠遠大于Libtorrent客戶端。
文中針對BT片段選擇算法應用于音頻點播系統的不足,提出了一種改進的基于BT協議的分區域多線程片段下載算法,闡述了其算法原理,并在linux系統下對算法的下載性能進行了相關實驗,實驗結果表明,該算法提高了音頻數據的下載速度,有效地提高了系統的性能。
[1]Live[EB/OL].WWW.pplive.com.
[2]胡晶.基于P2P技術的視頻點播技術[J].中國科技信息,2007(2):147-148.HU Jing.Video on demand technology based on P2P technology[J].China Science and Technology Information,2007(2):147-148.
[3]陳新新.P2P視頻點播系統優化研究與實現[D].廣州:華南理工大學,2010.
[4]朱駿,呂智慧,劉畢升,等.基于文件分片的P2P視頻點播系統片段選擇[J].計算機工程,2008,34(20):82-85.ZHU Jun,LU Zhi-hui,LIU Bi-sheng,et al.Fragment selecting method of P2P VOD system based on file piecewise[J].computer Engineerning,2008,34(20):82-85.
[5]Min Cui.Research on video on demand based on P2P network[J].Intelligent Information Management,2012(2):338-341.
[6]宋啟星,胡君,王棟.基于區域化的P2P流媒體直播系統模型[J].計算機工程,2010(1):127-130.SONG Qi-xing,HU Jun,WANG Dong.Model of P2P streaming media live system based on regionalization[J].Computer Engineering,2010(1):127-130.
[7]王植.P2P網絡資源搜索算法研究及其改進[J].現代電子技術,2011(12):41-43.WANG Zhi.P2P-based searching alorithm for network resources and its improvement[J].Modern Electronics Technique,2011(12):41-43.