基于P2P技術(shù)的流媒體直播系統(tǒng)的研究_第1頁(yè)
基于P2P技術(shù)的流媒體直播系統(tǒng)的研究_第2頁(yè)
基于P2P技術(shù)的流媒體直播系統(tǒng)的研究_第3頁(yè)
基于P2P技術(shù)的流媒體直播系統(tǒng)的研究_第4頁(yè)
基于P2P技術(shù)的流媒體直播系統(tǒng)的研究_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于p2p技術(shù)的流媒體直播系統(tǒng)的研究背景介紹:流媒體技術(shù)是一種新興的網(wǎng)絡(luò)傳輸技術(shù),它是在internet /intranet上使用流式傳輸技術(shù)的多媒體,流媒體在播放前不需要下載整個(gè)文件,可以邊下載邊觀看。其原理是把向用戶傳輸?shù)亩嗝襟w文件按照播出時(shí)間順序分為不同的片斷,然后依次把這些片斷發(fā)給用戶,連續(xù)播放這些片斷就形成了連續(xù)的聲音和圖像。隨著1994年progressive networks美國(guó)公司成立,流媒體開(kāi)始正式在互聯(lián)網(wǎng)上應(yīng)用。該公司一年后推出的基于c/s架構(gòu)的音頻接收系統(tǒng)real audio在隨后的幾年內(nèi)引領(lǐng)了網(wǎng)絡(luò)流媒體技術(shù)的洶涌潮流。1997年9月,該公司更名為real network

2、s,并相繼發(fā)布了多款應(yīng)用非常廣泛的流媒體播放器,即realplayer系列,該系列一度占據(jù)該領(lǐng)域超過(guò)85的市場(chǎng)份額,real networks公司可以稱得上是流媒體真正意義上的鼻祖。從此以后,流媒體技術(shù)進(jìn)入了蓬勃發(fā)展的階段。傳統(tǒng)的網(wǎng)絡(luò)流媒體播放系統(tǒng)一般基于用戶/服務(wù)器(client/server,c/s)的模式。但是,由于流媒體播放需要消耗大量的網(wǎng)絡(luò)帶寬和服務(wù)器資源,因此這種模式嚴(yán)重限制了網(wǎng)絡(luò)流媒體業(yè)務(wù)的發(fā)展。以一個(gè)占用帶寬為300kbps 的網(wǎng)絡(luò)視頻流為例,當(dāng)有1000個(gè)用戶同時(shí)觀看時(shí),需要的帶寬是300mbps,這樣的性能要求對(duì)于大多數(shù)服務(wù)器來(lái)說(shuō)是滿足不了的。如果要支持幾萬(wàn)甚至幾十萬(wàn)的用戶

3、,采用這種c/s模式幾乎是不可能的。當(dāng)然增加服務(wù)器數(shù)量和提高帶寬是一個(gè)解決方式,但是這種方式需要巨大的成本開(kāi)支,所以我們需要通過(guò)新的技術(shù)手段解決這個(gè)問(wèn)題。最近幾年,對(duì)等網(wǎng)絡(luò)技術(shù)(peer-to-peer,p2p),引起了包括普通網(wǎng)絡(luò)用戶和科研領(lǐng)域人員在內(nèi)的越來(lái)越多人的關(guān)注。p2p是分布式系統(tǒng)的一個(gè)子集,目前在分布式計(jì)算和文件共享領(lǐng)域得到廣泛的應(yīng)用。相對(duì)于傳統(tǒng)的c/s模式,p2p模式一個(gè)非常顯著的特點(diǎn)就是節(jié)點(diǎn)無(wú)需依賴集中式服務(wù)器資源,各個(gè)節(jié)點(diǎn)之間可以直接進(jìn)行通信。每個(gè)節(jié)點(diǎn)具有相同的地位,既可以請(qǐng)求服務(wù),也可以提供服務(wù),同時(shí)扮演著c/s模式中客戶機(jī)和服務(wù)器的雙重角色,甚至還可以具有路由器和高速緩存

4、的功能,這樣,每個(gè)節(jié)點(diǎn)在從別的節(jié)點(diǎn)接收數(shù)據(jù)流的同時(shí)還向其它節(jié)點(diǎn)發(fā)送數(shù)據(jù)流。p2p技術(shù)有兩方面的優(yōu)點(diǎn):一方面,p2p技術(shù)突破了傳統(tǒng)的c/s模式限制,強(qiáng)調(diào)節(jié)點(diǎn)之間的對(duì)等性,即p2p系統(tǒng)中每一參與節(jié)點(diǎn)兼有服務(wù)器和客戶端兩種身份,在利用其它節(jié)點(diǎn)上資源的同時(shí)也為其它節(jié)點(diǎn)提供服務(wù)。這使得p2p系統(tǒng)的服務(wù)能力隨著用戶數(shù)的增加而自然增長(zhǎng),具有很強(qiáng)的可擴(kuò)展性,能夠解決傳統(tǒng)c/s結(jié)構(gòu)中服務(wù)器過(guò)載和資源瓶頸等問(wèn)題。另一方面,p2p系統(tǒng)采用節(jié)點(diǎn)自組織的方式工作,強(qiáng)調(diào)無(wú)中心的結(jié)構(gòu),并且很好地適應(yīng)了節(jié)點(diǎn)隨機(jī)加入和退出的動(dòng)態(tài)性,因而在魯棒性、數(shù)據(jù)高可用性和抵抗攻擊方面具有不可替代的優(yōu)勢(shì)。目前,p2p技術(shù)在文件共享等一些應(yīng)用

5、領(lǐng)域中己經(jīng)取得了很大的成效,把p2p技術(shù)應(yīng)用到流媒體領(lǐng)域同樣能帶來(lái)革命性的突破。因此,p2pstreaming技術(shù)被提了出來(lái),即把p2p技術(shù)思想應(yīng)用到流媒體的傳輸?;趐2p技術(shù)構(gòu)建流媒體系統(tǒng),能夠從根本上解決基于c/s模型的系統(tǒng)的不可擴(kuò)展性、低容錯(cuò)性和低魯棒性。此外,p2p網(wǎng)絡(luò)中用戶分布廣泛,資源更加充足,更能滿足用戶對(duì)資源的需求,從而保證服務(wù)的質(zhì)量,為構(gòu)建大規(guī)模流媒體傳輸系統(tǒng)提供了一種低成本的解決方案。流媒體與p2p技術(shù)理論基礎(chǔ): 流媒體技術(shù)理論基礎(chǔ):流媒體(streaming-media)指在internet/intranet中使用流式傳輸技術(shù)時(shí)的連續(xù)時(shí)基媒體,如音頻、視頻等多媒體文件。

6、流媒體的主要特點(diǎn)有:?jiǎn)?dòng)時(shí)延大幅度縮短、對(duì)系統(tǒng)緩存容量的需求大大降低、采用特定的實(shí)時(shí)傳輸協(xié)議以及對(duì)時(shí)間的敏感性。流式傳輸技術(shù)是指將音頻、視頻等多媒體文件經(jīng)過(guò)特殊的壓縮方式分解成一個(gè)個(gè)壓縮包,再由音頻、視頻服務(wù)器向用戶計(jì)算機(jī)連續(xù)地、實(shí)時(shí)地傳送信息的一種傳輸技術(shù)。其傳輸原理如下圖所示:figure 1流式傳輸原理圖 流式傳輸又可分為順序流式傳輸(progressive streaming)和實(shí)時(shí)流式傳輸(realtimestreaming)兩種方式:順序流式傳輸就是媒體數(shù)據(jù)的順序下載。在下載的同時(shí)用戶可以觀看在線媒體,但是在給定時(shí)刻用戶只能觀看已下載的那部分媒體數(shù)據(jù),不能跳轉(zhuǎn)到未下載的部分。而且順

