《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > P2P流媒體系統(tǒng)模型及關(guān)鍵技術(shù)研究

P2P流媒體系統(tǒng)模型及關(guān)鍵技術(shù)研究

2009-10-12
作者:王 娟1,2,黃鵬輝1,2,朱

  摘 要: 介紹了典型的P2P流媒體系統(tǒng)模型,并指出基于多播樹(shù)協(xié)議的服務(wù)模型與基于Gossip協(xié)議的服務(wù)模型的區(qū)別。分析了對(duì)P2P流媒體系統(tǒng)的節(jié)點(diǎn)的調(diào)度算法、數(shù)據(jù)存儲(chǔ)、資源發(fā)現(xiàn)、內(nèi)容分發(fā)等關(guān)鍵技術(shù),在此基礎(chǔ)上指出了P2P流媒體系統(tǒng)進(jìn)一步的研究方向。
??? 關(guān)鍵詞: 對(duì)等網(wǎng)絡(luò);流媒體系統(tǒng);數(shù)據(jù)存儲(chǔ);資源發(fā)現(xiàn);內(nèi)容分發(fā)

?

?? 以P2P(Peer-to-Peer)為代表的覆蓋網(wǎng)絡(luò),以其獨(dú)特的結(jié)構(gòu)特點(diǎn),可變集中處理和存儲(chǔ)為分布處理和存儲(chǔ),充分挖掘Internet邊緣的空閑資源,克服了傳統(tǒng)的客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu)中服務(wù)器負(fù)載過(guò)高、網(wǎng)絡(luò)帶寬占用過(guò)大、服務(wù)器易形成單點(diǎn)失效等缺點(diǎn),并改善了網(wǎng)絡(luò)層組播(IP組播)結(jié)構(gòu)系統(tǒng)擴(kuò)展性不好、內(nèi)容分發(fā)網(wǎng)絡(luò)CDN(Content Delivery Network)部署成本高等缺點(diǎn)?;谶@些優(yōu)勢(shì),研究人員將P2P技術(shù)引入流媒體系統(tǒng)中,形成了P2P流媒體技術(shù)。
  P2P技術(shù)的快速發(fā)展為大規(guī)模流媒體應(yīng)用提供了新的解決方案,許多實(shí)際運(yùn)行的系統(tǒng)證明了將P2P技術(shù)應(yīng)用于內(nèi)容分發(fā)過(guò)程中的有效性,如提供文件共享服務(wù)功能的BitTorrent系統(tǒng)[1]、提供視頻直播服務(wù)功能的CoolStreaming[2]、PPLive[3]以及提供視頻點(diǎn)播服務(wù)功能的PPStream[4]等。本文對(duì)P2P流媒體系統(tǒng)模型及其關(guān)鍵技術(shù)進(jìn)行了分析,并在此基礎(chǔ)上指出了P2P流媒體技術(shù)的進(jìn)一步的研究方向。
1 P2P流媒體系統(tǒng)模型
  P2P流媒體系統(tǒng)按其工作方式大致可分為二類:基于樹(shù)狀多播系統(tǒng)和基于Gossip協(xié)議的網(wǎng)狀多播系統(tǒng)。
  基于樹(shù)狀多播的P2P流媒體系統(tǒng)將網(wǎng)絡(luò)中所有節(jié)點(diǎn)組織成1棵多播樹(shù),如圖1所示。樹(shù)的根節(jié)點(diǎn)是媒體發(fā)布源,流媒體數(shù)據(jù)從多播樹(shù)的父節(jié)點(diǎn)向其子節(jié)點(diǎn)傳播直到葉節(jié)點(diǎn)。該方法可以最小化系統(tǒng)中多余的數(shù)據(jù)傳播,并保證每個(gè)數(shù)據(jù)塊能傳播到系統(tǒng)中每個(gè)節(jié)點(diǎn),其缺點(diǎn)是:(1)多播樹(shù)極易分裂且維護(hù)的開(kāi)銷巨大;(2)多播樹(shù)的父節(jié)點(diǎn)限制了其所在子樹(shù)的最大輸入帶寬,因此多播樹(shù)中帶寬瓶頸節(jié)點(diǎn)到處存在;(3)各個(gè)節(jié)點(diǎn)的負(fù)載不均衡,如葉節(jié)點(diǎn)只下載不上傳,是純粹的帶寬消費(fèi)者。典型代表有ZIGZAG系統(tǒng)[5]等。

