999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

P2P網絡中流媒體直播系統設計

2009-04-29 00:00:00覃宗炎
電腦知識與技術 2009年14期

摘要:在Internet視頻直播服務中,受寬帶限制,服務器難以支持大規模并發客戶;針對該問題,該文設計了基于對等網絡模式的流媒體直播系統。首先概述了基于P2P網絡中的流媒體直播系統的過程,之后討論了流媒體直播系統設計設計方案,最后闡述了流媒體直播系統中的關鍵技術。

關鍵詞:P2P;流媒體;直播

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)14-3673-03

Research and Design of P2P-based Live Media Streaming System

QIN Zong-yan

(Dongxing Frontier Inspection Station of the People's Republic of China, Dongxing 538100, China)

Abstract: The high bandwidth required by live streaming video greatly limits number of clients that connect to media server. This paper designs a P2P-based Live Media Streaming System. Firstly, the paper introduces brieflythe process of Live Media Streaming System, Secondly, it analyzes the designation scheme of Live Media Streaming System,Finally, the paper provides the key technology of Live Media Streaming System.

Key words: peer-to-peer; streaming media; Live

隨著網絡技術的發展,網絡多媒體服務得到廣泛應用。傳統的流媒體系統幾乎都是基于客戶端/服務器模式,但由于服務器性能及服務器端的帶寬資源有限,嚴重阻礙了流媒體服務質量的提高。P2P技術作為一種新型的網絡技術改變了互聯網上以服務器為中心的傳輸模式,使網絡上的每一臺計算機都能夠互為服務器/客戶端。若將流媒體分段,并使其分段在P2P網絡上傳播,利用P2P網絡的特點,就可以使網絡上任何一臺機器變成這些流媒體段的服務器,承擔轉發的任務,從根本上解決了服務器端網絡帶寬瓶頸問題。因此,利用P2P技術來實現流媒體直播,成為目前國內外學者的研究熱門。

1 流媒體直播系統的工作過程

基于P2P網絡中的流媒體直播系統的過程是:流媒體服務器S存儲著全部流媒體文件,首先,服務器S將媒體文件按照一定的流媒體文件格式分割成很多個固定大小的媒體數據包,然后發送到自身的緩存區中,為前來請求的客戶端提供服務。當一個新的客戶端節點C加入P2P網絡時,它首先會向服務器S發出連接請求,若S有足夠的剩余帶寬資源,則響應C節點的請求,與C建立起連接,為C提供能播放的媒體數據包;假如S沒有剩余帶寬資源,則S會按照某種策略選擇一個與之直接相連的子節點,子節點再根據自己的剩余帶寬資源狀況判斷是否為這個新的客戶端節點提供服務,以此類推,直到找到一個能為自己服務的節點為止(假設節點C6可為新節點C提供服務)。此時,服務器S再將節點C的請求命令包和請求的媒體數據包轉發給C6節點。至此,節點C6和節點C就可以建立起連接,雙方進行通信,在此基礎上伙伴關系也會相應的建立起來。

節點C按照自己請求的數據接收來自于節點C6中相應的媒體數據包,對C6中不存在的數據包,節點C會繼續尋找其它的伙伴,直到接收到能夠播放的所需的全部媒體數據包為止。然后,節點C再將收到的媒體數據包重新進行過濾、排序和封裝,組合成能實時播放的節目流。

上述過程中,節點C在接收到來自于其它伙伴節點的媒體數據包的同時,也可為其它的伙伴節點提供相應的服務。這就相當于每個節點既是服務器,也是客戶端。顯然,此流媒體直播系統可以看作是多個服務器同時為一個客戶端提供服務,這樣,平推到每個服務器上的負擔就會減輕,客戶端得到的服務質量相應的提高。

2 流媒體直播系統設計設計方案

流媒體直播系統方案中,客戶端不僅可以從服務器那里直接取得數據,還可以從彼此相連的其他客戶端處獲取流媒體數據。因此,只需要系統中的部分客戶端從服務器獲取流媒體數據進行播放,其余的客戶端通過彼此建立的連接便可以實現播放了。設計的流媒體直播系統如圖1 所示。

2.1 服務器設計

服務端程序運行在具有獨立公網IP地址的服務器上。和每個在線的用戶都保持一個TCP連接。提供的主要功能如下。

1) 將非壓縮的音視頻數據源編碼成流媒體支持的格式數據,比如ASF文件格式、RM文件格式、QuickTime文件格式等。

2) 為了保證視頻播放的時延和傳輸的效率,必須將數據量很大的流媒體數據分割成合適大小數據塊 Block,然后把Block傳送給媒體數據緩沖區。