7、序流式傳輸不能根據(jù)用戶網(wǎng)絡(luò)帶寬的變化對(duì)連接速度做相應(yīng)的調(diào)整。由于順序流式傳輸?shù)拿襟w數(shù)據(jù)使用標(biāo)準(zhǔn)的http服務(wù)器就可以發(fā)送,而不需要其它的特殊的協(xié)議,所以順序流式傳輸也被稱作http流式傳輸。用戶在播放前觀看的媒體數(shù)據(jù)是無(wú)損傳輸?shù)模皂樞蛄魇絺鬏敱容^適合高質(zhì)量的短片,如片頭,片尾和廣告。但是這也意味著用戶在觀看前必須等待較長(zhǎng)的時(shí)延,對(duì)網(wǎng)絡(luò)傳輸速度較慢的連接時(shí)延更加明顯。因此,順序流式傳輸并不適合長(zhǎng)片段的和有隨機(jī)訪問(wèn)要求的媒體數(shù)據(jù)。與http流式傳輸不同,實(shí)時(shí)流式傳輸保證媒體數(shù)據(jù)帶寬和網(wǎng)絡(luò)連接速度相匹配,這減少了用戶觀看前的時(shí)延。但是,實(shí)時(shí)流式傳輸需要專門(mén)的流媒體服務(wù)器和流媒體傳輸協(xié)議。實(shí)時(shí)流式

8、傳輸實(shí)時(shí)傳輸媒體數(shù)據(jù),特別適合現(xiàn)場(chǎng)事件;同時(shí)也支持隨機(jī)訪問(wèn),用戶可快進(jìn)或倒退觀看前面或后面的內(nèi)容。此外,為了在ip網(wǎng)上傳輸流媒體數(shù)據(jù),根據(jù)各自的功能可把用到的流式傳輸協(xié)議分為三類:網(wǎng)絡(luò)層協(xié)議(即ip協(xié)議),此類協(xié)議提供最基本的網(wǎng)絡(luò)服務(wù);傳輸層協(xié)議,此類協(xié)議提供端到端的傳輸服務(wù),包括tcp(transmission control protocol),udp(user datagram protocol),rtp/rtcp (real-time transport protocol/real-time transport control protocol),其中tcp與udp更加底層一些,rtp

9、/rtcp實(shí)現(xiàn)在tcp或udp之上,有時(shí)候也被劃為應(yīng)用層協(xié)議;應(yīng)用層協(xié)議,此類協(xié)議定義多媒體會(huì)話過(guò)程中的消息控制及處理,包括rtsp (real-time streaming protocol)等。由于流媒體采用了流式傳輸技術(shù),因此所傳輸?shù)奈募?huì)像水一樣不斷流動(dòng)。這樣,文件不是一次讀取發(fā)送所有的數(shù)據(jù),而是首先發(fā)送音頻、視頻的一部分:在這一部分播放的同時(shí),數(shù)據(jù)的其余部分就會(huì)源源不斷地流出,及時(shí)的到達(dá)目的地供播放使用。為保證在網(wǎng)絡(luò)阻塞造成網(wǎng)絡(luò)速度下降的情況下播放不會(huì)中斷,播放器會(huì)在開(kāi)始播放前先緩存一部分?jǐn)?shù)據(jù),這樣就能實(shí)現(xiàn)流媒體數(shù)據(jù)流的連續(xù)傳送和連續(xù)播放。p2p技術(shù)理論基礎(chǔ):目前對(duì)p2p的定義還沒(méi)有

10、一個(gè)標(biāo)準(zhǔn)的說(shuō)法,intel將p2p技術(shù)定義為“通過(guò)系統(tǒng)間的直接交換達(dá)成計(jì)算機(jī)資源與信息的共享”,這些資源與服務(wù)包括信息交換、處理器時(shí)鐘、緩存和磁盤(pán)空間等。ibm則對(duì)p2p賦予了更廣闊的定義,把它看成是由若干互聯(lián)協(xié)作的計(jì)算機(jī)構(gòu)成的系統(tǒng)并具備如下若干特性之一:系統(tǒng)依存于邊緣化(非中央式服務(wù)器)設(shè)備的主動(dòng)協(xié)作,每個(gè)成員直接從其它成員而不是從服務(wù)器的參與中受益;系統(tǒng)中成員同時(shí)扮演服務(wù)器與客戶端的角色;系統(tǒng)應(yīng)用的用戶能夠意識(shí)到彼此的存在而構(gòu)成一個(gè)虛擬或?qū)嶋H的群體。p2p技術(shù)應(yīng)用的宗旨就是希望通過(guò)節(jié)點(diǎn)間不經(jīng)過(guò)服務(wù)器中轉(zhuǎn)的直接通信,盡可能地充分利用系統(tǒng)中各節(jié)點(diǎn)所能提供的閑置資源,包括網(wǎng)絡(luò)帶寬,存儲(chǔ)空間,cp

11、u的處理時(shí)間等等。討論p2p系統(tǒng),就不得不提到其拓?fù)浣Y(jié)構(gòu)。拓?fù)浣Y(jié)構(gòu)是指分布式系統(tǒng)中各個(gè)計(jì)算單元之間的物理或邏輯的互聯(lián)關(guān)系,節(jié)點(diǎn)之間的拓?fù)浣Y(jié)構(gòu)一直是確定系統(tǒng)類型的重要依據(jù)。p2p系統(tǒng)一般要構(gòu)造一個(gè)非集中式的拓?fù)浣Y(jié)構(gòu),在構(gòu)造過(guò)程中需要解決系統(tǒng)中所包含的大量節(jié)點(diǎn)如何命名、組織以及確定節(jié)點(diǎn)的加入退出方式、出錯(cuò)恢復(fù)等問(wèn)題。根據(jù)拓?fù)浣Y(jié)構(gòu)的定義可以將p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)分為4種形式:中心化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、非結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和混合式p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。中心化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)最大的優(yōu)點(diǎn)是維護(hù)簡(jiǎn)單,發(fā)現(xiàn)效率高。由于資源的發(fā)現(xiàn)依賴中心化的目錄系統(tǒng),發(fā)現(xiàn)算法靈活高效并能夠?qū)崿F(xiàn)復(fù)雜

12、查詢。但是與傳統(tǒng)c/s結(jié)構(gòu)類似,容易造成單點(diǎn)故障、訪問(wèn)的“熱點(diǎn)”現(xiàn)象和法律等相關(guān)問(wèn)題,這是第一代p2p網(wǎng)絡(luò)采用的結(jié)構(gòu)模式,典型的例子就是著名的共享軟件napster (如下圖所示),napster是包含有中心索引服務(wù)器的最早的文件共享系統(tǒng),但是存在擴(kuò)展性和單點(diǎn)故障問(wèn)題。在napster系統(tǒng)中,每個(gè)節(jié)點(diǎn)向中心索引服務(wù)器提交本地存儲(chǔ)的資源目錄,中心索引服務(wù)器負(fù)責(zé)編制資源的索引。資源搜索是通過(guò)中心索引服務(wù)器完成的,節(jié)點(diǎn)向中心索引服務(wù)器提出搜索請(qǐng)求,服務(wù)器返回?fù)碛性撡Y源的節(jié)點(diǎn)列表,請(qǐng)求節(jié)點(diǎn)則根據(jù)時(shí)延、帶寬等條件選擇合適的資源節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)傳輸無(wú)需中心索引服務(wù)器的參與。figure 2 中心化p

13、2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖非結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)又被稱作是純p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),這種拓?fù)浣Y(jié)構(gòu)的特點(diǎn)是所有的節(jié)點(diǎn)都是一個(gè)peer,沒(méi)有服務(wù)器的概念。在非結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,每個(gè)節(jié)點(diǎn)只存儲(chǔ)自身的信息或信息的索引如指針和地址。當(dāng)用戶需要向系統(tǒng)獲取信息時(shí),他們預(yù)先并不知道這些信息會(huì)存儲(chǔ)在哪個(gè)節(jié)點(diǎn)上。因此,非結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的信息搜索算法具有一定的盲目性,類似最簡(jiǎn)單的泛洪式查找和擴(kuò)展環(huán)查找(從最近的一個(gè)節(jié)點(diǎn)開(kāi)始,層層轉(zhuǎn)發(fā)直到找到目標(biāo)或超出跳數(shù)的上限為止),典型的例子如gnutella。由于gnutella采用了非中心化的方法來(lái)查找文件資源,因而不存在中心化p2p網(wǎng)絡(luò)結(jié)構(gòu)中的中心服務(wù)器那樣的

