專利名稱:一種支持異構(gòu)終端與異構(gòu)網(wǎng)絡(luò)環(huán)境的應(yīng)用層組播方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體網(wǎng)絡(luò)傳輸技術(shù),特別涉及一種網(wǎng)絡(luò)實(shí)時(shí)多媒體直播方法。
背景技術(shù):
計(jì)算機(jī)技術(shù)的發(fā)展、hternet普及以及網(wǎng)絡(luò)帶寬的飛速增長(zhǎng),使得曾經(jīng)在 Internet上只能進(jìn)行單純的文字交流如Email等方式逐漸轉(zhuǎn)向?yàn)閷?shí)時(shí)的視音頻交流等網(wǎng)絡(luò)多媒體應(yīng)用。當(dāng)前,流媒體的直播、點(diǎn)播等多媒體技術(shù)相關(guān)的應(yīng)用日漸火爆,對(duì)多媒體網(wǎng)絡(luò)傳輸技術(shù)如多媒體編碼、組播技術(shù)等提出了更高的要求。如何提供高質(zhì)量、大規(guī)模的實(shí)時(shí)多媒體服務(wù),已成為研究與應(yīng)用的熱點(diǎn)與難點(diǎn)?;诜?wù)覆蓋網(wǎng)絡(luò)的多媒體直播技術(shù)可以給用戶提供更好服務(wù)質(zhì)量,但部署成本較高,應(yīng)用規(guī)模小。采用P2P(點(diǎn)對(duì)點(diǎn))覆蓋網(wǎng)絡(luò)多媒體傳輸技術(shù)可以充分利用節(jié)點(diǎn)資源, 使節(jié)點(diǎn)間可以進(jìn)行數(shù)據(jù)交換,減少帶寬消耗,有利于大規(guī)模的部署應(yīng)用。然而在實(shí)際異構(gòu)網(wǎng)絡(luò)環(huán)境下,P2P覆蓋網(wǎng)絡(luò)組播技術(shù)存在一定的局限性。比如,不同ISP(互聯(lián)網(wǎng)服務(wù)提供商)間節(jié)點(diǎn)的傳輸速度可能受到ISP的限制,導(dǎo)致直播質(zhì)量降低甚至不能進(jìn)行,內(nèi)網(wǎng)節(jié)點(diǎn)之間難以進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。另外,由于現(xiàn)實(shí)中終端的異構(gòu)性,P2P組播性能受到接入節(jié)點(diǎn)的接入帶寬、在線時(shí)長(zhǎng)和終端分辨率異構(gòu)等多方面因素的影響,導(dǎo)致終端異構(gòu)性也成為制約P2P 技術(shù)發(fā)展的問(wèn)題。申請(qǐng)人經(jīng)過(guò)查新,檢索到以下幾篇與本發(fā)明相關(guān)的屬于應(yīng)用層組播領(lǐng)域的專利,它們分別是1.面向MSVMT問(wèn)題的兩階段分布式應(yīng)用層組播方法(申請(qǐng)?zhí)?00710035300)。2.基于同性質(zhì)柵格分組的異構(gòu)網(wǎng)絡(luò)信息廣播方法及系統(tǒng)(申請(qǐng)?zhí)?201010173194)。3. 一種實(shí)現(xiàn)異構(gòu)網(wǎng)絡(luò)端到端業(yè)務(wù)QoS控制的系統(tǒng)和方法(申請(qǐng)?zhí)?00910090613)。在上述專利1中,發(fā)明人提出了面向MSVMT問(wèn)題的兩階段分布式應(yīng)用層組播方法, 采用保持負(fù)載平衡的節(jié)點(diǎn)加入方法,采用能選擇綜合權(quán)衡延遲和出度的PPAF啟發(fā)式,采用基于三角法則的主干拓?fù)錁?gòu)建方法的樹(shù)優(yōu)先分布式應(yīng)用層組播構(gòu)建方法。在上述專利2中,發(fā)明人公開(kāi)了一種基于同性質(zhì)柵格分組的異構(gòu)網(wǎng)絡(luò)信息廣播方法及系統(tǒng),根據(jù)所述每個(gè)點(diǎn)的頻率占用情況得到該異構(gòu)網(wǎng)絡(luò)中每個(gè)柵格的頻率占用情況, 將頻率占用情況相同的柵格組合成同性質(zhì)的柵格區(qū)域;以每個(gè)同性質(zhì)的柵格區(qū)域?yàn)橐唤M, 將每個(gè)組的信息分別封裝成幀,然后將各幀分別發(fā)送。在上述專利3中,發(fā)明人一種實(shí)現(xiàn)異構(gòu)網(wǎng)絡(luò)端到端業(yè)務(wù)QoS控制的系統(tǒng)和方法。其中該系統(tǒng)包括業(yè)務(wù)層、控制層和傳輸層。傳輸層與所述控制層實(shí)體單元相連,用于將所述控制層實(shí)體單元下發(fā)的策略決策轉(zhuǎn)換為異構(gòu)網(wǎng)絡(luò)端到端業(yè)務(wù)的策略實(shí)施,并依據(jù)該策略實(shí)施對(duì)所述異構(gòu)網(wǎng)絡(luò)端到端業(yè)務(wù)進(jìn)行操作。根據(jù)上述查新,現(xiàn)有技術(shù)所存在的問(wèn)題是,都沒(méi)有綜合考慮異構(gòu)終端與異構(gòu)網(wǎng)絡(luò)環(huán)境,導(dǎo)致網(wǎng)絡(luò)覆蓋率低,網(wǎng)絡(luò)帶寬負(fù)載重。
52/9頁(yè)
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種綜合考慮異構(gòu)終端與異構(gòu)網(wǎng)絡(luò)環(huán)境、基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu)的媒體數(shù)據(jù)傳送方法。為達(dá)到以上目的,本發(fā)明是采取如下技術(shù)方案予以實(shí)現(xiàn)的一種支持異構(gòu)終端與異構(gòu)網(wǎng)絡(luò)環(huán)境的應(yīng)用層組播方法,其特征在于,搭建基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu),該網(wǎng)絡(luò)架構(gòu)分為主干層和分支層,主干層為構(gòu)建的樹(shù)型服務(wù)覆蓋網(wǎng)絡(luò),分支層為構(gòu)建的樹(shù)型P2P覆蓋網(wǎng)絡(luò),媒體數(shù)據(jù)通過(guò)主干層節(jié)點(diǎn)轉(zhuǎn)發(fā)給分支層節(jié)點(diǎn);主干層由DTU(數(shù)據(jù)轉(zhuǎn)發(fā)單元)節(jié)點(diǎn)與服務(wù)中心節(jié)點(diǎn)構(gòu)成,主干層從功能上劃分為兩層,第一層負(fù)責(zé)多頻道數(shù)據(jù)轉(zhuǎn)發(fā),并通過(guò)運(yùn)行在兩個(gè)ISP的DTU節(jié)點(diǎn)實(shí)現(xiàn)不同ISP之間的數(shù)據(jù)傳輸;第二層負(fù)責(zé)單頻道的數(shù)據(jù)轉(zhuǎn)發(fā),除DTU節(jié)點(diǎn)外,每層均有為該層 DTU服務(wù)的服務(wù)中心節(jié)點(diǎn),主干層第一層的服務(wù)中心節(jié)點(diǎn)管理本層的DTU節(jié)點(diǎn),并將DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)的請(qǐng)求重定向到與該節(jié)點(diǎn)具有相同ISP的第二層服務(wù)中心;主干層第二層的服務(wù)中心負(fù)責(zé)本層DTU組播樹(shù)搭建以及分支層樹(shù)型P2P組播樹(shù)的搭建;分支層由用戶節(jié)點(diǎn)構(gòu)成,依據(jù)用戶節(jié)點(diǎn)的網(wǎng)絡(luò)類(lèi)型、網(wǎng)絡(luò)帶寬、在線時(shí)長(zhǎng)和分辨率搭建P2P樹(shù)型架構(gòu),用戶節(jié)點(diǎn)從P2P樹(shù)型架構(gòu)的父節(jié)點(diǎn)處接收到媒體數(shù)據(jù),存放到用戶節(jié)點(diǎn)的數(shù)據(jù)緩沖區(qū)內(nèi),調(diào)用用戶節(jié)點(diǎn)的解碼模塊對(duì)數(shù)據(jù)進(jìn)行解碼,并回放顯示,同時(shí)用戶節(jié)點(diǎn)的數(shù)據(jù)調(diào)度模塊查找轉(zhuǎn)發(fā)節(jié)點(diǎn)列表,將數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)轉(zhuǎn)發(fā)給P2P樹(shù)型架構(gòu)的子節(jié)點(diǎn)。上述方案中,所述的將DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)的請(qǐng)求重定向到與該節(jié)點(diǎn)具有相同 ISP的第二層服務(wù)中心的具體步驟如下首先,給出算法步驟中用到的概念和定義,第一層服務(wù)中心S維護(hù)著本層的DTU信息列表Df [1-n]、第二層服務(wù)中心列表以及其對(duì)應(yīng)的根DTU列表Dsr [l_n]和直播頻道列表C < N,Source,Tfci] >,在頻道列表中,N表示頻道號(hào)Ii1, n2,…叫,Source表示源節(jié)點(diǎn)信息,Ttni]表示加入頻道Iii的DTU節(jié)點(diǎn)列表;Stepl =DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)Nodei連接第一層服務(wù)中心S,請(qǐng)求加入直播頻道叫, 服務(wù)中心S根據(jù)該節(jié)點(diǎn)IP地址判斷Nodei所在ISP,并查找當(dāng)前頻道列表C < N,Source, T [nj >中N = Iii的DTU列表T [nj,找到與Nodei處于同一 ISP的第二層根DTU節(jié)點(diǎn)Dsr [k], 執(zhí)行Mep4,如果找不到則執(zhí)行Mep2 ;St印2 服務(wù)中心S將第二層的根DTU列表Djl-η]中與Nodei處于相同ISP的列表Dsr[i_j] (1 <= i <= j <=n)信息發(fā)送給Nodei,Nodei 測(cè)試與 Dsr[i-j]中所有 DTU節(jié)點(diǎn)的RTT時(shí)間,獲得與其RTT延遲最小的DTU節(jié)點(diǎn)Dsr[k] (i <= k <= j);St印3 服務(wù)中心S添加DsJk]到T[Iii],如果DsJk]和Tfci]中的根節(jié)點(diǎn)不在同一個(gè)ISP,則需要從 [1-11]中找出一個(gè)中轉(zhuǎn)節(jié)點(diǎn)Df [f] (l<=f <=n)使之成為T(mén)fci]根節(jié)點(diǎn)的孩子節(jié)點(diǎn),同時(shí)找出與DsJk]同一 ISP且延遲最小的第一層的DTU節(jié)點(diǎn)Df [g](l <=g <=n)作為Df[f]的孩子節(jié)點(diǎn)以及DsJk]的父節(jié)點(diǎn);Step4 服務(wù)中心S將第二層服務(wù)中心列表中與DsJk]對(duì)應(yīng)的服務(wù)中心 Sn[k]的信息發(fā)送給Nodei, Nodei重新連接第二層服務(wù)中心;所述的主干層第二層的服務(wù)中心負(fù)責(zé)本層DTU組播樹(shù)搭建的具體步驟如下首先,給出算法步驟中用到的概念和定義,第二層服務(wù)中心維護(hù)DTU節(jié)點(diǎn)列表DTU < id, d_degree, u_degree, level >,其中 id 是 DTU 節(jié)點(diǎn)的唯一標(biāo)識(shí)符,d_degree 為該節(jié)點(diǎn)可接DTU節(jié)點(diǎn)的數(shù)量,U_degree為該節(jié)點(diǎn)可接用戶節(jié)點(diǎn)的數(shù)量,level為該節(jié)點(diǎn)所在的層數(shù);DTU組播樹(shù)的搭建具體步驟如下Stepl =DTU節(jié)點(diǎn)Di連接第一層服務(wù)中心S,請(qǐng)求加入直播頻道叫,S根據(jù)節(jié)點(diǎn)請(qǐng)求重定向算法將其對(duì)應(yīng)的第二層服務(wù)中心信息發(fā)送給Di ;St印2 :DTU節(jié)點(diǎn)Di連接第二層服務(wù)中心^Uk],服務(wù)中心判斷該節(jié)點(diǎn)所處網(wǎng)絡(luò)類(lèi)型,并置當(dāng)前搜索層St印3 如果Di處于外網(wǎng),服務(wù)中心采用廣度優(yōu)先搜索方式遍歷第N層,查找當(dāng)前接入DTU節(jié)點(diǎn)個(gè)數(shù)小于cLdegree的第一個(gè)DTU節(jié)點(diǎn)Dk,將Di作為Dk的子節(jié)點(diǎn),如果Di 處于內(nèi)網(wǎng),服務(wù)中心采用廣度優(yōu)先搜索方式遍歷第N層,查找當(dāng)前接入DTU節(jié)點(diǎn)個(gè)數(shù)小于cLdegree且位于外網(wǎng)的第一個(gè)DTU節(jié)點(diǎn)Dk,將Di作為Dk的子節(jié)點(diǎn),如果已經(jīng)找到則退出,否則N = N+1,繼續(xù)執(zhí)行乂印3 ;所述的分支層樹(shù)型P2P組播樹(shù)的搭建包括支持內(nèi)外網(wǎng)的基于優(yōu)先度的用戶節(jié)點(diǎn)加入和退出算法;1)用戶節(jié)點(diǎn)加入算法步驟第二層服務(wù)中心維護(hù)的用戶節(jié)點(diǎn)列表USER[id,ip,resolution, degree, father_ id,father_ip],其中,id是用戶節(jié)點(diǎn)的唯一標(biāo)識(shí),ip為用戶節(jié)點(diǎn)的IP地址,resolution表示用戶節(jié)點(diǎn)的分辨率,degree表示用戶節(jié)點(diǎn)可接入節(jié)點(diǎn)個(gè)數(shù),fathered表示用戶節(jié)點(diǎn)的父節(jié)點(diǎn)的id,father_ip為用戶節(jié)點(diǎn)父節(jié)點(diǎn)的IP地址;具體步驟如下Stepl 用戶節(jié)點(diǎn)連接第一層服務(wù)中心S,請(qǐng)求加入直播頻道ni,S根據(jù)節(jié)點(diǎn)請(qǐng)求重定向算法將其對(duì)應(yīng)的第二層服務(wù)中心&[ 信息發(fā)送給Ui ;St印2 用戶節(jié)點(diǎn)Ui連接第二層服務(wù)中心Sn[k],服務(wù)中心Sn[k]判斷該節(jié)點(diǎn)所處網(wǎng)絡(luò)類(lèi)型,并置當(dāng)前搜索層N為1,候選節(jié)點(diǎn)集合set (η)初始化為空,候選父節(jié)點(diǎn)集合 set (fn)初始化為空;St印3 如果該節(jié)點(diǎn)處于外網(wǎng),服務(wù)中心采用廣度優(yōu)先搜索方式遍歷第N層, 將該層與請(qǐng)求加入節(jié)點(diǎn)具有相同分辨率的用戶節(jié)點(diǎn)和DTU節(jié)點(diǎn)加入候選節(jié)點(diǎn)集合set (η), 如果該節(jié)點(diǎn)處于內(nèi)網(wǎng),服務(wù)中心采用廣度優(yōu)先搜索方式遍歷第N層,將該層與請(qǐng)求加入節(jié)點(diǎn)具有相同分辨率且處于外網(wǎng)的用戶節(jié)點(diǎn)和DTU節(jié)點(diǎn)加入候選節(jié)點(diǎn)集合set(n);St印4 遍歷set (η),將其中接入用戶節(jié)點(diǎn)數(shù)量小于degree的節(jié)點(diǎn)作為候選父節(jié)點(diǎn) set (fn),如果 |set(fn)| = 0,則置 N = N+1,跳到乂印3,如果 | set (fn) | >0,執(zhí)行 Step5 ;St印5 計(jì)算Set(fn)中每個(gè)節(jié)點(diǎn)的優(yōu)先度π ”選擇優(yōu)先度最大的節(jié)點(diǎn),將該節(jié)點(diǎn)作為新加入節(jié)點(diǎn)Ui的父節(jié)點(diǎn),如果Set(fn)中節(jié)點(diǎn)的優(yōu)先度相同,則隨機(jī)挑選一個(gè)節(jié)點(diǎn)作為新節(jié)點(diǎn)的父節(jié)點(diǎn),其中節(jié)點(diǎn)Ui的優(yōu)先度π i的計(jì)算方法如下
式中、——節(jié)點(diǎn)i的在線時(shí)長(zhǎng);Ci——節(jié)點(diǎn)i的網(wǎng)絡(luò)帶寬;B——一路多媒體數(shù)據(jù)所占用的帶寬;Iii——節(jié)點(diǎn)i的子節(jié)點(diǎn)個(gè)數(shù);tj——節(jié)點(diǎn)i的子節(jié)點(diǎn)j的在線時(shí)長(zhǎng);Cj——節(jié)點(diǎn)i的下級(jí)節(jié)點(diǎn)j的網(wǎng)絡(luò)帶寬;kj——節(jié)點(diǎn)j的子節(jié)點(diǎn)個(gè)數(shù);2)用戶節(jié)點(diǎn)退出算法步驟如下Stepl 用戶節(jié)點(diǎn)Ui給其當(dāng)前連接的第二層服務(wù)中心發(fā)送一條退出消息;乂印2:服務(wù)中心&[1]收到消息后,根據(jù)UiWid找到其父節(jié)點(diǎn)fn,給4發(fā)送一條該節(jié)點(diǎn)退出消息;St印3 服務(wù)中心&[1]計(jì)算Ui目前的出度D(n)和其父節(jié)點(diǎn)fn剩余出度D(fn),若 D(n) ^D(fn),則將Ui的下級(jí)節(jié)點(diǎn)接到節(jié)點(diǎn)fn下,并且跳到St印5,否則轉(zhuǎn)到St印4 ;St印4 從退出節(jié)點(diǎn)Ui的子節(jié)點(diǎn)集合set (Cn)中選擇優(yōu)先度最大的m個(gè)節(jié)點(diǎn)
m
hildren(i),使D( )《CD(/ ) + ZcM辦例(0然后將節(jié)點(diǎn)4和children(i)作為剩余節(jié)點(diǎn)
...... Λ=1 .一.
set (Cn)-children (i)的候選父節(jié)點(diǎn),剩余節(jié)點(diǎn)下級(jí)節(jié)點(diǎn)結(jié)構(gòu)不變,采用用戶節(jié)點(diǎn)加入算法來(lái)加入到系統(tǒng)中,然后轉(zhuǎn)到Mep5 ;St印5 退出節(jié)點(diǎn)Ui的下級(jí)節(jié)點(diǎn)都加入到系統(tǒng)后,節(jié)點(diǎn)Ui退出系統(tǒng)。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)是采用基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu),綜合考慮了不同ISP網(wǎng)絡(luò)與內(nèi)外網(wǎng)的異構(gòu)網(wǎng)絡(luò)環(huán)境,以及用戶節(jié)點(diǎn)的網(wǎng)絡(luò)類(lèi)型、網(wǎng)絡(luò)帶寬、在線時(shí)長(zhǎng)和分辨率的異構(gòu)終端因素,實(shí)現(xiàn)了支持異構(gòu)網(wǎng)絡(luò)和異構(gòu)終端的媒體數(shù)據(jù)高效、快速的傳送。
圖1為本發(fā)明異構(gòu)網(wǎng)絡(luò)下分層混合覆蓋網(wǎng)絡(luò)架構(gòu)拓?fù)鋱D。圖2為圖1中主干層DTU節(jié)點(diǎn)部署圖。圖3為公知的判斷節(jié)點(diǎn)的網(wǎng)絡(luò)類(lèi)型示意圖。圖4為公知的廣度優(yōu)先和寬度優(yōu)先拓?fù)涫疽鈭D。圖5為圖1中主干層第二層的DTU組播樹(shù)內(nèi)外網(wǎng)混搭圖。圖6為本發(fā)明與現(xiàn)有技術(shù)不同分辨率終端組播樹(shù)占用的總帶寬比較圖。其中圖 6(a)為現(xiàn)有技術(shù)的,圖6(b)為本發(fā)明的。圖7為圖1分支層的異構(gòu)終端節(jié)點(diǎn)加入優(yōu)先搜索模型圖。圖8為圖1分支層的異構(gòu)終端節(jié)點(diǎn)退出示意圖,其中圖8(a)為終端節(jié)點(diǎn)退出前示意圖;圖8(b)為終端節(jié)點(diǎn)退出后示意圖。
具體實(shí)施例方式為了更清楚的理解本發(fā)明,以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
1、基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu)本發(fā)明中基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu)拓?fù)鋱D如附圖1 所示。如附圖1所示,基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu)中涉及的節(jié)點(diǎn)分為四類(lèi)源節(jié)點(diǎn)、服務(wù)中心節(jié)點(diǎn)、DTU節(jié)點(diǎn)和用戶節(jié)點(diǎn),其中源節(jié)點(diǎn)是多媒體數(shù)據(jù)的來(lái)源節(jié)點(diǎn),服務(wù)中心節(jié)點(diǎn)負(fù)責(zé)管理DTU節(jié)點(diǎn)和用戶節(jié)點(diǎn),搭建維護(hù)覆蓋網(wǎng)絡(luò)拓?fù)?,DTU節(jié)點(diǎn)負(fù)責(zé)轉(zhuǎn)發(fā)多媒體數(shù)據(jù),用戶節(jié)點(diǎn)接收直播多媒體數(shù)據(jù),并在本地顯示。如附圖1所示,基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu)分為主干層和分支層,主干層為構(gòu)建的樹(shù)型服務(wù)覆蓋網(wǎng)絡(luò),分支層為構(gòu)建的樹(shù)型P2P覆蓋網(wǎng)絡(luò),媒體數(shù)據(jù)通過(guò)主干層節(jié)點(diǎn)轉(zhuǎn)發(fā)給分支層節(jié)點(diǎn);主干層從功能上又劃分為兩層,第一層負(fù)責(zé)多頻道數(shù)據(jù)轉(zhuǎn)發(fā),并通過(guò)可以運(yùn)行在兩個(gè)ISP的DTU節(jié)點(diǎn)實(shí)現(xiàn)兩個(gè)不同ISP之間的數(shù)據(jù)傳輸,第二層負(fù)責(zé)單頻道的數(shù)據(jù)轉(zhuǎn)發(fā),除 DTU節(jié)點(diǎn)外,每層均有為該層DTU服務(wù)的服務(wù)中心節(jié)點(diǎn),第一層的服務(wù)中心節(jié)點(diǎn)管理本層的 DTU節(jié)點(diǎn),并將DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)的請(qǐng)求重定向到與該節(jié)點(diǎn)具有相同ISP的第二層服務(wù)中心;第二層的服務(wù)中心負(fù)責(zé)本層DTU組播樹(shù)搭建以及分支層樹(shù)型P2P覆蓋網(wǎng)絡(luò)的搭建。分支層為構(gòu)建的樹(shù)型分支層,由用戶節(jié)點(diǎn)構(gòu)成,并依據(jù)用戶節(jié)點(diǎn)的網(wǎng)絡(luò)類(lèi)型、網(wǎng)絡(luò)帶寬、在線時(shí)長(zhǎng)和分辨率構(gòu)建P2P樹(shù)型架構(gòu),用戶節(jié)點(diǎn)從P2P樹(shù)型架構(gòu)的父節(jié)點(diǎn)處接收到媒體數(shù)據(jù),存放到用戶節(jié)點(diǎn)的數(shù)據(jù)緩沖區(qū)內(nèi),調(diào)用用戶節(jié)點(diǎn)的解碼模塊對(duì)數(shù)據(jù)進(jìn)行解碼,并回放顯示,同時(shí)用戶節(jié)點(diǎn)的數(shù)據(jù)調(diào)度模塊查找轉(zhuǎn)發(fā)節(jié)點(diǎn)列表,將數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)轉(zhuǎn)發(fā)給P2P 樹(shù)型架構(gòu)的子節(jié)點(diǎn)。主干層DTU節(jié)點(diǎn)部署圖如附圖2,第一層DTU節(jié)點(diǎn)按照ISP劃分,其中有DTU節(jié)點(diǎn)可以同時(shí)運(yùn)行在不同ISP之間,負(fù)責(zé)位于不同ISP的兩個(gè)DTU節(jié)點(diǎn)之間的數(shù)據(jù)轉(zhuǎn)發(fā)。第二層由DTU組播樹(shù)構(gòu)成,組播樹(shù)的根DTU根據(jù)ISP的不同與第一層的DTU節(jié)點(diǎn)相連。第一層的服務(wù)中心具有判別節(jié)點(diǎn)所在ISP的功能,第二層的服務(wù)中心具有判斷節(jié)點(diǎn)類(lèi)型是外網(wǎng)或者內(nèi)網(wǎng)的功能,由此來(lái)判別節(jié)點(diǎn)的網(wǎng)絡(luò)環(huán)境,實(shí)現(xiàn)支持異構(gòu)網(wǎng)絡(luò)的媒體數(shù)據(jù)傳送方法。2、DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)的請(qǐng)求重定向到與該節(jié)點(diǎn)具有相同ISP的第二層服務(wù)中心算法第一層服務(wù)中心維護(hù)著本層的DTU信息列表Df [1-n]、第二層服務(wù)中心列表 Sn[l-η]以及其對(duì)應(yīng)的根DTU列表Dsr [1-n]和直播頻道列表C < N,Source, Ttni] >,在頻道列表中,N表示頻道號(hào)ni,n2,-Hi, Source表示源節(jié)點(diǎn)信息,Ttni]表示加入頻道Iii的 DTU節(jié)點(diǎn)列表。第二層服務(wù)中心維護(hù)節(jié)點(diǎn)列表Node < id, d_degree, u_degree, level >,其中id 是DTU節(jié)點(diǎn)和用戶節(jié)點(diǎn)的唯一標(biāo)識(shí)符,d_degree為該節(jié)點(diǎn)可接DTU節(jié)點(diǎn)的數(shù)量,對(duì)用戶節(jié)點(diǎn)來(lái)說(shuō)為0,u_degree為該節(jié)點(diǎn)可接用戶節(jié)點(diǎn)的數(shù)量,level為該節(jié)點(diǎn)所在的層數(shù)。第一層的服務(wù)中心具有判別節(jié)點(diǎn)所在的ISP的功能;第二層的服務(wù)中心具有判斷節(jié)點(diǎn)的類(lèi)型是外網(wǎng)或者內(nèi)網(wǎng)的功能。1)DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)所處ISP的判別方法根據(jù)節(jié)點(diǎn)的IP地址查詢IP地址數(shù)據(jù)庫(kù)可以判斷所在ISP。當(dāng)有新的節(jié)點(diǎn)請(qǐng)求到達(dá)時(shí),第一層服務(wù)中心獲得節(jié)點(diǎn)的真實(shí)IP地址后,通過(guò)字符串查找和與計(jì)算子網(wǎng)掩碼的方法在IP地址數(shù)據(jù)庫(kù)查到該IP地址所屬的ISP。然后第一層的服務(wù)中心將與該節(jié)點(diǎn)相同ISP 的第二層的服務(wù)中心IP地址和端口返回給節(jié)點(diǎn),這樣節(jié)點(diǎn)就可以去連接合適的第二層的服務(wù)中心。當(dāng)使用202. 117. 10. 76的教育網(wǎng)IP地址的計(jì)算機(jī)訪問(wèn)Gmail郵箱時(shí),郵箱所顯示的IP地址為117. 32. 153. 161。如果在同在教育網(wǎng)的一臺(tái)IP地址為202. 117. 10. 75的計(jì)算機(jī)上部署一個(gè)服務(wù)中心,然后用該計(jì)算機(jī)去連接這個(gè)服務(wù)中心,那么這個(gè)服務(wù)中心獲取到的IP地址應(yīng)該為202. 117. 10. 76。通過(guò)前來(lái)訪問(wèn)節(jié)點(diǎn)的socket可以獲取節(jié)點(diǎn)的IP地址, Gmail郵箱的IP地址是全球唯一的IP地址,訪問(wèn)它所獲取到的IP地址一定是節(jié)點(diǎn)真實(shí)IP 地址信息。而202. 117. 10. 76這個(gè)IP地址應(yīng)該是通過(guò)NAT方式分配的。所以,第一層的服務(wù)中心必須部署在主干網(wǎng)絡(luò)中,這樣它才能獲得節(jié)點(diǎn)真實(shí)的IP地址,才可以通過(guò)IP地址庫(kù)正確判斷節(jié)點(diǎn)所在ISP。2)DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)的請(qǐng)求重定向到與該節(jié)點(diǎn)具有相同ISP的第二層服務(wù)中心算法具體步驟如下當(dāng)節(jié)點(diǎn)Nodei請(qǐng)求加入直播頻道Iii時(shí),首先連接第一層服務(wù)中心,第一層服務(wù)中心根據(jù)Nodei的IP地址判斷Nodei所在的ISP,根據(jù)頻道號(hào)Iii和ISP在當(dāng)前頻道列表C < N, Source, Ttni] >中查找是否有與Nodei處于同一 ISP的第二層根DTU節(jié)點(diǎn),若有,第一層服務(wù)中心將第二層服務(wù)中心列表中與DsJk]對(duì)應(yīng)的服務(wù)中的信息發(fā)送給 Nodei, Nodei重新連接第二層服務(wù)中心。若在當(dāng)前頻道列表中未找到DTU節(jié)點(diǎn),則第一層服務(wù)中心將第二層的根DTU列表 Dsr [1-n]中與Nodei處于相同ISP的列表Dsr [i_j] (l<=i<= j< = n)信息發(fā)送給Nodei, Nodei往Ds,[i-j]中所有DTU節(jié)點(diǎn)發(fā)送PING包,從收到的ACK包中獲取RTT時(shí)延,選擇RTT 時(shí)延最小的DTU節(jié)點(diǎn)Dsr[k] (i <= k<= j);第一層服務(wù)中心添加DsJk]到T[ni],如果DsJk]和Tfci]中的根節(jié)點(diǎn)不在同一個(gè) ISP,則需要從 [1-11]中找出一個(gè)中轉(zhuǎn)節(jié)點(diǎn)Df [f] (1 <= f <= η)使之成為T(mén) [η]根節(jié)點(diǎn)的孩子節(jié)點(diǎn),同時(shí)找出與DsJk]同一 ISP且RTT時(shí)延最小的第一層的DTU節(jié)點(diǎn)Df [g] (1< = g <= η)作為Df[f]的孩子節(jié)點(diǎn)以及Dsr[k]的父節(jié)點(diǎn);第一層服務(wù)中心S將第二層服務(wù)中心列表&[1_11]中與DsJk]對(duì)應(yīng)的服務(wù)中心 Sn[k]的信息發(fā)送給Nodei, Nodei重新連接第二層服務(wù)中心;3、DTU組播樹(shù)的搭建算法1)判斷節(jié)點(diǎn)的網(wǎng)絡(luò)類(lèi)型的方法 如附圖3所示,IP地址為192. 168. 1. 20的內(nèi)網(wǎng)計(jì)算機(jī),使用2000端口去訪問(wèn)外網(wǎng)的服務(wù)器,在通過(guò)NAT網(wǎng)關(guān)時(shí),它的IP地址和端口自動(dòng)被轉(zhuǎn)換為NAT網(wǎng)關(guān)地址 202. 117. 10. 76 :7678與其自身IP地址不同。所以判別節(jié)點(diǎn)所處網(wǎng)絡(luò)類(lèi)型的方法為節(jié)點(diǎn)在連接外網(wǎng)部署的服務(wù)中心時(shí),將自己獲取的本地IP地址打包成消息發(fā)送給服務(wù)中心,服務(wù)中心比較從socket獲取的IP地址和節(jié)點(diǎn)的發(fā)送的消息中IP地址,相同則為外網(wǎng)節(jié)點(diǎn), 反之為內(nèi)網(wǎng)節(jié)點(diǎn)。2) DTU組播樹(shù)的搭建組播樹(shù)的搭建方法有兩種廣度優(yōu)先(BFS-Breadth First Search)以及深度優(yōu)先 (DFS-Depth First Search)方法。如附圖4 (1)所示,按照廣度優(yōu)先方法搭建出的組播樹(shù)中D6處于第一層,附圖4( 所示,按照深度優(yōu)先方法搭建出的組播樹(shù)中D6節(jié)點(diǎn)處于第三層,假設(shè)傳輸過(guò)程延遲都相同,那么廣度優(yōu)先組播樹(shù)中數(shù)據(jù)傳輸層數(shù)少,D6傳輸延遲也就比深度優(yōu)先組播樹(shù)中的D6低。故本發(fā)明采用從左到右的廣度優(yōu)先方法來(lái)搭建第二層DTU組播樹(shù)。在異構(gòu)網(wǎng)絡(luò)環(huán)境中搭建DTU樹(shù)的時(shí)候,面臨著為內(nèi)網(wǎng)DTU節(jié)點(diǎn)服務(wù)的問(wèn)題以及利用內(nèi)網(wǎng)DTU節(jié)點(diǎn)帶寬提高網(wǎng)絡(luò)利用率的問(wèn)題。由于兩個(gè)內(nèi)網(wǎng)節(jié)點(diǎn)之間的穿透難以實(shí)現(xiàn),故本發(fā)明基于廣度優(yōu)先方法,提出了內(nèi)外網(wǎng)混搭的組播樹(shù)搭建方法。組播樹(shù)搭建的基本規(guī)則如下a. DTU節(jié)點(diǎn)的父節(jié)點(diǎn)只能是DTU節(jié)點(diǎn),每個(gè)DTU節(jié)點(diǎn)分配出度配額為d_degree來(lái)連接DTU節(jié)點(diǎn),出度配額為[degree來(lái)連接用戶節(jié)點(diǎn);b. DTU樹(shù)為廣度優(yōu)先樹(shù),高一層的DTU出度配額未使用完時(shí),低一層的DTU節(jié)點(diǎn)不能作為新加入直播的節(jié)點(diǎn)的備選父節(jié)點(diǎn);c.處于內(nèi)網(wǎng)的DTU節(jié)點(diǎn),只能把外網(wǎng)的DTU節(jié)點(diǎn)作為父節(jié)點(diǎn),其孩子節(jié)點(diǎn)也只能為外網(wǎng)節(jié)點(diǎn);DTU組播樹(shù)搭建的具體步驟如下DTU節(jié)點(diǎn)Di連接第一層服務(wù)中心S,請(qǐng)求加入直播頻道叫,S根據(jù)節(jié)點(diǎn)定位算法將其對(duì)應(yīng)的第二層服務(wù)中心信息發(fā)送給Di ;DTU節(jié)點(diǎn)Di連接第二層服務(wù)中心&&],服務(wù)中心根據(jù)Di的IP地址判斷該節(jié)點(diǎn)Di所處網(wǎng)絡(luò)類(lèi)型,并置當(dāng)前搜索層N為1 ;如果 Di處于外網(wǎng),服務(wù)中心采用從左到右的廣度優(yōu)先搜索方式遍歷第N層,查找當(dāng)前接入 DTU節(jié)點(diǎn)個(gè)數(shù)小于cLdegree的第一個(gè)DTU節(jié)點(diǎn)Dk,將Di作為Dk的子節(jié)點(diǎn);如果Di處于內(nèi)網(wǎng),服務(wù)中同樣采用從左到右的廣度優(yōu)先搜索方式遍歷第N層,查找當(dāng)前接入DTU 節(jié)點(diǎn)個(gè)數(shù)小于cLdegree且位于外網(wǎng)的第一個(gè)DTU節(jié)點(diǎn)DkJfDi作為Dk的子節(jié)點(diǎn);如果找到則退出,否則N = N+1,繼續(xù)遍歷查找;根據(jù)內(nèi)外網(wǎng)混搭方法搭建出的DTU組播樹(shù)如附圖5所示。3、分支層樹(shù)型P2P組播樹(shù)的搭建分支層樹(shù)型P2P組播樹(shù)的搭建包括支持內(nèi)外網(wǎng)的基于優(yōu)先度的用戶節(jié)點(diǎn)加入和退出算法。1)用戶節(jié)點(diǎn)加入算法DTU組播樹(shù)構(gòu)建完成以后,分支層樹(shù)型P2P組播樹(shù)中加入用戶節(jié)點(diǎn)要考慮用戶節(jié)點(diǎn)的終端接入網(wǎng)絡(luò)類(lèi)型、網(wǎng)絡(luò)帶寬、在線時(shí)長(zhǎng)和分辨率異構(gòu)性。其中終端分辨率對(duì)組播帶寬有較大的影響市場(chǎng)上各類(lèi)終端分辨率有十幾種,經(jīng)過(guò)在源節(jié)點(diǎn)采集的不同分辨率的數(shù)據(jù)發(fā)送到終端的顯示效果來(lái)看,發(fā)送一種數(shù)據(jù)大小可以適用一個(gè)區(qū)間段分辨率的顯示。例如發(fā)送480*320的數(shù)據(jù)在分辨率為32(^240到640*480 的終端上都能達(dá)到滿意的效果。使用320*480、800*600、10M*768這三種大小的數(shù)據(jù)基本可以滿足目前所有終端的顯示需求。附圖6顯示了不同接收端的分辨率分別為1024*768、 800*600和480*320,分別接收3層、2層和1層數(shù)據(jù)流,從附圖6可以看出,改變兩個(gè)節(jié)點(diǎn)的位置,讓總帶寬從41. 8降到37. 8,由此可見(jiàn),將節(jié)點(diǎn)優(yōu)先接到具有相同分辨率節(jié)點(diǎn)下面可以減少帶寬消耗。本發(fā)明中支持分辨率異構(gòu)的方法需要主干層第二層服務(wù)中心新建一個(gè)包含N個(gè)節(jié)點(diǎn)的優(yōu)先搜索數(shù)組,用來(lái)記錄已經(jīng)加入節(jié)點(diǎn)的信息,節(jié)點(diǎn)信息格式為USER[id, ip,resolution, degree,father_id, father_ip]id:節(jié)點(diǎn)的唯一標(biāo)識(shí);ip:節(jié)點(diǎn)的IP地址;resolution 節(jié)點(diǎn)的分辨率;degree 節(jié)點(diǎn)的出度;father_id 節(jié)點(diǎn)的父節(jié)點(diǎn)的名稱,作為該節(jié)點(diǎn)的唯一標(biāo)識(shí);Father_ip 節(jié)點(diǎn)父節(jié)點(diǎn)的IP地址;支持內(nèi)外網(wǎng)的基于優(yōu)先度的用戶加入算法具體實(shí)現(xiàn)如下用戶節(jié)點(diǎn)Ui加入時(shí),先連接第一層服務(wù)中心S,請(qǐng)求加入直播頻道叫,S根據(jù)節(jié)點(diǎn)定位算法將其對(duì)應(yīng)的第二層服務(wù)中心信息發(fā)送給Ui 連接第二層服務(wù)中心, Sn[k]根據(jù)Ui的IP地址判斷該節(jié)點(diǎn)所處網(wǎng)絡(luò)類(lèi)型,并置當(dāng)前搜索層N為1,候選節(jié)點(diǎn)集合 set (η)初始化為空,候選父節(jié)點(diǎn)集合Set(fn)也初始化為空;如果用戶節(jié)點(diǎn)Ui處于外網(wǎng),服務(wù)中心采用從左到右的廣度優(yōu)先搜索方法分層遍歷組播樹(shù)第N層,將分辨率當(dāng)前層中與加入用戶節(jié)點(diǎn)的終端分辨率相同的節(jié)點(diǎn)加入候選節(jié)點(diǎn)集合set (η);如果用戶節(jié)點(diǎn)仏處于內(nèi)網(wǎng),服務(wù)中心采用從左到右的廣度優(yōu)先搜索方法分層遍歷組播樹(shù)第N層,將分辨率當(dāng)前層中與加入用戶節(jié)點(diǎn)的終端分辨率相同且處于外網(wǎng)的節(jié)點(diǎn)加入候選節(jié)點(diǎn)集合set(n);在集合set (η)中選取候選節(jié)點(diǎn)中接入用戶節(jié)點(diǎn)數(shù)量小于degree的節(jié)點(diǎn)作為候選父節(jié)點(diǎn)集合set (fn),如果|Set(fn)| = 0,則置N = N+1,繼續(xù)遍歷下一層,如果| set (fn) >0,計(jì)算所有候選父節(jié)點(diǎn)的優(yōu)先度,選擇優(yōu)先度最大的節(jié)點(diǎn)作為父節(jié)點(diǎn),若有多個(gè)候選父節(jié)點(diǎn)的優(yōu)先度相同,則隨機(jī)選取一個(gè)節(jié)點(diǎn)作為父節(jié)點(diǎn)。附圖7給出了廣度優(yōu)先搜索模型。其中,節(jié)點(diǎn)i的優(yōu)先度π i的計(jì)算方法如下
,Ci 7 、 ti(--kt)蓯
權(quán)利要求
1. 一種支持異構(gòu)終端與異構(gòu)網(wǎng)絡(luò)環(huán)境的應(yīng)用層組播方法,其特征在于,搭建基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu),該網(wǎng)絡(luò)架構(gòu)分為主干層和分支層,主干層為構(gòu)建的樹(shù)型服務(wù)覆蓋網(wǎng)絡(luò),分支層為構(gòu)建的樹(shù)型P2P覆蓋網(wǎng)絡(luò),媒體數(shù)據(jù)通過(guò)主干層節(jié)點(diǎn)轉(zhuǎn)發(fā)給分支層節(jié)點(diǎn);主干層由DTU節(jié)點(diǎn)與服務(wù)中心節(jié)點(diǎn)構(gòu)成,主干層從功能上劃分為兩層,第一層負(fù)責(zé)多頻道數(shù)據(jù)轉(zhuǎn)發(fā),并通過(guò)運(yùn)行在兩個(gè)ISP的DTU節(jié)點(diǎn)實(shí)現(xiàn)不同ISP之間的數(shù)據(jù)傳輸;第二層負(fù)責(zé)單頻道的數(shù)據(jù)轉(zhuǎn)發(fā),除DTU節(jié)點(diǎn)外,每層均有為該層DTU服務(wù)的服務(wù)中心節(jié)點(diǎn),主干層第一層的服務(wù)中心節(jié)點(diǎn)管理本層的DTU節(jié)點(diǎn),并將DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)的請(qǐng)求重定向到與該節(jié)點(diǎn)具有相同ISP的第二層服務(wù)中心;主干層第二層的服務(wù)中心負(fù)責(zé)本層 DTU組播樹(shù)搭建以及分支層樹(shù)型P2P組播樹(shù)的搭建;分支層由用戶節(jié)點(diǎn)構(gòu)成,依據(jù)用戶節(jié)點(diǎn)的網(wǎng)絡(luò)類(lèi)型、網(wǎng)絡(luò)帶寬、在線時(shí)長(zhǎng)和分辨率搭建P2P樹(shù)型架構(gòu),用戶節(jié)點(diǎn)從P2P樹(shù)型架構(gòu)的父節(jié)點(diǎn)處接收到媒體數(shù)據(jù),存放到用戶節(jié)點(diǎn)的數(shù)據(jù)緩沖區(qū)內(nèi),調(diào)用用戶節(jié)點(diǎn)的解碼模塊對(duì)數(shù)據(jù)進(jìn)行解碼,并回放顯示,同時(shí)用戶節(jié)點(diǎn)的數(shù)據(jù)調(diào)度模塊查找轉(zhuǎn)發(fā)節(jié)點(diǎn)列表,將數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)轉(zhuǎn)發(fā)給P2P樹(shù)型架構(gòu)的子節(jié)點(diǎn)。上述方案中,所述的將DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)的請(qǐng)求重定向到與該節(jié)點(diǎn)具有相同ISP的第二層服務(wù)中心的具體步驟如下首先,給出算法步驟中用到的概念和定義,第一層服務(wù)中心S維護(hù)著本層的DTU信息列表Df [1-n]、第二層服務(wù)中心列表以及其對(duì)應(yīng)的根DTU列表DsJl_n]和直播頻道列表C < N,Source,Tfci] >,在頻道列表中,N表示頻道號(hào)Ii1, n2,…叫,Source表示源節(jié)點(diǎn)信息,Ttni]表示加入頻道η,的DTU節(jié)點(diǎn)列表;Stepl =DTU節(jié)點(diǎn)或用戶節(jié)點(diǎn)Nodei連接第一層服務(wù)中心S,請(qǐng)求加入直播頻道叫,服務(wù)中心S根據(jù)該節(jié)點(diǎn)IP地址判斷Nodei所在IPP,并查找當(dāng)前頻道列表C < N, Source, Ttni] >中N = Iii的DTU列表Tfci],找到與Nodei處于同一 ISP的第二層根DTU節(jié)點(diǎn)Dsr[k],執(zhí)行Mep4,如果找不到則執(zhí)行乂印2 ;St印2 服務(wù)中心S將第二層的根DTU列表Ds, [1-n]中與Nodei處于相同ISP的列表 Dsr[i-j] (1 <= i <= j <=n)信息發(fā)送給 Nodei,Nodei 測(cè)試與 Dsr[i-j]中所有 DTU 節(jié)點(diǎn)的RTT時(shí)間,獲得與其RTT延遲最小的DTU節(jié)點(diǎn)Dsr[k] (i <= k<= j);St印3 服務(wù)中心S添加DsJk]到Tfci],如果DsJk]和Tfci]中的根節(jié)點(diǎn)不在同一個(gè) ISP,則需要從 [1-11]中找出一個(gè)中轉(zhuǎn)節(jié)點(diǎn)Df[f](l <=f <=n)使之成為T(mén)fci]根節(jié)點(diǎn)的孩子節(jié)點(diǎn),同時(shí)找出與DsJk]同一 ISP且延遲最小的第一層的DTU節(jié)點(diǎn)Df[g](l <= g <=n)作為Df[f]的孩子節(jié)點(diǎn)以及DsJk]的父節(jié)點(diǎn);Step4 服務(wù)中心S將第二層服務(wù)中心列表中與DsJk]對(duì)應(yīng)的服務(wù)中心的信息發(fā)送給Nodei, Nodei重新連接第二層服務(wù)中心;所述的主干層第二層的服務(wù)中心負(fù)責(zé)本層DTU組播樹(shù)搭建的具體步驟如下 首先,給出算法步驟中用到的概念和定義,第二層服務(wù)中心維護(hù)DTU節(jié)點(diǎn)列表DTU < id, d_degree, u_degree, level >,其中 id 是 DTU 節(jié)點(diǎn)的唯一標(biāo)識(shí)符,d_degree 為該節(jié)點(diǎn)可接DTU節(jié)點(diǎn)的數(shù)量,U_degree為該節(jié)點(diǎn)可接用戶節(jié)點(diǎn)的數(shù)量,level為該節(jié)點(diǎn)所在的層數(shù);DTU組播樹(shù)的搭建具體步驟如下Stepl =DTU節(jié)點(diǎn)Di連接第一層服務(wù)中心S,請(qǐng)求加入直播頻道叫,S根據(jù)節(jié)點(diǎn)請(qǐng)求重定向算法將其對(duì)應(yīng)的第二層服務(wù)中心信息發(fā)送給Di ;St印2 =DTUfADi連接第二層服務(wù)中心&&],服務(wù)中心&[ 判斷該節(jié)點(diǎn)所處網(wǎng)絡(luò)類(lèi)型,并置當(dāng)前搜索層Step3 如果Di處于外網(wǎng),服務(wù)中心采用廣度優(yōu)先搜索方式遍歷第N層,查找當(dāng)前接入DTU節(jié)點(diǎn)個(gè)數(shù)小于cLdegree的第一個(gè)DTU節(jié)點(diǎn)Dk,將Di作為Dk的子節(jié)點(diǎn),如果Di處于內(nèi)網(wǎng),服務(wù)中心采用廣度優(yōu)先搜索方式遍歷第N層,查找當(dāng)前接入DTU節(jié)點(diǎn)個(gè)數(shù)小于 cLdegree且位于外網(wǎng)的第一個(gè)DTU節(jié)點(diǎn)DkJf Di作為Dk的子節(jié)點(diǎn),如果已經(jīng)找到則退出, 否則N = N+1,繼續(xù)執(zhí)行乂印3 ;所述的分支層樹(shù)型P2P組播樹(shù)的搭建包括支持內(nèi)外網(wǎng)的基于優(yōu)先度的用戶節(jié)點(diǎn)加入和退出算法;1)用戶節(jié)點(diǎn)加入算法步驟第二層服務(wù)中心維護(hù)的用戶節(jié)點(diǎn)列表USER[id,ip,resolution, degree, father_id, father_ip],其中,id是用戶節(jié)點(diǎn)的唯一標(biāo)識(shí),ip為用戶節(jié)點(diǎn)的IP地址,resolution表示用戶節(jié)點(diǎn)的分辨率,degree表示用戶節(jié)點(diǎn)可接入節(jié)點(diǎn)個(gè)數(shù),fathered表示用戶節(jié)點(diǎn)的父節(jié)點(diǎn)的id,father_ip為用戶節(jié)點(diǎn)父節(jié)點(diǎn)的IP地址; 具體步驟如下Stepl 用戶節(jié)點(diǎn)連接第一層服務(wù)中心S,請(qǐng)求加入直播頻道ni,S根據(jù)節(jié)點(diǎn)請(qǐng)求重定向算法將其對(duì)應(yīng)的第二層服務(wù)中心信息發(fā)送給Ui ;Step2 用戶節(jié)點(diǎn)仏連接第二層服務(wù)中心&&],服務(wù)中心&[ 判斷該節(jié)點(diǎn)所處網(wǎng)絡(luò)類(lèi)型,并置當(dāng)前搜索層N為1,候選節(jié)點(diǎn)集合set(n)初始化為空,候選父節(jié)點(diǎn)集合Set(fn)初始化為空;Step3 如果該節(jié)點(diǎn)處于外網(wǎng),服務(wù)中心采用廣度優(yōu)先搜索方式遍歷第N層,將該層與請(qǐng)求加入節(jié)點(diǎn)具有相同分辨率的用戶節(jié)點(diǎn)和DTU節(jié)點(diǎn)加入候選節(jié)點(diǎn)集合set (η),如果該節(jié)點(diǎn)處于內(nèi)網(wǎng),服務(wù)中心采用廣度優(yōu)先搜索方式遍歷第N層,將該層與請(qǐng)求加入節(jié)點(diǎn)具有相同分辨率且處于外網(wǎng)的用戶節(jié)點(diǎn)和DTU節(jié)點(diǎn)加入候選節(jié)點(diǎn)集合set (η);St印4 遍歷set (η),將其中接入用戶節(jié)點(diǎn)數(shù)量小于degree的節(jié)點(diǎn)作為候選父節(jié)點(diǎn) set(fn),如果 |set(fn) | = 0,則置 N = N+1,跳到乂印3,如果 | set (fn) | >0,執(zhí)行乂印5 ; 計(jì)算Set(fn)中每個(gè)節(jié)點(diǎn)的優(yōu)先度η ”選擇優(yōu)先度最大的節(jié)點(diǎn),將該節(jié)點(diǎn)作為新加入節(jié)點(diǎn)Ui的父節(jié)點(diǎn),如果set (fn)中節(jié)點(diǎn)的優(yōu)先度相同,則隨機(jī)挑選一個(gè)節(jié)點(diǎn)作為新節(jié)點(diǎn)的父節(jié)點(diǎn);2)用戶節(jié)點(diǎn)退出算法步驟如下Stepl 用戶節(jié)點(diǎn)Ui給其當(dāng)前連接的第二層服務(wù)中心發(fā)送一條退出消息; Step2 服務(wù)中心收到消息后,根據(jù)Ui的id找到其父節(jié)點(diǎn)fn,給fn發(fā)送一條該節(jié)點(diǎn)退出消息;St印3:服務(wù)中心&[土]計(jì)算Ui目前的出度D(n)和其父節(jié)點(diǎn)4剩余出度D(fn),若 D(n) ^D(fn),則將Ui的下級(jí)節(jié)點(diǎn)接到節(jié)點(diǎn)fn下,并且跳到St印5,否則轉(zhuǎn)到St印4 ;乂印4:從退出節(jié)點(diǎn)Ui的子節(jié)點(diǎn)集合Set(Cn)中選擇優(yōu)先度最大的m個(gè)節(jié)點(diǎn)mchildren⑴,使< CD(/ ) + ZcM辦例(0然后將節(jié)點(diǎn)fn和children⑴作為剩余節(jié)點(diǎn)set (Cn)-children (i)的候選父節(jié)點(diǎn),剩余節(jié)點(diǎn)下級(jí)節(jié)點(diǎn)結(jié)構(gòu)不變,采用用戶節(jié)點(diǎn)加入算法來(lái)加入到系統(tǒng)中,然后轉(zhuǎn)到Mep5 ;St印5 退出節(jié)點(diǎn)Ui的下級(jí)節(jié)點(diǎn)都加入到系統(tǒng)后,節(jié)點(diǎn)Ui退出系統(tǒng)。
2.如權(quán)利要求1所述的支持異構(gòu)終端與異構(gòu)網(wǎng)絡(luò)環(huán)境的應(yīng)用層組播方法,其特征在于,所述的節(jié)點(diǎn)Ui的優(yōu)先度π i的計(jì)算方法如下,Ci -,, t,(--ki)π, =——-BΣ J loM^-- kj) η式中節(jié)點(diǎn)i的在線時(shí)長(zhǎng);節(jié)點(diǎn)i的網(wǎng)絡(luò)帶寬;cJ-kr-路多媒體數(shù)據(jù)所占用的帶寬; 節(jié)點(diǎn)i的子節(jié)點(diǎn)個(gè)數(shù); 節(jié)點(diǎn)i的子節(jié)點(diǎn)j的在線時(shí)長(zhǎng); 節(jié)點(diǎn)i的下級(jí)節(jié)點(diǎn)j的網(wǎng)絡(luò)帶寬節(jié)點(diǎn)j的子節(jié)點(diǎn)個(gè)數(shù)。
全文摘要
本發(fā)明公開(kāi)了一種支持異構(gòu)終端與異構(gòu)網(wǎng)絡(luò)環(huán)境的應(yīng)用層組播方法,其特征在于基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu),實(shí)現(xiàn)了綜合考慮異構(gòu)終端與異構(gòu)網(wǎng)絡(luò)環(huán)境的媒體數(shù)據(jù)傳送方法。首先,基于服務(wù)覆蓋網(wǎng)絡(luò)和P2P覆蓋網(wǎng)絡(luò)的樹(shù)型分層網(wǎng)絡(luò)架構(gòu),綜合考慮了不同ISP網(wǎng)絡(luò)與內(nèi)外網(wǎng)的異構(gòu)網(wǎng)絡(luò)環(huán)境,實(shí)現(xiàn)了支持異構(gòu)網(wǎng)絡(luò)的媒體數(shù)據(jù)傳送;其次,基于異構(gòu)網(wǎng)絡(luò)的媒體數(shù)據(jù)傳送分層網(wǎng)絡(luò)架構(gòu),綜合考慮各個(gè)用戶節(jié)點(diǎn)的網(wǎng)絡(luò)類(lèi)型、網(wǎng)絡(luò)帶寬、在線時(shí)長(zhǎng)和分辨率的終端異構(gòu)因素,實(shí)現(xiàn)了支持異構(gòu)終端的媒體數(shù)據(jù)傳送方法。
文檔編號(hào)H04L29/06GK102387072SQ20111031278
公開(kāi)日2012年3月21日 申請(qǐng)日期2011年10月15日 優(yōu)先權(quán)日2011年10月15日
發(fā)明者劉均, 張未展, 杜海鵬, 趙輝, 鄭慶華, 陳小云 申請(qǐng)人:西安交通大學(xué)