?


  近年來(lái),基于Gossip協(xié)議的P2P流媒體系統(tǒng)已成為P2P流媒體系統(tǒng)的主流,如圖2所示。基于Gossip協(xié)議的網(wǎng)狀服務(wù)模型并沒(méi)有依靠固定的拓?fù)浣Y(jié)構(gòu)把數(shù)據(jù)轉(zhuǎn)發(fā)給接收節(jié)點(diǎn),而是依靠數(shù)據(jù)有效信息來(lái)驅(qū)動(dòng)數(shù)據(jù)在節(jié)點(diǎn)間流動(dòng),因此該結(jié)構(gòu)又稱為數(shù)據(jù)驅(qū)動(dòng)化網(wǎng)絡(luò)。節(jié)點(diǎn)首先將消息發(fā)送給周圍的一組節(jié)點(diǎn),周圍節(jié)點(diǎn)在接收到消息后根據(jù)需要對(duì)消息進(jìn)行轉(zhuǎn)發(fā),消息就可以通過(guò)節(jié)點(diǎn)之間以接力的方式進(jìn)行傳遞。鄰居維護(hù)的靈活性與數(shù)據(jù)傳播的隨機(jī)性使得基于Gossip協(xié)議的P2P流媒體系統(tǒng)不會(huì)因節(jié)點(diǎn)失效而導(dǎo)致顯著的性能下降,從而良好地適應(yīng)了高動(dòng)態(tài)性的互聯(lián)網(wǎng)環(huán)境。因此,本文主要針對(duì)網(wǎng)狀結(jié)構(gòu)系統(tǒng)模型來(lái)分析P2P流媒體系統(tǒng)的主要組成部分及關(guān)鍵實(shí)現(xiàn)技術(shù)。

?


  為了更好地理解P2P流媒體系統(tǒng)的框架結(jié)構(gòu),下面給出基于Gossip協(xié)議的DONet服務(wù)模型系統(tǒng)的主要功能模塊。
  (1)成員管理模塊:實(shí)現(xiàn)成員節(jié)點(diǎn)的管理。在成員管理模塊中維護(hù)一個(gè)mCache(membership Cache),該表包含當(dāng)前系統(tǒng)中部分活動(dòng)節(jié)點(diǎn)信息。當(dāng)新節(jié)點(diǎn)加入系統(tǒng)時(shí),首先連接節(jié)目源服務(wù)器,服務(wù)器從它的mCache中隨機(jī)選擇1個(gè)代理節(jié)點(diǎn),并把新節(jié)點(diǎn)的加入請(qǐng)求重定向給該代理節(jié)點(diǎn)。新節(jié)點(diǎn)從代理節(jié)點(diǎn)獲取1個(gè)成員列表作為備選節(jié)點(diǎn)集合,然后從該集合中選取部分節(jié)點(diǎn)作為自己的伙伴節(jié)點(diǎn)。
  (2)伙伴關(guān)系管理模塊:建立和維護(hù)節(jié)點(diǎn)間的伙伴關(guān)系,并通過(guò)交換緩存映射圖BM(Buffer Map)獲取節(jié)點(diǎn)間的有效數(shù)據(jù)信息。整個(gè)視頻流被分成長(zhǎng)度相同的數(shù)據(jù)段(segment),節(jié)點(diǎn)緩存中的數(shù)據(jù)段有效性信息可通過(guò)BM來(lái)表示。節(jié)點(diǎn)定期地與其伙伴節(jié)點(diǎn)交換BM,調(diào)度算法根據(jù)伙伴節(jié)點(diǎn)中的BM來(lái)確定獲取哪個(gè)數(shù)據(jù)段。
  (3)調(diào)度模塊:負(fù)責(zé)把數(shù)據(jù)實(shí)時(shí)地傳送到播放節(jié)點(diǎn)的緩存中,用以保證媒體播放的連續(xù)性。對(duì)于同構(gòu)的靜態(tài)網(wǎng)絡(luò),簡(jiǎn)單的輪詢調(diào)度算法即可滿足數(shù)據(jù)的調(diào)度;但對(duì)于異構(gòu)的動(dòng)態(tài)網(wǎng)絡(luò),則需要更加智能化的調(diào)度算法。調(diào)度應(yīng)滿足2個(gè)約束條件[6]:①每個(gè)數(shù)據(jù)段需在播放時(shí)限之前到達(dá),錯(cuò)過(guò)時(shí)限的片段要盡可能少;②每個(gè)節(jié)點(diǎn)的帶寬情況不同。該問(wèn)題是并行機(jī)調(diào)度的一個(gè)變種,為NP難題。因此,想要尋找一個(gè)適合具體網(wǎng)絡(luò)的調(diào)度算法,特別是適合動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境的調(diào)度算法,將是非常困難的。下面給出一種可以實(shí)時(shí)連續(xù)觀看流媒體內(nèi)容的節(jié)點(diǎn)調(diào)度算法。
  節(jié)點(diǎn)的調(diào)度算法