14、系統(tǒng)瓶頸,整個(gè)系統(tǒng)的可擴(kuò)展性得到了增強(qiáng)。figure 3非結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖 結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是一種采用純分布式消息傳遞機(jī)制以及根據(jù)關(guān)鍵字準(zhǔn)確定位資源的p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),它與非結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的根本區(qū)別在于節(jié)點(diǎn)是否能夠按照全局方式組織起來(lái)。這種網(wǎng)絡(luò)同樣沒(méi)有中心服務(wù)器,目前主流的方法是采用dht(distributed hash table,分布式哈希表)技術(shù)實(shí)現(xiàn)節(jié)點(diǎn)和資源的全局化組織。結(jié)構(gòu)化p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的優(yōu)點(diǎn)在于可在跳數(shù)o(log(n) ) (n表示系統(tǒng)中的節(jié)點(diǎn)數(shù))內(nèi)完成資源的路由和定位。其主要問(wèn)題是結(jié)構(gòu)的維護(hù)機(jī)制較為復(fù)雜,尤其是當(dāng)網(wǎng)絡(luò)波動(dòng)較大時(shí),維護(hù)的代價(jià)顯著

15、提高。比起前兩者,混合結(jié)構(gòu)汲取了中心化結(jié)構(gòu)和非結(jié)構(gòu)化拓?fù)涞膬?yōu)點(diǎn),選擇性能較高(處理速度、存儲(chǔ)、帶寬等方面性能)的節(jié)點(diǎn)作為超級(jí)節(jié)點(diǎn),在各個(gè)超級(jí)節(jié)點(diǎn)上存儲(chǔ)了系統(tǒng)中其它部分節(jié)點(diǎn)的信息。發(fā)現(xiàn)算法僅在超級(jí)節(jié)點(diǎn)之間轉(zhuǎn)發(fā),超級(jí)節(jié)點(diǎn)再將查詢請(qǐng)求轉(zhuǎn)發(fā)給適當(dāng)?shù)娜~子節(jié)點(diǎn)?;旌鲜浇Y(jié)構(gòu)也是一個(gè)層次式結(jié)構(gòu),超級(jí)節(jié)點(diǎn)之間構(gòu)成一個(gè)高速轉(zhuǎn)發(fā)層,超級(jí)節(jié)點(diǎn)和所負(fù)責(zé)的普通節(jié)點(diǎn)構(gòu)成若干層次。kazaa是采用混合式p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的典型代表,在下圖中,節(jié)點(diǎn)被分為普通節(jié)點(diǎn)(peer)和超級(jí)節(jié)點(diǎn)(super peer)兩類。其中,超級(jí)節(jié)點(diǎn)與位于其附近區(qū)域的普通節(jié)點(diǎn)構(gòu)成自治簇,簇內(nèi)采用基于集中目錄式的p2p模式,而簇間則采用分布式p2p的相

16、關(guān)技術(shù)將超級(jí)節(jié)點(diǎn)連接起來(lái)。普通節(jié)點(diǎn)搜索資源時(shí)首先在本地簇內(nèi)進(jìn)行,當(dāng)搜索無(wú)結(jié)果時(shí)再通過(guò)超級(jí)節(jié)點(diǎn)間進(jìn)行有限洪泛搜索,這種方式可有效降低網(wǎng)絡(luò)流量、提高搜索效率并在一定程度上提高網(wǎng)絡(luò)的負(fù)載均衡。另一方面,由于在簇內(nèi)超級(jí)節(jié)點(diǎn)承擔(dān)了類似于集中式目錄服務(wù)器的任務(wù),因此超級(jí)節(jié)點(diǎn)容易成為局部瓶頸。figure 4混合式p2p網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖流媒體直播原理:流媒體直播類似于電視直播,使用音頻、視頻編碼設(shè)備現(xiàn)場(chǎng)將實(shí)時(shí)音頻、視頻信號(hào)編碼壓縮成相應(yīng)的數(shù)據(jù)格式,經(jīng)由流媒體服務(wù)器和傳輸網(wǎng)絡(luò)實(shí)時(shí)地分發(fā)到各客戶端,具有較強(qiáng)的時(shí)效性。流媒體直播系統(tǒng)主要包括系統(tǒng)前端,網(wǎng)絡(luò)傳輸和客戶端三個(gè)部分。系統(tǒng)前端部分主要負(fù)責(zé)在流媒體數(shù)據(jù)傳輸前對(duì)

17、原始音頻、視頻數(shù)據(jù)進(jìn)行采集,并對(duì)原始的音頻、視頻數(shù)據(jù)進(jìn)行壓縮編碼將其轉(zhuǎn)化成適合網(wǎng)絡(luò)傳輸?shù)囊纛l、視頻流;網(wǎng)絡(luò)傳輸部分主要負(fù)責(zé)實(shí)時(shí)流媒體數(shù)據(jù)的分發(fā),經(jīng)互聯(lián)網(wǎng)傳送到客戶端;客戶端部分主要負(fù)責(zé)在接收到壓縮的流媒體數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行解碼回放。其中,網(wǎng)絡(luò)傳輸部分是整個(gè)流媒體直播系統(tǒng)的關(guān)鍵,直接關(guān)系到了整個(gè)直播系統(tǒng)可以達(dá)到的用戶規(guī)模和服務(wù)質(zhì)量。figure 5流媒體直播系統(tǒng)框架圖根據(jù)其原理,要提高流媒體直播的質(zhì)量有兩種方法:一是流媒體的編/解碼技術(shù),即發(fā)展更具靈活性的音頻、視頻編碼方案,進(jìn)一步提高音頻、視頻數(shù)據(jù)的壓縮效率,發(fā)展合適的錯(cuò)誤控制技術(shù)來(lái)保證在用戶端得到的音頻、視頻失真最??;二是網(wǎng)絡(luò)傳輸技術(shù),即發(fā)展

18、網(wǎng)絡(luò)傳輸控制技術(shù),提高傳輸網(wǎng)絡(luò)性能和數(shù)據(jù)傳輸效率。由于音頻、視頻媒體經(jīng)數(shù)據(jù)化后形成的媒體文件占用很大的存儲(chǔ)空間,不適合流媒體數(shù)據(jù)的傳輸。因此在傳輸前需要對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理:首先需要進(jìn)行壓縮編碼,使數(shù)據(jù)量特別大的音頻、視頻等文件容量顯著減小。壓縮媒體文件所采用的格式稱為壓縮媒體文件格式。壓縮媒體文件格式通過(guò)改變數(shù)據(jù)位的編排而去掉大量的冗余信息,使其比原始文件更小,同時(shí)也盡量保留了或全部保留了原始媒體的信息;其次,為了使其更加適合流式傳輸,需要將壓縮媒體文件編碼成流式文件。流式文件是以流式文件格式的形式存在的,常見(jiàn)的流式文件格式有四種,分別是:real media的rm格式、windows me

19、dia的asf(advanced streaming format)格式、quicktime的mov(movie digital video)格式以及flash的swf(shock wave flash)格式。目前在流媒體直播系統(tǒng)中,流媒體的壓縮以及編/解碼技術(shù)日趨成熟,已經(jīng)很難有很多改進(jìn),因此另一項(xiàng)關(guān)系流媒體直播系統(tǒng)服務(wù)質(zhì)量?jī)?yōu)劣的技術(shù),即網(wǎng)絡(luò)傳輸技術(shù)成為當(dāng)前研究的重點(diǎn)方向。傳統(tǒng)的流媒體直播系統(tǒng)主要采用基于單機(jī)或集群的c/s的架構(gòu)。在c/s架構(gòu)中,服務(wù)器通過(guò)網(wǎng)絡(luò)給每個(gè)客戶端發(fā)送多個(gè)相同的數(shù)據(jù),因?yàn)榱髅襟w數(shù)據(jù)量大,隨著客戶端數(shù)目的增加,很容易造成服務(wù)器端的帶寬瓶頸,限制了其系統(tǒng)的擴(kuò)展性。所以,c

20、/s架構(gòu)不適合提供大規(guī)模的流媒體服務(wù)。由于用戶規(guī)模的增長(zhǎng),如何構(gòu)建具有可擴(kuò)展服務(wù)能力的網(wǎng)絡(luò)傳輸架構(gòu)成為急需解決的問(wèn)題。根據(jù)以前的研究,可以把對(duì)網(wǎng)絡(luò)傳輸架構(gòu)的改進(jìn)分為兩類:基于基礎(chǔ)設(shè)施的方案和基于p2p思想的方案?;诨A(chǔ)設(shè)施的方案指通過(guò)增加額外的設(shè)備來(lái)實(shí)現(xiàn)流媒體直播系統(tǒng)可擴(kuò)展性、魯棒性和質(zhì)量保證性的提高,包括ip組播、流媒體直播代理、內(nèi)容分發(fā)網(wǎng)絡(luò)(content delivery network,cdn)三種技術(shù)。這三種方法在一定程度上提高的流媒體直播系統(tǒng)的性能,但是都有其局限和缺點(diǎn)?;趇p組播的方案只適合用戶相對(duì)集中并且網(wǎng)絡(luò)規(guī)模較小的環(huán)境,而且要求網(wǎng)絡(luò)中所有的網(wǎng)絡(luò)設(shè)備包括交換機(jī)、路由器等都