3) 存儲流媒體數據包,并且定時更新數據緩沖區,為前來請求的客戶端提供服務。

4) 監聽和管理客戶端數據請求,建立TCP連接,并開放線程,發送相應的媒體數據。

5) 響應節點請求并更新節點列表,這包括處理新節點的加入、退出、隔離,為節點隨機選擇伙伴節點。

2.2 客戶端設計

客戶端程序運行在用戶的終端機器上,響應用戶的命令。具體需要提供的功能如下。

1) 負責響應客戶端其他節點請求并更新節點列表,維護P2P網絡。

2) 負責伙伴節點的加入與退出,更新自己的伙伴列表,建立本節點與伙伴節點的連接。

3) 負責接收客戶端伙伴管理模塊類的信息,開放流媒體數據傳輸線程,控制并撤銷線程。

4) 負責接收服務器或伙伴節點傳輸來的流媒體數據,保存、更新本節點的流媒體數據。

5) 負責接收流媒體數據、播放流媒體數據,實現流媒體文件的播放。

6) 檢測目前的網絡動態狀況,用于QoS控制。

3 流媒體直播系統中的關鍵技術

要保證P2P網絡中流媒體直播系統能正常的運行,必須解決以下幾個關鍵問題。

3.1 節點管理

節點管理是P2P網絡的基礎,成熟穩定的流媒體直播系統需要完善穩定的節點管理體系。

1) 節點的加入

新節點n試圖加入時,首先向服務器S請求服務,如果服務器有足夠的資源,則服務器向節點n提供服務,否則服務器S把n的請求轉發給它的某個直接的子節點X,X根據自己的資源情況判斷是否給n提供服務,以此類推,直到n找到一個父節點,轉發有如下策略:

① 隨機選擇:X從它的子節點中隨機選擇一個節點T作為目標節點,把n的請求發給T。

② Round-Robin: X維護它所有子節點的隊列,把新節點的請求依次轉發給各個子節點。

③ 根據物理位置選擇:新節點n發出加入請求時附帶本身的路由信息,X根據n的路由信息進行轉發。

④ 根據帶寬選擇:新節點n發出加入請求時附帶本身的帶寬信息,如果n的帶寬比X小,則用上述策略加入,否則,X把自己從父節點P斷開,把n重定向給P,然后把自己重定向給n。

2) 節點正常退出

當一個節點退出時,首先會向服務器節點列表中的節點發送一個退出請求,由于該節點的退出,可能會影響到其鄰居節點列表中的節點,所以,要將鄰居節點列表中的節點重定向到服務器節點列表中的節點或服務器。同時,收到退出請求的節點會簡單的從自己的節點列表中刪除要退出的節點。

3) 節點的非正常中斷檢測

由于某種原因,節點可能在任意時刻在沒有發送任何消息的情況下突然中斷離開。系統為了檢測到這種狀況,每個節點需要周期性為其鄰居節點列表中的節點發送消息,以說明自己能夠正常地工作。如果鄰居節點列表中的節點在一段時間內并沒有收到某節點的消息,則認為該節點非正常的退出,同時將該節點從節點列表中刪除。

4) 重定向機制

重定向是節點管理中有效改變拓撲結構的方法,它通過媒體命令包中的控制部分傳遞消息,找到具有剩余帶寬資源的節點建立數據傳輸。具體重定向機制如下:

① 假設節點P沒有足夠的剩余帶寬資源為節點C提供服務,首先節點P在其所維護的節點列表中尋找具有足夠帶寬資源,并能為節點C提供服務的節點,設為節點D,然后節點P通過控制消息告訴節點C,節點D可以提供它所需要的服務。

② 節點C在接到重定向的消息后,首先關閉與節點P的數據傳輸會話,然后再跟節點D建立相同的媒體數據流傳輸會話。

③ 節點C與節點D建立媒體數據流傳輸會話后,開始進行媒體數據的傳輸,至此,重定向過程完成。

3.2 流媒體數據傳輸

1) 傳輸協議

RTP /RTCP是用于網絡流媒體實時傳輸的協議。RTP(實時傳輸協議)是一種提供端對端的實時傳輸協議,RTCP(實時傳輸控制協議)用于統計、管理和控制RTP的數據包的傳輸。RTP /RTCP為流媒體的傳輸提供了網絡承載平臺,因此,在本系統采用RTP /RTCP作為傳輸協議。

在服務器端,通過DirectShow的源過濾器從計算機的視、音頻采集設備中讀取數據,然后通過變換過濾器把數據壓縮編碼成ASF格式,然后再封裝到RTP包,通過UDP發送給與自己直接相連接的客戶端。