??? 輸入:deadline[i]??? 數(shù)據(jù)塊i的截止期限
????????? seg_size?????? 數(shù)據(jù)塊的大小
????????? set_partners?? 伙伴節(jié)點(diǎn)集合
????????? num_partners?? 節(jié)點(diǎn)的伙伴節(jié)點(diǎn)的數(shù)量
????  ? band[k]?????    伙伴節(jié)點(diǎn)k的帶寬
????????? bm[k]????????? 伙伴節(jié)點(diǎn)k的緩存映射
????????? fetch_set????? 需要取得的數(shù)據(jù)塊集合
??? 輸出:supplier[i]??? 在fetch_set中不可用數(shù)據(jù)塊i的提供者
??? (1)對(duì)于塊i∈fetch_set,執(zhí)行
????①n←0;
????②對(duì)于j從1到num_partners,執(zhí)行
??????? T[j,i]←deadline[i]-current_time;?? //傳送到第i個(gè)
                       //數(shù)據(jù)塊可用的時(shí)間
??????? n←n+bm[j,i];?????????????????????? //數(shù)據(jù)塊i的潛在提供者數(shù)量
????③若n=1,則執(zhí)行???????????????????????? //數(shù)據(jù)塊只有1個(gè)潛在提供者
   ?????? k←argr{bm[r,i]=1};
  ???????? supplier[i]←k;
??   ?????? 對(duì)于fetch_set中的每個(gè)塊j(j>k),執(zhí)行
??   ????? t[k,j]←t[k,j]-seg_size/band[k];
????   ? 否則,執(zhí)行
???????????? dup_set[n]←dup_set[n]Y{i};
  ???????? supplier[n]←null;
  (2)對(duì)于n從2到num_partners,執(zhí)行
    ???? 對(duì)于每個(gè)i∈fetch_set[n],執(zhí)行? //數(shù)據(jù)塊有n個(gè)
?????????????????????????????????????????????//潛在提供者
?????????????? k←argr{band[r]>brand[r′]|t[r,i]>set_size/
?????? band[r]|,t[r′,i]>seg_size/band[r′],r,r′∈set_partners};
    ??? 若k不為空,則
  supplier[i]←k;
  ????? 對(duì)于fetch_set中的每個(gè)塊j(j>k),執(zhí)行
??????????????????????? t[k,j]←t[k,j]-seg_size/band[k];
  (3)返回supplier[i]。
  在節(jié)點(diǎn)調(diào)度算法中,首先計(jì)算每個(gè)數(shù)據(jù)塊的潛在提供者的數(shù)量。因?yàn)楫?dāng)1個(gè)數(shù)據(jù)塊有很少的潛在提供者時(shí),要滿足該數(shù)據(jù)塊的截止期限的限制將會(huì)很困難。因?yàn)楣?jié)點(diǎn)調(diào)度算法從開(kāi)始只有單個(gè)提供者的塊到具有2個(gè)提供者的數(shù)據(jù)塊再到具有多個(gè)提供者的數(shù)據(jù)塊的順序來(lái)確定每個(gè)數(shù)據(jù)塊的潛在提供者。在這些潛在提供者中,具有最高帶寬、足夠的可利用時(shí)間的提供者將會(huì)被選擇。算法被周期性地執(zhí)行更新調(diào)度,調(diào)度完成后,同一個(gè)提供者的數(shù)據(jù)塊被表示成BM的形式傳送給相應(yīng)的提供者,提供者通過(guò)一個(gè)實(shí)時(shí)的傳輸協(xié)議傳輸數(shù)據(jù)。