21、必須支持組播;基于流媒體直播代理的方案只適合用戶群固定和集中分布的情況,不適合用戶群分散或者變動(dòng)頻繁的網(wǎng)絡(luò)環(huán)境;基于cdn的方案,用戶規(guī)模和用戶群分布比較自由,但是部署成本太高不適合大規(guī)模應(yīng)用。而且上述三種方案都是基于基礎(chǔ)設(shè)施的,隨著系統(tǒng)支持的用戶數(shù)更多、分布范圍更廣需要的交換機(jī)、路由器、服務(wù)器等設(shè)備就會(huì)更多,整個(gè)系統(tǒng)的成本也就更高?;谶@些因素的影響,我們將主要目光放在基于p2p思想的方案上?;趐2p思想的方案是利用系統(tǒng)中節(jié)點(diǎn)的能力,在節(jié)點(diǎn)享受服務(wù)的同時(shí),也為其它節(jié)點(diǎn)提供服務(wù),即節(jié)點(diǎn)在下載流媒體數(shù)據(jù)的同時(shí)也上傳流媒體數(shù)據(jù)。在流媒體直播系統(tǒng)中使用該思想的技術(shù)有純p2p技術(shù)、混合p2p技術(shù)和應(yīng)

22、用層組播技術(shù)三類。流媒體直播系統(tǒng)中觀看同一頻道的節(jié)點(diǎn)都共享相同的數(shù)據(jù),而純p2p技術(shù)、混合p2p技術(shù)和應(yīng)用層組播技術(shù)就是利用節(jié)點(diǎn)相互交換數(shù)據(jù)來(lái)達(dá)到數(shù)據(jù)分發(fā)的目的。p2p流媒體技術(shù)的研究與分析:構(gòu)建一個(gè)流媒體系統(tǒng)主要包括兩個(gè)過(guò)程:一是構(gòu)建覆蓋網(wǎng)絡(luò);二是數(shù)據(jù)傳輸調(diào)度。其中構(gòu)建覆蓋網(wǎng)絡(luò)決定了節(jié)點(diǎn)如何選擇它的服務(wù)提供節(jié)點(diǎn)集,即如何將在線節(jié)點(diǎn)組織在具有一定特征的覆蓋網(wǎng)結(jié)構(gòu)中;數(shù)據(jù)傳輸調(diào)度則決定了如何從所選定的服務(wù)提供節(jié)點(diǎn)集獲取內(nèi)容,即如何在覆蓋網(wǎng)之上進(jìn)行高效的數(shù)據(jù)傳輸調(diào)度。p2p流媒體系統(tǒng)覆蓋網(wǎng)構(gòu)建:節(jié)點(diǎn)的組織方法決定了節(jié)點(diǎn)之間的關(guān)系。覆蓋網(wǎng)絡(luò)的應(yīng)用層組播協(xié)議通常把組內(nèi)成員組織成兩種邏輯拓?fù)洌嚎刂仆負(fù)?

23、control topology)和數(shù)據(jù)傳輸拓?fù)?data delivery topology)。拓?fù)渖系拿織l邊相當(dāng)于一條單播鏈路,控制拓?fù)渲饕脕?lái)在端系統(tǒng)間周期性地交換控制信息來(lái)發(fā)現(xiàn)和修復(fù)由于一些成員的非正常退出而造成的拓?fù)涞钠茐?。而?shù)據(jù)拓?fù)鋭t主要用來(lái)表明數(shù)據(jù)包的傳輸路徑。根據(jù)構(gòu)建控制拓?fù)浜蛿?shù)據(jù)拓?fù)涞捻樞颍梢詫2p流媒體系統(tǒng)覆蓋網(wǎng)模型分為兩類:基于樹(shù)狀拓?fù)鋬?yōu)先(tree-first)的覆蓋網(wǎng)模型和基于網(wǎng)狀拓?fù)鋬?yōu)先(mesh-first)的覆蓋網(wǎng)模型?;跇?shù)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型首先會(huì)創(chuàng)建一個(gè)共享的數(shù)據(jù)傳輸拓?fù)錁?shù),每個(gè)成員的任務(wù)就是找到適合自己的數(shù)據(jù)傳輸樹(shù)。同時(shí),為了使組播樹(shù)達(dá)到最好的性能

24、,模型對(duì)樹(shù)的結(jié)構(gòu)給出了直接限制,如節(jié)點(diǎn)的度(相鄰節(jié)點(diǎn)的個(gè)數(shù)),鄰居節(jié)點(diǎn)的選擇等等。當(dāng)新成員需要加入時(shí),它首先會(huì)查詢集中點(diǎn)(rendezvou point,rp),rp中保存了所有已加入成員信息,然后rp返回已加入成員的信息給新成員,最后新成員根據(jù)這些信息找到合適的父節(jié)點(diǎn)。一個(gè)節(jié)點(diǎn)若要成為這個(gè)新成員的父節(jié)點(diǎn),必須滿足兩個(gè)條件:如果此節(jié)點(diǎn)成為新成員的父節(jié)點(diǎn),數(shù)據(jù)傳輸拓?fù)渖蠈⒉粫?huì)出現(xiàn)回路;當(dāng)新成員加入后成為其子節(jié)點(diǎn)后不會(huì)超過(guò)其度的限制。如果新成員找到了多個(gè)合適的父節(jié)點(diǎn),那么它將根據(jù)具體度量的要求來(lái)找到最合適的一個(gè)節(jié)點(diǎn)作為自己的父節(jié)點(diǎn)。由于每個(gè)成員都會(huì)自己選擇合適的度,則很有可能導(dǎo)致樹(shù)的深度加深,使得

25、數(shù)據(jù)傳輸出現(xiàn)比較長(zhǎng)的傳輸路徑,導(dǎo)致時(shí)延的加大。同時(shí),為了防止由于某個(gè)非葉子節(jié)點(diǎn)的意外斷開(kāi)而使得整個(gè)數(shù)據(jù)傳輸拓?fù)錁?shù)被分割,每個(gè)成員都會(huì)在數(shù)據(jù)傳輸拓?fù)渖想S機(jī)選取一些非父節(jié)點(diǎn)添加到其連接中,這樣便組成了控制拓?fù)洹;跇?shù)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型的優(yōu)點(diǎn)在于實(shí)現(xiàn)簡(jiǎn)單,維護(hù)開(kāi)銷小,擴(kuò)展性也較好,用戶對(duì)樹(shù)有較好的控制能力(可控制節(jié)點(diǎn)最大出度、選擇合適父節(jié)點(diǎn)等以適應(yīng)應(yīng)用的需求),能根據(jù)應(yīng)用特點(diǎn)來(lái)建立相應(yīng)的組播樹(shù),如時(shí)延優(yōu)先或帶寬優(yōu)先。但缺點(diǎn)在于可靠性較差,需要采用避免拓?fù)浞指畹募夹g(shù)來(lái)保證通信的魯棒性,同時(shí)還需要對(duì)組播樹(shù)的回路檢測(cè)和避免進(jìn)行處理。比較典型的基于樹(shù)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型的應(yīng)用層組播協(xié)議有yoid(yo

26、ur own internet distribution)和hmtp(hessian message transport protocol)。在基于網(wǎng)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型中,組的成員首先自己組織成一個(gè)網(wǎng)狀拓?fù)洌刂仆負(fù)洌?,任意兩個(gè)成員之間有多條路徑相連。在這個(gè)網(wǎng)狀拓?fù)渲?,每一個(gè)成員都會(huì)保存這個(gè)組中其它所有成員的狀態(tài)信息,而這個(gè)信息將會(huì)得到周期性的刷新。當(dāng)有新成員加入時(shí),此成員會(huì)從某一個(gè)rp獲得所有已加入的組成員的列表,然后隨機(jī)選擇部分成員作為自己的鄰居節(jié)點(diǎn),當(dāng)至少有一個(gè)成員成為這個(gè)新成員的鄰居節(jié)點(diǎn)時(shí),此新成員就視為成功加入了這個(gè)組播組。成功加入后,此新成員開(kāi)始和它所有的鄰居節(jié)點(diǎn)交換狀態(tài)信息,

