两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于應(yīng)用層組播算法的流媒體傳輸方案的制作方法

文檔序號:7743320閱讀:180來源:國知局
專利名稱:一種基于應(yīng)用層組播算法的流媒體傳輸方案的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于計算機(jī)多媒體技術(shù)領(lǐng)域,涉及應(yīng)用層組播算法,覆蓋網(wǎng)技術(shù),流媒體傳
輸技術(shù)等方面。
背景技術(shù)
隨著網(wǎng)絡(luò)和多媒體技術(shù)的發(fā)展,傳統(tǒng)的網(wǎng)頁瀏覽、Email等服務(wù)已經(jīng)滿足不了人們 日益增長的交互需求,流媒體的應(yīng)用漸漸成為關(guān)注的焦點(diǎn)。如多媒體新聞發(fā)布、在線直播、 網(wǎng)絡(luò)視頻廣告、電子商務(wù)、視頻點(diǎn)播、遠(yuǎn)程教育、網(wǎng)絡(luò)電臺、實時視頻會議等。對于這類高帶 寬的流媒體應(yīng)用而言,利用有限的資源為更多的用戶提供可靠的高質(zhì)量多媒體音視頻交互 服務(wù)是此類系統(tǒng)的主要目標(biāo)。要實現(xiàn)該目標(biāo)其中一個關(guān)鍵問題就是如何有效地的為用戶在 網(wǎng)絡(luò)上傳輸流媒體數(shù)據(jù)。 二十世紀(jì)八十年代,研究人員提出了 IP組播的概念。IP組播是一種允許一個 或多個發(fā)送者(組播源)發(fā)送單一的數(shù)據(jù)包到多個接收者(一次的,同時的)的網(wǎng)絡(luò)技 術(shù)。組播可以大大的節(jié)省網(wǎng)絡(luò)帶寬,因為無論有多少個目標(biāo)地址,在整個網(wǎng)絡(luò)的任何一條 鏈路上只傳送單一的數(shù)據(jù)包。雖然IP組播能夠高效地進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),然而由于一些技術(shù) 和非技術(shù)的原因阻礙了它在Internet中的配置,因此研究人員提出了應(yīng)用層組播(ALM : ApplicationLayer Multicast)作為IP組播服務(wù)的一個替代方案。與IP組播最大的不同 在于,應(yīng)用層組播組在應(yīng)用層實現(xiàn)組播服務(wù)而不是網(wǎng)絡(luò)層,也就是說組播服務(wù)在端節(jié)點(diǎn)中 而不是在路由器中實現(xiàn)。因此與IP組播相比,應(yīng)用層組播服務(wù)的配置不需要改變底層網(wǎng)絡(luò) 設(shè)配,更具有可行性。 自應(yīng)用層組播提出以來,研究人員提出了各種各樣的組播算法。根據(jù)這些算法 中構(gòu)建轉(zhuǎn)發(fā)樹的策略,可以將它們分成集中式和分布式。分布式協(xié)議中又可以根據(jù)控制 拓?fù)浜蛿?shù)據(jù)拓?fù)鋬煞N結(jié)構(gòu)的建立先后關(guān)系進(jìn) 一 步劃分成網(wǎng)優(yōu)先(mesh-f irst),樹優(yōu)先 (tree-first),隱策略(implicit)三種。其中代表性的協(xié)議有Narada, Yoid, HTMP, NICE。 盡管應(yīng)用層組播解決了 IP組播存在的一些問題,然而相比IP組播,ALM增大了節(jié)點(diǎn)間的傳 輸延遲以及鏈路負(fù)載,對于實時性要求高或者流量負(fù)載大的應(yīng)用具有一定的制約性。