2 數(shù)據(jù)存儲(chǔ)
??? 媒體數(shù)據(jù)在系統(tǒng)中存儲(chǔ)決定了系統(tǒng)中數(shù)據(jù)的可用性。這不僅對(duì)P2P直播系統(tǒng)中節(jié)點(diǎn)間播放的同步性有影響,而且對(duì)視頻點(diǎn)播系統(tǒng)中交互性支持能力也有直接的影響。因此,好的數(shù)據(jù)存儲(chǔ)策略對(duì)整個(gè)系統(tǒng)的性能的提高是至關(guān)重要的。
2.1 數(shù)據(jù)分塊策略
??? 單個(gè)節(jié)點(diǎn)的存儲(chǔ)能力有限,這就要求對(duì)媒體數(shù)據(jù)進(jìn)行分割,將其分散存儲(chǔ)于系統(tǒng)中的多個(gè)節(jié)點(diǎn)中。CoolStreaming首先把整個(gè)媒體文件分成大小相等的若干數(shù)據(jù)塊,以連續(xù)編號(hào)進(jìn)行標(biāo)識(shí),并且將整個(gè)視頻流劃分為一系列的子流,每個(gè)子流中存儲(chǔ)一部分?jǐn)?shù)據(jù)塊。假設(shè)某媒體文件被分成K個(gè)子流,則第K個(gè)子流上存儲(chǔ)的數(shù)據(jù)塊為nK+i,其中,n是非負(fù)整數(shù),i是1~K的正整數(shù)。
  參考文獻(xiàn)[3]指出,從資源調(diào)度和流媒體傳輸實(shí)時(shí)性角度考慮,媒體數(shù)據(jù)被劃分的數(shù)據(jù)塊數(shù)目越多越好,即數(shù)據(jù)塊體積越小越好;而從網(wǎng)絡(luò)開(kāi)銷角度考慮,媒體數(shù)據(jù)被劃分的數(shù)據(jù)塊數(shù)目越少越好,即數(shù)據(jù)塊體積越大越好。因此,如何權(quán)衡這兩方面的關(guān)系是一個(gè)很有價(jià)值的研究課題。
2.2 數(shù)據(jù)緩存及更新策略
??? 緩存是指用戶觀看視頻時(shí)把當(dāng)前媒體數(shù)據(jù)暫時(shí)保存在系統(tǒng)內(nèi)存或者外存中,它是一種被動(dòng)的存儲(chǔ)方式,存儲(chǔ)內(nèi)容由當(dāng)前觀看的視頻內(nèi)容決定。在P2P直播系統(tǒng)中,用戶的觀看過(guò)程基本同步,上游節(jié)點(diǎn)中的緩存內(nèi)容可以很好地滿足下游節(jié)點(diǎn)的要求。但在點(diǎn)播系統(tǒng)中,用戶請(qǐng)求數(shù)據(jù)具有異步性,如何對(duì)分布于多個(gè)節(jié)點(diǎn)的媒體數(shù)據(jù)進(jìn)行緩存和更新則需要更加復(fù)雜的策略。
  通常的緩存策略是對(duì)正在下載播放的數(shù)據(jù)按時(shí)間順序進(jìn)行緩存,如果緩存空間已滿,則采用LRU(Least Recently Used Algorithms)或其他簡(jiǎn)單的緩存替換算法進(jìn)行替換。該方法沒(méi)有考慮緩存內(nèi)容的流行度及其他節(jié)點(diǎn)的緩存情況,這樣容易造成節(jié)點(diǎn)保存了較多流行度不高且在系統(tǒng)中已有足夠副本的數(shù)據(jù),而替換出了流行度高且緩存的副本數(shù)量不足的媒體數(shù)據(jù)。
  參考文獻(xiàn)[7]指出,一個(gè)緩存替換算法既要考慮到媒體數(shù)據(jù)的流行程度,也應(yīng)關(guān)注到該流媒體塊在其他節(jié)點(diǎn)中的緩存情況,其定義了流媒體塊的使用價(jià)值R=流媒體數(shù)據(jù)塊的流行度(F)/系統(tǒng)已緩存該流媒體塊的副本數(shù)量(CN),并提出了相應(yīng)的緩存替換算法。該替換算法的本質(zhì)是替換出使用價(jià)值最小者,緩存使用價(jià)值最大者。 2.3 支持交互式的存儲(chǔ)方法
  為了支持視頻點(diǎn)播系統(tǒng)中的VCR(Video Cassette Recorder)操作,應(yīng)采取相應(yīng)的存儲(chǔ)機(jī)制。數(shù)據(jù)預(yù)取機(jī)制可以為VCR操作備好所需內(nèi)容,從而更加充分地利用節(jié)點(diǎn)的上行帶寬,有效地減少交互操作時(shí)延。
  在VMesh中,媒體數(shù)據(jù)被分成數(shù)塊并以分布式的方式保存在多個(gè)節(jié)點(diǎn)中,這些節(jié)點(diǎn)通過(guò)結(jié)構(gòu)化覆蓋網(wǎng)絡(luò)方式組織起來(lái)以支持VCR操作。該方法的性能取決于事先存儲(chǔ)數(shù)據(jù)的受歡迎程度,因此VMesh是采用基于流行度的段存儲(chǔ)方案。VMesh假設(shè)數(shù)據(jù)塊的流行度符合Zipf分布,把視頻文件劃分為N個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的播放