27、組中每個(gè)成員也會(huì)周期性的產(chǎn)生一個(gè)狀態(tài)刷新消息來(lái)及時(shí)刷新自己所保留的所有成員狀態(tài)信息。基于網(wǎng)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型的可靠性比較高,但分發(fā)每個(gè)成員狀態(tài)信息給系統(tǒng)內(nèi)其它成員將會(huì)導(dǎo)致整個(gè)系統(tǒng)對(duì)控制信息的維護(hù)開(kāi)銷增大。典型的基于網(wǎng)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型的應(yīng)用層組播協(xié)議是narada,它首先構(gòu)造一個(gè)所有節(jié)點(diǎn)之間的網(wǎng)狀結(jié)構(gòu)的控制拓?fù)?,然后用距離矢量組播路由選擇協(xié)議(distance vector multicast routing protocol,dvmrp)構(gòu)造數(shù)據(jù)源指定的數(shù)據(jù)傳輸拓?fù)?。p2p流媒體數(shù)據(jù)傳輸調(diào)度: 流媒體數(shù)據(jù)傳輸調(diào)度策略存在著“推”和“拉”兩種機(jī)制。一般,基于樹(shù)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型是典

28、型的“推”機(jī)制,而基于網(wǎng)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型則采用“拉機(jī)制。所謂“推”就是節(jié)點(diǎn)主動(dòng)向另一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),此時(shí)要求節(jié)點(diǎn)之間有父子關(guān)系,父節(jié)點(diǎn)依據(jù)這種關(guān)系主動(dòng)發(fā)送數(shù)據(jù)給子節(jié)點(diǎn)。在基于樹(shù)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型中,由于用戶的行為無(wú)法預(yù)期,任何節(jié)點(diǎn)都有可能在任何時(shí)候退出系統(tǒng),一旦父節(jié)點(diǎn)退出系統(tǒng),則它的子節(jié)點(diǎn)就需要重新選擇父節(jié)點(diǎn)加入到組播樹(shù)中,在對(duì)樹(shù)的恢復(fù)期間就可能導(dǎo)致子節(jié)點(diǎn)丟失部分?jǐn)?shù)據(jù)。此外,樹(shù)結(jié)構(gòu)一般從一個(gè)節(jié)點(diǎn)請(qǐng)求數(shù)據(jù),節(jié)點(diǎn)與節(jié)點(diǎn)之間帶寬一般比較低因而不適合帶寬要求高的應(yīng)用。為了解決這些問(wèn)題,后來(lái)又提出了采用多描述編碼(multiple description coding,mdc)構(gòu)造兩棵或多棵組

29、播樹(shù)的機(jī)制,通過(guò)將單一碼流分割為多個(gè)碼流,對(duì)每個(gè)碼流建立一棵組播樹(shù)。多樹(shù)的機(jī)制對(duì)質(zhì)量有所改善,但是其算法的復(fù)雜度和維護(hù)開(kāi)銷大大增加。隨著coolstreaming的出現(xiàn),基于數(shù)據(jù)驅(qū)動(dòng)的流媒體分發(fā)技術(shù)得到了廣泛的應(yīng)用。采用這種數(shù)據(jù)交換方式后,鄰居節(jié)點(diǎn)間根據(jù)交換得到的數(shù)據(jù)緩存信息主動(dòng)地向其它節(jié)點(diǎn)請(qǐng)求所需的數(shù)據(jù)塊,這種方式被形象地稱為“拉”機(jī)制。相比較之下,“推”機(jī)制要求節(jié)點(diǎn)之間存在父子關(guān)系,通常以組播樹(shù)的方式實(shí)現(xiàn),而“拉”機(jī)制不需要節(jié)點(diǎn)間具有層次性的關(guān)系?;诰W(wǎng)狀拓?fù)鋬?yōu)先的覆蓋網(wǎng)模型基本上以“拉”機(jī)制為主要解決方案?!袄睓C(jī)制是以存儲(chǔ)轉(zhuǎn)發(fā)為基礎(chǔ),節(jié)點(diǎn)首先獲得對(duì)方節(jié)點(diǎn)所擁有的數(shù)據(jù)狀態(tài)信息,然后向其發(fā)

30、起請(qǐng)求?!袄睓C(jī)制無(wú)需維護(hù)樹(shù)的結(jié)構(gòu),但是節(jié)點(diǎn)之間需要不停的交換緩沖區(qū)中數(shù)據(jù)的狀態(tài)信息而產(chǎn)生一定的負(fù)載。該機(jī)制可以使得節(jié)點(diǎn)可以從任何相鄰的節(jié)點(diǎn)任何時(shí)間獲取自身需要的數(shù)據(jù),因而算法上實(shí)現(xiàn)簡(jiǎn)單而且可以提高自己的下載帶寬。“推”和“拉”的機(jī)制各有其特點(diǎn)。“拉”機(jī)制采用存儲(chǔ)轉(zhuǎn)發(fā)的思想,需要轉(zhuǎn)發(fā)每個(gè)節(jié)點(diǎn)上的數(shù)據(jù)狀態(tài)信息,在每個(gè)節(jié)點(diǎn)進(jìn)行必要的數(shù)據(jù)緩存,因而采用“拉”機(jī)制有較長(zhǎng)的時(shí)延和較多的負(fù)載。“推”機(jī)制則無(wú)須發(fā)送數(shù)據(jù)的狀態(tài)信息,無(wú)須存儲(chǔ)轉(zhuǎn)發(fā)因而負(fù)載較低且時(shí)延較低。但是“推”機(jī)制需要維護(hù)復(fù)雜的樹(shù)結(jié)構(gòu),對(duì)動(dòng)態(tài)變化的應(yīng)對(duì)能力比較弱,而且節(jié)點(diǎn)只能從單個(gè)節(jié)點(diǎn)獲取數(shù)據(jù),導(dǎo)致采用“推”機(jī)制質(zhì)量更差,節(jié)點(diǎn)獲取數(shù)據(jù)的能力更

31、差,實(shí)現(xiàn)上也更為復(fù)雜。流媒體直播系統(tǒng)模型:按照流媒體數(shù)據(jù)分發(fā)過(guò)程中數(shù)據(jù)分發(fā)的驅(qū)動(dòng)因素,可以將目前應(yīng)用于p2p流媒體直播系統(tǒng)按照數(shù)據(jù)分發(fā)機(jī)制劃分為3類:路徑驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制、數(shù)據(jù)驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制和混合驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制。路徑驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制:路徑驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制通?;趹?yīng)用層多播技術(shù),可以在靜態(tài)的網(wǎng)絡(luò)環(huán)境下實(shí)現(xiàn)高效、低延遲的數(shù)據(jù)分發(fā),但對(duì)動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境的適應(yīng)性稍顯不足。該機(jī)制在數(shù)據(jù)分發(fā)之前,一般需要構(gòu)造可以覆蓋全部用戶節(jié)點(diǎn)的數(shù)據(jù)分發(fā)路徑,并且在數(shù)據(jù)分發(fā)過(guò)程中沿該路徑分發(fā)流媒體數(shù)據(jù)。數(shù)據(jù)分發(fā)路徑結(jié)構(gòu)選擇以及路徑構(gòu)造方式的選擇是路徑驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制的關(guān)鍵所在。不同的路徑結(jié)構(gòu)以及構(gòu)造方式將會(huì)對(duì)

32、p2p流媒體直播系統(tǒng)的可伸縮性、抗擾動(dòng)能力、播放延遲、資源利用率等性能指標(biāo)產(chǎn)生較大的影響。目前,主流p2p流媒體數(shù)據(jù)分發(fā)機(jī)制采用的路徑結(jié)構(gòu)大致可以分為以下幾類:?jiǎn)螛?shù)路徑結(jié)構(gòu)、多樹(shù)路徑結(jié)構(gòu)和網(wǎng)樹(shù)路徑結(jié)構(gòu)。單樹(shù)路徑結(jié)構(gòu)的代表模型有nice協(xié)議和zigzag協(xié)議,多樹(shù)路徑結(jié)構(gòu)的代表模型有微軟提出的coopnet和splitstream技術(shù),網(wǎng)樹(shù)路徑結(jié)構(gòu)的代表有esm系統(tǒng)和chunkyspread技術(shù)。nice協(xié)議是馬里蘭大學(xué)的banerjee等提出的一種可伸縮的應(yīng)用層多播協(xié)議。該協(xié)議層次簇結(jié)構(gòu)的覆蓋網(wǎng)維護(hù)多播組成員,并在其上生成樹(shù)結(jié)構(gòu)的數(shù)據(jù)分發(fā)路徑。覆蓋網(wǎng)及分發(fā)樹(shù)分別根據(jù)以下規(guī)則構(gòu)造:首先,多播組的