在客戶端,客戶接收到RTP數據包,從其中把流媒體數據提取出來,然后緩存到自己的緩存區,同時,還要把數據轉發給自己的子節點。子節點接收到數據后也繼續緩存和轉發,依此類推直到所有的子節點都接收到父節點發來的流媒體數據。客戶端通過源過濾器從自己的緩存區中讀取流媒體數據,再通過表現過濾器把流媒體數據送往聲卡和顯卡播放。

2) 傳輸策略

數據傳輸策略管理是整個流媒體直播系統的核心和關鍵,流媒體應用傳輸的數據具有優先級關系,當前正在播放和即將播放的數據具有較高的優先級,而一段時間后才會播放的數據則具有較低的優先級,在數據傳輸的過程中,具有較高優先級的數據具有優先查詢權和傳輸權,并且為了保證實時性,優先級高的數據具有一定的傳輸冗余。

在基于P2P的流媒體系統中,當要直播放某一媒體文件時,它首先調用P2P網絡的資源服務發現可能的資源供應節點,并通過一定的策略選擇實際的資源供應節點,這些節點提供的出口帶寬能夠滿足該媒體文件的播放需求,各供應節點按照一定的策略組織這些節點進行同步傳輸,將媒體文件并行傳輸到請求節點上。當流媒體系統播放開始或者掉線后重新播放時,存在一個緩沖延遲,在現有的系統中,為了保證播放的流暢性,延遲一般在2分鐘以上,延遲高一方面是分發和定位協議的原因,另一方面是由于沒有做傳輸優化。在流媒體數據傳輸過程中,根據當前的延遲情況,需要動態調整傳輸策略。

3.3 流媒體處理技術

流媒體數據的采集和播放采用了DirectShow開發包。DirectShow是微軟公司提供的一套在Windows平臺上進行流媒體處理的開發包,與DirectX開發包一起發布。DirectShow為多媒體流的捕捉和回放提供了強有力的支持。運用DirectShow可以很方便地從支持WDM驅動模型的采集卡上捕獲數據,并且進行相應的后期處理乃至存儲到文件中。它廣泛地支持各種媒體格式,包括ASF,MPEG, AVI, MP3,WAVE等等,使得多媒體數據的回放變得容易。另外,DirectShow還集成了DirectX其它部分(比如DirectDraw,DirectSound)的技術,直接支持DVD的播放、視頻的非線性編輯以及與數字攝像機的數據交換。DirectShow提供的是一種開放式的開發環境,可以根據自己的需要定制自己的組件。

本系統的服務器端和客戶端采用DirectShow開發。DirectShow使用一種過濾圖表模型來管理整個數據流的處理過程。過濾器按功能分為三類:源過濾器,變換過濾器和表現過濾器。源顧慮器負責獲得數據,可以從文件或外設中提取音視頻數據;變換過濾器負責數據格式的變換,表現過濾器負責數據的最終去處,將數據送到音視頻接口設備或以文件的形式保存。

3.4 緩存管理

流媒體文件在傳輸時候要先分解成許多數據包,各個包所選擇的路由可能不盡相同,因此各個數據包到達客戶端的時間延遲不等;再加上P2P網絡的動態性,要保證流媒體數據的連續性和穩定性,則需要流媒體系統中的每個節點都具有一定的流媒體數據緩沖區,即采用緩存機制來彌補延遲和抖動的影響,并保證數據包的順序正確,從而使媒體數據能連續輸出。

在本系統設計中,采用一種環式緩存區,把節點獲得的流媒體數據緩存到本地,把緩存區分為播放區和回收區兩個部分。緩沖區采用按時間分塊的策略:將固定時間(比如1秒鐘)接收到的數據流劃分為一塊。整個緩存區分為60塊,每個緩存塊存放1秒的數據,即整個緩存區可以存放60秒的數據。其中播放區分為30個緩存塊,每個緩存塊緩存一秒鐘的流媒體數據片段。緩存區中的數據按照等時間間隔的數據塊存放。

回收區的設計和播放區的設計一樣,只是回收區中存放的是一些剛剛播放后的數據,以防止剛剛向下級節點發出有數據的通知但數據立刻被淘汰的情況發生。

3.5 安全控制

網絡安全是P2P流媒體直播系統的基本要求,一方面要防止非法用戶的入侵,另一方面要防止點對點的病毒傳播,侵入未共享的文件資源,侵犯隱私權。