3 資源定位機(jī)制
  資源定位的結(jié)果是得到一個(gè)資源擁有者的列表,然后請(qǐng)求節(jié)點(diǎn)從該列表中選出期望能夠提供良好服務(wù)的節(jié)點(diǎn)并與之直接連接。在P2P直播系統(tǒng)中,由于各節(jié)點(diǎn)的播放時(shí)間基本同步,節(jié)點(diǎn)間的數(shù)據(jù)傳輸關(guān)系相對(duì)穩(wěn)定,因此,伙伴節(jié)點(diǎn)選擇比較容易,通常采用基于Gossip協(xié)議的方式進(jìn)行?;贕ossip協(xié)議的內(nèi)容發(fā)現(xiàn)與定位方法不需要維護(hù)節(jié)點(diǎn)間的邏輯拓?fù)洌?dāng)節(jié)點(diǎn)內(nèi)容更新較快時(shí),通告消息發(fā)送頻率低將導(dǎo)致內(nèi)容定位準(zhǔn)確性下降;而通告消息發(fā)送頻率高時(shí)可能產(chǎn)生較大的控制流量。因此,找到一種較好的資源定位方案是重要的研究?jī)?nèi)容。類似地,結(jié)構(gòu)化覆蓋網(wǎng)絡(luò)方法,如DHT(Distributed Hash Table)機(jī)制,可以實(shí)現(xiàn)內(nèi)容的快速查找,但系統(tǒng)動(dòng)態(tài)性較強(qiáng)時(shí)結(jié)構(gòu)難以維護(hù)。因此,盡管GridMedia系統(tǒng)[8]采用了無(wú)結(jié)構(gòu)化網(wǎng)絡(luò)結(jié)構(gòu),但并沒(méi)有采用基于Gossip協(xié)議的節(jié)點(diǎn)發(fā)現(xiàn)策略,而是引入了1個(gè)集中點(diǎn)服務(wù)器RP(Rendezvous Point)來(lái)維護(hù)覆蓋網(wǎng)中所有節(jié)點(diǎn)的信息,它把合適的候選伙伴節(jié)點(diǎn)集合返回給需要資源定位的節(jié)點(diǎn)。
  混合式P2P系統(tǒng)結(jié)構(gòu)指的是在系統(tǒng)選擇一些節(jié)點(diǎn)充當(dāng)系統(tǒng)局部的中心,中心節(jié)點(diǎn)的鄰居節(jié)點(diǎn)需要向中心節(jié)點(diǎn)報(bào)告其數(shù)據(jù)存儲(chǔ)狀態(tài)。中心節(jié)點(diǎn)相對(duì)穩(wěn)定但并非一直不變,中心節(jié)點(diǎn)之間也需要進(jìn)行一定的數(shù)據(jù)交換,從而使每個(gè)中心節(jié)點(diǎn)都可以獲得全局的數(shù)據(jù)狀態(tài),盡管這個(gè)狀態(tài)可能不完全準(zhǔn)確。混合式系統(tǒng)結(jié)構(gòu)在完全分布式的系統(tǒng)中引入了一定的結(jié)構(gòu)化,有利于媒體內(nèi)容的快速檢索,同時(shí)又避免了維護(hù)固定網(wǎng)絡(luò)拓?fù)涞倪^(guò)重負(fù)擔(dān)?,F(xiàn)有的很多系統(tǒng)為了滿足不同的信息檢索需要采用混合式內(nèi)容發(fā)現(xiàn)策略,其代表為PPLive系統(tǒng)[3]。
