劉琰
(濮陽職業(yè)技術(shù)學(xué)院,河南濮陽457000)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,傳統(tǒng)的VOD視頻點(diǎn)播系統(tǒng)由于受網(wǎng)絡(luò)帶寬、服務(wù)器系統(tǒng)瓶頸等問題的制約,限制了學(xué)生對遠(yuǎn)程資源的學(xué)習(xí)需求,已經(jīng)不能滿足遠(yuǎn)程教育教學(xué)的需要。隨著對等網(wǎng)P2P技術(shù)的逐漸成熟,基于P2P技術(shù)的視頻點(diǎn)播系統(tǒng)已經(jīng)逐步成為一種新的網(wǎng)絡(luò)應(yīng)用傳媒方式。在P2P網(wǎng)絡(luò)架構(gòu)中,每個終端節(jié)點(diǎn)既是客戶端,同時又具備服務(wù)器的功能,可以充分挖掘互聯(lián)網(wǎng)中被忽視的客戶機(jī)資源,有效利用網(wǎng)絡(luò)帶寬,為用戶提供一個持續(xù)性的訪問服務(wù)。因此P2P技術(shù)和傳統(tǒng)的C/S模式相比無論在網(wǎng)絡(luò)利用率、擴(kuò)展性和容錯方面都具有較大的優(yōu)勢,P2P已經(jīng)成為遠(yuǎn)程教育中構(gòu)建視頻點(diǎn)播系統(tǒng)的主流技術(shù)。
傳統(tǒng)的視頻點(diǎn)播系統(tǒng)大多都是基于C/S(客戶端/服務(wù)器)模式,其結(jié)構(gòu)如圖1所示。
在構(gòu)建傳統(tǒng)視頻點(diǎn)播系統(tǒng)時,客戶端需要接受解碼的視頻和音頻數(shù)據(jù),因此數(shù)據(jù)量非常巨大,而單個的媒體數(shù)據(jù)流就需要消耗較大的存儲系統(tǒng)帶寬和網(wǎng)絡(luò)傳輸帶寬,而在多用戶訪問時,對視頻點(diǎn)播系統(tǒng)的網(wǎng)絡(luò)帶寬要求會更高。另外,在視頻點(diǎn)播過程中,用戶對視頻源的訪問需求是實(shí)時的,視頻點(diǎn)播系統(tǒng)必須提供及時的響應(yīng)。因此,若要保證遠(yuǎn)程教育學(xué)生能夠流暢的觀看視頻課程,視頻點(diǎn)播系統(tǒng)就要對所有活動的數(shù)據(jù)流提供嚴(yán)格的傳輸帶寬以及傳輸延遲保障策略,而傳統(tǒng)的基于C/S模式的視頻點(diǎn)播系統(tǒng)已不能滿足需求。
目前計(jì)算機(jī)界對P2P(Peer-to-Peer)沒有統(tǒng)一的定義,P2P是對等計(jì)算的簡稱。P2P是一種分布式網(wǎng)絡(luò)技術(shù),它的一個重要特點(diǎn)就是在網(wǎng)絡(luò)中實(shí)現(xiàn)協(xié)作和共享機(jī)制。所謂協(xié)作,就是P2P中的每個客戶端在邏輯上是平等的,沒有嚴(yán)格的主次關(guān)系。所謂共享,就是在P2P模式中,每個節(jié)點(diǎn)既充當(dāng)資源發(fā)送端,起到服務(wù)端的作用,又可以充當(dāng)客戶端,獲取網(wǎng)絡(luò)資源,打破了傳統(tǒng)的C/S模式的制約。P2P是運(yùn)行在互聯(lián)網(wǎng)上動態(tài)變化的邏輯網(wǎng)絡(luò),和傳統(tǒng)的C/S模式相比,網(wǎng)絡(luò)具有相對寬松的網(wǎng)絡(luò)結(jié)構(gòu),同時又具有高效的路由算法,可以很好的實(shí)現(xiàn)網(wǎng)絡(luò)的負(fù)載勻衡,并且具有很好的擴(kuò)展性,因此,P2P技術(shù)具有廣闊的應(yīng)用前景。其基本結(jié)構(gòu)如圖2所示。
P2P視頻點(diǎn)播系統(tǒng)就是基于對等網(wǎng)絡(luò)的流媒體點(diǎn)播系統(tǒng),或者叫點(diǎn)對點(diǎn)的點(diǎn)播系統(tǒng)。它是以網(wǎng)絡(luò)基礎(chǔ)設(shè)施和流媒體服務(wù)器為底層構(gòu)架,以流媒體方式存在的視頻、音頻等數(shù)據(jù)為傳輸內(nèi)容,在對等節(jié)點(diǎn)和客戶端之間進(jìn)行媒體傳遞溝通的技術(shù)。從技術(shù)角度來看,P2P視頻點(diǎn)播系統(tǒng)是流媒體技術(shù)和P2P技術(shù)的結(jié)合。
流媒體是多媒體的一個組成部分,是指采用流式傳輸?shù)姆绞皆诰W(wǎng)絡(luò)中進(jìn)行傳輸?shù)囊环N媒體格式。流媒體技術(shù)(Streaming Media Technology)是美國的Real Networks公司首先推出的,概括地說,就是將視頻源經(jīng)過壓縮處理后放入流媒體服務(wù)器中,利用數(shù)據(jù)緩沖和數(shù)據(jù)編解碼技術(shù),在網(wǎng)絡(luò)協(xié)議的支持下,由流媒體服務(wù)器提供視頻源給客戶端播放的一種技術(shù)??蛻舳丝梢赃呄螺d,邊觀看,不需要將整個文件下載到本地。其訪問流程為:首先系統(tǒng)會在客戶端本地創(chuàng)建視頻緩沖區(qū),在進(jìn)行點(diǎn)播前預(yù)先下載部分?jǐn)?shù)據(jù)作為緩沖數(shù)據(jù),如果網(wǎng)絡(luò)帶寬滿足點(diǎn)播需要,則緩沖區(qū)將持續(xù)下載數(shù)據(jù)資料預(yù)先保存,當(dāng)網(wǎng)絡(luò)帶寬小于播放所耗用數(shù)據(jù)資料帶寬時,為保證播放的連續(xù)性,系統(tǒng)會自動地將緩沖區(qū)中的數(shù)據(jù)進(jìn)行提取播放,從而使得播放連續(xù)且品質(zhì)得到保證。
對于流媒體服務(wù)器中的音視頻源,用戶在進(jìn)行訪問時,會將數(shù)據(jù)源進(jìn)行分包,這些數(shù)據(jù)包在動態(tài)的網(wǎng)絡(luò)中按照不同的路由模式進(jìn)行傳輸,到達(dá)客戶端時,在客戶端預(yù)先設(shè)置的緩存中進(jìn)行存放。由于這些數(shù)據(jù)包到達(dá)客戶端的時間不同,為了保證數(shù)據(jù)包的順序正確,需要使用緩存系統(tǒng)進(jìn)行排序,然后按照順序進(jìn)行播放,播放完畢的數(shù)據(jù)包隨即被系統(tǒng)刪除。
流式傳輸在選擇使用傳輸協(xié)議時,由于流式傳輸需要較大的網(wǎng)絡(luò)開銷,而TCP是面向連接的,基于字節(jié)流的傳輸層協(xié)議,因此TCP不適合傳輸實(shí)時的、持續(xù)的、大流量的流式數(shù)據(jù)。在流式傳輸?shù)膶?shí)現(xiàn)方案中,RTP(Real-time Transport Protocol,實(shí)時傳輸協(xié)議)由于其結(jié)構(gòu)特點(diǎn),更適合用于視頻點(diǎn)播系統(tǒng)流式數(shù)據(jù)的傳輸,一般采用TCP/IP協(xié)議來傳輸流式媒體數(shù)據(jù)的控制信息,而用RTP/UDP來傳輸實(shí)時音頻和視頻數(shù)據(jù)。
流式數(shù)據(jù)傳輸?shù)幕具^程為:用戶首先向流媒體服務(wù)器發(fā)出訪問請求,通過HTTP協(xié)議在客戶端和服務(wù)器之間交換控制信息,同時將需要訪問的視頻源檢索出來,然后客戶端瀏覽器啟動輔助(Helper)程序?qū)α髅襟w檢索出來的視頻源參數(shù)進(jìn)行初始化,并使用RTP/UDP協(xié)議傳輸?shù)娇蛻舳诉M(jìn)行播放。流式傳輸?shù)幕具^程如圖3所示。
在用戶實(shí)際使用視頻點(diǎn)播過程中,動態(tài)變化的網(wǎng)絡(luò)帶寬和數(shù)據(jù)丟包是影響視頻流質(zhì)量的重要因素,是影響用戶使用點(diǎn)播系統(tǒng)的關(guān)鍵所在,為了保證視頻質(zhì)量和流暢度,提高視頻數(shù)據(jù)傳輸?shù)目煽啃院头€(wěn)定性,可以采用前向糾錯編碼來進(jìn)行視頻傳輸;同時,為了應(yīng)對動態(tài)網(wǎng)絡(luò)帶寬的變化,在視頻服務(wù)器端,必須建立可以調(diào)節(jié)視頻數(shù)據(jù)發(fā)送速率的調(diào)節(jié)機(jī)制,在服務(wù)器視頻源數(shù)據(jù)和向前糾錯編碼數(shù)據(jù)之間合理分配網(wǎng)絡(luò)傳輸帶寬。
另外在數(shù)據(jù)流傳輸過程中,會產(chǎn)生大量的冗余數(shù)據(jù),為了減少視頻流數(shù)據(jù)丟失,提高視頻解碼質(zhì)量,必須要使用數(shù)據(jù)錯誤控制技術(shù)來進(jìn)行糾錯,確保視頻流傳輸?shù)恼_性。常用的糾錯技術(shù)有兩種,一種方式是使用自動重傳協(xié)議,自動重傳協(xié)議采用應(yīng)答反饋的方式來進(jìn)行通信,即當(dāng)客戶端接收到視頻數(shù)據(jù)流后,必須向服務(wù)器端發(fā)送確認(rèn)信息,當(dāng)服務(wù)器收到反饋信息后,將持續(xù)不斷地發(fā)送視頻數(shù)據(jù)流,相反,如果沒有收到反饋信息,服務(wù)器將中斷與客戶端的聯(lián)系,釋放資源,這種方法可以提高訪問的正確性,但也浪費(fèi)了系統(tǒng)資源和網(wǎng)絡(luò)帶寬。第二種方式是采用向前糾錯的方式,向前糾錯方式是首先對傳輸產(chǎn)生的的冗余數(shù)據(jù)進(jìn)行檢測,根據(jù)錯誤情況進(jìn)行糾錯,使用向前糾錯的優(yōu)點(diǎn)是不需要服務(wù)器和客戶端產(chǎn)生雙向通道,不會產(chǎn)生數(shù)據(jù)停頓,系統(tǒng)實(shí)現(xiàn)延遲短,更適合于大規(guī)模網(wǎng)絡(luò)上的視頻傳輸。
基于P2P的視頻點(diǎn)播系統(tǒng)的物理拓?fù)浣Y(jié)構(gòu)如圖4。
在上述結(jié)構(gòu)圖中,我們將系統(tǒng)分為三個功能層次:視頻源數(shù)據(jù)處理層、P2P功能層、媒體控制和應(yīng)用層。其中視頻源數(shù)據(jù)處理層處于整個系統(tǒng)的底層,P2P功能層處于中間層,而媒體控制和應(yīng)用層屬于最上層,如圖5所示。
4.2.1 視頻源數(shù)據(jù)處理層
該層是整個系統(tǒng)的最底層,也是系統(tǒng)實(shí)現(xiàn)的基礎(chǔ)。其主要功能是將各類音視頻數(shù)據(jù)源進(jìn)行加工和處理,轉(zhuǎn)化成數(shù)字信號并進(jìn)行壓縮和編碼處理,使其轉(zhuǎn)化成流媒體傳輸格式,向P2P功能層提供服務(wù)。
大規(guī)模流媒體應(yīng)用的視頻編碼技術(shù)大致可分為兩類:單碼率編碼技術(shù)和可擴(kuò)展性編碼技術(shù)。在單碼率編碼方式中,服務(wù)器始終以單一速率向所有的數(shù)據(jù)接收節(jié)點(diǎn)發(fā)送流媒體數(shù)據(jù),并根據(jù)各個接收節(jié)點(diǎn)的反饋信息來調(diào)整數(shù)據(jù)的發(fā)送速率。該編碼方式的控制粒度較粗,不能同時公平有效地對待多個客戶端接收節(jié)點(diǎn)。在客戶端接收節(jié)點(diǎn)的網(wǎng)絡(luò)狀況差異很大時,接入帶寬高于發(fā)送速率的接收節(jié)點(diǎn)的接收能力沒能得到充分利用,而帶寬低于該速率的接收節(jié)點(diǎn)則會發(fā)生擁塞。分層可擴(kuò)展性編碼方式將視頻內(nèi)容編碼分為占用少量帶寬的基本層和若干可以提高視頻質(zhì)量的增強(qiáng)層,其中基本層作為最重要的層,包含流媒體最重要的特征數(shù)據(jù);而其它層則為增強(qiáng)層,包含進(jìn)一步提高視頻質(zhì)量的數(shù)據(jù)。
4.2.2 P2P功能層
P2P功能層在視頻源數(shù)據(jù)處理層的基礎(chǔ)上,為媒體處理和應(yīng)用層提供接口,它可以忽略網(wǎng)絡(luò)底層的異構(gòu)性,簡化網(wǎng)絡(luò)的結(jié)構(gòu),并為上層提供統(tǒng)一的網(wǎng)絡(luò)接口,在其它兩層中架起一座橋梁。
4.2.3 媒體控制和應(yīng)用層
該層分為兩部分,一部分是媒體播放應(yīng)用層,第二部分是媒體控制層,媒體控制層是系統(tǒng)的核心層。其主要功能是合理分配媒體傳輸?shù)膸?,對媒體數(shù)據(jù)進(jìn)行收集并根據(jù)客戶端的請求合理分配數(shù)據(jù)流;該層還可以對客戶端的節(jié)點(diǎn)狀態(tài)進(jìn)行檢測,及時清除無用的鏈接請求;媒體控制層還可以對媒體的數(shù)據(jù)流質(zhì)量進(jìn)行監(jiān)控和調(diào)整,通過數(shù)據(jù)糾錯技術(shù)對各類丟包、延遲數(shù)據(jù)進(jìn)行處理,并對壓縮的數(shù)據(jù)流進(jìn)行解壓縮并進(jìn)行解碼工作,為媒體應(yīng)用層提供結(jié)構(gòu)完整的數(shù)據(jù)流。媒體應(yīng)用層是系統(tǒng)組成的最上層,其主要工作是向數(shù)據(jù)源提出請求,通過媒體播放器將解碼后的數(shù)據(jù)流通過web或客戶端的方式為用戶展示出來,另外由于客戶端的網(wǎng)絡(luò)具有動態(tài)性和可變性,因此媒體應(yīng)用層會在客戶端系統(tǒng)建立數(shù)據(jù)緩存區(qū),數(shù)據(jù)緩存區(qū)可以不間斷接收流媒體數(shù)據(jù)包,并根據(jù)順序通過播放器進(jìn)行播放,如果客戶端節(jié)點(diǎn)連接失敗,在重新連接期間,數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)會連續(xù)不斷的向播放器提供流媒體數(shù)據(jù),這樣可以為訪問者提供持續(xù)的媒體播放。
隨著信息技術(shù)的不斷發(fā)展,視頻點(diǎn)播系統(tǒng)在遠(yuǎn)程教育中的作用越來越凸顯,將P2P技術(shù)應(yīng)用到遠(yuǎn)程教育視頻點(diǎn)播系統(tǒng)中,可以破解傳統(tǒng)的點(diǎn)播系統(tǒng)的各種瓶頸,提高通過遠(yuǎn)程教育進(jìn)行學(xué)習(xí)的學(xué)生的學(xué)習(xí)效率和學(xué)習(xí)質(zhì)量,為學(xué)生接受知識提供了一種新的媒體方式,在遠(yuǎn)程教育教學(xué)應(yīng)用中具有一定的實(shí)用價值和意義。
[1] 譚曉杰.基于P2P對等網(wǎng)絡(luò)的流媒體直播模型的研究和實(shí)現(xiàn)[D].淮南:安徽理工大學(xué),2009.
[2] 王娟.基于用戶行為特征的交互式P2P視頻點(diǎn)播系統(tǒng)存儲機(jī)制研究[D].蘇州:蘇州大學(xué),2010.
[3] 尹浩,林闖,文浩,等.大規(guī)模流媒體應(yīng)用中關(guān)鍵技術(shù)的研究[J].計(jì)算機(jī)學(xué)報,2008,(5):744-774.