在P2P流媒體直播系統內部,采用用戶分級授權體系,限制用戶的系統資源訪問,阻止非法訪問。當普通節點向上一級發出直播的請求時,同時將用戶權限證明也打在請求的包里發出去,這樣上一級節點收到請求后就可以判斷發出直播請求的是客戶還是非法入侵。如果客戶終端發出的用戶權限證明錯誤次數超過設定的次數 (比如3次),則把該客戶的端口給暫時封起來,以免造成惡劣的影響。在直播過程中,為了避免病毒傳播情況的出現,網絡監測節點MSG在發送的數據包中檢測是否有病毒存在,網絡監測節點MSG對直播用戶和發送端之間傳送的數據包每隔一段時間進行檢測,一旦在發送的數據包中發現攜帶病毒,立刻停止兩個端之間的傳送,同時要馬上向系統節點進行報告,把發送病毒的節點從網絡中動態刪除或者封掉其端口。再向已經接收到部分數據包的請求直播的節點發送下載失敗的提示信息,并提示發現病毒,建議用戶把已經下載部分刪除。用戶節點繼續發起直播請求,上一級節點重新為其尋找路由。

4 結束語

寬帶的普及和通信網絡技術的迅速發展,網絡多媒體服務得到廣泛應用,視頻直播服務作為其中的重要組成部分,具有廣闊的應用前景。然而由于流媒體對流量帶寬的資源需求很大,解決服務器端流量帶寬瓶頸成為促進流媒體應用發展的首要問題。P2P技術的發展,為解決流媒體服務器的瓶頸問題提供了新的途徑,其充分利用每個節點的空閑資源分擔服務器負載,并且具有良好的擴展性,能支持大數量級的用戶同時在線。

參考文獻:

[1] 黃澤,唐鳳仙.P2P流媒體系統概述[J].河池學院學報,2008(2).

[2] 王立鵬,陸際光.淺談流媒體技術及其基于P2P的應用[J].電腦知識與技術,2007(10).

[3] 王鍵.基于p2p的網絡直播系統的設計與實現[J].電腦知識與技術,2007(16).

[4] 張志遠.基于Gnutella模型的P2P網絡電視的實現[J].中國民航大學學報,2007(2).

主站蜘蛛池模板: 刘亦菲一区二区在线观看| 亚洲高清在线天堂精品| 波多野结衣在线一区二区| 亚洲精品自拍区在线观看| 国产毛片基地| 91精品视频网站| 久久久久国产一级毛片高清板| 久久精品免费看一| 国产亚洲成AⅤ人片在线观看| 波多野衣结在线精品二区| 国产乱子伦手机在线| 男人的天堂久久精品激情| 久久精品91麻豆| 欧美色视频在线| 国产精品成人免费视频99| 国产在线精品网址你懂的 | 日本三级欧美三级| 亚洲无线视频| 伊人激情综合网| 伊人成人在线| 亚洲成人高清在线观看| 免费久久一级欧美特大黄| 夜夜操狠狠操| 高潮毛片免费观看| 欧美综合一区二区三区| 亚洲美女久久| 欧美日韩精品一区二区在线线| 国产网站在线看| 亚洲欧美在线综合图区| 欧美色综合网站| 福利国产在线| 欧美成人日韩| 国产毛片高清一级国语 | 日韩天堂视频| 一区二区午夜| 国产麻豆精品手机在线观看| 2021精品国产自在现线看| 精品国产网| 欧美专区在线观看| 久久精品视频亚洲| 欧美亚洲香蕉| 久久久黄色片| 国产呦视频免费视频在线观看 | 日本www在线视频| 国产真实二区一区在线亚洲| 国产精品久久久久久久久久久久| 国产欧美日韩综合在线第一| 老司机午夜精品网站在线观看| 欧美精品1区2区| 久久黄色毛片| 色综合天天综合中文网| 亚洲成人网在线播放| 日韩 欧美 国产 精品 综合| 日韩小视频网站hq| 国产精品久久久久久久久久98| 中文字幕有乳无码| 成年午夜精品久久精品| 性视频久久| 亚洲午夜18| 亚洲一区二区无码视频| 国产在线精彩视频二区| 亚洲色欲色欲www在线观看| 精品人妻AV区| 激情無極限的亚洲一区免费| 国产极品粉嫩小泬免费看| 久青草免费在线视频| 精品国产aⅴ一区二区三区| 国产午夜福利在线小视频| 久久精品中文字幕少妇| 亚洲精品爱草草视频在线| 男人天堂亚洲天堂| 亚洲欧美综合另类图片小说区| 亚洲国产高清精品线久久| 国产精品自拍合集| 欧美国产精品不卡在线观看| 九九热这里只有国产精品| 成人av专区精品无码国产 | 成人小视频网| 欧美日本在线观看| 亚洲制服丝袜第一页| 欧美成人亚洲综合精品欧美激情| 久久99精品久久久久纯品|