4 內(nèi)容分發(fā)
  P2P網(wǎng)絡(luò)中的絕大多數(shù)節(jié)點(diǎn)都是對(duì)等的,在某些網(wǎng)絡(luò)中會(huì)設(shè)置少量超級(jí)節(jié)點(diǎn)負(fù)責(zé)管理局部網(wǎng)絡(luò)的事務(wù)。每個(gè)節(jié)點(diǎn)都可能對(duì)網(wǎng)絡(luò)中的某些內(nèi)容有興趣,或者其所擁有的內(nèi)容是其他節(jié)點(diǎn)感興趣的。內(nèi)容分發(fā)算法的目標(biāo)是建立起從源到目標(biāo)接收點(diǎn)滿足播放質(zhì)量的分發(fā)路徑,下面分別從數(shù)據(jù)源的數(shù)量和數(shù)據(jù)交換技術(shù)二方面對(duì)內(nèi)容分發(fā)進(jìn)行介紹。
4.1 單源和多源分發(fā)策略
  由于網(wǎng)絡(luò)中資源的存放方式不同,分發(fā)策略可以分為單源的和多源的策略[9]。它們的數(shù)據(jù)傳輸方式分別如圖3、圖4所示。

  單源分發(fā)策略常采用的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為樹(shù)型結(jié)構(gòu),基于應(yīng)用層組播技術(shù),由1個(gè)發(fā)送者向多個(gè)接收者發(fā)送數(shù)據(jù),接收者有且僅有1個(gè)數(shù)據(jù)源。服務(wù)器和所有客戶節(jié)點(diǎn)組織成組播樹(shù),組播樹(shù)的中間節(jié)點(diǎn)接收來(lái)自父節(jié)點(diǎn)組播的媒體數(shù)據(jù),同時(shí)將數(shù)據(jù)以組播的方式傳送給其子節(jié)點(diǎn)。如圖3,P2、P6、P7、P8、P9、P10、P11請(qǐng)求同一媒體內(nèi)容,服務(wù)器將其組織成1棵組播樹(shù),P2直接從服務(wù)器獲取數(shù)據(jù),同時(shí)又將數(shù)據(jù)傳送給它的2個(gè)子節(jié)點(diǎn)P6和P7。以此類推,P6又把數(shù)據(jù)傳送給自己的子節(jié)點(diǎn)P8和P9,同樣地,P7又把數(shù)據(jù)傳送給自己的子節(jié)點(diǎn)P10和P11。以組播的方式傳輸流媒體,避免了單播C/S服務(wù)模式下為每個(gè)接收者單獨(dú)發(fā)送信息的缺點(diǎn),同時(shí)減輕了服務(wù)器的負(fù)載,節(jié)約了網(wǎng)絡(luò)資源。但其缺點(diǎn)是,實(shí)際部署困難,并且節(jié)點(diǎn)的要求較高,如至少能發(fā)送1個(gè)完整的流媒體流,即上行帶寬要足夠大。此種分發(fā)方式的典型代表系統(tǒng)有Promise、CoopNet、SplitStream等。
  在實(shí)際的網(wǎng)絡(luò)環(huán)境中,各個(gè)節(jié)點(diǎn)之間在提供的帶寬、存儲(chǔ)空間以及CPU能力等方面存在著很大的差異。在當(dāng)前的接入方式中,用戶的上行帶寬通常小于下行帶寬,為了滿足媒體數(shù)據(jù)播放的時(shí)間約束,通常采用如圖2所示的多源發(fā)送的數(shù)據(jù)傳輸方式,以保證提供服務(wù)的所有節(jié)點(diǎn)出口帶寬之和大于媒體流的編碼速率R。但該類型的數(shù)據(jù)傳輸方式所帶來(lái)的問(wèn)題在于怎樣選擇合適的發(fā)送節(jié)點(diǎn)、怎樣協(xié)調(diào)多個(gè)發(fā)送節(jié)點(diǎn)之間的傳輸速率、如何分配各個(gè)發(fā)送節(jié)點(diǎn)的數(shù)據(jù)段等。