33、所有節(jié)點(diǎn)被分為規(guī)模為k,3k的若干簇,并從每個(gè)簇選出一個(gè)簇首作為高一層次的成員,以此類推,直至構(gòu)造出如下圖所示的層次簇結(jié)構(gòu);figure 6 nice的覆蓋網(wǎng)管理然后,從層次簇結(jié)構(gòu)中生成一棵以數(shù)據(jù)源為根的樹(shù)(見(jiàn)下圖)作為數(shù)據(jù)分發(fā)路徑,該分發(fā)樹(shù)的結(jié)構(gòu)為數(shù)據(jù)源向其所在簇的所有其它簇成員分發(fā)數(shù)據(jù),接收到該數(shù)據(jù)的各層簇首(數(shù)據(jù)源所在簇的簇首除外)再向各自所在簇轉(zhuǎn)發(fā)數(shù)據(jù),直至數(shù)據(jù)分發(fā)至覆蓋網(wǎng)中的所有節(jié)點(diǎn)。此外,為了覆蓋網(wǎng)環(huán)境的動(dòng)態(tài)性,nice協(xié)議還在引導(dǎo)新節(jié)點(diǎn)和拆分、合并、修復(fù)覆蓋網(wǎng)等方面提出了相關(guān)操作方法。figure 7 nice的控制和數(shù)據(jù)分發(fā)路徑結(jié)構(gòu)zigzag是tran等提出的一種應(yīng)用層多播協(xié)

34、議。zigzag協(xié)議包括兩層拓?fù)浣Y(jié)構(gòu):位于底層的表示節(jié)點(diǎn)邏輯關(guān)系的管理拓?fù)?、位于上層的表示?jié)點(diǎn)物理交互關(guān)系的數(shù)據(jù)分發(fā)拓?fù)?。zigzag的管理拓?fù)錇閷哟未亟Y(jié)構(gòu)和數(shù)據(jù)分發(fā)拓?fù)錇閱螛?shù)結(jié)構(gòu),其構(gòu)造如圖所示。基于層次簇結(jié)構(gòu)的管理拓?fù)洌瑉igzag按照如下兩個(gè)原則構(gòu)造數(shù)據(jù)分發(fā)樹(shù): l-1層的簇節(jié)點(diǎn)不能從本層的簇頭節(jié)點(diǎn)處獲取數(shù)據(jù),而必須從兄弟簇頭處獲取數(shù)據(jù);樹(shù)中的每個(gè)節(jié)點(diǎn)只能向兄弟簇的成員節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)。zigzag中的節(jié)點(diǎn)加入與離開(kāi)、簇分割與合并、負(fù)載均衡等一系列數(shù)據(jù)分發(fā)樹(shù)維護(hù)操作都基于該原則實(shí)現(xiàn)。如此構(gòu)造的數(shù)據(jù)分發(fā)路徑具有路徑維護(hù)局部化和控制開(kāi)銷低的特點(diǎn)。figure 8 zigzag的覆蓋網(wǎng)管理結(jié)構(gòu)fi

35、gure 9 zigzag的數(shù)據(jù)分發(fā)路徑結(jié)構(gòu)coopnet(cooperative networking)是微軟的一個(gè)研究性項(xiàng)目,主要研究p2p技術(shù)對(duì)c/s模式應(yīng)用性能的改善和功能的增強(qiáng)。coopnet有一個(gè)指定的工作站負(fù)責(zé)管理節(jié)點(diǎn)的加入和退出。工作站把組播樹(shù)的整個(gè)結(jié)構(gòu)存儲(chǔ)在內(nèi)存中。當(dāng)一個(gè)節(jié)點(diǎn)開(kāi)始接收現(xiàn)場(chǎng)直播的流媒體時(shí),這個(gè)節(jié)點(diǎn)與工作站接洽加入的操作。工作站從保存在內(nèi)存中的組播樹(shù)中找到一個(gè)合適的位置,把這個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)返回給這個(gè)節(jié)點(diǎn)。在視頻直播系統(tǒng)中,coopnet使用mdc和多路徑傳輸機(jī)制保證數(shù)據(jù)傳輸?shù)馁|(zhì)量。mdc將音頻、視頻信號(hào)編入到多個(gè)子集碼流中,任意組合的子集碼流都可以進(jìn)行解碼。解碼之

36、后的質(zhì)量取決于收到的子集碼流數(shù)目,子集碼流數(shù)目越多質(zhì)量就越好。多描述編碼和分層編碼不同點(diǎn)在于,多描述編碼要求描述的每個(gè)子集碼流都必須是可解碼的,而分層編碼只要求子集碼流的一個(gè)嵌套序列可解碼。figure 10 多描述編碼和分層編碼如上圖所示,我們將視頻信號(hào)編碼為a,b和c三個(gè)子集碼流,它們互不相交。多描述編碼要求a,b和c必須都能獨(dú)立解碼,且a,b,c的任意組合都能解碼。分層編碼則只要求a、a與b的并、a與b與c的并可獨(dú)立解碼。對(duì)于視頻信號(hào),一個(gè)簡(jiǎn)單的mdc系統(tǒng)使用如下方法編碼。首先,將原始的視頻幀序列分為m個(gè)序列。第m(n=l,2,3,.,m)個(gè)序列包含的幀在原始流中的編號(hào)為m+im(i=0

37、,l,.)。第m個(gè)序列被編碼為第m個(gè)子集碼流。因此,任何一個(gè)子集碼流都可以單獨(dú)解碼。接受者收到的子集碼流越多,解碼出來(lái)的視頻幀率越高,圖像也就越連續(xù)。這樣每個(gè)碼流可以沿著不同的路徑進(jìn)行傳輸,任何一個(gè)或多個(gè)路徑斷開(kāi)都不會(huì)影響視頻的正常解碼。coopnet與其它的應(yīng)用層組播協(xié)議不同,它創(chuàng)建多棵數(shù)據(jù)分發(fā)樹(shù)。每棵數(shù)據(jù)分發(fā)樹(shù)上傳輸一個(gè)子集碼流。如果將視頻編碼到m個(gè)子集碼流,那么coopnet將創(chuàng)建m棵子樹(shù)。每棵樹(shù)都是應(yīng)用層拓?fù)涞纳蓸?shù),包含所有節(jié)點(diǎn)。同時(shí),每棵樹(shù)也各不相同,在一棵樹(shù)中的內(nèi)部節(jié)點(diǎn)在另一棵樹(shù)中可能為葉子節(jié)點(diǎn)。圖35中,coopnet將音頻信號(hào)編碼為三個(gè)子集碼流,每個(gè)子集碼流對(duì)應(yīng)著一棵分發(fā)樹(shù)。

38、我們可以看到子集碼流l對(duì)應(yīng)的分發(fā)樹(shù)中,節(jié)點(diǎn)a、b為內(nèi)部節(jié)點(diǎn)。然而在子集碼流2對(duì)應(yīng)的分發(fā)樹(shù)中,節(jié)點(diǎn)a、b成為了葉子節(jié)點(diǎn)。在下圖中,如果節(jié)點(diǎn)b失效,那么節(jié)點(diǎn)e、f只是接收不到子集碼流1,但是仍然能接收到子集碼流2和3,因此節(jié)點(diǎn)e、f仍然能夠正常播放視頻,只是視頻質(zhì)量有所下降。figure 11 coopnet中的簡(jiǎn)單數(shù)據(jù)分發(fā)樹(shù)coopnet中使用多描述編碼和多路徑傳輸?shù)臋C(jī)制,在一定程度上減小了因?yàn)楣?jié)點(diǎn)的加入和退出對(duì)其它節(jié)點(diǎn)接收質(zhì)量的影響。同時(shí),coopnet多棵不相交的分發(fā)樹(shù)使得很多時(shí)候節(jié)點(diǎn)都能接收到大部分的子集碼流,保證了一定的視頻質(zhì)量。但是,coopnet也有一些缺點(diǎn)。首先,coopnet需要