發(fā)明內(nèi)容
根據(jù)流媒體數(shù)據(jù)傳輸?shù)母邘?,低時延的要求,設(shè)計了一個結(jié)合IP組播及應(yīng)用層 組播的傳輸方案,同時該方案支持節(jié)點(diǎn)對媒體數(shù)據(jù)的訂閱功能。主要包括以下步驟
步驟1.新節(jié)點(diǎn)N在加入一個組M之前,首先發(fā)送組播報文,探測是否有其它組播 成員;如果沒有收到回復(fù),將自己設(shè)為代表節(jié)點(diǎn),進(jìn)行步驟2,否則新節(jié)點(diǎn)N將收到代表節(jié)點(diǎn) 的信息,進(jìn)行保存后,轉(zhuǎn)到步驟1. 1 ; 步驟1. 1.向代表節(jié)點(diǎn)發(fā)送注冊報文;同步進(jìn)行步驟1. 2和1. 3直到節(jié)點(diǎn)N退出為 止; 步驟1. 2.與代表節(jié)點(diǎn)互發(fā)心跳報文;如果代表節(jié)點(diǎn)正常退出或異常退出,那么組M內(nèi)部節(jié)點(diǎn)進(jìn)行重新選舉,選出新的代表節(jié)點(diǎn),如果節(jié)點(diǎn)N被選為新的代表節(jié)點(diǎn),進(jìn)行步驟
2,否則轉(zhuǎn)到步驟1. 1 ;轉(zhuǎn)回步驟1. 2 ; 步驟1. 3.監(jiān)聽報文;對于收到的報文,根據(jù)報文類型分別進(jìn)行以下操作后,轉(zhuǎn)回步驟1. 3 ; >如果收到代表節(jié)點(diǎn)傳來的數(shù)據(jù)流,向本地轉(zhuǎn)發(fā); >如果收到本地傳來的數(shù)據(jù)流,向代表節(jié)點(diǎn)以及IP組播域內(nèi)其它節(jié)點(diǎn)轉(zhuǎn)發(fā);
>對于其它類型報文,丟棄,不作處理; 步驟2.向匯聚節(jié)點(diǎn)詢問該組M的所有節(jié)點(diǎn)信息列表T以及當(dāng)前采用的協(xié)議類型P,如果返回空,則將節(jié)點(diǎn)N設(shè)為樹根節(jié)點(diǎn),轉(zhuǎn)到步驟4,否則進(jìn)行步驟3 ;
步驟3.根據(jù)協(xié)議類型P運(yùn)行相應(yīng)的算法,根據(jù)算法向列表T中的節(jié)點(diǎn)發(fā)出連接請求,直到有一個節(jié)點(diǎn)接受請求為止,如果所有節(jié)點(diǎn)拒絕N的請求則將N設(shè)為樹根節(jié)點(diǎn);
步驟4.加入到組M以后,向匯聚節(jié)點(diǎn)注冊信息;同步進(jìn)行步驟5和步驟6,直到節(jié)點(diǎn)N退出為止; 步驟5.和鄰居節(jié)點(diǎn)發(fā)送心跳報文;如果在一段時間內(nèi)沒有收到某個鄰居節(jié)點(diǎn)B的報文,則報告給匯聚節(jié)點(diǎn),并且刪除該鄰居及其下游節(jié)點(diǎn)信息;如果B為N的上游節(jié)點(diǎn),回到步驟3 ;轉(zhuǎn)回步驟5 ; 步驟6.監(jiān)聽報文;對于收到的報文,根據(jù)報文類型分別進(jìn)行以下操作后轉(zhuǎn)回步驟6 ; 2)對于轉(zhuǎn)發(fā)樹中鄰居節(jié)點(diǎn)傳來的數(shù)據(jù) >如果收到上游節(jié)點(diǎn)傳來的數(shù)據(jù)流,則分別進(jìn)行如下判斷-如下游分支中有訂閱該流的節(jié)點(diǎn),則將數(shù)據(jù)流向該分支進(jìn)行轉(zhuǎn)發(fā); _如節(jié)點(diǎn)N有訂閱該流,則向本地進(jìn)行轉(zhuǎn)發(fā);-如所在IP組播域有其它節(jié)點(diǎn)訂閱,則進(jìn)行組播轉(zhuǎn)發(fā); >如果收到通訊報文,根據(jù)協(xié)議類型P來進(jìn)行運(yùn)算,修改當(dāng)前狀態(tài),維護(hù)覆蓋網(wǎng)結(jié)構(gòu); >如果收到訂閱報文,記錄下訂閱節(jié)點(diǎn)訂閱的音視頻流信息,以及從哪個鄰居B中
接收到的該報文,然后將該訂閱報文向除了 B以外的所有鄰居進(jìn)行轉(zhuǎn)發(fā); 2)對于本地傳來的數(shù)據(jù),操作有 >如果收到本地的數(shù)據(jù)流,則分別進(jìn)行如下判斷-若上下游分支有訂閱本地數(shù)據(jù)的,將數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的鄰居節(jié)點(diǎn);-判斷所在IP組播域中有其它節(jié)點(diǎn)中是否有訂閱,有則進(jìn)行組播轉(zhuǎn)發(fā); ^如果收到本地節(jié)點(diǎn)的通訊報文,根據(jù)協(xié)議類型P進(jìn)行相應(yīng)操作; >如果收到本地的訂閱請求,轉(zhuǎn)發(fā)給所有的鄰居以及同一 IP組播孤島中的非代表
節(jié)點(diǎn); 3)對于處于同一組播孤島傳來的其他非代表節(jié)點(diǎn)傳來的數(shù)據(jù),操作有 >如果收到IP組播域里面的其它非代表節(jié)點(diǎn)的數(shù)據(jù)流-向所有訂閱了該流的分支發(fā)送;-如果自己有訂閱該數(shù)據(jù)流,則向本地發(fā)送; >如果收到非代表節(jié)點(diǎn)的通訊報文,根據(jù)協(xié)議類型P具體執(zhí)行相應(yīng)操作,轉(zhuǎn)發(fā)給匯聚節(jié)點(diǎn); >如果收到非代表節(jié)點(diǎn)的訂閱報文,轉(zhuǎn)發(fā)給其它對等節(jié)點(diǎn);
4)對于匯聚節(jié)點(diǎn)傳來的數(shù)據(jù),操作有 >如果收到匯聚節(jié)點(diǎn)切換算法的報文,刪除所有的鄰居信息,隨機(jī)產(chǎn)生一個數(shù)1~, 在等待r秒后,根據(jù)新的算法,轉(zhuǎn)到步驟2 ;
6)對于樹根節(jié)點(diǎn)傳來的數(shù)據(jù),操作有 >如果樹根退出,那么樹根的子節(jié)點(diǎn)向匯聚節(jié)點(diǎn)申請成為新的樹根節(jié)點(diǎn)。匯聚節(jié)點(diǎn) 選擇ID最小的子節(jié)點(diǎn)作為新的樹根,其它未被選中節(jié)點(diǎn)作為新的樹根節(jié)點(diǎn)的子節(jié)點(diǎn);
>如果收到樹根節(jié)點(diǎn)的優(yōu)化請求報文,根據(jù)協(xié)議P計算并優(yōu)化轉(zhuǎn)發(fā)樹的結(jié)構(gòu)。


