陳世嬌,甘 濤,周 楨
(1.電子科技大學 電子工程學院,四川 成都 611731;2.武漢廣播電視總臺 湖北 武漢 430015)
隨著網(wǎng)絡傳輸技術的不斷發(fā)展和人們對網(wǎng)絡需求的日益增長,P2P技術在流媒體領域的應用日益廣泛,在我國,P2P直播技術已經(jīng)非常成熟,較出名的產(chǎn)品有PPlive[1]。BT協(xié)議是支持網(wǎng)絡中數(shù)據(jù)的傳輸?shù)囊粋€典型的P2P文件傳輸協(xié)議。BT協(xié)議下載文件片段,其下載順序是無序的,與音頻點播中文件片段的有序播放相矛盾;并且BT協(xié)議是單一地從P2P網(wǎng)絡中獲取文件片段,當網(wǎng)絡擁塞或者文件資源數(shù)目較少時,會導致數(shù)據(jù)不能及時到達甚至獲取失敗。而音頻點播系統(tǒng)需要的是能夠?qū)崟r播放的數(shù)據(jù)流,BT片段下載算法應用于音頻點播具有啟動延遲大、播放流暢性低等缺點。
基于P2P技術在點播[2-6]領域的研究,在BT協(xié)議的基礎上,提出了一種分區(qū)域多線程的片段下載算法,該算法融合了分區(qū)域片段選擇算法以及多線程片段下載算法,經(jīng)實驗證明,能夠有效地減小音頻點播的啟動延遲、提高音頻播放的流暢性。
使用BT協(xié)議下載文件的過程中,遵循以下4個片段選擇策略:
1)嚴格優(yōu)先級策略
一旦某個片段的子片段被請求,那么該片段剩下的子片段將優(yōu)先被請求,這樣做可以盡可能快的獲得一個完整的片段。
2)最少優(yōu)先策略
對于那些資源數(shù)目較少的的片段,最有可能從當前網(wǎng)絡中消失。因此,節(jié)點使用最少優(yōu)先策略,優(yōu)先下載這些資源數(shù)目數(shù)較少的片段請求下載這樣,網(wǎng)絡中該片段的資源數(shù)目會增多,使系統(tǒng)資源處于均衡。
3)隨機選擇策略
在文件下載的開始時刻,下載開始時客戶端并沒有任何片段可供上傳,因此,需要盡快的獲取一個完整的片段進行上傳。這時就需要隨機選擇第一個片段。
4)最后階段模式
當peer的數(shù)量大于未下載的片段數(shù)量時,就進入了最后階段模式,客戶端向它的所有的對等端發(fā)送這些片段的請求,一旦某些片段到了,該客戶端就會向其它對等端發(fā)送“取消”消息來取消對這些片段的請求,避免浪費帶寬。
綜合BT協(xié)議的片段選擇算法,可以看出其應用于音頻點播系統(tǒng)的不足:播放順序與下載順序之間的矛盾,以及片段到達時間的不確定性,這兩者很容易影響點播的質(zhì)量,造成播放的不連貫。文中在BT片段選擇算法的基礎上,提出了一種分區(qū)域的片段下載算法,能夠很好的解決BT協(xié)議片段下載算法應用于音頻點播的不足。
以播放點為基準,將下載緩沖區(qū)分為兩個區(qū)域:緊急數(shù)據(jù)區(qū)域和普通數(shù)據(jù)區(qū)域。位于緊急數(shù)據(jù)區(qū)域的片段離播放點比較近,是即將播放的數(shù)據(jù),具有較高的優(yōu)先級,采用時限優(yōu)先片段選擇算法;位于普通數(shù)據(jù)區(qū)域的片段離播放點比較遠,具有較低的優(yōu)先級,當緊急數(shù)據(jù)區(qū)域的片段全部下載結束后,才能進行普通數(shù)據(jù)區(qū)域片段的下載,該區(qū)域采用最少優(yōu)先和時限優(yōu)先相結合的片段選擇算法。下載緩沖區(qū)分區(qū)如圖1所示。
圖1 緩沖區(qū)分區(qū)Fig.1 Division of buffer
緊急數(shù)據(jù)區(qū)域的片段,距離播放點很近,其下載順序與播放的流暢性密切相關,若當播放點臨近時,所需的片段仍未到達,就會造成類似于“卡帶”的現(xiàn)象。為了保證播放的質(zhì)量,緊急數(shù)據(jù)區(qū)域的片段選擇采用基于時限優(yōu)先的多線程下載算法。
2.1.1 時限優(yōu)先片段選擇算法
時限優(yōu)先是指在選擇下載片段的時候,越靠近播放點的數(shù)據(jù)分片其優(yōu)先級越高,這樣可以在緩沖的起始部分保證播放順序問題,緊急緩沖區(qū)域的大小設置為W=DB/C(其中:D—播放延遲,B—播放速度,C—單個文件片段的大?。?。隨著播放的進行,播放點向后移動。如圖2所示,假設緊急數(shù)據(jù)區(qū)域中含有p1~p7共7個片段,按照時限優(yōu)先的片段選擇算法,這些片段的優(yōu)先級從大到小排列為:p1>p2>p3>p4>p5>p6>p7。
圖2 緊急數(shù)據(jù)區(qū)域Fig.2 Domain of urgent data
2.1.2 多線程片段下載算法
在利用最少時限優(yōu)先算法選擇了需要下載的片段之后,就要開始這個片段的下載。如果單獨從P2P網(wǎng)絡[7]中下載數(shù)據(jù)片段,由于網(wǎng)絡環(huán)境的不確定性,片段的及時到達不能得到有效的保證,這從兩個播放的兩個過程影響音頻播放的質(zhì)量:一個是下載開始階段的播放延遲,二是播放過程中途播放的不連貫性。下面從這兩個過程分別提出應對策略。
1)要保證音頻播放的質(zhì)量,音頻文件的比特率至少為128 kbps;BT協(xié)議規(guī)定,torrent文件分片的大小為2k大小,分片大小對下載效率是有影響的,一般來說,分片大了,客戶端之間互相交互所消耗的流量也會比較小,因為客戶端互相交互分片信息也是需要數(shù)據(jù)包的,但是會導致傳輸效率下降,BT協(xié)議規(guī)定的分片典型大小為256 KB,根據(jù)碼率的計算公式,可以推算出一定數(shù)據(jù)量音頻的播放時間:
當音頻文件的比特率分別為為128 kbps,196 kbps時,由公式(1)可以計算出播放一個文件片段的時間分別為16.4 s、10.7 s??梢娨粋€片段大小的數(shù)據(jù)量的播放時間就可以保證播放的啟動延遲。
2)點播系統(tǒng)中數(shù)據(jù)傳輸?shù)膶崟r性要求文件片段能夠及時到達:當網(wǎng)絡擁塞或者資源副本稀缺時,就可能使得從P2P網(wǎng)絡下載片段時不能達到足夠的下載速度,這時要啟動服務器下載線程,從流媒體服務器下載所需的片段下載。這個下載算法時針對緊急數(shù)據(jù)區(qū)域的片段下載的。
假設播放點位置距離當前正在下載的片段之間的數(shù)據(jù)片段個數(shù)為N,如圖3,則根據(jù)公式(1),播放完這N個數(shù)據(jù)分片所需要的時間為t,這時,正在下載的數(shù)據(jù)片段至少需要達到pmin的下載速率才能保證播放的流暢性,其中pmin計算公式為:
圖3 正在下載分片F(xiàn)ig.3 The downloading piece
由于網(wǎng)絡的擁塞或者其他對等端的上傳速度的限制,可能會使當前正在下載分片的下載速率pnow<pmin,這時,就要啟用服務器線程從服務器下載所需的數(shù)據(jù)分片。
普通數(shù)據(jù)區(qū)域的片段離播放點比較遠,而且是當緊急數(shù)據(jù)區(qū)域的片段全部下載結束后才開始下載的,其下載速度對播放的質(zhì)量無太大的影響。普通數(shù)據(jù)區(qū)域的片段選取采用最少優(yōu)先和時限優(yōu)先相結合的片段選擇算法。由BT協(xié)議的片段選擇算法可知,最少優(yōu)先策略能夠保證數(shù)據(jù)分片在網(wǎng)絡中分布的均衡性。采用最少優(yōu)先和時限優(yōu)先相結合的策略,是在最少優(yōu)先的前提下,優(yōu)先選擇靠近播放點的數(shù)據(jù),這樣,就達到了均衡網(wǎng)絡負載與協(xié)調(diào)按序播放的目的。
假設普通數(shù)據(jù)區(qū)域存在未下載的文件片段為P1~P4,如圖4所示,首先按照最少優(yōu)先策略對這些分片進行優(yōu)先級的設定,具有相同資源數(shù)的片段具有相同的優(yōu)先級;然后按照時限優(yōu)先策略,對具有相同優(yōu)先級的片段進行二次優(yōu)先級的設定,至此,優(yōu)先級的排列結束。
圖4 普通數(shù)據(jù)區(qū)域Fig.4 Domain of orainary data
搭建實驗環(huán)境,對改進算法進行驗證,這里只對音頻文件的下載速度進行相應的實驗。用3臺電腦作為實驗平臺(Linux系統(tǒng)),一臺作為HTTP流媒體服務器提供HTTP下載源端,一臺運行l(wèi)ibtorrent客戶端,一臺運行基于新算法的下載客戶端。測試用的.torrent種子文件是來自公網(wǎng)的,提前下載好一份完整的文件,交給HTTP流媒體服務器來提供HTTP鏈接。實驗結果取二十分鐘內(nèi)的平均下載速度,實驗結果見表1。
表1 下載速度比較Tab.1 Compare of the download speed
由表1可以看出,使用改進的片段選擇算法之后,從P2P網(wǎng)絡中獲取數(shù)據(jù)的速度要較Libtorrent客戶端大;且由于使用了HTTP下載線程,使得基于新算法的下載客戶端的總的下載速度遠遠大于Libtorrent客戶端。
文中針對BT片段選擇算法應用于音頻點播系統(tǒng)的不足,提出了一種改進的基于BT協(xié)議的分區(qū)域多線程片段下載算法,闡述了其算法原理,并在linux系統(tǒng)下對算法的下載性能進行了相關實驗,實驗結果表明,該算法提高了音頻數(shù)據(jù)的下載速度,有效地提高了系統(tǒng)的性能。
[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視頻點播系統(tǒng)優(yōu)化研究與實現(xiàn)[D].廣州:華南理工大學,2010.
[4]朱駿,呂智慧,劉畢升,等.基于文件分片的P2P視頻點播系統(tǒng)片段選擇[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]宋啟星,胡君,王棟.基于區(qū)域化的P2P流媒體直播系統(tǒng)模型[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網(wǎng)絡資源搜索算法研究及其改進[J].現(xiàn)代電子技術,2011(12):41-43.WANG Zhi.P2P-based searching alorithm for network resources and its improvement[J].Modern Electronics Technique,2011(12):41-43.