4.2 數(shù)據(jù)交換技術(shù)
  根據(jù)媒體流傳輸?shù)尿?qū)動(dòng)端不同,內(nèi)容分發(fā)方式又可以分為:接收端驅(qū)動(dòng),即“拉數(shù)據(jù)”;發(fā)送端驅(qū)動(dòng),即“推數(shù)據(jù)”。所謂“拉數(shù)據(jù)”,就是節(jié)點(diǎn)首先向另一個(gè)節(jié)點(diǎn)發(fā)出請(qǐng)求,另一節(jié)點(diǎn)再根據(jù)請(qǐng)求發(fā)送數(shù)據(jù),這不需要節(jié)點(diǎn)之間任何層次性的關(guān)系,但是節(jié)點(diǎn)需要預(yù)先知道對(duì)方含有的數(shù)據(jù);而所謂“推數(shù)據(jù)”,就是節(jié)點(diǎn)主動(dòng)向另一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),這就需要節(jié)點(diǎn)之間有一種父與子的關(guān)系,父節(jié)點(diǎn)依據(jù)這種關(guān)系主動(dòng)發(fā)送數(shù)據(jù)給子節(jié)點(diǎn)。
  CoolStreaming早期版本中流媒體數(shù)據(jù)的傳輸是基于接收節(jié)點(diǎn)的主動(dòng)請(qǐng)求,即“拉數(shù)據(jù)”流傳輸策略。其缺點(diǎn)是將導(dǎo)致每個(gè)數(shù)據(jù)塊傳輸都有一定的延遲,并且節(jié)點(diǎn)需要周期性地向鄰居節(jié)點(diǎn)發(fā)送BM信息和請(qǐng)求,使得網(wǎng)絡(luò)流量中控制信息的比重較高,系統(tǒng)的控制開(kāi)銷增大。為了解決這些問(wèn)題,Zhang等人設(shè)計(jì)了一個(gè)“推拉結(jié)合”的GridMedia[10]系統(tǒng),將P2P流媒體系統(tǒng)中的數(shù)據(jù)塊分成二類:一類數(shù)據(jù)塊只在被請(qǐng)求獲取時(shí)才傳播,稱為“拉數(shù)據(jù)”;另一類數(shù)據(jù)塊一旦節(jié)點(diǎn)收到就立即傳播給鄰居,稱為“推數(shù)據(jù)”。GridMedia系統(tǒng)主要的設(shè)計(jì)目標(biāo)是減少數(shù)據(jù)傳播時(shí)延,它間接地提高了播放連續(xù)度。但“推數(shù)據(jù)”的方法必然帶來(lái)相當(dāng)大的通信開(kāi)銷,而且也不能從本質(zhì)上保證高播放連續(xù)度。