39、建立多棵分發(fā)樹(shù),維護(hù)分發(fā)樹(shù)的成本和代價(jià)都是很高的。分發(fā)樹(shù)需要不停交換控制信息才能維持,多棵樹(shù)的維持需要更多的控制信息。一個(gè)節(jié)點(diǎn)的失敗會(huì)導(dǎo)致幾乎所有分發(fā)樹(shù)的調(diào)整,復(fù)雜度比較高。其次,需要對(duì)音視頻信號(hào)進(jìn)行多描述編碼,制作數(shù)據(jù)源的負(fù)載較大。再者,coopnet中音頻、視頻質(zhì)量還是會(huì)因?yàn)椴糠肿蛹a流的丟失而質(zhì)量降低。最后,coopnet難于與現(xiàn)有的系統(tǒng)相融合,不易于使用,這是因?yàn)閏oopnet使用mdc,而現(xiàn)有的系統(tǒng)如realone player和windows media player都只支持單描述的編碼。splitstream是微軟的castro等提出的另一種基于多樹(shù)路徑分發(fā)機(jī)制的流媒體直播技術(shù)。

40、與coopnet相似,splitstream也在源服務(wù)器端對(duì)視頻節(jié)目做mdc編碼,并讓每棵分發(fā)樹(shù)對(duì)應(yīng)傳輸一條mdc子流。但是,在多條數(shù)據(jù)分發(fā)路徑的組織上,splitstream比coopnet更進(jìn)一步。鑒于基于單樹(shù)路徑的數(shù)據(jù)分發(fā)機(jī)制中,中間節(jié)點(diǎn)負(fù)載過(guò)重而葉子節(jié)點(diǎn)得不到充分利用的問(wèn)題,castro等在設(shè)計(jì)多棵數(shù)據(jù)分發(fā)樹(shù)時(shí)特別強(qiáng)調(diào)每個(gè)peer節(jié)點(diǎn)只在其所參與的一棵分發(fā)樹(shù)中充當(dāng)中間節(jié)點(diǎn),而在剩余的其它分發(fā)樹(shù)中只充當(dāng)葉節(jié)點(diǎn)。下圖給出了這種機(jī)制的一個(gè)實(shí)例。splitstream的這種設(shè)計(jì),一方面可以均衡節(jié)點(diǎn)負(fù)載,更有效地利用用戶資源,另一方面可以更有效地減小節(jié)點(diǎn)離開(kāi)或失效對(duì)其它節(jié)點(diǎn)所造成的影響。figu

41、re 12 splitstream的多樹(shù)路徑實(shí)例esm(end system multicast)是由美國(guó)卡耐基梅隆大學(xué)開(kāi)發(fā)的基于p2p技術(shù)的流媒體直播系統(tǒng),該系統(tǒng)推出一年后直播了20多次的國(guó)際會(huì)議,包括sigcomm 2002&2003(special interest group on data communication),nossdav 2004(network and operating system support for digital audio and video),infocom 2005(the ieee conference on computer communicat

42、ions)等,同時(shí)在線用戶達(dá)4000多人。esm以narada應(yīng)用層組播協(xié)議為核心,narada協(xié)議不但能夠自組織地構(gòu)造高效的覆蓋網(wǎng)拓?fù)?,還能夠?qū)W(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行自我改善,對(duì)于網(wǎng)絡(luò)的動(dòng)態(tài)性、異構(gòu)性都具有較強(qiáng)的適應(yīng)能力。該協(xié)議的基本思路是將系統(tǒng)的成員管理拓?fù)渑c數(shù)據(jù)分發(fā)路徑相分離。narada協(xié)議首先在組播成員之間建立一個(gè)網(wǎng)狀的覆蓋網(wǎng),由narada協(xié)議保證圖中任意一對(duì)節(jié)點(diǎn)之間最短路徑的時(shí)延,并且圖中的每個(gè)節(jié)點(diǎn)的鄰居個(gè)數(shù)有上限,然后在覆蓋網(wǎng)上運(yùn)行組播路由協(xié)議,建立一棵組播轉(zhuǎn)發(fā)樹(shù)。通過(guò)動(dòng)態(tài)探測(cè)網(wǎng)絡(luò)狀態(tài),narada動(dòng)態(tài)地對(duì)覆蓋網(wǎng)進(jìn)行維護(hù)和改良。在構(gòu)建其控制拓?fù)鋾r(shí),narada協(xié)議先定義了一個(gè)聚集點(diǎn)rp作

43、為新成員加入的起點(diǎn)。實(shí)際上,所有的應(yīng)用層組播協(xié)議都存在一個(gè)和rp起同等作用的節(jié)點(diǎn),rp維護(hù)著組中所有成員的信息。當(dāng)一個(gè)新節(jié)點(diǎn)想加入組播組時(shí),它首先向rp節(jié)點(diǎn)發(fā)起請(qǐng)求。rp節(jié)點(diǎn)告訴新節(jié)點(diǎn)組內(nèi)中其它節(jié)點(diǎn)的信息。然后,新節(jié)點(diǎn)從中選擇一些節(jié)點(diǎn),并嘗試連接。當(dāng)新節(jié)點(diǎn)與其中一個(gè)節(jié)點(diǎn)連接成功,即成為那個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn),新節(jié)點(diǎn)也就成功加入了覆蓋網(wǎng)。figure 13 narada協(xié)議流程圖chunkyspread技術(shù)是康奈爾大學(xué)的vidhyashanka等提出的。該技術(shù)采用了與narada協(xié)議相似的網(wǎng)樹(shù)結(jié)構(gòu)的數(shù)據(jù)分發(fā)路徑,但在以下兩方面與narada協(xié)議存在明顯差異。一-,chunkyspread采用的是網(wǎng)多

44、樹(shù)路徑結(jié)構(gòu),這一點(diǎn)區(qū)別于narada采用的網(wǎng)單樹(shù)路徑結(jié)構(gòu)。通過(guò)引入mdc技術(shù),chunkyspread將流媒體數(shù)據(jù)劃分為多個(gè)子流,數(shù)據(jù)源將子流分發(fā)給多個(gè)節(jié)點(diǎn),然后這些節(jié)點(diǎn)再作為子流數(shù)據(jù)源在以網(wǎng)一單樹(shù)結(jié)構(gòu)分發(fā)子流,因此整體上使chunkyspread形成一種如下圖所示的網(wǎng)多樹(shù)的路徑結(jié)構(gòu)。chunkyspread中提出的網(wǎng)一多樹(shù)的數(shù)據(jù)分發(fā)路徑結(jié)構(gòu)比esm中的網(wǎng)單樹(shù)的數(shù)據(jù)分發(fā)路徑結(jié)構(gòu)對(duì)異構(gòu)網(wǎng)絡(luò)具有更好的適應(yīng)能力,能夠更充分地利用用戶節(jié)點(diǎn)資源。另一方面,chunkyspread在分發(fā)樹(shù)的構(gòu)造方法上也與narada協(xié)議有明顯差異。chunkyspread沒(méi)有像narada那樣采用經(jīng)典距離矢量路由算法,而

45、是采用了更為靈活的自組織、自改善方式構(gòu)建數(shù)據(jù)分發(fā)樹(shù)。chunkyspread中,節(jié)點(diǎn)間的父子關(guān)系由各節(jié)點(diǎn)根據(jù)局部信息獨(dú)立確定,無(wú)需復(fù)雜的全網(wǎng)信息傳播機(jī)制。為了避免構(gòu)造低效的分發(fā)樹(shù),chunkyspread還進(jìn)一步提出了使節(jié)點(diǎn)根據(jù)負(fù)載、延遲等指標(biāo)對(duì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行動(dòng)態(tài)優(yōu)化的方法。figure 14 chunkyspread數(shù)據(jù)分發(fā)機(jī)制 數(shù)據(jù)驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制:數(shù)據(jù)驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制是p2p網(wǎng)絡(luò)中的典型數(shù)據(jù)分發(fā)機(jī)制,對(duì)動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境具有良好的適應(yīng)性,但是其數(shù)據(jù)分發(fā)效率較低,延遲較高。該機(jī)制無(wú)需在數(shù)據(jù)分發(fā)之前構(gòu)建數(shù)據(jù)分發(fā)路徑,只需在數(shù)據(jù)分發(fā)過(guò)程中在節(jié)點(diǎn)間定期交換彼此的狀態(tài)信息(如節(jié)點(diǎn)狀態(tài)、數(shù)據(jù)可用性等

46、)。節(jié)點(diǎn)通過(guò)周期性地檢查自身以及鄰居節(jié)點(diǎn)的狀態(tài),識(shí)別自身的數(shù)據(jù)需求以及相關(guān)數(shù)據(jù)在鄰居節(jié)點(diǎn)上的可用性情況,然后根據(jù)數(shù)據(jù)調(diào)度策略從鄰居節(jié)點(diǎn)主動(dòng)拉取數(shù)據(jù)(或向鄰居節(jié)點(diǎn)主動(dòng)推送數(shù)據(jù))。數(shù)據(jù)驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制的覆蓋網(wǎng)拓?fù)渫ǔ榫W(wǎng)狀結(jié)構(gòu)。雖然這種機(jī)制在進(jìn)行數(shù)據(jù)交換時(shí)也會(huì)交換控制信息和流媒體數(shù)據(jù),但是其通信協(xié)議通常不像路徑驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制那樣完全分離開(kāi)來(lái)。與路徑驅(qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制不同,此類數(shù)據(jù)分發(fā)機(jī)制認(rèn)為與其在高度動(dòng)態(tài)的p2p網(wǎng)絡(luò)環(huán)境中不斷地修復(fù)分發(fā)路徑結(jié)構(gòu),還不如利用數(shù)據(jù)的可用性來(lái)引導(dǎo)數(shù)據(jù)流。因此,在此類數(shù)據(jù)分發(fā)機(jī)制中,流媒體數(shù)據(jù)并不是沿預(yù)先構(gòu)造的數(shù)據(jù)分發(fā)路徑傳輸,而是根據(jù)節(jié)點(diǎn)各自的數(shù)據(jù)需求傳輸?shù)?。事?shí)