圖1為多媒體數(shù)據(jù)通過覆蓋網(wǎng)傳輸圖。 圖2為Yoid算法中新節(jié)點(diǎn)加入的流程圖。 圖3為Yoid算法中新節(jié)點(diǎn)加入過程中報文的交互流程圖。 圖4為節(jié)點(diǎn)處理鄰居節(jié)點(diǎn)退出時的流程圖。 圖5為節(jié)點(diǎn)的數(shù)據(jù)轉(zhuǎn)發(fā)流程圖。
具體實施例方式該方案主要可分為五個部分完成IP組播探測模塊,組網(wǎng)算法模塊,通信模塊,音 視頻數(shù)據(jù)的傳輸,節(jié)點(diǎn)信息管理模塊。
IP組播探測 IP組播探測是為了充分利用IP組播孤島。由于IP組播能夠有效節(jié)省帶寬,因此我 們將所有處于一個IP組播域的節(jié)點(diǎn)劃分成一個獨(dú)立自治域,從中選出一個代表節(jié)點(diǎn)R( — 般采用最早加入組的節(jié)點(diǎn))來參加覆蓋網(wǎng)的搭建,也就是說將整個自治域看成覆蓋網(wǎng)中的 一個節(jié)點(diǎn)。該自治域內(nèi)的所有節(jié)點(diǎn)在域內(nèi)用組播的方式進(jìn)行數(shù)據(jù)的傳輸,發(fā)給其它域外的
節(jié)點(diǎn)的數(shù)據(jù),首先傳給R,然后由R進(jìn)行轉(zhuǎn)發(fā)。域外發(fā)給域內(nèi)節(jié)點(diǎn)的數(shù)據(jù)也是由R進(jìn)行轉(zhuǎn)發(fā)。 為了防止因R節(jié)點(diǎn)故障而產(chǎn)生的傳輸錯誤,設(shè)立后備代理節(jié)點(diǎn),一但代表節(jié)點(diǎn)出故障,后備
代理節(jié)點(diǎn)將成為新的代表節(jié)點(diǎn)。 探測的過程如下新節(jié)點(diǎn)N在加入之前首先發(fā)送組播報文,如果沒有節(jié)點(diǎn)應(yīng)答說 明沒有其它的IP組播成員,因此N把自己的設(shè)置為域內(nèi)代表節(jié)點(diǎn)類型,然后開始加入覆蓋 網(wǎng)的過程。反之如果有其它節(jié)點(diǎn)的應(yīng)答信息,N將應(yīng)答消息中的代表節(jié)點(diǎn)的信息保存,并與 其開始發(fā)送周期性的更新報文,以便代表節(jié)點(diǎn)正?;虍惓M顺鰰r能快速檢測到并選舉出新 的代表節(jié)點(diǎn)。如果節(jié)點(diǎn)不是代表節(jié)點(diǎn)的話,那么不需要再進(jìn)行加入到轉(zhuǎn)發(fā)樹的過程。它在組 播域內(nèi)通過組播方式進(jìn)行收發(fā)數(shù)據(jù),而與域外的節(jié)點(diǎn)的數(shù)據(jù)收發(fā)則通過代表節(jié)點(diǎn)的轉(zhuǎn)發(fā)。
選舉新代表節(jié)點(diǎn)的時候,所有域內(nèi)節(jié)點(diǎn)相互比較各自的ID(每個節(jié)點(diǎn)都有唯一的 標(biāo)識,在加入的時候由匯聚節(jié)點(diǎn)分配),ID小的成為新的代表節(jié)點(diǎn)。
組網(wǎng)算法模塊 自組織算法是端系統(tǒng)組網(wǎng)的核心功能和機(jī)制,自組織算法的主要功能包括周期 性地交換節(jié)點(diǎn)狀態(tài)信息,通報組成員狀態(tài);周期性地收集網(wǎng)絡(luò)邏輯連接的帶寬、時延等動態(tài)
6參數(shù);動態(tài)地調(diào)整疊加網(wǎng)拓?fù)洹3S玫慕M網(wǎng)算法有Narada,Yoid,HMTP等。圖2中,以Yoid 為例,說明組網(wǎng)的一般過程。首先向匯聚節(jié)點(diǎn)(設(shè)為已知的恥ll-known節(jié)點(diǎn),可以手動配 置。由于匯聚節(jié)點(diǎn)只負(fù)責(zé)維護(hù)組員的信息,而不參與到媒體數(shù)據(jù)的轉(zhuǎn)發(fā),因此匯聚節(jié)點(diǎn)不會 成為系統(tǒng)的瓶頸)詢問當(dāng)前組內(nèi)所有節(jié)點(diǎn)的信息以及協(xié)議信息。如果返回的列表為空,就 宣稱自己為樹根節(jié)點(diǎn)。否則的話將列表上的節(jié)點(diǎn)作為自己的潛在父節(jié)點(diǎn),進(jìn)行度量,度量的 標(biāo)準(zhǔn)可以是時延的大小等。然后根據(jù)度量值的大小來進(jìn)行排序,并依次進(jìn)行詢問,看是否能 加入,如果得到同意,則加入到它的孩子列表中,否則繼續(xù)向下詢問,直到有節(jié)點(diǎn)接受自己 成為孩子節(jié)點(diǎn)。加入成功后詢問并記錄下從樹根到自己的路徑信息。開始監(jiān)聽其它節(jié)點(diǎn)的 連接請求以及音視頻數(shù)據(jù)端口,另外與自己的鄰居節(jié)點(diǎn)(包括父節(jié)點(diǎn)與子節(jié)點(diǎn))進(jìn)行心跳 報文的交換,以便及時發(fā)現(xiàn)節(jié)點(diǎn)退出或者變化的信息,動態(tài)的調(diào)整位置。在加入成功后,有 的協(xié)議會進(jìn)行優(yōu)化,例如Yoid算法會周期性重復(fù)加入的過程來找到"更好"的父節(jié)點(diǎn)。
為了能方便的切換算法,對不同算法進(jìn)行測試,以便為特定的應(yīng)用上層找到相對 最合適的算法,在匯聚節(jié)點(diǎn)上增加一個切換算法的功能。 一旦響應(yīng)用戶的要求進(jìn)行算法轉(zhuǎn) 換,匯聚節(jié)點(diǎn)將把改組的組員信息清空,然后通知組內(nèi)的所有用戶依照新的算法協(xié)議重新 進(jìn)行轉(zhuǎn)發(fā)樹的搭建。另外為了方便擴(kuò)展算法,提供了一個統(tǒng)一的接口類,只要完成該類的所 有成員函數(shù),就能加入一種新的算法。為新算法的研究提供了便利。
通信模塊 節(jié)點(diǎn)與節(jié)點(diǎn)間的通信是通過前面提到過通信報文來實現(xiàn)的。通信報文可以根據(jù)通 信對象劃分成三類一是對等節(jié)點(diǎn)之間的通信報文,二是節(jié)點(diǎn)與匯聚節(jié)點(diǎn)之間的通信報文, 三是IP組播域內(nèi)節(jié)點(diǎn)與代表節(jié)點(diǎn)之間的通信報文。通過這些報文的交換來完成了組網(wǎng)的 功能,也可以說組網(wǎng)的過程就是各種節(jié)點(diǎn)進(jìn)行報文交互的過程。下面以Yoid中節(jié)點(diǎn)加入過 程為例,來說明節(jié)點(diǎn)間是怎么通過報文來進(jìn)行交互的。 圖3中的ALMServer也就是匯聚節(jié)點(diǎn)。首先新成員N向匯聚節(jié)點(diǎn)發(fā)送成員列表詢 問請求報文來獲得其它組員的信息。得到列表后,節(jié)點(diǎn)N向所有節(jié)點(diǎn)發(fā)送加入請求報文,節(jié) 點(diǎn)根據(jù)自己的情況(例如是不是會超過最大出度值)來決定是否能接受N的加入請求,N從 能允許自己加入的節(jié)點(diǎn)中選擇一個最好的節(jié)點(diǎn)("最好"的標(biāo)準(zhǔn)是根據(jù)不同算法不同應(yīng)用 來定,比如時延最短),發(fā)出連接請求,如果節(jié)點(diǎn)同意的話,那么N加入成功,向匯聚節(jié)點(diǎn)發(fā) 送注冊報文,并且將該節(jié)點(diǎn)加入到自己的鄰居列表中,開始向它周期性地發(fā)送更新報文。
音視頻數(shù)據(jù)傳輸 節(jié)點(diǎn)在運(yùn)行應(yīng)用層組播算法建立轉(zhuǎn)發(fā)樹后,每個節(jié)點(diǎn)保存下自己的父節(jié)點(diǎn)和子結(jié) 點(diǎn)集合。父節(jié)點(diǎn)和子結(jié)點(diǎn)的總和就是該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。這部分主要包括兩條數(shù)據(jù)流一 是把從本地音視頻組件傳輸過來的音視頻數(shù)據(jù)轉(zhuǎn)發(fā)給自己所有的鄰居節(jié)點(diǎn)。二是將從鄰居 節(jié)點(diǎn)B接收到的音視頻數(shù)據(jù)傳給本地組件,并且轉(zhuǎn)發(fā)給除B以外的其它鄰居節(jié)點(diǎn)以及所在 的IP組播域中的其它節(jié)點(diǎn)。 節(jié)點(diǎn)可以根據(jù)自己的需求訂閱某些節(jié)點(diǎn)的音視頻數(shù)據(jù),而節(jié)點(diǎn)在轉(zhuǎn)發(fā)媒體數(shù)據(jù)的 時候只有在下游(對于雙向樹,數(shù)據(jù)流也可以是從下游流向上游)有訂閱的節(jié)點(diǎn)時才轉(zhuǎn)發(fā) 給相應(yīng)的鄰居節(jié)點(diǎn),否則的話就不予轉(zhuǎn)發(fā)。訂閱機(jī)制的實現(xiàn)是通過訂閱報文來完成的。每個 節(jié)點(diǎn)都保留了所有節(jié)點(diǎn)的信息,可以對其中的任意一個節(jié)點(diǎn)進(jìn)行訂閱,然后將該訂閱信息 在整棵轉(zhuǎn)發(fā)樹中進(jìn)行廣播。收到該訂閱報文的節(jié)點(diǎn)都會在本地的訂閱映射表中記錄下來。
對于IP組播域內(nèi)的非代表節(jié)點(diǎn),與外界數(shù)據(jù)的轉(zhuǎn)發(fā)要通過代表節(jié)點(diǎn)來完成。代表 節(jié)點(diǎn)會記錄域內(nèi)所有節(jié)點(diǎn)的信息,并將這些信息告知給匯聚節(jié)點(diǎn)。其他節(jié)點(diǎn)要發(fā)送給域內(nèi) 節(jié)點(diǎn)的數(shù)據(jù)首先會傳輸給代表節(jié)點(diǎn),然后由代表節(jié)點(diǎn)通過組播的方式進(jìn)行轉(zhuǎn)發(fā)。域內(nèi)節(jié)點(diǎn) 要發(fā)送數(shù)據(jù),通過組播的方式發(fā)送,代表節(jié)點(diǎn)收到后,查詢是否有其它節(jié)點(diǎn)訂閱,有的話轉(zhuǎn) 發(fā)給相應(yīng)的鄰居節(jié)點(diǎn)。
節(jié)點(diǎn)信息管理模塊 為了實現(xiàn)訂閱機(jī)制,每個節(jié)點(diǎn)都會記錄下自己所在組的組員的信息,這些信息包 括節(jié)點(diǎn)的ID,節(jié)點(diǎn)的類型(包括樹根,匯聚節(jié)點(diǎn),代表節(jié)點(diǎn),域內(nèi)節(jié)點(diǎn)等類型),與節(jié)點(diǎn)的關(guān) 系(父親,祖父,兒子等關(guān)系),訂閱的數(shù)據(jù)流等。如果有節(jié)點(diǎn)加入或者退出,數(shù)據(jù)流的訂閱 和退訂等,都要及時地進(jìn)行更新。 匯聚節(jié)點(diǎn)會記錄所有組的組員信息,這些信息包括組ID號,節(jié)點(diǎn)ID號,節(jié)點(diǎn)類型 等。除此之外匯聚節(jié)點(diǎn)還會記下每個代表節(jié)點(diǎn)所對應(yīng)的域里面包含的節(jié)點(diǎn)信息。每個節(jié)點(diǎn) 在成功加入后都會給匯聚節(jié)點(diǎn)發(fā)送注冊信息,離開的時候發(fā)送離開報文,匯聚節(jié)點(diǎn)根據(jù)這 些消息來及時更新記錄表項。對于異常退出的節(jié)點(diǎn),一旦它的鄰居發(fā)現(xiàn)后會馬上報告給匯 聚節(jié)點(diǎn)。
權(quán)利要求
基于應(yīng)用層組播的流媒體傳輸方法,主要包括以下步驟步驟1.新節(jié)點(diǎn)N在加入一個組M之前,首先發(fā)送組播報文,探測是否有其它組播成員;如果沒有收到回復(fù),將自己設(shè)為代表節(jié)點(diǎn),進(jìn)行步驟2,否則新節(jié)點(diǎn)N將收到代表節(jié)點(diǎn)的信息,進(jìn)行保存后,轉(zhuǎn)到步驟1.1;步驟1.1.向代表節(jié)點(diǎn)發(fā)送注冊報文;同步進(jìn)行步驟1.2和1.3直到節(jié)點(diǎn)N退出為止;步驟1.2.與代表節(jié)點(diǎn)互發(fā)心跳報文;如果代表節(jié)點(diǎn)正常退出或異常退出,那么組M內(nèi)部節(jié)點(diǎn)進(jìn)行重新選舉,選出新的代表節(jié)點(diǎn),如果節(jié)點(diǎn)N被選為新的代表節(jié)點(diǎn),進(jìn)行步驟2,否則轉(zhuǎn)到步驟1.1;轉(zhuǎn)回步驟1.2;步驟1.3.監(jiān)聽報文;對于收到的報文,根據(jù)報文類型分別進(jìn)行以下操作后,轉(zhuǎn)回步驟1.3;如果收到代表節(jié)點(diǎn)傳來的數(shù)據(jù)流,向本地轉(zhuǎn)發(fā);如果收到本地傳來的數(shù)據(jù)流,向代表節(jié)點(diǎn)以及IP組播域內(nèi)其它節(jié)點(diǎn)轉(zhuǎn)發(fā);對于其它類型報文,丟棄,不作處理;步驟2.向匯聚節(jié)點(diǎn)詢問該組M的所有節(jié)點(diǎn)信息列表T以及當(dāng)前采用的協(xié)議類型P,如果返回空,則將節(jié)點(diǎn)N設(shè)為樹根節(jié)點(diǎn),轉(zhuǎn)到步驟4,否則進(jìn)行步驟3;步驟3.根據(jù)協(xié)議類型P運(yùn)行相應(yīng)的算法,根據(jù)算法向列表T中的節(jié)點(diǎn)發(fā)出連接請求,直到有一個節(jié)點(diǎn)接受請求為止,如果所有節(jié)點(diǎn)拒絕N的請求則將N設(shè)為樹根節(jié)點(diǎn);步驟4.加入到組M以后,向匯聚節(jié)點(diǎn)注冊信息;同步進(jìn)行步驟5和步驟6,直到節(jié)點(diǎn)N退出為止;步驟5.和鄰居節(jié)點(diǎn)發(fā)送心跳報文;如果在一段時間內(nèi)沒有收到某個鄰居節(jié)點(diǎn)B的報文,則報告給匯聚節(jié)點(diǎn),并且刪除該鄰居及其下游節(jié)點(diǎn)信息;如果B為N的上游節(jié)點(diǎn),回到步驟3;轉(zhuǎn)回步驟5;步驟6.監(jiān)聽報文;對于收到的報文,根據(jù)報文類型分別進(jìn)行以下操作后轉(zhuǎn)回步驟6;1)對于轉(zhuǎn)發(fā)樹中鄰居節(jié)點(diǎn)傳來的數(shù)據(jù)如果收到上游節(jié)點(diǎn)傳來的數(shù)據(jù)流,則分別進(jìn)行如下判斷-如下游分支中有訂閱該流的節(jié)點(diǎn),則將數(shù)據(jù)流向該分支進(jìn)行轉(zhuǎn)發(fā);-如節(jié)點(diǎn)N有訂閱該流,則向本地進(jìn)行轉(zhuǎn)發(fā);-如所在IP組播域有其它節(jié)點(diǎn)訂閱,則進(jìn)行組播轉(zhuǎn)發(fā);如果收到通訊報文,根據(jù)協(xié)議類型P來進(jìn)行運(yùn)算,修改當(dāng)前狀態(tài),維護(hù)覆蓋網(wǎng)結(jié)構(gòu);如果收到訂閱報文,記錄下訂閱節(jié)點(diǎn)訂閱的音視頻流信息,以及從哪個鄰居B中接收到的該報文,然后將該訂閱報文向除了B以外的所有鄰居進(jìn)行轉(zhuǎn)發(fā);2)對于本地傳來的數(shù)據(jù),操作有如果收到本地的數(shù)據(jù)流,則分別進(jìn)行如下判斷-若上下游分支有訂閱本地數(shù)據(jù)的,將數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的鄰居節(jié)點(diǎn);-判斷所在IP組播域中有其它節(jié)點(diǎn)中是否有訂閱,有則進(jìn)行組播轉(zhuǎn)發(fā);如果收到本地節(jié)點(diǎn)的通訊報文,根據(jù)協(xié)議類型P進(jìn)行相應(yīng)操作;如果收到本地的訂閱請求,轉(zhuǎn)發(fā)給所有的鄰居以及同一IP組播孤島中的非代表節(jié)點(diǎn);3)對于處于同一組播孤島傳來的其他非代表節(jié)點(diǎn)傳來的數(shù)據(jù),操作有如果收到IP組播域里面的其它非代表節(jié)點(diǎn)的數(shù)據(jù)流-向所有訂閱了該流的分支發(fā)送;-如果自己有訂閱該數(shù)據(jù)流,則向本地發(fā)送;如果收到非代表節(jié)點(diǎn)的通訊報文,根據(jù)協(xié)議類型P具體執(zhí)行相應(yīng)操作,轉(zhuǎn)發(fā)給匯聚節(jié)點(diǎn);如果收到非代表節(jié)點(diǎn)的訂閱報文,轉(zhuǎn)發(fā)給其它對等節(jié)點(diǎn);4)對于匯聚節(jié)點(diǎn)傳來的數(shù)據(jù),操作有如果收到匯聚節(jié)點(diǎn)切換算法的報文,刪除所有的鄰居信息,隨機(jī)產(chǎn)生一個數(shù)r,在等待r秒后,根據(jù)新的算法,轉(zhuǎn)到步驟2;5)對于樹根節(jié)點(diǎn)傳來的數(shù)據(jù),操作有如果樹根退出,那么樹根的子節(jié)點(diǎn)向匯聚節(jié)點(diǎn)申請成為新的樹根節(jié)點(diǎn);匯聚節(jié)點(diǎn)選擇ID最小的子節(jié)點(diǎn)作為新的樹根,其它未被選中節(jié)點(diǎn)作為新的樹根節(jié)點(diǎn)的子節(jié)點(diǎn);如果收到樹根節(jié)點(diǎn)的優(yōu)化請求報文,根據(jù)協(xié)議P計算并優(yōu)化轉(zhuǎn)發(fā)樹的結(jié)構(gòu)。FSA00000057163900011.tif,FSA00000057163900012.tif,FSA00000057163900013.tif,FSA00000057163900014.tif,FSA00000057163900015.tif,FSA00000057163900021.tif,FSA00000057163900022.tif,FSA00000057163900023.tif,FSA00000057163900024.tif,FSA00000057163900025.tif,FSA00000057163900026.tif,FSA00000057163900027.tif,FSA00000057163900028.tif,FSA00000057163900029.tif,FSA000000571639000210.tif
全文摘要
本發(fā)明設(shè)計和實現(xiàn)一種結(jié)合IP層和應(yīng)用層組播技術(shù)搭建覆蓋網(wǎng)進(jìn)行流媒體傳輸?shù)姆桨?。方案的核心思想是利用IP組播和覆蓋網(wǎng)技術(shù),使用應(yīng)用層組播算法建立覆蓋網(wǎng)絡(luò),為流媒體數(shù)據(jù)提供高效的傳輸平臺,支持各個組網(wǎng)節(jié)點(diǎn)對音視頻流的訂閱,并且支持多種組網(wǎng)算法的切換以及算法擴(kuò)展。方案主要內(nèi)容包括(1)探測IP組播孤島,所有位于一個IP組播域的用戶對外表現(xiàn)為一個用戶,對內(nèi)使用IP組播方式相互傳輸數(shù)據(jù)。(2)運(yùn)行應(yīng)用層組播算法建立覆蓋網(wǎng)。(3)在覆蓋網(wǎng)上進(jìn)行流媒體數(shù)據(jù)的傳輸,支持節(jié)點(diǎn)的對音視頻數(shù)據(jù)進(jìn)行訂閱。(4)能運(yùn)行不同的組播協(xié)議(例如Narada,Yoid,HMTP算法),支持不同協(xié)議的切換,提供新算法加入的接口。本方案能有效節(jié)省網(wǎng)絡(luò)資源,減小傳輸延時,端到端的結(jié)構(gòu)減小了單點(diǎn)故障發(fā)生的可能。適用于視頻會議等流媒體應(yīng)用。
文檔編號H04L29/06GK101795234SQ20101012153
公開日2010年8月4日 申請日期2010年3月10日 優(yōu)先權(quán)日2010年3月10日
發(fā)明者劉祥龍, 單寶松, 梁苑, 樓奕華, 泮華杰 申請人:北京航空航天大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
察雅县| 大庆市| 桦甸市| 西乌| 琼中| 青冈县| 孝感市| 花莲县| 宜兴市| 荥经县| 本溪市| 沂源县| 婺源县| 阿图什市| 密山市| 茶陵县| 横山县| 西昌市| 酉阳| 阜平县| 临夏县| 淮滨县| 台北县| 涞水县| 梅河口市| 阿瓦提县| 行唐县| 康定县| 阿尔山市| 盐池县| 金门县| 分宜县| 开江县| 百色市| 斗六市| 平山县| 恭城| 阳曲县| 敦化市| 英吉沙县| 通许县|