5 總結(jié)與展望
  流媒體是今后互聯(lián)網(wǎng)上主要應(yīng)用之一,但傳統(tǒng)的C/S服務(wù)模式存在可擴(kuò)展性問(wèn)題,使得流媒體技術(shù)無(wú)法實(shí)現(xiàn)大規(guī)模的應(yīng)用。P2P作為一種新型的網(wǎng)絡(luò)模型,為流媒體的大規(guī)模應(yīng)用提供了新的解決方案,基于P2P的流媒體服務(wù)系統(tǒng)已經(jīng)引起了許多研究機(jī)構(gòu)以及商業(yè)組織的重視。
  本文主要對(duì)P2P流媒體系統(tǒng)中已有的資源存儲(chǔ)、資源發(fā)現(xiàn)、內(nèi)容分發(fā)等關(guān)鍵技術(shù)進(jìn)行了詳細(xì)的分析介紹,針對(duì)上述研究?jī)?nèi)容,目前P2P流媒體技術(shù)需要解決的主要問(wèn)題有:
  (1)如何將整個(gè)的視頻進(jìn)行更加合理地分塊,怎樣根據(jù)用戶的行為特征進(jìn)行數(shù)據(jù)的存儲(chǔ),如何進(jìn)行數(shù)據(jù)的更新以達(dá)到系統(tǒng)的負(fù)載均衡。
  (2)在高度動(dòng)態(tài)的網(wǎng)絡(luò)環(huán)境中,如何設(shè)計(jì)出高效的資源發(fā)現(xiàn)算法對(duì)P2P流媒體系統(tǒng)來(lái)說(shuō)仍是十分重要的內(nèi)容;在VOD系統(tǒng)中,如何設(shè)計(jì)出支持用戶頻繁的VCR操作的資源定位算法,是評(píng)價(jià)系統(tǒng)優(yōu)劣的一個(gè)重要指標(biāo)。
??? (3)隨著無(wú)線網(wǎng)絡(luò)和各種各樣手持設(shè)備的出現(xiàn),無(wú)線流媒體的應(yīng)用也變得越來(lái)越重要,尤其是3G解決了接入網(wǎng)的傳輸瓶頸。因此,在無(wú)線網(wǎng)絡(luò)環(huán)境下進(jìn)行P2P流媒體的研究是一個(gè)重要的研究方向。
  (4)僅僅依靠上述研究?jī)?nèi)容還不足以在現(xiàn)實(shí)的網(wǎng)絡(luò)環(huán)境中提供大規(guī)模的流媒體服務(wù),還需要對(duì)目前的QoS保證機(jī)制、激勵(lì)機(jī)制、容錯(cuò)機(jī)制、可靠性傳輸、安全機(jī)制和版權(quán)問(wèn)題等作進(jìn)一步深入研究。
參考文獻(xiàn)
[1] BHARAMBE A R, HERLEY C, PADMANABHAN V N. Analyzing and improving a bitTorrent network’s performance mMechanisms[C]. In: Proc. of? IEEE INFOCOM’06, 2006.
[2] XIE Su Su, LI Bo, KEUNG G Y, et al. Coolstreaming: design, theory, and practice[C]. In: Proc. of IEEE Transactions on Multimedia, 2007(9):1661-1671.
[3] HUANG Yan, FU T Z J, CHIU D M, et al. Challenges, design and analysis of a large-scale P2P-VOD system[C]. In: Proc. of SIGCOMM’08, August, 2008.
[4] PPStream(PPS網(wǎng)絡(luò)電視).http://www.ppstream.com, 2008-06.
[5] TRAN D A, HUA K A, Do T T. A peer-to-peer architecture for media streaming[J]. IEEE Journal on Selected Areas in Communications, 2004,22:1-14.
[6] ZHANG Xin Yan, LIU Jiang Chuan, LI Bo, et al. Coolstreaming/DONet: a data-driven overlay network for peer-to-peer live media streaming[C]. In: Proc. of IEEE Infocom,April, 2005.
[7] 楊傳棟,余鎮(zhèn)危,王行剛.混合P2P流媒體的緩存替換算法研究[J].計(jì)算機(jī)應(yīng)用研究,2006(11):71-73.
[8] LI Zhao, LUO Jian Guang, ZHANG Meng, et al. Gridmedia: a practical peer-to-peer based live video streaming system[C]. In: Proc. of IEEE 7th Workshop on Multimedia Signal Processing, 2005:287-290.
[9] 鄭常熠,王新,趙進(jìn),等.P2P視頻點(diǎn)播內(nèi)容分發(fā)策略[J]. 軟件學(xué)報(bào),2007,18(11):2942-2954.
[10] 羅建光,張萌,趙黎,等.基于P2P網(wǎng)絡(luò)的大規(guī)模視頻直播系統(tǒng)[J].軟件學(xué)報(bào),2007,18(2):391-399.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。