47、上,這種數(shù)據(jù)分發(fā)機(jī)制中也存在數(shù)據(jù)分發(fā)路徑的概念,只不過(guò)這種數(shù)據(jù)分發(fā)路徑是節(jié)點(diǎn)間在進(jìn)行數(shù)據(jù)交換時(shí)自然形成的,而且一般不被后續(xù)數(shù)據(jù)單元所復(fù)用。在數(shù)據(jù)驅(qū)動(dòng)的分發(fā)機(jī)制中,資源(數(shù)據(jù)、節(jié)點(diǎn)資源等)調(diào)度算法是一項(xiàng)最為重要的核心技術(shù),在很大程度上決定了數(shù)據(jù)的分發(fā)模式。資源調(diào)度算法的優(yōu)劣會(huì)對(duì)p2p流媒體直播系統(tǒng)的傳輸延遲、數(shù)據(jù)冗余度、控制開(kāi)銷等性能產(chǎn)生重要影響。目前,在p2p流媒體直播領(lǐng)域中,隨機(jī)拉取(random pull)算法及其變種是主流的資源調(diào)度算法。此類算法在現(xiàn)實(shí)世界中得到了廣泛的應(yīng)用,ppstream,pplive等知名p2p流媒體直播系統(tǒng)都是基于此類算法開(kāi)發(fā)的?;镜碾S機(jī)拉取算法是應(yīng)用于網(wǎng)狀覆蓋

48、網(wǎng)結(jié)構(gòu)之上的。覆蓋網(wǎng)絡(luò)上的邊對(duì)應(yīng)節(jié)點(diǎn)之間的鄰居關(guān)系,一個(gè)節(jié)點(diǎn)可與多個(gè)節(jié)點(diǎn)建立鄰居關(guān)系,鄰居節(jié)點(diǎn)間通過(guò)定期交換bm消息以了解彼此在緩存窗口內(nèi)的數(shù)據(jù)緩存情況。在一個(gè)數(shù)據(jù)調(diào)度請(qǐng)求周期內(nèi),節(jié)點(diǎn)首先計(jì)算自身缺失而鄰居節(jié)點(diǎn)可用的數(shù)據(jù)塊集合,然后從該集合中隨機(jī)選取一些數(shù)據(jù)塊向隨機(jī)選取的擁有該數(shù)據(jù)塊的鄰居節(jié)點(diǎn)發(fā)起數(shù)據(jù)拉取請(qǐng)求,之后被請(qǐng)求者向請(qǐng)求者發(fā)送相關(guān)數(shù)據(jù)塊。對(duì)于該請(qǐng)求周期未能成功獲得的數(shù)據(jù)包,節(jié)點(diǎn)將在下一請(qǐng)求周期內(nèi)繼續(xù)拉取。在基本隨機(jī)拉取算法基礎(chǔ)上,通過(guò)加入不同的調(diào)度策略產(chǎn)生了很多變種算法,這些變種算法的性能在不同程度上都優(yōu)于基本算法的性能。變種算法采用的調(diào)度策略大致可以包括最少優(yōu)先策略、最新優(yōu)先策略、最

49、貧瘠優(yōu)先策略等,其中以最少優(yōu)先策略最具代表性。最少優(yōu)先策略是p2p文件共享系統(tǒng)中應(yīng)用最為廣泛的數(shù)據(jù)調(diào)度策略,最早由coolstreaming系統(tǒng)引入到p2p流媒體系統(tǒng)中,該策略的基本思想是通過(guò)增強(qiáng)局部稀有數(shù)據(jù)的可用性加快其擴(kuò)散速度。香港中文大學(xué)張欣研博士開(kāi)發(fā)的coolstreaming系統(tǒng)是第一個(gè)采用純p2p機(jī)制來(lái)解決流媒體直播的系統(tǒng),它在2005年的測(cè)試期間用戶數(shù)高達(dá)兩萬(wàn)多人。coolstreaming是一個(gè)擴(kuò)展性更好,穩(wěn)定性更強(qiáng)的視頻直播系統(tǒng)。該系統(tǒng)采用分布式機(jī)制形成覆蓋網(wǎng)。每個(gè)節(jié)點(diǎn)維持一個(gè)覆蓋網(wǎng)中其它成員信息的列表mcache。新節(jié)點(diǎn)a首先與直播源聯(lián)系,直播源從自己的mcache中隨機(jī)的

50、選擇一個(gè)節(jié)點(diǎn)p作為節(jié)點(diǎn)a的代理節(jié)點(diǎn),節(jié)點(diǎn)a再與節(jié)點(diǎn)p聯(lián)系,并將節(jié)點(diǎn)p的mcache內(nèi)容存入自己的mcache中。節(jié)點(diǎn)a再與自己mcache內(nèi)的節(jié)點(diǎn)建立連接。在加入覆蓋網(wǎng)之后,節(jié)點(diǎn)a利用gossip協(xié)議來(lái)報(bào)告自己的存在。每一個(gè)節(jié)點(diǎn)周期性的生成一個(gè)消息來(lái)說(shuō)明自己是一個(gè)活躍節(jié)點(diǎn)。coolstreaming使用120個(gè)數(shù)據(jù)塊的緩沖窗口來(lái)緩存數(shù)據(jù),每個(gè)塊可以緩存1秒種左右的數(shù)據(jù)。每個(gè)塊在窗口內(nèi)都有唯一的編號(hào),節(jié)點(diǎn)之間通過(guò)數(shù)據(jù)塊的編號(hào)來(lái)請(qǐng)求數(shù)據(jù)。它使用16bit描述窗口內(nèi)第一個(gè)數(shù)據(jù)塊的序號(hào),然后120bit為標(biāo)識(shí)窗口內(nèi)哪些塊有數(shù)據(jù),節(jié)點(diǎn)之間就周期性的交換這136bit的描述信息。如下圖所示,peer1窗口內(nèi)的數(shù)據(jù)用“0110101”進(jìn)行描述,它將該消息發(fā)送給peer 2和peer 3。peer 2窗口內(nèi)數(shù)據(jù)用“2101001,它將數(shù)據(jù)狀態(tài)信息發(fā)送給peer 1和peer 3。figure 15 coolstreaming中數(shù)據(jù)狀態(tài)信息交換圖 各節(jié)點(diǎn)得到與自己相連節(jié)點(diǎn)的數(shù)據(jù)狀態(tài)信息之后,就可以向它們發(fā)起對(duì)自己需要數(shù)據(jù)塊的請(qǐng)求。各節(jié)點(diǎn)計(jì)算每個(gè)塊潛在的提供者個(gè)數(shù),首先選擇提供者最少的一個(gè)塊進(jìn)行請(qǐng)求傳輸。在傳輸該塊時(shí),節(jié)點(diǎn)選擇向一個(gè)帶寬足夠高又能滿足該塊時(shí)間限制的提供者請(qǐng)求數(shù)據(jù)?;旌向?qū)動(dòng)的數(shù)據(jù)分發(fā)機(jī)制:混合驅(qū)動(dòng)的數(shù)據(jù)分

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論