專利名稱:應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法、終端和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法、終端和系統(tǒng),尤其涉及一種
基于P2P技術(shù)在組播網(wǎng)絡(luò)中分發(fā)數(shù)據(jù)的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,以及執(zhí)行
該組:燔方法的^^端和系統(tǒng)。
背景技術(shù):
在互聯(lián)網(wǎng)中,數(shù)據(jù)的分發(fā)傳輸是最常用的功能之一,特別是隨著多媒體 技術(shù)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,對(duì)實(shí)時(shí)性要求較高的視頻和音頻等流媒體數(shù)據(jù)的 分發(fā)已經(jīng)占據(jù)了大部分網(wǎng)絡(luò)帶寬。因此,如何提高流媒體數(shù)據(jù)的分發(fā)效率和 可靠性成為當(dāng)前倍受關(guān)注的問題。
現(xiàn)有的多媒體數(shù)據(jù)分發(fā)方式主要包括以下幾類1、傳統(tǒng)的客戶端/服務(wù) 器模式,該模式由預(yù)先部署的單個(gè)或多個(gè)服務(wù)器直接將多媒體數(shù)據(jù)復(fù)制成多 份,分別分發(fā)給各客戶端,但該模式的缺點(diǎn)在于服務(wù)器的服務(wù)能力限制了接 入的客戶端數(shù)量,由于每個(gè)客戶端均需要直接從服務(wù)器獲得多媒體數(shù)據(jù)流, 所以浪費(fèi)了網(wǎng)絡(luò)帶寬,增加了服務(wù)器出口處的帶寬壓力,降低了客戶端的數(shù) 據(jù)傳輸速率;2、網(wǎng)絡(luò)層組播模式,該模式是在服務(wù)器向多個(gè)客戶端分發(fā)相同 的多媒體數(shù)據(jù)時(shí),只需復(fù)制下發(fā)一份數(shù)據(jù)包,而后通過網(wǎng)絡(luò)路徑中的路由器 對(duì)該數(shù)據(jù)包進(jìn)行多次復(fù)制后再分發(fā),最終到達(dá)多個(gè)客戶端,但該^t式的不足 是網(wǎng)絡(luò)層的組播技術(shù)需要路由器的支持,涉及到多網(wǎng)元、多個(gè)運(yùn)營(yíng)商和多個(gè) 服務(wù)提供商之間的配合,所以協(xié)調(diào)統(tǒng)一困難,難以大規(guī)模推廣;3、 P2P(點(diǎn) 對(duì)點(diǎn),Peer-to-Peer )文件分發(fā)才莫式,例如"Bit Torrent"協(xié)i義就是一種基 于目錄服務(wù)器的P2P文件共享協(xié)議,用戶通過"Tracker"服務(wù)器獲得可用的節(jié)點(diǎn)信息,然后連接可用節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互,由于每個(gè)節(jié)點(diǎn)可以同時(shí)從多個(gè) 節(jié)點(diǎn)獲得數(shù)據(jù),所以數(shù)據(jù)傳輸?shù)男阅芎涂煽啃远嫉玫搅艘欢ǖ谋WC,但該模 式由于每個(gè)節(jié)點(diǎn)幾乎可以從任何節(jié)點(diǎn)獲得數(shù)據(jù),所以浪費(fèi)了不必要的網(wǎng)絡(luò)帶寬。
現(xiàn)有技術(shù)為解決上述數(shù)據(jù)分發(fā)方式之中的問題,提出了基于P2P分布式 內(nèi)容分發(fā)的應(yīng)用層組播技術(shù)。該技術(shù)結(jié)合了 P2P文件分發(fā)技術(shù)和網(wǎng)絡(luò)層組播 技術(shù),將網(wǎng)絡(luò)中的節(jié)點(diǎn)組織成多個(gè)組播樹,釆用普通的主機(jī)作為組播樹中的 節(jié)點(diǎn),不需要對(duì)現(xiàn)有網(wǎng)絡(luò)設(shè)備做任何改變,避免了出現(xiàn)類似網(wǎng)絡(luò)層組播技術(shù) 的難推廣的問題。
目前典型的應(yīng)用層組播技術(shù)有以下幾種
1、 "End System Multicast"方案首先將組寸番成員,即將客戶節(jié)點(diǎn)組 織成網(wǎng)狀相連,每個(gè)節(jié)點(diǎn)中都維護(hù)所有組播成員的列表,減少節(jié)點(diǎn)加入和退 出時(shí)對(duì)其他節(jié)點(diǎn)的影響,以提高組播樹的可靠性;在網(wǎng)上以每個(gè)數(shù)據(jù)源所在 的節(jié)點(diǎn)為根節(jié)點(diǎn)構(gòu)造一個(gè)組播樹,這樣可針對(duì)每個(gè)數(shù)據(jù)源所在節(jié)點(diǎn)進(jìn)行性能 優(yōu)化;但該方案的缺點(diǎn)是系統(tǒng)開銷比較大,降低了系統(tǒng)的可擴(kuò)展性,僅適合 小規(guī)模組播網(wǎng)絡(luò)的情況;
2、 "ALMI"方案在組播成員之間維護(hù)一個(gè)最小組播樹,該方案能夠減 小系統(tǒng)維護(hù)開銷,但是從每個(gè)數(shù)據(jù)源分發(fā)的傳輸開銷無(wú)法單獨(dú)優(yōu)化,最小組 播樹的維護(hù)開銷也會(huì)限制組播網(wǎng)絡(luò)的規(guī)模;
3、 "NICE"方案使用分層和分群的思路,將組播成員分為多層,并設(shè) 置大部分組播成員節(jié)點(diǎn)位于分層結(jié)構(gòu)的底層,底層的節(jié)點(diǎn)只與少量固定數(shù)目 的上層成員節(jié)點(diǎn)存在聯(lián)系,每一層中,由其中的一個(gè)代表節(jié)點(diǎn)從上層節(jié)點(diǎn)獲 得數(shù)據(jù)并維護(hù)該層中其他節(jié)點(diǎn)的信息,其他節(jié)點(diǎn)可以選擇該層中鏈路狀況和 服務(wù)能力比較好的節(jié)點(diǎn),從該節(jié)點(diǎn)獲得數(shù)據(jù),這樣就降低了大部分組播成員 所需的處理開銷,該模式適合低帶寬數(shù)據(jù)流的應(yīng)用,當(dāng)流媒體傳輸?shù)臄?shù)據(jù)率 比較大,節(jié)點(diǎn)的出口帶寬比較小時(shí),該節(jié)點(diǎn)不能被選中為代表節(jié)點(diǎn)為其他節(jié)點(diǎn)服務(wù)。
上述應(yīng)用層組播技術(shù)存在的缺陷是由于大部分節(jié)點(diǎn)是普通的用戶主機(jī),
節(jié)點(diǎn)的性能差異和隨機(jī)的加入和退出嚴(yán)重影響整個(gè)組播樹的穩(wěn)定性,上層應(yīng)
用層鏈路的擁塞會(huì)直接影響下層鏈路;占系統(tǒng)很大比例的葉節(jié)點(diǎn)的出口帶寬 沒有得到有效利用,存在免費(fèi)搭車的情況,有礙整個(gè)系統(tǒng)的公平性,具體到 "NICE"模式中,作為代表節(jié)點(diǎn),入度為"1"但出度大于'T,,當(dāng)該代表 節(jié)點(diǎn)下載一份數(shù)據(jù)包時(shí),要傳輸該份數(shù)據(jù)包給多個(gè)其他節(jié)點(diǎn),對(duì)于普通用戶 的主機(jī)來(lái)說(shuō),有礙公平性,難以推廣;以"NICE"模式為例,眾多位于底層 的節(jié)點(diǎn)只能從一個(gè)代表節(jié)點(diǎn)獲得數(shù)據(jù)流,所以數(shù)據(jù)分發(fā)效率較低;另外,有 些節(jié)點(diǎn)的出口帶寬不穩(wěn)定或比較小,不足以為其他節(jié)點(diǎn)提供完整數(shù)據(jù)流,這 些節(jié)點(diǎn)的出口帶寬也會(huì)浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法、終端和系統(tǒng),以提 高組播網(wǎng)絡(luò)的穩(wěn)定性和可靠性,減少節(jié)點(diǎn)加入或退出對(duì)已有節(jié)點(diǎn)網(wǎng)絡(luò)的影響, 并且在教:據(jù)源有限的情況下,能夠充分利用網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的出口帶寬,從 而提高網(wǎng)絡(luò)中的數(shù)據(jù)分發(fā)效率,提供大規(guī)模的組播網(wǎng)絡(luò),減小局部數(shù)據(jù)傳輸 過載擁塞對(duì)整個(gè)網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)挠绊懀瑥亩岣吖?jié)點(diǎn)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸效 率、可擴(kuò)展性和可靠性。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,包括如 下步驟
節(jié)點(diǎn)加入組播網(wǎng)絡(luò),成為組播網(wǎng)絡(luò)中一父節(jié)點(diǎn)的子節(jié)點(diǎn); 節(jié)點(diǎn)在本地建立父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表; 節(jié)點(diǎn)采集父節(jié)點(diǎn)的節(jié)點(diǎn)信息以更新本地的父節(jié)點(diǎn)信息,獲取父節(jié)點(diǎn)的子
節(jié)點(diǎn)表以更新本地的兄弟節(jié)點(diǎn)表,獲取父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)表以更新本地的父
兄節(jié)點(diǎn)表。
10為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端,包括
父節(jié)點(diǎn)信息存儲(chǔ)模塊,用于存儲(chǔ)父節(jié)點(diǎn)信息,該父節(jié)點(diǎn)信息記錄該終端
的父節(jié)點(diǎn)的節(jié)點(diǎn)信息;
兄弟節(jié)點(diǎn)表存儲(chǔ)模塊,用于存儲(chǔ)兄弟節(jié)點(diǎn)表,該兄弟節(jié)點(diǎn)表記錄該終端 的兄弟節(jié)點(diǎn)的節(jié)點(diǎn)信息;
父兄節(jié)點(diǎn)表存儲(chǔ)模塊,用于存儲(chǔ)父兄節(jié)點(diǎn)表,該父兄節(jié)點(diǎn)表記錄該終端 父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)的節(jié)點(diǎn)信息;
子節(jié)點(diǎn)表存儲(chǔ)模塊,用于存儲(chǔ)子節(jié)點(diǎn)表,該子節(jié)點(diǎn)表記錄該終端的子節(jié) 點(diǎn)的節(jié)點(diǎn)信息;
信息更新模塊,分別與父節(jié)點(diǎn)信息存儲(chǔ)模塊、兄弟節(jié)點(diǎn)表存儲(chǔ)模塊、父 兄節(jié)點(diǎn)表存儲(chǔ)模塊和子節(jié)點(diǎn)表存儲(chǔ)模塊相連,用于與該終端所連接的父節(jié)點(diǎn)、 兄弟節(jié)點(diǎn)和子節(jié)點(diǎn)分別相連,并根據(jù)獲取到的更新信息對(duì)父節(jié)點(diǎn)信息、兄弟 節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表進(jìn)行更新。
為實(shí)現(xiàn)上述目的,本發(fā)明又提供了一種應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)網(wǎng)絡(luò),包括 至少一個(gè)根節(jié)點(diǎn)和連接在該根節(jié)點(diǎn)下、分別位于多層的數(shù)個(gè)葉節(jié)點(diǎn),其中 采用本發(fā)明的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端作為葉節(jié)點(diǎn);且該根節(jié)點(diǎn)至少包括子 節(jié)點(diǎn)表存儲(chǔ)模塊、信息更新模塊、分割模塊和下發(fā)模塊。
上述應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)系統(tǒng)相當(dāng)于一個(gè)組播網(wǎng)絡(luò),其中的各個(gè)葉節(jié)點(diǎn) 可以為多個(gè)葉節(jié)點(diǎn)的父節(jié)點(diǎn),同時(shí)也可以為另一葉節(jié)點(diǎn)的子節(jié)點(diǎn),能夠兼具 父節(jié)點(diǎn)和子節(jié)點(diǎn)的地位,該應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)系統(tǒng)實(shí)際為多層次的節(jié)點(diǎn)網(wǎng) 絡(luò)結(jié)構(gòu)。
由以上技術(shù)方案可知,本發(fā)明采用在節(jié)點(diǎn)上維護(hù)父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn) 表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表的技術(shù)手段,增強(qiáng)了組播網(wǎng)絡(luò)中節(jié)點(diǎn)的關(guān)聯(lián)性, 克服了組播網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生異常退出或頻繁加入新節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)中數(shù)據(jù)分發(fā)途徑 造成影響的技術(shù)問題,通過維護(hù)上述信息,可以提高組播網(wǎng)絡(luò)的可靠性,可 擴(kuò)展性,在數(shù)據(jù)源有限的前提下能夠形成較大規(guī)模的組播網(wǎng)絡(luò),并且各節(jié)點(diǎn)不僅存儲(chǔ)有父節(jié)點(diǎn)信息,還存儲(chǔ)有兄弟節(jié)點(diǎn)信息,能夠?qū)崿F(xiàn)與兄弟節(jié)點(diǎn)的交 互,從而為利用兄弟節(jié)點(diǎn)的出口帶寬傳輸數(shù)據(jù)提供了保障,因此也能夠有效 提高網(wǎng)絡(luò)中的數(shù)據(jù)傳輸速率,充分利用帶寬資源。
下面通過具體實(shí)施例并結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法所基于的組播網(wǎng)絡(luò)結(jié)構(gòu)示意圖; 圖2為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例一的流程圖; 圖3為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例二的流程圖; 圖4為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例三的流程圖; 圖5為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例四的流程圖; 圖6為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例五的流程圖; 圖7為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例六的流程圖; 圖8為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例七的流程圖; 圖9為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端具體實(shí)施例的結(jié)構(gòu)示意圖; 圖10為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)系統(tǒng)具體實(shí)施例中根節(jié)點(diǎn)的結(jié)構(gòu)示 意圖。
具體實(shí)施例方式
本發(fā)明是基于組播網(wǎng)絡(luò)實(shí)現(xiàn)的,組播網(wǎng)絡(luò)由眾多節(jié)點(diǎn)組成,如圖l所示。 節(jié)點(diǎn)一般可分為兩類根節(jié)點(diǎn)和葉節(jié)點(diǎn),圖1所示的節(jié)點(diǎn)A即為一個(gè)根節(jié)點(diǎn), 其余節(jié)點(diǎn)為葉節(jié)點(diǎn)。根節(jié)點(diǎn)一般是數(shù)據(jù)源,是數(shù)據(jù)內(nèi)容的發(fā)布者,不再連接 有上層節(jié)點(diǎn)。葉節(jié)點(diǎn)是連接在根節(jié)點(diǎn)或其他葉節(jié)點(diǎn)之下的節(jié)點(diǎn)。如圖l所示, 節(jié)點(diǎn)A為一層,節(jié)點(diǎn)B和節(jié)點(diǎn)C位于同一層中,節(jié)點(diǎn)D、 E、 F和G位于同一 層中,且節(jié)點(diǎn)H、 I、 J和K位于最底的一層中,位于同一層且連接在同一父 節(jié)點(diǎn)上的節(jié)點(diǎn)相互為兄弟節(jié)點(diǎn)。從另一個(gè)角度來(lái)看,節(jié)點(diǎn)又可分為父節(jié)點(diǎn)和子節(jié)點(diǎn)兩類,父節(jié)點(diǎn)和子節(jié)點(diǎn)是上、下層節(jié)點(diǎn)的關(guān)系, 一個(gè)父節(jié)點(diǎn)可以有多 個(gè)子節(jié)點(diǎn),通??梢栽O(shè)定為20~ 30個(gè),而一個(gè)子節(jié)點(diǎn)只能連接在一個(gè)父節(jié)點(diǎn)
之下。以其中的節(jié)點(diǎn)E為例,節(jié)點(diǎn)E既是節(jié)點(diǎn)B的子節(jié)點(diǎn),又是節(jié)點(diǎn)J和節(jié) 點(diǎn)K的父節(jié)點(diǎn)。 一個(gè)父節(jié)點(diǎn)和連接在其上的多個(gè)子節(jié)點(diǎn)定義為一個(gè)組播群。 本發(fā)明的組播網(wǎng)絡(luò)采用分層分群的方式來(lái)實(shí)現(xiàn)。
在組播網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)分發(fā)是組播網(wǎng)絡(luò)的基本業(yè)務(wù),尤其是對(duì)流媒體數(shù) 據(jù)的分發(fā)。在下述實(shí)施例中,為描述清楚,從圖1組播網(wǎng)絡(luò)中的節(jié)點(diǎn)E角度 出發(fā),以該葉節(jié)點(diǎn)在流媒體數(shù)據(jù)包分發(fā)過程中執(zhí)行的流程為例,介紹本發(fā)明 的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,該節(jié)點(diǎn)E執(zhí)行的流程可普遍適用于組播網(wǎng)絡(luò)中 的任一葉節(jié)點(diǎn)。對(duì)于應(yīng)用層組播業(yè)務(wù)的實(shí)現(xiàn)來(lái)說(shuō),主要包括組播網(wǎng)絡(luò)的維護(hù) 調(diào)整過程以及數(shù)據(jù)包的分發(fā)傳輸過程,下面分別進(jìn)行介紹。
如圖2所示為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例一的流程圖, 該方法是在組播網(wǎng)絡(luò)中實(shí)現(xiàn)數(shù)據(jù)應(yīng)用層組播業(yè)務(wù)時(shí),對(duì)組播網(wǎng)絡(luò)進(jìn)行維護(hù)調(diào) 整的過程,具體為節(jié)點(diǎn)E作為新節(jié)點(diǎn)加入組播網(wǎng)絡(luò)的流程,包括如下步驟
步驟101、節(jié)點(diǎn)E加入組播網(wǎng)絡(luò),成為該組播網(wǎng)絡(luò)中節(jié)點(diǎn)B的子節(jié)點(diǎn), 節(jié)點(diǎn)B成為節(jié)點(diǎn)E的父節(jié)點(diǎn);
步驟1Q2、節(jié)點(diǎn)E在本地建立父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和 子節(jié)點(diǎn)表;
步驟103、節(jié)點(diǎn)E采集所加入的節(jié)點(diǎn)B的節(jié)點(diǎn)信息,以此來(lái)更新本地的 父節(jié)點(diǎn)信息,獲取其父節(jié)點(diǎn),即節(jié)點(diǎn)B的子節(jié)點(diǎn)表以更新本地的兄弟節(jié)點(diǎn)表, 并獲取節(jié)點(diǎn)B的兄弟節(jié)點(diǎn)表以更新本地的父兄節(jié)點(diǎn)表,此時(shí),節(jié)點(diǎn)B的子節(jié) 點(diǎn)D即成為節(jié)點(diǎn)E的兄弟節(jié)點(diǎn),節(jié)點(diǎn)B的兄弟節(jié)點(diǎn)C即成為節(jié)點(diǎn)E的父兄節(jié) 點(diǎn)。
本實(shí)施例中,節(jié)點(diǎn)加入組播網(wǎng)絡(luò)之后即成為一個(gè)父節(jié)點(diǎn)的子節(jié)點(diǎn),可以 加入到根節(jié)點(diǎn)下,也可以加入到一個(gè)葉節(jié)點(diǎn)下。在組播網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都 維護(hù)有下述數(shù)據(jù)結(jié)構(gòu)父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表。在組播網(wǎng)絡(luò)的一個(gè)組播群中,父節(jié)點(diǎn)就是該群的種子節(jié)點(diǎn)為其他子節(jié)點(diǎn)提供 數(shù)據(jù)源,并且父節(jié)點(diǎn)也是該群的控制節(jié)點(diǎn),維護(hù)其他節(jié)點(diǎn)的信息,控制群內(nèi) 節(jié)點(diǎn)的加入和退出,父節(jié)點(diǎn)信息記錄父節(jié)點(diǎn)的節(jié)點(diǎn)信息,包括父節(jié)點(diǎn)的標(biāo)識(shí)
和位置等信息;兄弟節(jié)點(diǎn)表記錄組播群內(nèi)與該子節(jié)點(diǎn)同層的其他子節(jié)點(diǎn)的節(jié) 點(diǎn)信息,兄弟節(jié)點(diǎn)表的作用類似于P2P文件分發(fā)協(xié)議中的鄰居節(jié)點(diǎn)表;父兄 節(jié)點(diǎn)表記錄其父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)信息,即與父節(jié)點(diǎn)同層的其他節(jié)點(diǎn)的信息, 當(dāng)父節(jié)點(diǎn)異常退出時(shí),子節(jié)點(diǎn)可以從父兄節(jié)點(diǎn)獲得數(shù)據(jù),能夠降低父節(jié)點(diǎn)退 出對(duì)該組播群的影響;子節(jié)點(diǎn)表記錄該節(jié)點(diǎn)的子節(jié)點(diǎn)信息,包括各子節(jié)點(diǎn)地 址和到這些子節(jié)點(diǎn)之間的距離,用于維護(hù)組播樹的拓樸結(jié)構(gòu)。其中,位于最 底層的葉節(jié)點(diǎn)的子節(jié)點(diǎn)表為空,而根節(jié)點(diǎn)的父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn)表和父兄 節(jié)點(diǎn)表為空。
在本實(shí)施例的基礎(chǔ)上,子節(jié)點(diǎn)除更新本地信息之外,還可以在該節(jié)點(diǎn)加 入父節(jié)點(diǎn)之時(shí)或之后,應(yīng)父節(jié)點(diǎn)要求或者主動(dòng)向父節(jié)點(diǎn)上報(bào)自身的節(jié)點(diǎn)信息, 以更新該父節(jié)點(diǎn)中的子節(jié)點(diǎn)表。
在本實(shí)施例的技術(shù)方案中,對(duì)于一個(gè)新加入的節(jié)點(diǎn)來(lái)說(shuō),其上未連接子 節(jié)點(diǎn),也就不需要更新子節(jié)點(diǎn)表。但在該節(jié)點(diǎn)加入一個(gè)父節(jié)點(diǎn)之時(shí)或之后, 還有可能有其他節(jié)點(diǎn)加入到該節(jié)點(diǎn)上成為其子節(jié)點(diǎn)。則在節(jié)點(diǎn)加入組播網(wǎng)絡(luò) 之時(shí)或之后,還可執(zhí)行下述步驟節(jié)點(diǎn)接收到其他節(jié)點(diǎn)發(fā)送的加入請(qǐng)求,并 當(dāng)回復(fù)確認(rèn)該加入請(qǐng)求以確認(rèn)能夠加入后,節(jié)點(diǎn)即從發(fā)送加入請(qǐng)求的節(jié)點(diǎn)中 采集其節(jié)點(diǎn)信息,以更新本地的子節(jié)點(diǎn)表。
本實(shí)施例的技術(shù)方案實(shí)現(xiàn)了每個(gè)節(jié)點(diǎn)在加入組播網(wǎng)絡(luò)時(shí)即建立并維護(hù)父 節(jié)點(diǎn)信息、父兄節(jié)點(diǎn)表、兄弟節(jié)點(diǎn)表和子節(jié)點(diǎn)表,能夠保證節(jié)點(diǎn)之間的聯(lián)系。 任意一個(gè)節(jié)點(diǎn)不僅記錄有父節(jié)點(diǎn)信息,同時(shí)還記錄有父兄節(jié)點(diǎn)信息,當(dāng)父節(jié) 點(diǎn)異常退出后,子節(jié)點(diǎn)可以從父兄節(jié)點(diǎn)表中了解與父節(jié)點(diǎn)同層的節(jié)點(diǎn)信息, 則可以降低節(jié)點(diǎn)退出時(shí)對(duì)該組播群的影響。并且節(jié)點(diǎn)上還記錄有兄弟節(jié)點(diǎn)表, 則節(jié)點(diǎn)不僅能夠從父節(jié)點(diǎn)獲取信息,而且能夠從同層的兄弟節(jié)點(diǎn)獲取信息,
14則同樣能夠降低節(jié)點(diǎn)退出對(duì)網(wǎng)絡(luò)造成的影響。本實(shí)施例有效降低了單節(jié)點(diǎn)失 效對(duì)整個(gè)組播網(wǎng)絡(luò)造成的影響,具有穩(wěn)定性高的優(yōu)點(diǎn)。
如圖3所示為本發(fā)明應(yīng)用層組播方法具體實(shí)施例二的流程圖,本實(shí)施例 以實(shí)施例一為基礎(chǔ),具體為步驟101中節(jié)點(diǎn)E加入組^番網(wǎng)絡(luò),成為該組纟番網(wǎng)
絡(luò)中節(jié)點(diǎn)B的子節(jié)點(diǎn)具體實(shí)現(xiàn)方式
步驟1011、節(jié)點(diǎn)E向組播網(wǎng)絡(luò)的根節(jié)點(diǎn),即向節(jié)點(diǎn)A發(fā)送加入測(cè)試請(qǐng)求, 且此時(shí)記該根節(jié)點(diǎn)為父節(jié)點(diǎn);
步驟1012、節(jié)點(diǎn)E從父節(jié)點(diǎn)接收該父節(jié)點(diǎn)的子節(jié)點(diǎn)表;
步驟1013、節(jié)點(diǎn)E從父節(jié)點(diǎn)的子節(jié)點(diǎn)表中解析獲取其記載的節(jié)點(diǎn)信息, 即獲取到父節(jié)點(diǎn)的已有子節(jié)點(diǎn),而后節(jié)點(diǎn)E對(duì)父節(jié)點(diǎn)和父節(jié)點(diǎn)的所有子節(jié)點(diǎn) 通過"PING"方式分別進(jìn)行延時(shí)測(cè)試,即測(cè)試節(jié)點(diǎn)之間的網(wǎng)絡(luò)延時(shí);
步驟1014、節(jié)點(diǎn)E根據(jù)延時(shí)測(cè)試結(jié)果,首先判斷父節(jié)點(diǎn)的延時(shí)是否最小, 若是,則執(zhí)行步驟1016,否則,執(zhí)行步驟1015;
步驟1015、此時(shí)父節(jié)點(diǎn)的延時(shí)并非最小,那么節(jié)點(diǎn)E考慮剩余節(jié)點(diǎn)的延 時(shí)結(jié)果,將延時(shí)最小的節(jié)點(diǎn)作為新的目標(biāo)父節(jié)點(diǎn),向新的父節(jié)點(diǎn)發(fā)送加入測(cè) 試請(qǐng)求,并執(zhí)行步驟1012;
步驟1016、節(jié)點(diǎn)E向當(dāng)前的父節(jié)點(diǎn)發(fā)送加入確認(rèn)請(qǐng)求;
步驟1017、節(jié)點(diǎn)E判斷接收自父節(jié)點(diǎn)的返回消息是否為加入成功報(bào)文, 若否,則證明節(jié)點(diǎn)不能成功加入該父節(jié)點(diǎn),則該節(jié)點(diǎn)丟棄對(duì)該父節(jié)點(diǎn)的延時(shí) 測(cè)試結(jié)果,并執(zhí)行步驟1015,若是,則節(jié)點(diǎn)可成功加入組播網(wǎng)絡(luò),成為該父 節(jié),#、的子節(jié)點(diǎn)。
本實(shí)施例是節(jié)點(diǎn)加入組播網(wǎng)絡(luò)的一般流程,節(jié)點(diǎn)通過反復(fù)的測(cè)試延時(shí), 從根節(jié)點(diǎn)開始,找到延時(shí)最短且允許其加入的父節(jié)點(diǎn)。在此過程中,若父節(jié) 點(diǎn)接收到加入確認(rèn)請(qǐng)求時(shí),檢測(cè)到本地所連接的子節(jié)點(diǎn)數(shù)已經(jīng)飽和或者因其 他原因不能允許該節(jié)點(diǎn)加入,那么發(fā)送加入失敗報(bào)文給該節(jié)點(diǎn),若父節(jié)點(diǎn)能 夠允許該節(jié)點(diǎn)的加入,則從加入確認(rèn)請(qǐng)求中采集該節(jié)點(diǎn)的節(jié)點(diǎn)信息,將其記錄在本地的子節(jié)點(diǎn)表中,并返回加入成功報(bào)文給該節(jié)點(diǎn)。而后再執(zhí)行后續(xù)步
驟102和步驟103,以便該節(jié)點(diǎn)維護(hù)自身的父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn)表和父兄 節(jié)點(diǎn)表等。該節(jié)點(diǎn)的節(jié)點(diǎn)信息可以在加入確認(rèn)請(qǐng)求中上報(bào),也可以在加入之 后進(jìn)行上報(bào)。
本實(shí)施例的技術(shù)方案實(shí)現(xiàn)了節(jié)點(diǎn)加入組播網(wǎng)絡(luò),并搜尋到允許的、延時(shí) 最小的父節(jié)點(diǎn),從而能夠保證組播網(wǎng)絡(luò)中各節(jié)點(diǎn)之間的組合是最小延時(shí)組合, 組播網(wǎng)絡(luò)是最佳的組網(wǎng)方式,具有最優(yōu)的數(shù)據(jù)傳輸速率。
如圖4所示為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例三的流程圖, 本實(shí)施例可以上述實(shí)施例一或二的技術(shù)方案為基礎(chǔ),以該新加入的節(jié)點(diǎn)E為 例,在節(jié)點(diǎn)E更新完成本地的兄弟節(jié)點(diǎn)表之后,執(zhí)行從其父節(jié)點(diǎn)接收組播分 發(fā)數(shù)據(jù)的流程,具體步驟可以為
步驟A1、節(jié)點(diǎn)E接收父節(jié)點(diǎn)B傳輸?shù)臄?shù)據(jù)片;
步驟A2、節(jié)點(diǎn)E向其兄弟節(jié)點(diǎn)D傳輸從父節(jié)點(diǎn)B直接獲取的數(shù)據(jù)片,并 從其兄弟節(jié)點(diǎn)D采集兄弟節(jié)點(diǎn)D從父節(jié)點(diǎn)B獲取的其他數(shù)據(jù)片,其兄弟節(jié)點(diǎn) D就是節(jié)點(diǎn)E本地兄弟節(jié)點(diǎn)表中記載的節(jié)點(diǎn),在實(shí)際應(yīng)用中, 一個(gè)組播群中 的子節(jié)點(diǎn)通常有多個(gè),兄弟節(jié)點(diǎn)數(shù)量根據(jù)具體情況而定;
步驟A3、節(jié)點(diǎn)E將從父節(jié)點(diǎn)B處和兄弟節(jié)點(diǎn)D處接收的多個(gè)數(shù)據(jù)片^f接 為一個(gè)完整的數(shù)據(jù)段,而后對(duì)該數(shù)據(jù)段進(jìn)行處理。
在本實(shí)施例中,在節(jié)點(diǎn)接收父節(jié)點(diǎn)下發(fā)的數(shù)據(jù)片之前,父節(jié)點(diǎn)可以將待 分發(fā)的數(shù)據(jù)包順序地分割為多個(gè)數(shù)據(jù)段,并將每個(gè)數(shù)據(jù)段都任意分割為多個(gè) 數(shù)據(jù)片,較佳的是按照自身子節(jié)點(diǎn)的數(shù)量分配,而后父節(jié)點(diǎn)按照數(shù)據(jù)段的順 序,依次將各個(gè)數(shù)據(jù)段的數(shù)據(jù)片分別下發(fā)給本地子節(jié)點(diǎn)表中記載的不同子節(jié) 點(diǎn),使各個(gè)子節(jié)點(diǎn)獲取同一數(shù)據(jù)段中的不同數(shù)據(jù)片。
本實(shí)施例中,每個(gè)組播群構(gòu)成了一個(gè)以父節(jié)點(diǎn)為種子節(jié)點(diǎn)的P2P網(wǎng)絡(luò), 每個(gè)子節(jié)點(diǎn)不僅可以從父節(jié)點(diǎn)獲得數(shù)據(jù)片還可以從其兄弟節(jié)點(diǎn)獲得數(shù)據(jù)片。 較佳的情況下,父節(jié)點(diǎn)只提供一個(gè)復(fù)本,經(jīng)過子節(jié)點(diǎn)之間交換數(shù)據(jù)片就可以使其所有子節(jié)點(diǎn)都能夠獲得完整的數(shù)據(jù)段復(fù)本。本實(shí)施例的技術(shù)方案尤其適 用于流媒體直播需要實(shí)時(shí)播放的數(shù)據(jù)分發(fā)業(yè)務(wù)。若對(duì)整個(gè)數(shù)據(jù)包進(jìn)行隨機(jī)選 片算法分片后下發(fā)給子節(jié)點(diǎn),再進(jìn)行子節(jié)點(diǎn)的交互,那么數(shù)據(jù)片的到達(dá)會(huì)相 對(duì)分散,必然造成較大的延時(shí)。如果采用順序選片算法分片后再下發(fā),那么 子節(jié)點(diǎn)就只能夠從父節(jié)點(diǎn)獲取數(shù)據(jù)片,這是傳統(tǒng)的基于組播樹的組播方法, 具有不能利用兄弟節(jié)點(diǎn)間出口帶寬的缺陷。本實(shí)施例的技術(shù)方案有效的解決 了上述兩方面的技術(shù)問題,可以將數(shù)據(jù)包劃分為若干大小相等的數(shù)據(jù)段,再 將每個(gè)數(shù)據(jù)段劃分為若干個(gè)數(shù)據(jù)片。而后順序分發(fā)數(shù)據(jù)段,分發(fā)每個(gè)數(shù)據(jù)段 時(shí),是隨機(jī)分發(fā)每個(gè)數(shù)據(jù)段的數(shù)據(jù)片。這樣在下發(fā)完一個(gè)數(shù)據(jù)段的所有數(shù)據(jù) 片之后,子節(jié)點(diǎn)的兄弟節(jié)點(diǎn)之間可以交互數(shù)據(jù)片,當(dāng)子節(jié)點(diǎn)獲取一個(gè)完整的 數(shù)據(jù)段之后就可以進(jìn)行數(shù)據(jù)處理。通常情況下, 一個(gè)數(shù)據(jù)段就是一個(gè)可獨(dú)立 播放的流媒體片段,節(jié)點(diǎn)能夠順序播放各個(gè)數(shù)據(jù)段,基本上能夠?qū)崿F(xiàn)流媒體 數(shù)據(jù)包的實(shí)時(shí)性要求,該技術(shù)方案尤其適用于對(duì)實(shí)時(shí)性要求不高的流媒體數(shù) 據(jù)的分發(fā)。該方案同時(shí)也實(shí)現(xiàn)了充分利用各個(gè)節(jié)點(diǎn)的出口帶寬,而解決了現(xiàn) 有技術(shù)中大部分節(jié)點(diǎn)作為子節(jié)點(diǎn)時(shí)只收不發(fā)而浪費(fèi)出口帶寬的問題。有效利 用了網(wǎng)絡(luò)節(jié)點(diǎn)之間的帶寬,自然能夠大幅度的提高數(shù)據(jù)分發(fā)的效率,降低延 時(shí)。所以本實(shí)施例的組播網(wǎng)絡(luò)具有系統(tǒng)容量大,負(fù)載均衡等優(yōu)點(diǎn)。
如圖5所示為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例四的流程圖, 本實(shí)施例以實(shí)施例三的技術(shù)方案為基礎(chǔ),在本實(shí)施例中,父節(jié)點(diǎn)和子節(jié)點(diǎn)之 間,以及兄弟節(jié)點(diǎn)之間的數(shù)據(jù)片傳輸方式可以選用推送和請(qǐng)求兩種方式。所 謂推送方式即主動(dòng)將數(shù)據(jù)發(fā)送給目標(biāo)節(jié)點(diǎn)。所謂請(qǐng)求方式,是通過向目標(biāo)節(jié) 點(diǎn)發(fā)送請(qǐng)求的方式來(lái)獲取數(shù)據(jù)片。在同一組播網(wǎng)絡(luò)中,特別是傳輸流媒體文
件的組播網(wǎng)絡(luò)中,各個(gè)節(jié)點(diǎn)加入該組播網(wǎng)絡(luò)的目的通常就是獲:f又某一個(gè)或某 些流媒體文件。而在該組播網(wǎng)絡(luò)中傳輸?shù)倪@些流媒體文件則以默認(rèn)的某種格 式編碼,并以相應(yīng)的軟件播放,加入該組播網(wǎng)絡(luò)的節(jié)點(diǎn)為獲取并播放該流媒 體文件,可以在加入組播網(wǎng)絡(luò)之前或之后從相應(yīng)的服務(wù)器上下載所需的軟件,存儲(chǔ)該默認(rèn)格式有關(guān)的信息,即位圖(map)。父節(jié)點(diǎn)可按照默認(rèn)的位圖才各式 對(duì)數(shù)據(jù)包進(jìn)行分段和分片,每個(gè)數(shù)據(jù)片可對(duì)應(yīng)位圖中的一個(gè)數(shù)據(jù)槽,當(dāng)節(jié)點(diǎn) 加入組播網(wǎng)絡(luò)并接收到數(shù)據(jù)片后,可按照默認(rèn)的位圖格式將數(shù)據(jù)片填入對(duì)應(yīng) 的數(shù)據(jù)槽進(jìn)行拼接組合,并且能夠更新一個(gè)位圖信息以標(biāo)識(shí)本地已有哪些數(shù) 據(jù)片,以及還缺少哪些數(shù)據(jù)片。依據(jù)該位圖信息,節(jié)點(diǎn)可以通過獲取兄弟節(jié) 點(diǎn)位圖信息的方式,來(lái)獲知兄弟節(jié)點(diǎn)已獲取的數(shù)據(jù)片,然后隨機(jī)請(qǐng)求兄弟節(jié) 點(diǎn)有而本地沒有的數(shù)據(jù)片進(jìn)行下載。推送方式和請(qǐng)求方式各有優(yōu)點(diǎn),可以結(jié) 合使用,當(dāng)一個(gè)流媒體數(shù)據(jù)包從根節(jié)點(diǎn)向各層子節(jié)點(diǎn)分發(fā)數(shù)據(jù)時(shí),較佳的實(shí) 施方式可以是將步驟Al替換為
步驟A1'、節(jié)點(diǎn)接收父節(jié)點(diǎn)采用推送方式向其直接相連的子節(jié)點(diǎn)下發(fā)的 數(shù)據(jù)片,以保證不同的子節(jié)點(diǎn)獲取數(shù)據(jù)段的不同數(shù)據(jù)片,特別是當(dāng)該父節(jié)點(diǎn) 為根節(jié)點(diǎn)時(shí)尤其適應(yīng)于這種方式。
步驟A2可替換為
步驟A21'、當(dāng)節(jié)點(diǎn)接收到其兄弟節(jié)點(diǎn)發(fā)送的數(shù)據(jù)片獲取請(qǐng)求時(shí),向發(fā) 送數(shù)據(jù)片獲取請(qǐng)求的兄弟節(jié)點(diǎn)發(fā)送對(duì)應(yīng)的數(shù)據(jù)片;
步驟A22'、節(jié)點(diǎn)向其兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求,并從其兄弟節(jié)點(diǎn) 接收該兄弟節(jié)點(diǎn)發(fā)送的對(duì)應(yīng)的數(shù)據(jù)片。
步驟A3可替換為
步驟A31'、節(jié)點(diǎn)判斷本地已有的多個(gè)數(shù)據(jù)片是否能拼接成一完整的數(shù) 據(jù)段,若是則拼接后播放處理,若否,則執(zhí)行步驟A32';
步驟A32'、節(jié)點(diǎn)查詢本地所需的數(shù)據(jù)片,并向父節(jié)點(diǎn)或該節(jié)點(diǎn)的兄弟 節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求,而后接收對(duì)應(yīng)的數(shù)據(jù)片,可以反復(fù)執(zhí)行步驟A31' 和A32',直至將數(shù)據(jù)片拼接成為完整數(shù)據(jù)段時(shí)進(jìn)行處理。
通常情況下,節(jié)點(diǎn)加入組播網(wǎng)絡(luò)的目的就是獲取某一流媒體文件,所以 在節(jié)點(diǎn)更新本地的信息之后,就可以根據(jù)本地的父節(jié)點(diǎn)信息和/或子節(jié)點(diǎn)表, 向父節(jié)點(diǎn)和/或兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求,并接收對(duì)應(yīng)的數(shù)據(jù)片。在具體實(shí)現(xiàn)過程中,父節(jié)點(diǎn)在分割數(shù)據(jù)片時(shí),可以根據(jù)默認(rèn)的位圖格式 為每個(gè)數(shù)據(jù)片設(shè)置標(biāo)識(shí),不僅作為該數(shù)據(jù)片的唯一標(biāo)志,同時(shí)標(biāo)志該數(shù)據(jù)片 在數(shù)據(jù)段中的順序,以便于節(jié)點(diǎn)進(jìn)行拼接。
在本實(shí)施例中涉及的數(shù)據(jù)片獲取請(qǐng)求的方式可以有多種,在具體應(yīng)用中 可以任選其一或組合使用。例如,數(shù)據(jù)片獲取請(qǐng)求的一種具體實(shí)現(xiàn)方式可以
為在數(shù)據(jù)片獲取請(qǐng)求中不設(shè)置任何參數(shù),當(dāng)節(jié)點(diǎn)接收到兄弟節(jié)點(diǎn)發(fā)送的數(shù)
據(jù)片獲取請(qǐng)求,并檢測(cè)到其中不包含任何參數(shù)時(shí),可以默認(rèn)地將自身從父節(jié) 點(diǎn)直接獲取的數(shù)據(jù)片發(fā)送給該兄弟節(jié)點(diǎn),實(shí)現(xiàn)與兄弟節(jié)點(diǎn)的交互。這種方式 能夠?qū)崿F(xiàn)該父節(jié)點(diǎn)下的所有子節(jié)點(diǎn)通過交互就可以獲取該數(shù)據(jù)段的所有數(shù)據(jù) 片,由于父節(jié)點(diǎn)向每個(gè)子節(jié)點(diǎn)推送的數(shù)據(jù)片不同,因此幾乎每個(gè)節(jié)點(diǎn)之間都 有可用的分片,并且這樣方式不會(huì)發(fā)生數(shù)據(jù)片交互重復(fù)的現(xiàn)象。
數(shù)據(jù)片獲取請(qǐng)求的另 一種具體實(shí)現(xiàn)方式可以為節(jié)點(diǎn)可以通過在數(shù)據(jù)片 獲取請(qǐng)求中設(shè)置數(shù)據(jù)片標(biāo)識(shí)的方式來(lái)指定需要獲取的數(shù)據(jù)片。當(dāng)節(jié)點(diǎn)接收到
兄弟節(jié)點(diǎn)發(fā)送的數(shù)據(jù)片獲取請(qǐng)求,并解析出其中的數(shù)據(jù)片標(biāo)識(shí)時(shí),根據(jù)數(shù)據(jù) 片標(biāo)識(shí)在本地查詢對(duì)應(yīng)的數(shù)據(jù)片,并當(dāng)查詢到對(duì)應(yīng)的數(shù)據(jù)片時(shí)發(fā)送給該兄弟 節(jié)點(diǎn)。節(jié)點(diǎn)在與兄弟節(jié)點(diǎn)交互后,本地存儲(chǔ)的數(shù)據(jù)片不止從父節(jié)點(diǎn)獲取的一 個(gè),還包括從兄弟節(jié)點(diǎn)獲取的多個(gè)數(shù)據(jù)片。若某個(gè)節(jié)點(diǎn)異常退出而無(wú)法完成 與所有兄弟節(jié)點(diǎn)的交互時(shí),則可以通過指定數(shù)據(jù)片的方式從其他節(jié)點(diǎn)獲取。 某節(jié)點(diǎn)接收到數(shù)據(jù)片獲取請(qǐng)求時(shí),即檢測(cè)其中是否包含數(shù)據(jù)片標(biāo)識(shí),若未包 含,則直接發(fā)送從父節(jié)點(diǎn)獲取的數(shù)據(jù)片,若包含有數(shù)據(jù)片標(biāo)識(shí),則在本地查 找是否具有此標(biāo)識(shí)的數(shù)據(jù)片,有則發(fā)送該數(shù)據(jù)片,若無(wú),則回復(fù)響應(yīng)或者直 接丟棄該數(shù)據(jù)片獲取請(qǐng)求而不執(zhí)行操作。當(dāng)節(jié)點(diǎn)在發(fā)送了數(shù)據(jù)片獲取請(qǐng)求, 請(qǐng)求傳輸指定數(shù)據(jù)片后,若在設(shè)定的時(shí)間內(nèi)始終未接收到相應(yīng)數(shù)據(jù)片,那么 可能其他兄弟節(jié)點(diǎn)中都沒有該數(shù)據(jù)片,則節(jié)點(diǎn)可以向其父節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲 取請(qǐng)求,從父節(jié)點(diǎn)獲取指定的數(shù)據(jù)片,以能夠?qū)崿F(xiàn)最終的數(shù)據(jù)段拼接和播放。 父節(jié)點(diǎn)中存儲(chǔ)有所有的數(shù)據(jù)片,所以任意子節(jié)點(diǎn)退出時(shí),可以從父節(jié)點(diǎn)再次
19獲取相應(yīng)的數(shù)據(jù)片復(fù)本,不會(huì)影響整個(gè)數(shù)據(jù)段的播放。
數(shù)據(jù)片獲取請(qǐng)求的再一種方式可以為節(jié)點(diǎn)可以通過在數(shù)據(jù)片獲取請(qǐng)求 中設(shè)置位圖信息,并將數(shù)據(jù)片獲取請(qǐng)求隨機(jī)發(fā)送給所有兄弟節(jié)點(diǎn)的方式來(lái)獲 取數(shù)據(jù)片。當(dāng)兄弟節(jié)點(diǎn)接收到數(shù)據(jù)片獲取請(qǐng)求,并檢測(cè)到其中的位圖信息時(shí), 就可以查找本地是否存儲(chǔ)有該節(jié)點(diǎn)沒有的數(shù)據(jù)片,若有,則將該數(shù)據(jù)片傳輸 給該節(jié)點(diǎn)。通過這種方式,可以增加節(jié)點(diǎn)獲取數(shù)據(jù)片的途徑,提高獲取速度, 使節(jié)點(diǎn)迅速獲^^到本地所缺少的數(shù)據(jù)片。
在本實(shí)施例的技術(shù)方案中,結(jié)合了推送方式和請(qǐng)求方式的優(yōu)點(diǎn),當(dāng)然, 數(shù)據(jù)片的交互方式也可以單獨(dú)采用推送方式或請(qǐng)求方式。推送方式的優(yōu)點(diǎn)是 每個(gè)節(jié)點(diǎn)都記載有自身所連接節(jié)點(diǎn)的信息,能夠從根節(jié)點(diǎn)開始逐層向子節(jié)點(diǎn) 分發(fā)數(shù)據(jù)片,推送方式下數(shù)據(jù)片的分發(fā)路徑確定,當(dāng)節(jié)點(diǎn)網(wǎng)絡(luò)穩(wěn)定,沒有節(jié) 點(diǎn)動(dòng)態(tài)加入和退出現(xiàn)象發(fā)生時(shí),推送模式的此優(yōu)點(diǎn)更為突出,數(shù)據(jù)分發(fā)的可 靠性和效率均較高。父節(jié)點(diǎn)和子節(jié)點(diǎn)的相對(duì)關(guān)系一般比較穩(wěn)定,因此采用推 送方式下發(fā)數(shù)據(jù)片能保證每個(gè)子節(jié)點(diǎn)獲取不同的數(shù)據(jù)片。請(qǐng)求方式的優(yōu)點(diǎn)是 靈活性和自適應(yīng)性較高,子節(jié)點(diǎn)可以通過請(qǐng)求方式從其兄弟節(jié)點(diǎn)或者父節(jié)點(diǎn) 上獲取數(shù)據(jù)片。當(dāng)有節(jié)點(diǎn)動(dòng)態(tài)加入和退出時(shí),對(duì)組播網(wǎng)絡(luò)的影響可降至最小, 這一優(yōu)點(diǎn)尤其適應(yīng)于父節(jié)點(diǎn)下子節(jié)點(diǎn)頻繁動(dòng)態(tài)變更的情況。 一方面,當(dāng)某節(jié) 點(diǎn)的兄弟節(jié)點(diǎn)在增加或減少時(shí),該節(jié)點(diǎn)難以通過一次推送把數(shù)據(jù)片分發(fā)給所 有兄弟節(jié)點(diǎn),新增節(jié)點(diǎn)因存在獲取某個(gè)流媒體文件的需求而加入到組播網(wǎng)絡(luò) 中后,可以通過向兄弟節(jié)點(diǎn)和父節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求的方式來(lái)自行觸發(fā) 對(duì)數(shù)據(jù)片的獲取。另一方面,因?yàn)槟承┕?jié)點(diǎn)或節(jié)點(diǎn)之間的傳輸鏈路狀態(tài)不佳, 可能造成該節(jié)點(diǎn)或鏈路成為整個(gè)組播網(wǎng)絡(luò)的瓶頸, 一個(gè)數(shù)據(jù)片的傳輸延遲將 造成整個(gè)數(shù)據(jù)段的播放延誤。采用請(qǐng)求方式可以有效的解決這一問題,當(dāng)某 一數(shù)據(jù)片的一種傳輸路徑不暢時(shí),節(jié)點(diǎn)在進(jìn)行數(shù)據(jù)段拼接時(shí),就會(huì)及時(shí)的從 其他途徑獲取所需數(shù)據(jù)片,從而能夠保證數(shù)據(jù)段播放的實(shí)時(shí)性。
如圖6所示為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例五的流程圖,本實(shí)施例以上述實(shí)施例為基礎(chǔ),并具體為組播網(wǎng)絡(luò)中保證節(jié)點(diǎn)有效性的實(shí)現(xiàn) 方法,在本實(shí)施例中,組播網(wǎng)絡(luò)的節(jié)點(diǎn)可執(zhí)行下述步驟以保證其子節(jié)點(diǎn)的有
效性
步驟B1、節(jié)點(diǎn)為其子節(jié)點(diǎn)設(shè)置計(jì)時(shí)器進(jìn)行計(jì)時(shí),并對(duì)應(yīng)每個(gè)子節(jié)點(diǎn)分別 分配失效計(jì)數(shù)值"TTL,,,例如,設(shè)置每個(gè)子節(jié)點(diǎn)初始的失效計(jì)數(shù)值"TTL" 為"5";
步驟B2、當(dāng)節(jié)點(diǎn)判斷出對(duì)子節(jié)點(diǎn)的計(jì)時(shí)到達(dá)設(shè)定周期值時(shí),掃描本地的 子節(jié)點(diǎn)表,遞減所有子節(jié)點(diǎn)的失效計(jì)數(shù)值;
步驟B3、節(jié)點(diǎn)分別判斷各子節(jié)點(diǎn)的失效計(jì)數(shù)值是否小于失效門限值,若 是,則執(zhí)行步驟B4,若否,則不執(zhí)行任何操作,繼續(xù)計(jì)時(shí);
步驟B4、節(jié)點(diǎn)從本地子節(jié)點(diǎn)表中刪除失效計(jì)數(shù)值小于失效門限值的子節(jié) 點(diǎn),并將子節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)刪除消息發(fā)送給本地子節(jié)點(diǎn)表中記載的其他子節(jié) 點(diǎn),例如設(shè)定失效門限值為"0",到達(dá)計(jì)時(shí)周期就減'T,,當(dāng)失效計(jì)數(shù)值 減至"0"時(shí),證明該子節(jié)點(diǎn)已失效,則刪除該子節(jié)點(diǎn),并通知其他子節(jié)點(diǎn), 以更新其他子節(jié)點(diǎn)上存儲(chǔ)的兄弟節(jié)點(diǎn)表。
在上述步驟B1 B4過程中的任意時(shí)刻,當(dāng)節(jié)點(diǎn)接收到某個(gè)子節(jié)點(diǎn)上報(bào)的 心跳報(bào)文時(shí),即判斷該子節(jié)點(diǎn)對(duì)應(yīng)的失效計(jì)數(shù)值是否小于累計(jì)門限值,當(dāng)判 斷結(jié)果為是時(shí),則對(duì)應(yīng)遞增該子節(jié)點(diǎn)的失效計(jì)數(shù)值,若失效計(jì)數(shù)值大于累計(jì) 門限值則不作遞增操作,例如累計(jì)門限值可以設(shè)定為"5",通常與初始設(shè)置 的失效計(jì)數(shù)值一致,通過設(shè)置累計(jì)門限值,避免失效計(jì)數(shù)值累計(jì)增加至較大 的數(shù),那么當(dāng)子節(jié)點(diǎn)在多個(gè)周期未上報(bào)心跳報(bào)文時(shí),無(wú)法發(fā)現(xiàn)該子節(jié)點(diǎn)已失 效。
本實(shí)施例的技術(shù)方案,通過對(duì)子節(jié)點(diǎn)的心跳監(jiān)測(cè),能夠保證組播網(wǎng)絡(luò)中 各節(jié)點(diǎn)的有效性,在子節(jié)點(diǎn)異常退出時(shí),能夠及時(shí)獲知,從而調(diào)整數(shù)據(jù)片的 推送,避免向失效子節(jié)點(diǎn)推送數(shù)據(jù)片,而其他子節(jié)點(diǎn)無(wú)法從交互中獲取數(shù)據(jù) 片的情況出現(xiàn)。最終能夠提高組播網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)目煽啃院托省?br>
21心跳監(jiān)測(cè)一般是相互的,當(dāng)節(jié)點(diǎn)向其父節(jié)點(diǎn)周期性上報(bào)心跳報(bào)文后,會(huì) 相應(yīng)的^全測(cè)到父節(jié)點(diǎn)回復(fù)的心跳響應(yīng),若在設(shè)定時(shí)間內(nèi)未接收到回復(fù)的心跳 響應(yīng)時(shí),則可以判斷該父節(jié)點(diǎn)已經(jīng)失效,那么該節(jié)點(diǎn)可以根據(jù)本地存儲(chǔ)的父 兄節(jié)點(diǎn)表,對(duì)各父兄節(jié)點(diǎn)進(jìn)行延時(shí)測(cè)試,并向延時(shí)最小的父兄節(jié)點(diǎn)發(fā)送加入 測(cè)試請(qǐng)求,而后執(zhí)行節(jié)點(diǎn)加入的流程。采用這種方式,節(jié)點(diǎn)能夠迅速返回組 播網(wǎng)絡(luò),加入到父兄節(jié)點(diǎn)之下成為其子節(jié)點(diǎn),而后繼續(xù)進(jìn)行數(shù)據(jù)交互。該實(shí) 施方式使節(jié)點(diǎn)在監(jiān)測(cè)到父節(jié)點(diǎn)失效時(shí)能夠通過本地存儲(chǔ)的父兄節(jié)點(diǎn)表來(lái)重新 加入到新的父節(jié)點(diǎn)中,避免了節(jié)點(diǎn)異常退出和失效時(shí)對(duì)其子節(jié)點(diǎn)的影響,提 高了數(shù)據(jù)傳輸?shù)目煽啃浴?br>
如圖7所示為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例六的流程圖, 本實(shí)施例具體為組^番網(wǎng)絡(luò)為實(shí)現(xiàn)應(yīng)用層組一番業(yè)務(wù)而執(zhí)4亍的網(wǎng)絡(luò)維護(hù)流程,即
有節(jié)點(diǎn)正常退出的流程,仍以圖1中的節(jié)點(diǎn)E為例,當(dāng)節(jié)點(diǎn)E上某一子節(jié)點(diǎn) 退出時(shí),節(jié)點(diǎn)E可執(zhí)行如下步驟
步驟C1、節(jié)點(diǎn)接收其子節(jié)點(diǎn)發(fā)送的退出請(qǐng)求;
步驟C2、節(jié)點(diǎn)從本地的子節(jié)點(diǎn)表中刪除對(duì)應(yīng)的子節(jié)點(diǎn),并發(fā)送對(duì)應(yīng)的節(jié) 點(diǎn)刪除消息給本地子節(jié)點(diǎn)表中記載的其他子節(jié)點(diǎn),以更新各子節(jié)點(diǎn)上的兄弟 節(jié)點(diǎn)表,進(jìn)一步的,該節(jié)點(diǎn)還可以將原發(fā)送給該退出子節(jié)點(diǎn)的數(shù)據(jù)片重新推 送給其他子節(jié)點(diǎn),以避免該子節(jié)點(diǎn)退出對(duì)其他子節(jié)點(diǎn)的影響。
在本實(shí)施例中,該節(jié)點(diǎn)作為一個(gè)父節(jié)點(diǎn),連接在其上的子節(jié)點(diǎn)在接收到 父節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)刪除消息后,根據(jù)該節(jié)點(diǎn)刪除消息更新本地的兄弟節(jié)點(diǎn)表。
在本實(shí)施例的基礎(chǔ)上,當(dāng)子節(jié)點(diǎn)更新了本地的兄弟節(jié)點(diǎn)表之后,會(huì)向連 接在本地的子節(jié)點(diǎn)繼續(xù)發(fā)送該節(jié)點(diǎn)刪除消息,該子節(jié)點(diǎn)的兄弟節(jié)點(diǎn)相當(dāng)于其 下層節(jié)點(diǎn)的父兄節(jié)點(diǎn),所以繼續(xù)下發(fā)節(jié)點(diǎn)刪除消息可以供下層節(jié)點(diǎn)更新父兄 節(jié)點(diǎn)表。
在組播網(wǎng)絡(luò)中,大部分節(jié)點(diǎn)既是父節(jié)點(diǎn),又是子節(jié)點(diǎn),仍以本實(shí)施例的 節(jié)點(diǎn)E為例,當(dāng)節(jié)點(diǎn)E作為子節(jié)點(diǎn)時(shí),節(jié)點(diǎn)E可能會(huì)接收到其父節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)刪除消息,則根據(jù)該節(jié)點(diǎn)刪除消息在本地查找對(duì)應(yīng)的節(jié)點(diǎn)信息,在查找 到對(duì)應(yīng)節(jié)點(diǎn)后刪除該節(jié)點(diǎn)信息以進(jìn)行本地的信息更新。該流程的一種具體情
況為
刪除的節(jié)點(diǎn)是該節(jié)點(diǎn)的兄弟節(jié)點(diǎn),例如圖1中的節(jié)點(diǎn)D,那么節(jié)點(diǎn)E會(huì) 在本地的兄弟節(jié)點(diǎn)表中查找到節(jié)點(diǎn)刪除消息中對(duì)應(yīng)的節(jié)點(diǎn)D,就從兄弟節(jié)點(diǎn) 表中將此節(jié)點(diǎn)刪除。并且,進(jìn)一步的將該節(jié)點(diǎn)B的節(jié)點(diǎn)刪除消息發(fā)送給本地 的子節(jié)點(diǎn),子節(jié)點(diǎn)可以根據(jù)該節(jié)點(diǎn)刪除消息更新其父兄節(jié)點(diǎn)表。
上述流程的另一種情況為
刪除的節(jié)點(diǎn)是該節(jié)點(diǎn)的父兄節(jié)點(diǎn),例如圖1中的節(jié)點(diǎn)C,那么節(jié)點(diǎn)E會(huì) 在本地的父兄節(jié)點(diǎn)表中查找到節(jié)點(diǎn)刪除消息中對(duì)應(yīng)的節(jié)點(diǎn)C,就從父兄節(jié)點(diǎn) 表中將此節(jié)點(diǎn)刪除。
本實(shí)施例的技術(shù)方案,通過發(fā)送節(jié)點(diǎn)刪除消息,使所有與退出節(jié)點(diǎn)相關(guān) 的節(jié)點(diǎn)都能夠獲知該節(jié)點(diǎn)已被刪除,從而更新相關(guān)節(jié)點(diǎn)上的信息,保證組播 網(wǎng)絡(luò)節(jié)點(diǎn)間的連接關(guān)系,避免當(dāng) 一節(jié)點(diǎn)退出時(shí)對(duì)組播網(wǎng)絡(luò)中數(shù)據(jù)傳輸路徑的 影響。本實(shí)施例的技術(shù)方案能夠提高組播網(wǎng)絡(luò)的可靠性,^提高其數(shù)據(jù)傳輸速 率。
如圖8所示為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法具體實(shí)施例七的流程圖, 本實(shí)施例具體為組播網(wǎng)絡(luò)為實(shí)現(xiàn)應(yīng)用層組播業(yè)務(wù)而執(zhí)行的網(wǎng)絡(luò)維護(hù)流程,即 節(jié)點(diǎn)正常退出流程,仍以圖1中的節(jié)點(diǎn)E為例,當(dāng)節(jié)點(diǎn)E本身退出時(shí),節(jié)點(diǎn) E可執(zhí)行如下步驟
步驟D1、節(jié)點(diǎn)E首先檢測(cè)本地子節(jié)點(diǎn)表中是否記載有子節(jié)點(diǎn),若是,則 執(zhí)行步驟D2,若否,則執(zhí)行步驟D5;
步驟D2、節(jié)點(diǎn)E檢測(cè)到節(jié)點(diǎn)J和節(jié)點(diǎn)K是其子節(jié)點(diǎn),則對(duì)其子節(jié)點(diǎn),即 對(duì)節(jié)點(diǎn)J和節(jié)點(diǎn)K分別進(jìn)行延時(shí)測(cè)試;
步驟D3、節(jié)點(diǎn)E根據(jù)測(cè)試結(jié)果至少將本地子節(jié)點(diǎn)表發(fā)送給延時(shí)最小的子 節(jié)點(diǎn),本實(shí)施例中假設(shè)節(jié)點(diǎn)J的延時(shí)最小,則節(jié)點(diǎn)E將本地的子節(jié)點(diǎn)表、兄弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和父節(jié)點(diǎn)信息發(fā)送給節(jié)點(diǎn)J,并且節(jié)點(diǎn)E獲取節(jié)點(diǎn)J 的節(jié)點(diǎn)信息;
步驟D4、節(jié)點(diǎn)E將延時(shí)最小子節(jié)點(diǎn)作為代替自身的一個(gè)父節(jié)點(diǎn),接收到 節(jié)點(diǎn)E發(fā)送的信息的節(jié)點(diǎn)J可自舉為新的父節(jié)點(diǎn),并才艮據(jù)接收自節(jié)點(diǎn)E的子 節(jié)點(diǎn)表、兄弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和父節(jié)點(diǎn)信息來(lái)更新本地信息和其他相關(guān) 節(jié)點(diǎn)的信息,例如將其節(jié)點(diǎn)信息發(fā)送給子節(jié)點(diǎn)表中記載的節(jié)點(diǎn)K以更新其父 節(jié)點(diǎn)信息,同時(shí)更新節(jié)點(diǎn)K的父兄節(jié)點(diǎn)表;
步驟D5、節(jié)點(diǎn)E向自身的父節(jié)點(diǎn)發(fā)送退出請(qǐng)求,該父節(jié)點(diǎn)-接收到了子節(jié) 點(diǎn)的退出請(qǐng)求后,即開始執(zhí)行上述實(shí)施例六中的流程。
在本實(shí)施例中,某節(jié)點(diǎn)在退出前,先檢測(cè)自身是否連接有子節(jié)點(diǎn),若有, 則選擇一網(wǎng)絡(luò)延時(shí)最小的子節(jié)點(diǎn)作為其子節(jié)點(diǎn)的父節(jié)點(diǎn)而后再退出組播網(wǎng) 絡(luò)。本實(shí)施例的技術(shù)方案充分利用了子節(jié)點(diǎn)表,能夠保證組播網(wǎng)絡(luò)節(jié)點(diǎn)間的 連接關(guān)系,避免當(dāng)一節(jié)點(diǎn)退出時(shí)對(duì)組播網(wǎng)絡(luò)中數(shù)據(jù)傳輸路徑的影響。從而能 夠提高組播網(wǎng)絡(luò)的可靠性,提高其數(shù)據(jù)傳輸速率。
采用本發(fā)明上述實(shí)施例的技術(shù)方案來(lái)實(shí)現(xiàn)應(yīng)用層組播業(yè)務(wù),能夠采用分 層分群的策略提高服務(wù)的用戶數(shù)量和服務(wù)質(zhì)量;采用分段再分片的方法分發(fā) 數(shù)據(jù)包,在一定程度上保證了數(shù)據(jù)內(nèi)容分發(fā)的實(shí)時(shí)性;在組播群內(nèi)采用P2P 的分發(fā)方式提高數(shù)據(jù)段的分發(fā)速度,分散了帶寬的壓力,降低了節(jié)點(diǎn)退出對(duì) 組播群內(nèi)其他節(jié)點(diǎn)傳輸數(shù)據(jù)片的影響;通過保存父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)信息,減 少父節(jié)點(diǎn)退出對(duì)其子節(jié)點(diǎn)的影響。
本發(fā)明的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法能夠在數(shù)據(jù)源服務(wù)能力有限的情況 下,提供一種大規(guī)模、高可靠性的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方案。
如圖9所示為本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端具體實(shí)施例的結(jié)構(gòu)示意 圖,該實(shí)現(xiàn)終端可以作為組播網(wǎng)絡(luò)中的任意葉節(jié)點(diǎn)來(lái)實(shí)現(xiàn)本發(fā)明的應(yīng)用層組 播業(yè)務(wù)實(shí)現(xiàn)方法。仍以圖1中的節(jié)點(diǎn)E為例,該實(shí)現(xiàn)終端,即節(jié)點(diǎn)E的結(jié)構(gòu) 具體包括父節(jié)點(diǎn)信息存儲(chǔ)模塊IO,用于存儲(chǔ)父節(jié)點(diǎn)信息,該父節(jié)點(diǎn)信息記錄該節(jié)點(diǎn)E的父節(jié)點(diǎn)B的節(jié)點(diǎn)信息;兄弟節(jié)點(diǎn)表存儲(chǔ)^^莫塊20,用于存儲(chǔ)兄弟 節(jié)點(diǎn)表,該兄弟節(jié)點(diǎn)表記錄該節(jié)點(diǎn)E的兄弟節(jié)點(diǎn)D的節(jié)點(diǎn)信息,當(dāng)然,兄弟 節(jié)點(diǎn)的數(shù)量往往為多個(gè);父兄節(jié)點(diǎn)表存儲(chǔ)模塊30,用于存儲(chǔ)父兄節(jié)點(diǎn)表,該 父兄節(jié)點(diǎn)表記錄該節(jié)點(diǎn)E父節(jié)點(diǎn)B的兄弟節(jié)點(diǎn)C的節(jié)點(diǎn)信息,父兄節(jié)點(diǎn)通常 也為多個(gè);子節(jié)點(diǎn)表存儲(chǔ)模塊40,用于存儲(chǔ)子節(jié)點(diǎn)表,該子節(jié)點(diǎn)表記錄該節(jié) 點(diǎn)E的子節(jié)點(diǎn)J和K的節(jié)點(diǎn)信息;信息更新模塊50,分別與父節(jié)點(diǎn)信息存儲(chǔ) 模塊IO、兄弟節(jié)點(diǎn)表存儲(chǔ)模塊20、父兄節(jié)點(diǎn)表存儲(chǔ)模塊30和子節(jié)點(diǎn)表存儲(chǔ) 模塊40相連,用于與節(jié)點(diǎn)E所連接的父節(jié)點(diǎn)B、兄弟節(jié)點(diǎn)D和子節(jié)點(diǎn)J、 K 分別相連,并根據(jù)獲取到的更新信息對(duì)本地各模塊中存儲(chǔ)的父節(jié)點(diǎn)信息、兄 弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表進(jìn)行更新。該更新信息的具體內(nèi)容可以有 多種,例如在節(jié)點(diǎn)E加入父節(jié)點(diǎn)B時(shí),人父節(jié)點(diǎn)B采集的父節(jié)點(diǎn)信息、父節(jié) 點(diǎn)的子節(jié)點(diǎn)表和父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)表,或者為父節(jié)點(diǎn)B向節(jié)點(diǎn)E發(fā)送的某節(jié) 點(diǎn)刪除信息,或者還可以為節(jié)點(diǎn)E的子節(jié)點(diǎn)發(fā)送的退出請(qǐng)求等。更新信息即 節(jié)點(diǎn)之間交互的、用于維護(hù)組播網(wǎng)絡(luò)結(jié)構(gòu)關(guān)聯(lián)性的信息,并不限于上述幾種。 在上述實(shí)施例的基礎(chǔ)上,如圖9所示,應(yīng)用層組^"業(yè)務(wù)實(shí)現(xiàn)終端還可以 進(jìn)一步包括心跳交互模塊60,用于與終端所連接的父節(jié)點(diǎn)和/或子節(jié)點(diǎn)交 互心跳報(bào)文;心跳監(jiān)測(cè)模塊70,用于監(jiān)測(cè)心跳交互模塊60中心跳報(bào)文的交 互情況,將監(jiān)測(cè)結(jié)果作為更新信息傳輸給信息更新模塊50。心跳交互模塊60
的流程,用于保證組播網(wǎng)絡(luò)中節(jié)點(diǎn)的有效性。當(dāng)發(fā)現(xiàn)節(jié)點(diǎn)失效時(shí),能夠及時(shí) #卜救,從而提高組播網(wǎng)絡(luò)中流媒體數(shù)據(jù)傳輸?shù)目煽啃浴?br>
在本實(shí)施例中,應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端可以具體采用如下結(jié)構(gòu)來(lái)實(shí)現(xiàn) 數(shù)據(jù)傳輸數(shù)據(jù)存儲(chǔ)模塊80,用于接收并存儲(chǔ)父節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)片;交互模 塊90,用于根據(jù)兄弟節(jié)點(diǎn)表模塊20中存儲(chǔ)的兄弟節(jié)點(diǎn)表,與終端的兄弟節(jié) 點(diǎn)分別交互傳輸從父節(jié)點(diǎn)獲取的數(shù)據(jù)片;處理模塊100,用于將數(shù)據(jù)存儲(chǔ)模 塊80中存儲(chǔ)的多個(gè)數(shù)據(jù)片拼接為數(shù)據(jù)段或數(shù)據(jù)包進(jìn)行播放處理。上述結(jié)構(gòu)如圖9所示。進(jìn)一步地,該交互模塊90 (圖中未示其與兄弟節(jié)點(diǎn)的連接關(guān)系) 可具體包括以下單元獲取請(qǐng)求單元91,用于向終端的兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片 獲取請(qǐng)求,并將接收到的對(duì)應(yīng)的數(shù)據(jù)片存儲(chǔ)到數(shù)據(jù)存^f諸模塊80中;請(qǐng)求響應(yīng) 單元92,用于當(dāng)接收到終端的兄弟節(jié)點(diǎn)發(fā)送的數(shù)據(jù)片獲取請(qǐng)求時(shí),根據(jù)數(shù)據(jù) 片獲取請(qǐng)求發(fā)送本地直接從父節(jié)點(diǎn)獲取的數(shù)據(jù)片、或發(fā)送數(shù)據(jù)片獲取請(qǐng)求中 標(biāo)識(shí)的數(shù)據(jù)片、或根據(jù)數(shù)據(jù)片獲取請(qǐng)求中的位圖信息發(fā)送相應(yīng)的數(shù)據(jù)片。
當(dāng)本實(shí)施例的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端作為組播網(wǎng)絡(luò)中的父節(jié)點(diǎn)時(shí),再 該實(shí)現(xiàn)終端已接收到完整的數(shù)據(jù)包后,則需要將該數(shù)據(jù)包分發(fā)給其子節(jié)點(diǎn)。 則該實(shí)現(xiàn)終端進(jìn)一步包括分割模塊110,用于將待分發(fā)的數(shù)據(jù)包順序分割 為多個(gè)數(shù)據(jù)段,并將數(shù)據(jù)段分割為多個(gè)數(shù)據(jù)片;下發(fā)模塊120,用于按照數(shù) 據(jù)段的順序,依次將各個(gè)數(shù)據(jù)段的數(shù)據(jù)片根據(jù)子節(jié)點(diǎn)表存儲(chǔ)模塊40中的子節(jié) 點(diǎn)表分別下發(fā)給各子節(jié)點(diǎn)。
上述應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端實(shí)施例的技術(shù)方案可以執(zhí)行本發(fā)明應(yīng)用層 組播業(yè)務(wù)實(shí)現(xiàn)方法任意實(shí)施例的技術(shù)方案,該實(shí)現(xiàn)終端中的信息更新模塊可 以兼具控制功能,對(duì)接收自其他節(jié)點(diǎn)的信息進(jìn)行相應(yīng)的處理,其主要功能是 更新節(jié)點(diǎn)上的信息,維護(hù)組播網(wǎng)絡(luò)的連接結(jié)構(gòu)。
本發(fā)明的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端能夠存儲(chǔ)并維護(hù)更新父節(jié)點(diǎn)信息、兄 弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表,能夠增強(qiáng)組播網(wǎng)絡(luò)中各節(jié)點(diǎn)之間的關(guān)聯(lián) 性,避免了組播網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生異常退出或頻繁加入新節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)中數(shù)據(jù)分發(fā) 途徑造成影響的問題,通過維護(hù)上述信息,可以提高組播網(wǎng)絡(luò)的可靠性,可 擴(kuò)展性,在數(shù)據(jù)源有限的前提下能夠形成較大規(guī)模的組播網(wǎng)絡(luò),并且各節(jié)點(diǎn) 不僅存儲(chǔ)有父節(jié)點(diǎn)信息,還存儲(chǔ)有兄弟節(jié)點(diǎn)信息,能夠?qū)崿F(xiàn)與兄弟節(jié)點(diǎn)的交 互,從而為利用兄弟節(jié)點(diǎn)的出口帶寬傳輸數(shù)據(jù)提供了保障,因此也能夠有效 提高網(wǎng)絡(luò)中的數(shù)據(jù)傳輸速率,充分利用帶寬資源。
在本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)系統(tǒng)的具體實(shí)施例中,包括至少 一個(gè)根節(jié) 點(diǎn)和連接在根節(jié)點(diǎn)下、分別位于多層的數(shù)個(gè)葉節(jié)點(diǎn),其具體結(jié)構(gòu)可參見圖1。
26其中,可采用本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端任意實(shí)施例來(lái)作為葉節(jié)點(diǎn);且 該根節(jié)點(diǎn)的結(jié)構(gòu)與葉節(jié)點(diǎn)的結(jié)構(gòu)類似,如圖IO所示,可以至少包括子節(jié)點(diǎn)表 存儲(chǔ)模塊40、信息更新模塊50、數(shù)據(jù)存儲(chǔ)模塊80、分割模塊110和下發(fā)模 塊120。因?yàn)楦?jié)點(diǎn)沒有兄弟節(jié)點(diǎn)和父節(jié)點(diǎn),所以可以不必包括父節(jié)點(diǎn)信息 存儲(chǔ)模塊、兄弟節(jié)點(diǎn)表存儲(chǔ)模塊和父兄節(jié)點(diǎn)表存儲(chǔ)模塊。
本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)系統(tǒng)可執(zhí)行本發(fā)明應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法 任意實(shí)施例的技術(shù)方案,采用分層分群的方法解決了單數(shù)據(jù)源構(gòu)造大規(guī)模應(yīng) 用層組播樹的問題;在群內(nèi)采用P2P的分布式分發(fā)方式將數(shù)據(jù)包分段再分片 后很快的擴(kuò)散到其他節(jié)點(diǎn),降低了單點(diǎn)失效對(duì)整個(gè)系統(tǒng)的影響,充分利用了 組播樹中葉子節(jié)點(diǎn)的出口帶寬,提高系統(tǒng)的公平性;本發(fā)明具有穩(wěn)定性高, 可擴(kuò)展性大,系統(tǒng)容量大,負(fù)載均衡等優(yōu)點(diǎn);適合于準(zhǔn)實(shí)時(shí)性的流媒體分發(fā) 應(yīng)用。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟 可以通過程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀 取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述 的存儲(chǔ)介質(zhì)包括ROM、 RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其 限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù) 人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或 者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技
術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1、一種應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于包括節(jié)點(diǎn)加入組播網(wǎng)絡(luò),成為所述組播網(wǎng)絡(luò)中一父節(jié)點(diǎn)的子節(jié)點(diǎn);所述節(jié)點(diǎn)在本地建立父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表;所述節(jié)點(diǎn)采集所述父節(jié)點(diǎn)的節(jié)點(diǎn)信息以更新本地的父節(jié)點(diǎn)信息,獲取所述父節(jié)點(diǎn)的子節(jié)點(diǎn)表以更新本地的兄弟節(jié)點(diǎn)表,獲取所述父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)表以更新本地的父兄節(jié)點(diǎn)表。
2、 根據(jù)權(quán)利要求1所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在所 述節(jié)點(diǎn)加入所述組播網(wǎng)絡(luò)之時(shí)或之后,還包括所述節(jié)點(diǎn)向所述父節(jié)點(diǎn)上報(bào) 自身節(jié)點(diǎn)信息以更新所述父節(jié)點(diǎn)的子節(jié)點(diǎn)表。
3、 根據(jù)權(quán)利要求1所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在所 述節(jié)點(diǎn)加入所述組播網(wǎng)絡(luò)之時(shí)或之后,還包括當(dāng)所述節(jié)點(diǎn)接收到加入請(qǐng)求 并回復(fù)確認(rèn)后,從發(fā)送所述加入請(qǐng)求的節(jié)點(diǎn)中采集節(jié)點(diǎn)信息以更新本地的子 節(jié)點(diǎn)表。
4、 根據(jù)權(quán)利要求1或2或3所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于, 所述節(jié)點(diǎn)加入所述組播網(wǎng)絡(luò),成為所述組播網(wǎng)絡(luò)中一父節(jié)點(diǎn)的子節(jié)點(diǎn)具體為步驟IOII、所述節(jié)點(diǎn)向所述組播網(wǎng)絡(luò)的根節(jié)點(diǎn)發(fā)送加入測(cè)試請(qǐng)求,且記 所述根節(jié)點(diǎn)為父節(jié)點(diǎn);步驟1012、所述節(jié)點(diǎn)接收所述父節(jié)點(diǎn)的子節(jié)點(diǎn)表;步驟1013、所述節(jié)點(diǎn)對(duì)所述父節(jié)點(diǎn)和所述父節(jié)點(diǎn)的子節(jié)點(diǎn)分別進(jìn)行延時(shí)測(cè)試;步驟1014、所述節(jié)點(diǎn)根據(jù)延時(shí)測(cè)試結(jié)果判斷所述父節(jié)點(diǎn)的延時(shí)是否最小, 若是,則執(zhí)行步驟1016,否則,執(zhí)行步驟1015;步驟1015、所述節(jié)點(diǎn)將延時(shí)最小的節(jié)點(diǎn)作為新的父節(jié)點(diǎn),向所述父節(jié)點(diǎn) 發(fā)送加入測(cè)試請(qǐng)求,并執(zhí)行步驟1012;步驟1016、所述節(jié)點(diǎn)向所述父節(jié)點(diǎn)發(fā)送加入確認(rèn)請(qǐng)求;步驟1017、所述節(jié)點(diǎn)判斷接收自所述父節(jié)點(diǎn)的返回消息是否為加入成功報(bào)文,若否,則所述節(jié)點(diǎn)丟棄所述父節(jié)點(diǎn)的延時(shí)測(cè)試結(jié)果,并執(zhí)行步驟1015,若是,則所述節(jié)點(diǎn)加入組播網(wǎng)絡(luò),成為所述父節(jié)點(diǎn)的子節(jié)點(diǎn)。
5、 根據(jù)權(quán)利要求1所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在所 述節(jié)點(diǎn)更新本地的信息之后,還包括所述節(jié)點(diǎn)接收所述父節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)片; 所述節(jié)點(diǎn)與其兄弟節(jié)點(diǎn)分別交互傳輸從父節(jié)點(diǎn)獲取的數(shù)據(jù)片; 所述節(jié)點(diǎn)將多個(gè)數(shù)據(jù)片拼接為數(shù)據(jù)段進(jìn)行處理。
6、 根據(jù)權(quán)利要求1所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在所 述節(jié)點(diǎn)更新本地的信息之后,還包括所述節(jié)點(diǎn)根據(jù)本地的父節(jié)點(diǎn)信息和/或 子節(jié)點(diǎn)表,向所述父節(jié)點(diǎn)和/或兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求,并接收對(duì)應(yīng)的 數(shù)據(jù)片。
7、 根據(jù)權(quán)利要求5所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在所 述節(jié)點(diǎn)接收父節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)片之前還包括所述父節(jié)點(diǎn)將待分發(fā)的數(shù)據(jù)包 順序分割為多個(gè)數(shù)據(jù)段,并將所述數(shù)據(jù)段分割為多個(gè)數(shù)據(jù)片,所述父節(jié)點(diǎn)按 照所述數(shù)據(jù)段的順序依次將各個(gè)數(shù)據(jù)段的數(shù)據(jù)片分別下發(fā)給所述節(jié)點(diǎn)和所述 節(jié)點(diǎn)的兄弟節(jié)點(diǎn)。
8、 根據(jù)權(quán)利要求7所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,所述 節(jié)點(diǎn)接收所述父節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)片具體為所述節(jié)點(diǎn)接收所述父節(jié)點(diǎn)采用推 送方式下發(fā)的數(shù)據(jù)片。
9、 根據(jù)權(quán)利要求8所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,所述 節(jié)點(diǎn)與其兄弟節(jié)點(diǎn)分別交互傳輸從父節(jié)點(diǎn)獲取的數(shù)據(jù)片具體為當(dāng)所述節(jié)點(diǎn)接收到其兄弟節(jié)點(diǎn)發(fā)送的數(shù)據(jù)片獲取請(qǐng)求時(shí),向發(fā)送所述數(shù) 據(jù)片獲取請(qǐng)求的兄弟節(jié)點(diǎn)發(fā)送對(duì)應(yīng)的數(shù)據(jù)片;所述節(jié)點(diǎn)向其兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求,并從其兄弟節(jié)點(diǎn)接收對(duì)應(yīng) 的數(shù)據(jù)片。
10、 根據(jù)權(quán)利要求9所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,當(dāng) 所述節(jié)點(diǎn)接收到其兄弟節(jié)點(diǎn)發(fā)送的數(shù)據(jù)片獲取請(qǐng)求時(shí),向發(fā)送所述數(shù)據(jù)片獲取請(qǐng)求的兄弟節(jié)點(diǎn)發(fā)送對(duì)應(yīng)的數(shù)據(jù)片具體為當(dāng)所述節(jié)點(diǎn)接收到其兄弟節(jié)點(diǎn) 發(fā)送的數(shù)據(jù)片獲取請(qǐng)求時(shí),將所述節(jié)點(diǎn)從所述父節(jié)點(diǎn)直接獲取的數(shù)據(jù)片傳輸 給發(fā)送數(shù)據(jù)片獲取請(qǐng)求的兄弟節(jié)點(diǎn)。
11、 根據(jù)權(quán)利要求9所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,當(dāng) 所述節(jié)點(diǎn)接收到其兄弟節(jié)點(diǎn)發(fā)送的數(shù)據(jù)片獲取請(qǐng)求時(shí),向發(fā)送所述數(shù)據(jù)片獲 取請(qǐng)求的兄弟節(jié)點(diǎn)發(fā)送對(duì)應(yīng)的數(shù)據(jù)片具體為當(dāng)所述節(jié)點(diǎn)接收到其兄弟節(jié)點(diǎn) 發(fā)送的數(shù)據(jù)片獲取請(qǐng)求,并從所述數(shù)據(jù)片獲取請(qǐng)求中解析獲取到數(shù)據(jù)片標(biāo)識(shí) 時(shí),根據(jù)所述數(shù)據(jù)片標(biāo)識(shí)在本地查詢對(duì)應(yīng)的數(shù)據(jù)片,并當(dāng)查詢到對(duì)應(yīng)的數(shù)據(jù) 片時(shí)發(fā)送。
12、 根據(jù)權(quán)利要求9所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,當(dāng) 所述節(jié)點(diǎn)接收到其兄弟節(jié)點(diǎn)發(fā)送的數(shù)據(jù)片獲取請(qǐng)求時(shí),向發(fā)送所述數(shù)據(jù)片獲 取請(qǐng)求的兄弟節(jié)點(diǎn)發(fā)送對(duì)應(yīng)的數(shù)據(jù)片具體為當(dāng)所述節(jié)點(diǎn)接收到其兄弟節(jié)點(diǎn) 發(fā)送的數(shù)據(jù)片獲取請(qǐng)求,并從所述數(shù)據(jù)片獲取請(qǐng)求中解析獲取到位圖信息時(shí), 才艮據(jù)所述位圖信息在本地查詢對(duì)應(yīng)的數(shù)據(jù)片,并當(dāng)查詢到對(duì)應(yīng)的數(shù)據(jù)片時(shí)發(fā)送。
13、 根據(jù)權(quán)利要求7所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,所 述節(jié)點(diǎn)將多個(gè)數(shù)據(jù)片拼接為數(shù)據(jù)段進(jìn)行處理的步驟具體為當(dāng)所述節(jié)點(diǎn)判斷出本地的多個(gè)數(shù)據(jù)片不能拼接成一完整的數(shù)據(jù)段時(shí),向 所述父節(jié)點(diǎn)和/或所述節(jié)點(diǎn)的兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求,而后接收對(duì)應(yīng)的 數(shù)據(jù)片,將所述數(shù)據(jù)片拼接成為數(shù)據(jù)段進(jìn)行處理。
14、 根據(jù)權(quán)利要求13所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于, 向所述父節(jié)點(diǎn)和所述節(jié)點(diǎn)的兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求具體為所述節(jié)點(diǎn) 向其兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求,當(dāng)未接收到對(duì)應(yīng)的數(shù)據(jù)片時(shí),向所述父 節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求。
15、 根據(jù)權(quán)利要求1所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在所述節(jié)點(diǎn)加入組播網(wǎng)絡(luò)之后,還包括當(dāng)所述節(jié)點(diǎn)接收到其子節(jié)點(diǎn)發(fā)送的退 出請(qǐng)求時(shí),所述節(jié)點(diǎn)從本地的子節(jié)點(diǎn)表中刪除對(duì)應(yīng)的子節(jié)點(diǎn),并發(fā)送對(duì)應(yīng)的 節(jié)點(diǎn)刪除消息給本地子節(jié)點(diǎn)表中記載的其他子節(jié)點(diǎn)進(jìn)行更新。
16、 根據(jù)權(quán)利要求1所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在 所述節(jié)點(diǎn)加入組播網(wǎng)絡(luò)之后,還包括當(dāng)所述節(jié)點(diǎn)接收到其父節(jié)點(diǎn)發(fā)送的節(jié) 點(diǎn)刪除消息時(shí),根據(jù)所述節(jié)點(diǎn)刪除消息更新本地的兄弟節(jié)點(diǎn)表和/或父兄節(jié)點(diǎn) 表。
17、 根據(jù)權(quán)利要求16所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于, 在所述節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)刪除消息更新本地兄弟節(jié)點(diǎn)表之后,還包括所述節(jié)點(diǎn) 發(fā)送所述節(jié)點(diǎn)刪除消息給本地連接的子節(jié)點(diǎn)以更新其父兄節(jié)點(diǎn)表。
18、 根據(jù)權(quán)利要求1所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在 所述節(jié)點(diǎn)加入組播網(wǎng)絡(luò)之后,還包括步驟Dl、所述節(jié)點(diǎn)檢測(cè)本地子節(jié)點(diǎn)表中是否記載有子節(jié)點(diǎn),若是,則執(zhí) 行步驟D2,若否,則執(zhí)行步驟D5;步驟D2、所述節(jié)點(diǎn)對(duì)其子節(jié)點(diǎn)分別進(jìn)行延時(shí)測(cè)試;步驟D3、所述節(jié)點(diǎn)根據(jù)測(cè)試結(jié)果至少將本地子節(jié)點(diǎn)表發(fā)送給延時(shí)最小的 子節(jié)點(diǎn),并獲取所述延時(shí)最小的子節(jié)點(diǎn)的節(jié)點(diǎn)信息;步驟D4、所述延時(shí)最小子節(jié)點(diǎn)自舉為新的父節(jié)點(diǎn),根據(jù)接收自所述節(jié)點(diǎn) 的信息進(jìn)行本地更新并至少發(fā)送信息對(duì)所述節(jié)點(diǎn)的其他子節(jié)點(diǎn)進(jìn)行更新;步驟D5、所述節(jié)點(diǎn)向其父節(jié)點(diǎn)發(fā)送退出請(qǐng)求。
19、 根據(jù)權(quán)利要求1所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法,其特征在于,在 所述節(jié)點(diǎn)加入組播網(wǎng)絡(luò)后,還包括所述節(jié)點(diǎn)為其子節(jié)點(diǎn)設(shè)置計(jì)時(shí)器,并分別分配失效計(jì)數(shù)值; 當(dāng)所述節(jié)點(diǎn)判斷計(jì)時(shí)到達(dá)設(shè)定周期值時(shí),遞減所有子節(jié)點(diǎn)的失效計(jì)教:值; 當(dāng)所述節(jié)點(diǎn)接收到心跳報(bào)文,并判斷出上報(bào)該心跳報(bào)文的子節(jié)點(diǎn)對(duì)應(yīng)的 失效計(jì)數(shù)值'J、于累計(jì)門限值時(shí),遞增所述子節(jié)點(diǎn)的失效計(jì)數(shù)值;當(dāng)所述節(jié)點(diǎn)判斷出失效計(jì)數(shù)值小于失效門限值時(shí),從本地子節(jié)點(diǎn)表中刪 除對(duì)應(yīng)的子節(jié)點(diǎn),并將對(duì)應(yīng)的節(jié)點(diǎn)刪除消息發(fā)送給本地子節(jié)點(diǎn)表中記載的其 他子節(jié)點(diǎn)進(jìn)行更新。
20、 根據(jù)權(quán)利要求1或16或17或19所述的任一應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn) 方法,其特征在于,在所述節(jié)點(diǎn)加入組播網(wǎng)絡(luò)后,還包括所述節(jié)點(diǎn)向其父 節(jié)點(diǎn)發(fā)送心跳報(bào)文,當(dāng)在設(shè)定時(shí)間內(nèi)未接收到回復(fù)的心跳響應(yīng)時(shí),所述節(jié)點(diǎn) 根據(jù)本地的父兄節(jié)點(diǎn)表,對(duì)各父兄節(jié)點(diǎn)進(jìn)行延時(shí)測(cè)試,并向延時(shí)最小的父兄 節(jié)點(diǎn)發(fā)送加入測(cè)試請(qǐng)求。
21、 一種應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端,其特征在于,包括 父節(jié)點(diǎn)信息存儲(chǔ)模塊,用于存儲(chǔ)父節(jié)點(diǎn)信息,所述父節(jié)點(diǎn)信息記錄所述終端的父節(jié)點(diǎn)的節(jié)點(diǎn)信息;兄弟節(jié)點(diǎn)表存儲(chǔ)模塊,用于存儲(chǔ)兄弟節(jié)點(diǎn)表,所述兄弟節(jié)點(diǎn)表記錄所述 終端的兄弟節(jié)點(diǎn)的節(jié)點(diǎn)信息;父兄節(jié)點(diǎn)表存儲(chǔ)模塊,用于存儲(chǔ)父兄節(jié)點(diǎn)表,所述父兄節(jié)點(diǎn)表記錄所述 終端父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)的節(jié)點(diǎn)信息;子節(jié)點(diǎn)表存儲(chǔ)模塊,用于存儲(chǔ)子節(jié)點(diǎn)表,所述子節(jié)點(diǎn)表記錄所述終端的 子節(jié)點(diǎn)的節(jié)點(diǎn)信息;信息更新模塊,分別與所述父節(jié)點(diǎn)信息存儲(chǔ)模塊、兄弟節(jié)點(diǎn)表存儲(chǔ)模塊、 父兄節(jié)點(diǎn)表存儲(chǔ)模塊和子節(jié)點(diǎn)表存儲(chǔ)模塊相連,用于與所述終端所連接的所 述父節(jié)點(diǎn)、所述兄弟節(jié)點(diǎn)和所述子節(jié)點(diǎn)分別相連,并根據(jù)獲取到的更新信息 對(duì)所述父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表進(jìn)行更新。
22、 根據(jù)權(quán)利要求21所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端,其特征在于, 還包括心跳交互模塊,用于與所述終端所連接的父節(jié)點(diǎn)和/或子節(jié)點(diǎn)交互心跳報(bào)文; 心跳監(jiān)測(cè)模塊,用于監(jiān)測(cè)心跳交互模塊中心跳報(bào)文的交互情況,將監(jiān)測(cè) 結(jié)果作為所述更新信息傳輸給所述信息更新模塊。
23、 根據(jù)權(quán)利要求21所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端,其特征在于, 還包括數(shù)據(jù)存儲(chǔ)模塊,用于接收并存儲(chǔ)所述父節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)片;交互模塊,用于根據(jù)兄弟節(jié)點(diǎn)表模塊中存儲(chǔ)的兄弟節(jié)點(diǎn)表,與所述終端的兄弟節(jié)點(diǎn)分別交互傳輸從所述父節(jié)點(diǎn)獲取的數(shù)據(jù)片;處理模塊,用于將所述數(shù)據(jù)存儲(chǔ)模塊中存儲(chǔ)的多個(gè)數(shù)據(jù)片拼接為數(shù)據(jù)段或數(shù)據(jù)包進(jìn)行處理。
24、 根據(jù)權(quán)利要求23所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端,其特征在于, 所述交互模塊包括獲取請(qǐng)求單元,用于向所述終端的兄弟節(jié)點(diǎn)發(fā)送數(shù)據(jù)片獲取請(qǐng)求,并將 接收到的對(duì)應(yīng)的數(shù)據(jù)片存儲(chǔ)到所述數(shù)據(jù)存儲(chǔ)模塊中;請(qǐng)求響應(yīng)單元,用于當(dāng)接收到所述終端的兄弟節(jié)點(diǎn)發(fā)送的數(shù)據(jù)片獲取請(qǐng) 求時(shí),根據(jù)所述數(shù)據(jù)片獲取請(qǐng)求發(fā)送本地直接從父節(jié)點(diǎn)獲取的數(shù)據(jù)片、或發(fā) 送所述數(shù)據(jù)片獲取請(qǐng)求中標(biāo)識(shí)的數(shù)據(jù)片、或根據(jù)所述數(shù)據(jù)片獲取請(qǐng)求中的位 圖信息發(fā)送相應(yīng)的數(shù)據(jù)片。
25、 根據(jù)權(quán)利要求23所述的應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端,其特征在于, 還包括分割模塊,與所述數(shù)據(jù)存儲(chǔ)模塊相連,用于將待分發(fā)的數(shù)據(jù)包順序分割 為多個(gè)數(shù)據(jù)段,并將所述數(shù)據(jù)段分割為多個(gè)數(shù)據(jù)片;下發(fā)模塊,用于按照所述數(shù)據(jù)段的順序,依次將各個(gè)數(shù)據(jù)段的數(shù)據(jù)片根 據(jù)所述子節(jié)點(diǎn)表存儲(chǔ)模塊中的子節(jié)點(diǎn)表分別下發(fā)給各子節(jié)點(diǎn)。
26、 一種采用權(quán)利要求21~25所述的任一應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端的 應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)系統(tǒng),包括至少一個(gè)根節(jié)點(diǎn)和連接在所述根節(jié)點(diǎn)下、分 別位于多層的數(shù)個(gè)葉節(jié)點(diǎn),其特征在于采用所述應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)終端 作為所述葉節(jié)點(diǎn);且所述根節(jié)點(diǎn)至少包括所述子節(jié)點(diǎn)表存儲(chǔ)模塊、所述信息 更新模塊、所述分割模塊和所述下發(fā)模塊。
全文摘要
本發(fā)明涉及一種應(yīng)用層組播業(yè)務(wù)實(shí)現(xiàn)方法、終端和系統(tǒng)。該方法包括節(jié)點(diǎn)加入組播網(wǎng)絡(luò);在本地建立父節(jié)點(diǎn)信息、兄弟節(jié)點(diǎn)表、父兄節(jié)點(diǎn)表和子節(jié)點(diǎn)表;采集父節(jié)點(diǎn)的節(jié)點(diǎn)信息以更新本地的父節(jié)點(diǎn)信息,獲取父節(jié)點(diǎn)的子節(jié)點(diǎn)表以更新本地的兄弟節(jié)點(diǎn)表,獲取父節(jié)點(diǎn)的兄弟節(jié)點(diǎn)表以更新本地的父兄節(jié)點(diǎn)表。該終端包括父節(jié)點(diǎn)信息存儲(chǔ)模塊、兄弟節(jié)點(diǎn)表存儲(chǔ)模塊、父兄節(jié)點(diǎn)表存儲(chǔ)模塊和子節(jié)點(diǎn)表存儲(chǔ)模塊,以及分別與上述模塊相連的信息更新模塊。該系統(tǒng)包括一個(gè)根節(jié)點(diǎn),并采用本發(fā)明的多個(gè)實(shí)現(xiàn)終端作為葉節(jié)點(diǎn)。本發(fā)明能避免組播網(wǎng)絡(luò)頻頻變動(dòng)的影響,能提高組播網(wǎng)絡(luò)的可靠性和可擴(kuò)展性,并能聯(lián)系兄弟節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸,充分利用了出口帶寬,提高了數(shù)據(jù)傳輸效率。
文檔編號(hào)H04L12/56GK101534205SQ20081010169
公開日2009年9月16日 申請(qǐng)日期2008年3月11日 優(yōu)先權(quán)日2008年3月11日
發(fā)明者旭 周, 房秉毅, 潘海鵬, 王志軍, 申志偉, 偉 秦, 陳九慶, 馬少武 申請(qǐng)人:中國(guó)網(wǎng)通集團(tuán)寬帶業(yè)務(wù)應(yīng)用國(guó)家工程實(shí)驗(yàn)室有限公司;中國(guó)科學(xué)院聲學(xué)研究所