專利名稱:基于疊加網(wǎng)的組播、廣播方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及組播、廣播技術(shù),尤其涉及一種基于疊加網(wǎng)的組播、廣播方法及系統(tǒng)。
背景技術(shù):
端對端(P2P,Peer-to-Peer)技術(shù)又稱為對等互聯(lián)網(wǎng)絡(luò)技術(shù),是一種網(wǎng)絡(luò)新技術(shù),依賴網(wǎng)絡(luò)中參與者節(jié)點(Peer)的計算能力和帶寬進行信息傳輸,而不是將信息傳輸都依賴聚集在網(wǎng)絡(luò)中較少的幾臺應(yīng)用服務(wù)器上。其中,由多個節(jié)點組成的網(wǎng)絡(luò)稱為疊加網(wǎng)(Overlay),在Overlay網(wǎng)絡(luò)系統(tǒng)中,各節(jié)點的功能彼此對等,Peer為Overlay網(wǎng)絡(luò)系統(tǒng)中的終端,可以是一個應(yīng)用服務(wù)器,也可以是一個應(yīng)用終端,當(dāng)Peer作為應(yīng)用服務(wù)器時,該應(yīng)用服務(wù)器又可稱作為超級節(jié)點(SN,Super Node),用于連接匯集其他節(jié)點,其中,在SN中,一些SN可以作為接入節(jié)點,協(xié)助、控制其他的SN以及Peer加入Overlay網(wǎng)絡(luò)系統(tǒng),該協(xié)助 其他的SN以及Peer加入Overlay網(wǎng)絡(luò)系統(tǒng)的SN稱作為啟動超級節(jié)點(BSSN,BootstrapSuper Node),這樣,通過Peer/SN/BSSN的集群,可以形成Overlay網(wǎng)絡(luò)系統(tǒng),各Peer基于Overlay網(wǎng)絡(luò)系統(tǒng)進行通信。Overlay網(wǎng)絡(luò)系統(tǒng)通常用于通過Ad Hoc連接來連接節(jié)點,可以用于多種用途,各種文件共享軟件已經(jīng)得到了廣泛的使用,例如,被廣泛應(yīng)用于類似VoIP等實時媒體業(yè)務(wù)的數(shù)據(jù)通信中。舉例來說,有些網(wǎng)絡(luò)(例如Napster、0penNAP、或IRC@find)的一些功能(例如搜索)使用客戶端-服務(wù)器結(jié)構(gòu),而使用Overlay網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)來實現(xiàn)另外一些功能;而類似Gnutella或Freenet的網(wǎng)絡(luò),則使用純Overlay網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)來實現(xiàn)全部的任務(wù)。圖I為現(xiàn)有Overlay網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)示意圖。參見圖1,該系統(tǒng)包括Peerl01、SN102以及BSSN103,其中,PeerlOU SN102以及BSSN103的數(shù)量為一個或多個,PeerlOl既可以與SN102相連,也可以與BSSN103相連;SN102既可以與BSSN103相連,也可以與其它SN102相連;BSSN103可以與其它BSSN103相連,BSSN103協(xié)助其他的SN以及Peer加入Overlay網(wǎng)絡(luò)系統(tǒng)?,F(xiàn)有的Overlay網(wǎng)絡(luò)系統(tǒng),采用TCP/IP層的組播和廣播技術(shù)進行相應(yīng)的廣播和組播,關(guān)于TCP/IP層的組播和廣播,具體可參見TCP/IP協(xié)議,在此不再贅述,由于Overlay網(wǎng)絡(luò)系統(tǒng)的組播和廣播依賴于網(wǎng)絡(luò)系統(tǒng)中的交換機,因而,網(wǎng)絡(luò)中的交換機需要支持組播和廣播,如果交換機發(fā)生故障,則將影響網(wǎng)絡(luò)系統(tǒng)的組播和廣播,使得網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性較低;進一步地,即使交換機能夠支持組播和廣播,且故障率較低,網(wǎng)絡(luò)管理員出于網(wǎng)絡(luò)系統(tǒng)性能的考慮,也經(jīng)常關(guān)閉交換機的組播和廣播功能,也使得網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性不高。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種基于疊加網(wǎng)的組播、廣播方法,提高網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性。
本發(fā)明的實施例還提供一種基于置加網(wǎng)的組播、廣播系統(tǒng),提聞網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性。為達(dá)到上述目的,本發(fā)明實施例提供的一種基于疊加網(wǎng)的組播、廣播方法,包括按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域;根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式;消息發(fā)送方按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過疊加網(wǎng)進行發(fā)送;超級節(jié)點SN接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。 其中,所述按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)包括將疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)按照預(yù)先的設(shè)置劃分為多個域;按照子域的邏輯,將每一劃分的域再次劃分為多個子域。其中,所述配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域包括超級節(jié)點和節(jié)點的屬性包括域和子域;為域設(shè)置域標(biāo)識,為子域設(shè)置子域標(biāo)識,并說明一個域包含的子域。其中,所述目的疊加網(wǎng)地址格式依序包括消息類型標(biāo)識信息、疊加網(wǎng)地址標(biāo)識信息、目的域標(biāo)識以及目的子域標(biāo)識信息三部分。 其中,所述消息類型標(biāo)識包括廣播消息標(biāo)識以及組播消息標(biāo)識,相應(yīng)地,所述目的疊加網(wǎng)地址格式包括廣播消息目的疊加網(wǎng)地址格式以及組播消息目的疊加網(wǎng)地址格式。其中,所述廣播消息目的疊加網(wǎng)地址格式設(shè)置為broadcast@DomainID.SubDomainID ;其中,broadcast為廣播消息標(biāo)識,@為疊加網(wǎng)地址標(biāo)識,DomainID為目的域標(biāo)識,SubDomainID為目的子域標(biāo)識。其中,進一步包括在所述廣播消息標(biāo)識中,設(shè)置需要在域內(nèi)或子域內(nèi)廣播的目的節(jié)點標(biāo)識信息,格式為 STB_grp001_broadcast 以及 STB_broadcast。其中,所述目的子域標(biāo)識包括標(biāo)識某一個域內(nèi)所有節(jié)點的全局子域標(biāo)識以及標(biāo)識某一個域內(nèi)某一個子域所有節(jié)點的局部子域標(biāo)識;相應(yīng)地,所述廣播消息目的疊加網(wǎng)地址格式包括域內(nèi)的廣播消息目的疊加網(wǎng)地址格式以及子域內(nèi)的廣播消息目的疊加網(wǎng)地址格式;所述組播消息目的疊加網(wǎng)地址格式包括域內(nèi)的組播消息目的疊加網(wǎng)地址格式以及子域內(nèi)的組播消息目的疊加網(wǎng)地址格式。其中,所述全局子域標(biāo)識為疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)預(yù)留,除疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)預(yù)留外的標(biāo)識為局部子域標(biāo)識。其中,所述組播消息目的疊加網(wǎng)地址格式設(shè)置為MulticastiDomainID. SubDomainID ;其中,Multicast為組播消息標(biāo)識,@為疊加網(wǎng)地址標(biāo)識,DomainID為目的域標(biāo)識,SubDomainID為目的子域標(biāo)識。其中,進一步包括在所述組播消息標(biāo)識中,設(shè)置需要在域內(nèi)或子域內(nèi)組播的目的組播組信息,格式為 Multicast_xyziDomainID. SubDomainID0其中,進一步包括在消息中設(shè)置源疊加網(wǎng)地址格式,包括三部分,其中,第一部分為源節(jié)點屬性標(biāo)識信息,第二部分為疊加網(wǎng)地址標(biāo)識信息,第三部分為源節(jié)點所屬域標(biāo)識以及源節(jié)點所屬子 域標(biāo)識信息。其中,所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息包括獲取目的疊加網(wǎng)地址中的消息類型標(biāo)識信息;如果消息類型標(biāo)識信息為廣播消息,判斷廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將廣播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至子域標(biāo)識中,廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN ;如果消息類型標(biāo)識信息為組播消息,判斷組播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將組播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果子域標(biāo)識為全局子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至組播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN;如果為局部子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至子域標(biāo)識中,組播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN。其中,在所述轉(zhuǎn)發(fā)消息前,進一步包括從接收的消息中獲取消息的發(fā)送方,如果發(fā)送方疊加網(wǎng)地址中的子域標(biāo)識與接收方存儲的子域標(biāo)識相同,結(jié)束流程。其中,進一步包括在廣播消息頭中添加源疊加網(wǎng)地址信息、輪轉(zhuǎn)次數(shù)信息以及唯一表示廣播消息的消息標(biāo)識信息。其中,所述消息發(fā)送方將輪轉(zhuǎn)次數(shù)信息設(shè)置為預(yù)先設(shè)定的常數(shù),所述方法進一步包括超級節(jié)點SN從接收的消息中獲取輪轉(zhuǎn)次數(shù)信息,將獲取的輪轉(zhuǎn)次數(shù)減一,如果為零,則丟棄該接收的消息,否則,執(zhí)行所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息的步驟。其中,進一步包括超級節(jié)點SN接收到廣播消息時,判斷緩存中是否存在接收的廣播消息中包含的源疊加網(wǎng)地址和唯一表示廣播消息的消息標(biāo)識,如果存在,丟棄該接收的廣播消息;否則,緩存接收的廣播消息中的源疊加網(wǎng)地址和唯一表示廣播消息的消息標(biāo)識預(yù)先設(shè)置的時間,執(zhí)行所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息的步驟。
一種基于疊加網(wǎng)的組播、廣播系統(tǒng),該系統(tǒng)包括劃分單元、配置單元、發(fā)送單元以及接收單元,其中,劃分單元,用于按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域;配置單元,用于根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式;發(fā)送單元,用于消息按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過疊加網(wǎng)進行發(fā)送;接收單元,用于接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。所述目的疊加網(wǎng)地址格式依序包括消息類型標(biāo)識信息、疊加網(wǎng)地址標(biāo)識信息、目的域標(biāo)識以及目的子域標(biāo)識信息三部分。 所述消息類型標(biāo)識包括廣播消息標(biāo)識以及組播消息標(biāo)識,相應(yīng)地,所述目的疊加網(wǎng)地址格式包括廣播消息目的疊加網(wǎng)地址格式以及組播消息目的疊加網(wǎng)地址格式。所述接收單元包括獲取模塊、判斷模塊、廣播消息處理模塊以及組播消息處理模塊,其中,獲取模塊,用于獲取目的疊加網(wǎng)地址中的消息類型標(biāo)識信息;判斷模塊,用于根據(jù)獲取模塊中的消息類型標(biāo)識信息,判斷接收的消息是否為廣播消息,如果是,輸出至廣播消息處理模塊,否則,輸出至組播消息處理模塊;廣播消息處理模塊,用于判斷廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將廣播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至子域標(biāo)識中,廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN;組播消息處理模塊,用于判斷組播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將組播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至組播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至子域標(biāo)識中,組播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN。所述廣播消息處理模塊包括第一判斷子模塊、第二判斷子模塊、第一發(fā)送子模塊、第二發(fā)送子模塊以及第三發(fā)送子模塊,其中,第一判斷子模塊,用于判斷廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,輸出至發(fā)送子模塊;如果相同,將廣播消息輸出至第二判子斷模塊;第一發(fā)送子模塊,用于接收第一判斷模塊的輸出,將廣播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;第二判子斷模塊,用于判斷廣播消息中包含的子域標(biāo)識,如果為全局子域標(biāo)識,輸出至第二發(fā)送子模塊;如果為局部子域標(biāo)識,輸出至第三發(fā)送子模塊;第二發(fā)送子模塊,用于接收第二判子斷模塊的輸出,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;第三發(fā)送子模塊,用于接收第二判子斷模塊的輸出,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至子域標(biāo)識中,廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN。所述配置單元進一步用于在廣播消息頭中添加源疊加網(wǎng)地址信息、輪轉(zhuǎn)次數(shù)信息以及唯一表示廣播消息的消息標(biāo)識信息。所述發(fā)送單元進一步將輪轉(zhuǎn)次數(shù)信息設(shè)置為預(yù)先設(shè)定的常數(shù),所述接收單元進一步用于從接收的消息中獲取輪轉(zhuǎn)次數(shù)信息,將獲取的輪轉(zhuǎn)次數(shù)減一,如果為零,則丟棄該接收的消息,否則,執(zhí)行所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。
所述接收單元進一步用于在接收到廣播消息時,判斷緩存中是否存在接收的廣播消息中包含的源疊加網(wǎng)地址和唯一表示廣播消息的消息標(biāo)識,如果存在,丟棄該接收的廣播消息;否則,緩存接收的廣播消息中的源疊加網(wǎng)地址和唯一表示廣播消息的消息標(biāo)識預(yù)先設(shè)置的時間,執(zhí)行所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。由上述技術(shù)方案可見,本發(fā)明實施例提供的一種基于疊加網(wǎng)的組播、廣播方法及系統(tǒng),按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域;根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式;消息發(fā)送方按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過應(yīng)用層進行發(fā)送;超級節(jié)點SN接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。這樣,通過提供應(yīng)用層的組播和廣播的實現(xiàn)方法,可以避免通過TCP/IP層的協(xié)議實現(xiàn)多播和組播時對交換機的依賴,降低了交換機發(fā)生故障時,無法發(fā)送多播和組播消息的概率,提高了網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,以下將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。顯而易見地,以下描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員而言,還可以根據(jù)這些附圖所示實施例得到其它的實施例及其附圖。圖I為現(xiàn)有Overlay網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)示意圖。圖2為本發(fā)明實施例基于疊加網(wǎng)的組播、廣播方法流程示意圖。圖3為本發(fā)明實施例廣播消息在Domain內(nèi)的發(fā)送流程示意圖。圖4為本發(fā)明實施例廣播消息在SubDomain內(nèi)的發(fā)送流程示意圖。圖5為本發(fā)明實施例組播消息在Domain內(nèi)的發(fā)送流程示意圖。圖6為本發(fā)明實施例組播消息在SubDomain內(nèi)的發(fā)送流程示意圖。圖7為本發(fā)明實施例基于置加網(wǎng)的組播、廣播系統(tǒng)結(jié)構(gòu)不意圖。圖8為本發(fā)明實施例基于疊加網(wǎng)的組播、廣播系統(tǒng)物理結(jié)構(gòu)示意圖。
具體實施例方式以下將結(jié)合附圖對本發(fā)明各實施例的技術(shù)方案進行清楚、完整的描述,顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所得到的所有其它實施例,都屬于本發(fā)明所保護的范圍?,F(xiàn)有的Overlay網(wǎng)絡(luò)系統(tǒng),采用TCP/IP層的組播和廣播技術(shù),依賴于網(wǎng)絡(luò)系統(tǒng)中的交換機,需要交換機支持組播和廣播,而TCP/IP層屬于網(wǎng)絡(luò)的傳輸層以及網(wǎng)絡(luò)層,傳輸層以及網(wǎng)絡(luò)層的可靠性較低,使得交換機容易發(fā)生故障,降低了網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性。本發(fā)明實施例中,考慮在網(wǎng)絡(luò)系統(tǒng)的應(yīng)用層實現(xiàn)組播和組播,提供一種應(yīng)用層的組播和廣播的方法,以避免通過TCP/IP層的協(xié)議實現(xiàn)多播和組播對交換機的依賴。
所應(yīng)說明的是,本發(fā)明實施例可以應(yīng)用于各機頂盒之間的通信、后臺服務(wù)器和機頂盒之間的通信以及機頂盒的VoIP業(yè)務(wù)等領(lǐng)域,機頂盒的VoIP業(yè)務(wù)可以是語音通信、可視電話、視頻電話等。下面先對本發(fā)明實施例涉及的相關(guān)技術(shù)術(shù)語進行描述。一、域(Domain), Domain是一個地域,為一個邏輯概念。Overlay網(wǎng)絡(luò)系統(tǒng)中,Domain可以對應(yīng)一個城市,也可以對應(yīng)一個企業(yè)或公司的局域網(wǎng)等。二、域標(biāo)識(DomainID),為Domain賦予的一個32位的非負(fù)整數(shù)值,唯一表示該Domain,即一個 DomainID 唯一對應(yīng)一個 Domain, —個 Domain 唯一對應(yīng)一個 DomainID。三、子域(SubDomain),是Domain中的一個子地域,一個Domain包含有一個或多個SubDomain0四、子域標(biāo)識(SubDomainID),為SubDomain賦予的一個32位的非負(fù)整數(shù)值,唯一表不 SubDomain,即一個 SubDomainID 唯一對應(yīng)一個 SubDomain, —個 SubDomain 唯一對應(yīng)一個SubDomainID。不同域內(nèi)的子域標(biāo)識可以相同,同一域內(nèi)的子域標(biāo)識各不相同。五、Overlay地址Overlay地址是Peer在Overlay網(wǎng)絡(luò)系統(tǒng)中唯一的地址標(biāo)識,包括目的Overlay地址以及源Overlay地址,其中,源Overlay地址為源節(jié)點地址,目的Overlay地址為消息到達(dá)的目的節(jié)點地址,源Overlay地址為一個,目的Overlay地址為一個或多個,本發(fā)明實施例中,目的Overlay地址格式包括三部分,其中,第一部分為消息類型標(biāo)識信息,第二部分為Overlay地址標(biāo)識信息,第三部分為目的域標(biāo)識以及目的子域標(biāo)識信息,即目的Overlay地址格式為消息類型標(biāo)識+Overlay地址標(biāo)識+目的域標(biāo)識以及目的子域標(biāo)識。較佳地,目的Overlay地址格式采用類EMAIL地址格式,例如,“##@DomainID.SubDomainID”,其總長度不超過32字節(jié)(可以是32字節(jié))。當(dāng)然,實際應(yīng)用中,目的Overlay地址格式也可以采用其它形式的格式,例如,采用Overlay地址標(biāo)識字符“$ ”取代上述的字符“0”,或者,將DomainID和SubDomainID的位置順序進行對換,前面為子域標(biāo)識,后面為域標(biāo)識。本發(fā)明實施例中,目的Overlay地址可以根據(jù)具體的應(yīng)用場景,規(guī)劃其命名規(guī)則,例如,在IPTV領(lǐng)域,以機頂盒終端(STB,Set Top Box)為例,其目的Overlay地址格式可以定義為STB SubscriberIDiDomainID. SubDomainID。上述目的Overlay地址格式中,STBSubscriberID為目的機頂盒標(biāo)識,SubDomainID為目的機頂盒所屬的子域標(biāo)識,DomainID為目的機頂盒所屬的域標(biāo)識。舉例來說,SubscriberID為 123456789、DomainID 為 USubDomainID 為 12 的目的STB 的 Overlay 地址為STB123456789il. 12。從目的Overlay地址可以看出,其地址必須包含DomainID和SubDomainID。六、節(jié)點(Peer),是Overlay網(wǎng)絡(luò)里面的終端,它可以是一個應(yīng)用服務(wù)器,也可以
是一個應(yīng)用終端。七、超級節(jié)點(SN, Super Node),是一個對等的服務(wù)器節(jié)點,SN的集群形成了overlay 網(wǎng)絡(luò)。八、啟動超級節(jié)點(BSSN, Bootstrap Super Node),在技術(shù)實現(xiàn)上就是一個SN,僅僅比SN多承擔(dān)一些功能,幫助其他的SN以及Peer加入overlay網(wǎng)絡(luò)。本發(fā)明實施例中,如果只比較服務(wù)器軟件的實現(xiàn)及其功能,BSSN和SN沒有區(qū)別,只是從部署的角度,選擇一些SN作為BSSN。以下描述中,如果沒有特殊說明,節(jié)點均是指Peer。圖2為本發(fā)明實施例基于疊加網(wǎng)的組播、廣播方法流程示意圖。參見圖2,該流程包括步驟201,按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域;本步驟中,按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)包括Al,將疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)按照預(yù)先的設(shè)置劃分為多個域;本步驟中,按照地域的邏輯對疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)進行劃分,例如,按照城市的邏輯,將疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)劃分為多個城市域,或者,按照企業(yè)或公司的邏輯,將疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)劃分為多個企業(yè)或公司域等。A2,按照子域的邏輯,將每一劃分的域再次劃分為多個子域。本步驟中,一個域包含一個或多個子域。例如,對于城市域,可以按照地區(qū)的邏輯,將城市域劃分為多個地區(qū)子域。配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域包括A3,為域設(shè)置域標(biāo)識,為子域設(shè)置子域標(biāo)識,建立域標(biāo)識與子域標(biāo)識的映射關(guān)系;本步驟中,一個域標(biāo)識用以唯一表示一個域,一個子域標(biāo)識用以唯一表示一個子域。較佳地,域標(biāo)識以及子域標(biāo)識一個32位的非負(fù)整數(shù)值。域標(biāo)識與子域標(biāo)識的映射關(guān)系用以表明一個域中包含的多個子域,即表示子域所屬的域。一個域標(biāo)識可以映射多個子域標(biāo)識,一個子域標(biāo)識只能映射一個域標(biāo)識。A4,將設(shè)置的子域標(biāo)識以及域標(biāo)識與子域標(biāo)識的映射關(guān)系配置到該子域中的節(jié)點。本步驟中,子域中的節(jié)點包括普通的節(jié)點、超級節(jié)點以及啟動超級節(jié)點。對于子域中的節(jié)點,存儲該節(jié)點所屬的子域標(biāo)識,以及,子域標(biāo)識與域標(biāo)識的映射關(guān)系。步驟202,根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式;本步驟中,消息格式也稱為疊加網(wǎng)地址(目的疊加網(wǎng)地址)格式,分為三部分,其中,第一部分為消息類型標(biāo)識信息,第二部分為Overlay地址標(biāo)識信息,第三部分為目的域標(biāo)識以及目的子域標(biāo)識信息,即目的Overlay地址格式為消息類型標(biāo)識+Overlay地址標(biāo)識+目的域標(biāo)識以及目的子域標(biāo)識。按照消息類型標(biāo)識的不同,即消息類型標(biāo)識包括廣播消息標(biāo)識以及組播消息標(biāo)識,目的疊加網(wǎng)地址格式包括廣播消息目的疊加網(wǎng)地址格式以及組播消息目的疊加網(wǎng)地址格式。其中, 按照目的子域標(biāo)識的不同,即目的子域標(biāo)識包括全局子域標(biāo)識以及局部子域標(biāo)識,廣播消息目的疊加網(wǎng)地址格式包括域內(nèi)的廣播消息目的疊加網(wǎng)地址格式以及子域內(nèi)的廣播消息目的疊加網(wǎng)地址格式,域內(nèi)的廣播,表示該域管轄范圍內(nèi)(域內(nèi))的所有子域內(nèi)的節(jié)點都能夠收到該條廣播消息;子域內(nèi)的廣播,表示該域管轄范圍下的該子域內(nèi)的所有節(jié)點都能夠收到該條廣播消息。本發(fā)明實施例中,廣播消息目的疊加網(wǎng)地址格式設(shè)置如下廣播消息標(biāo)識+Overlay地址標(biāo)識+目的域標(biāo)識以及目的子域標(biāo)識,具體來說,可以為broadcastiDomainID. SubDomainID。本發(fā)明實施例中,對于域內(nèi)的廣播消息目的疊加網(wǎng)地址格式,設(shè)置全局子域標(biāo)識,例如,設(shè)置65535為全局子域標(biāo)識,表示向該域內(nèi)的所有節(jié)點進行廣播,該目的子域標(biāo)識為疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)預(yù)留,不分配給實際的子域作為子域標(biāo)識。當(dāng)然,實際應(yīng)用中,也可以設(shè)置目的子域標(biāo)識為O或其它數(shù)值,表示全局子域標(biāo)識。廣播消息標(biāo)識為字符串“tooadcast”,當(dāng)然,實際應(yīng)用中,也可以采用其它的字符串為廣播消息標(biāo)識。域內(nèi)的廣播消息目的疊加網(wǎng)地址格式如下broadcastODomainID. 65535。實際應(yīng)用中,還可以在廣播消息標(biāo)識中進一步設(shè)置需要在域內(nèi)廣播的目的節(jié)點標(biāo)識信息,從而實現(xiàn)向域內(nèi)特定類型的目的節(jié)點進行廣播。例如,設(shè)置域內(nèi)的廣播消息目的疊加網(wǎng)地址格式可以如下STB_broadcast@DomainID. 65535。該域內(nèi)的廣播消息目的疊加網(wǎng)地址格式表示將廣播消息向該域內(nèi)的所有機頂盒進行廣播。子域內(nèi)的廣播消息目的疊加網(wǎng)地址格式與域內(nèi)的廣播消息目的疊加網(wǎng)地址格式相類似,不同的是,子域標(biāo)識不能為疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)為廣播預(yù)留的全局子域標(biāo)識,而為局部子域標(biāo)識,格式如下broadcast@DomainID. SubDomainID,(SubDomainID Φ 65535)。本發(fā)明實施例中,還可以在廣播消息標(biāo)識中進一步設(shè)置需要在子域內(nèi)廣播的目的節(jié)點標(biāo)識信息,因而,設(shè)置的域內(nèi)的廣播消息目的疊加網(wǎng)地址格式還可以如下STB—grpOOl—broadcast@DomainID. SubDomainID,
STB_grp002_broadcast@DomainID. SubDomainID 等,其中,grpOOl 和 grp002 為某兩個機頂盒的標(biāo)識,表示將廣播消息向該域內(nèi)的子域中的機頂盒標(biāo)識為grpOOl和grp002的機頂盒進行廣播,從而實現(xiàn)向子域內(nèi)特定的節(jié)點進行廣播。組播消息目的疊加網(wǎng)地址格式與廣播消息目的疊加網(wǎng)地址格式相類似,不同的是待發(fā)送消息的屬性標(biāo)識信息,組播消息目的疊加網(wǎng)地址格式設(shè)置如下組播消息標(biāo)識+Overlay地址標(biāo)識+目的域標(biāo)識以及目的子域標(biāo)識,具體來說,可以為Multicast@DomainID. SubDomainID。實際應(yīng)用中,還可以在組播消息標(biāo)識中進一步設(shè)置需要組播的目的組播組標(biāo)識信息,從而實現(xiàn)向域內(nèi)或子域內(nèi)特定的組播組進行廣播。例如,組播消息目的疊加網(wǎng)地址格式還可以設(shè)置如下Multicast_xyziDomainID. SubDomainID。
其中,Multicast為組播消息標(biāo)識字符串,xyz為組播組標(biāo)識(group ID), group ID可以以I位數(shù)字表示,也可以以2位或3位數(shù)字表示,較佳地,以字符和” 之間的數(shù)字為準(zhǔn),例如,xyz支持I到128,即group ID的取值范圍為I到128。實際應(yīng)用中,如果groupID沒有取值,即Multicast@DomainID. SubDomainID,表示向域內(nèi)或子域內(nèi)的所有加入組播組的節(jié)點進行組播。組播組標(biāo)識可以通過節(jié)點向啟動超級節(jié)點發(fā)送加入組播組請求,啟動超級節(jié)點響應(yīng)于節(jié)點的組播組請求,向節(jié)點返回加入的組播組標(biāo)識,同時,也可將管轄范圍內(nèi)的其它組播組標(biāo)識信息下發(fā)至對應(yīng)的各節(jié)點。與廣播消息目的疊加網(wǎng)地址格式相同,目的子域標(biāo)識包括全局子域標(biāo)識以及局部子域標(biāo)識,因而,可以按照目的子域標(biāo)識的不同,組播消息目的疊加網(wǎng)地址格式包括域內(nèi)的組播消息目的疊加網(wǎng)地址格式以及子域內(nèi)的組播消息目的疊加網(wǎng)地址格式,域內(nèi)的組播,表示該域內(nèi)、預(yù)設(shè)組播組內(nèi)的所有節(jié)點都能夠收到該條組播消息;子域內(nèi)的組播,表示該子域內(nèi)、預(yù)設(shè)組播組內(nèi)的所有節(jié)點都能夠收到該條組播消息。本發(fā)明實施例中,在消息類型標(biāo)識為組播消息的情況下,對于域內(nèi)的組播消息目的疊加網(wǎng)地址格式,設(shè)置65535為全局子域標(biāo)識,表示向該域內(nèi)加入某一組播組的所有節(jié)點進行組播。域內(nèi)的組播消息目的疊加網(wǎng)地址格式如下Multicast_xyziDomainID. 65535,或,MulticastODomainID. 65535。子域內(nèi)的組播消息目的疊加網(wǎng)地址格式與域內(nèi)的組播消息目的疊加網(wǎng)地址格式相類似,不同的是,其目的子域標(biāo)識值不能為疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)為組播預(yù)留的全局子域標(biāo)識值,而為局部子域標(biāo)識值,格式如下Multicast_xyziDomainID. SubDomainID,或,MulticastiDomainID. SubDomainID, (SubDomainID Φ· 65535)。進一步地,在消息中還可以設(shè)置源節(jié)點地址(源Overlay地址)信息,與目的疊加網(wǎng)地址格式相類似,也包括三部分,其中,第一部分為源節(jié)點屬性標(biāo)識信息,第二部分為Overlay地址標(biāo)識信息,第三部分為源節(jié)點所屬域標(biāo)識以及源節(jié)點所屬子域標(biāo)識信息。步驟203,消息發(fā)送方按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過疊加網(wǎng)進行發(fā)送;本步驟中,消息發(fā)送方(源節(jié)點)將包含目的疊加網(wǎng)地址的消息進行封裝,消息封裝的流程與采用IP地址對消息的封裝相類似,具體可參見相關(guān)技術(shù)文獻(xiàn),在此不再贅述。消息包括廣播消息以及組播消息。這樣,本發(fā)明實施例中,當(dāng)一個Peer需要發(fā)送一條廣播消息時,只需要將該條廣播消息的目的Overlay地址設(shè)置為本發(fā)明實施例的用于廣播的廣播消息目的Overlay地址,就可以實現(xiàn)廣播。其中,廣播包括Domain內(nèi)的廣播和SubDomain內(nèi)的廣播,其中, Domain內(nèi)的廣播,Domain內(nèi)的所有Peer都能夠收到該條廣播消息;SubDomain內(nèi)的廣播,SubDomain內(nèi)的所有Peer都能夠收到該條廣播消息。當(dāng)一個Peer需要發(fā)送一條組播消息時,與發(fā)送廣播消息相類似,只需要將這條組播消息的目的Overlay地址設(shè)置為本發(fā)明實施例用于組播的組播消息目的Overlay地址,就可以實現(xiàn)組播。同樣地,組播包括Domain內(nèi)的組播和SubDomain內(nèi)的組播,其中,Domain內(nèi)的組播,在該Domain內(nèi),加入組播組的所有Peer均能夠接收到該條組播消息;SubDomain內(nèi)的組播,在該SubDomain內(nèi),加入組播組的所有Peer均能夠接收到該條組播消息。源節(jié)點在發(fā)送消息時,將該消息路由至源節(jié)點所屬的超級節(jié)點或啟動超級節(jié)點,即與該節(jié)點相連的超級節(jié)點或啟動超級節(jié)點。對于組播,在組播消息中需要攜帶組播組標(biāo)識信息,因而,需要預(yù)先設(shè)置組播組標(biāo)識(Multicast group ID)規(guī)劃:本發(fā)明實施例中,基于業(yè)務(wù)類型或終端類型規(guī)劃組播組,采用四個U32類型的Multicast_mask,可以規(guī)劃為128路組播,例如 組播組標(biāo)識為I,表示機頂盒的組播組;組播組標(biāo)識為2,表示智能電視的組播組;組播組標(biāo)識為3,表示某種業(yè)務(wù)集群服務(wù)器的組播組;組播組標(biāo)識為4 128,為預(yù)留字段,用于后續(xù)擴展。在進行組播時,分為Peer端的組播實現(xiàn)以及SN端的組播實現(xiàn),下面分別進行描述。Peer端的組播實現(xiàn)Peer 需要實現(xiàn)的應(yīng)用程序接口(API, Application Programming Interface)對于Peer,可以選擇加入或退出一個組播組(mutlicast group),發(fā)送的加入組播組請求格式如下加入組播組Multicast_enable(U8 group_id);退出組播組Multicast_disable(U8 group_id);Peer通過下面的API發(fā)送組播消息,攜帶加入組播組請求
Multicast_msg_to_Overlay (U8*pdata, int n, U32 Domain, U32SubDomain,U8MuIticast_group)。其中,U8表示8位的無符號整數(shù),后續(xù)中,U16表示16位的無符號整數(shù),U32表示32位的無符號整數(shù)。本發(fā)明實施例中,Peer的Multicast_mask信息通過心跳(heartbeat)上報到SN,該信息不需要在SN之間傳播。Multicast_mask信息是Peer通過heartbeat上報到SN的,可能存在Peer從SN收到一個剛剛屏蔽掉的消息的情形,例如,Peer剛退出某一個組播組,就接收到了來自該組播組的消息。因此,Peer在接收到組播消息時,需要判斷該Peer是否加入了該組播組,如果沒有加入,則丟棄該組播消息。SN端的組播實現(xiàn) 消息路由機制對于消息路由機制,與廣播相類似,主要區(qū)別是,SN檢查對應(yīng)的Peer是否加入了對應(yīng)的組播組,并控制將組播消息轉(zhuǎn)發(fā)給加入該組播組的Peer。本步驟中,可以對組播消息進行過濾,即組播消息只傳播給加入該組播組的SN。SN加入的組播組信息,即前述的Multicast_mask信息作為SN的一個屬性信息,該屬性信息在SN之間傳播。這樣,Peer如果加入了某個組播組,則只能注冊到同樣加入這個組播組的SN。這樣,雖然會導(dǎo)致Overlay網(wǎng)絡(luò)系統(tǒng)配置和規(guī)劃的復(fù)雜,但可以有效減少網(wǎng)絡(luò)系統(tǒng)內(nèi)的組播消息傳播數(shù)量,降低網(wǎng)絡(luò)系統(tǒng)的資源開銷,提升網(wǎng)絡(luò)系統(tǒng)的資源利用率。當(dāng)然,實際應(yīng)用中,SN也可以不執(zhí)行檢查對應(yīng)的Peer是否加入了對應(yīng)的組播組的流程,這樣,可以降低Overlay網(wǎng)絡(luò)系統(tǒng)配置和規(guī)劃的復(fù)雜性,網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)較為簡單。步驟204,SN接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。如前所述,每一節(jié)點存儲有自身所屬的子域標(biāo)識以及域標(biāo)識,如果兩個節(jié)點的子域標(biāo)識相同,表示該兩個節(jié)點在同一子域內(nèi);如果兩個節(jié)點的子域標(biāo)識不同而域標(biāo)識相同,表示該兩個節(jié)點在同一域內(nèi),但分屬不同的子域;如果兩個節(jié)點的域標(biāo)識不同,表示該兩個節(jié)點不在同一域內(nèi)。根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息,即消息的路由機制,包括獲取目的疊加網(wǎng)地址中的消息類型標(biāo)識信息;如果消息類型標(biāo)識信息為廣播消息,判斷廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將廣播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至子域標(biāo)識中,廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN ;如果消息類型標(biāo)識信息為組播消息,判斷組播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將組播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至組播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至子域標(biāo)識中,組播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN。下面再對消息在疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中的路由機制進行具體說明。包括=SubDomain內(nèi)的廣播消息的路由機制以及Domain內(nèi)的廣播消息的路由機制。其中,SubDomain內(nèi)的廣播消息的路由機制描述如下SN (中間節(jié)點)接收到SubDomain內(nèi)的廣播消息后,提取該廣播消息攜帶的目的Overlay地址中的SubDomainID,與存儲的Overlay地址中的SubDomainID進行比較本步驟中,SN存儲的Overlay地址中的SubDomainID,用以表明自身所屬的SubDomain0如果提取的SubDomainID與存儲的SubDomainID不同,將該廣播消息路由到目的 SubDomainID 中的 SN ; 如果提取的SubDomainID與存儲的SubDomainID相同,將該廣播消息發(fā)送給SubDomainID內(nèi)的所有SN以及自身管轄下的所有Peer。本發(fā)明實施例中,經(jīng)過上述的路由機制,一個SN可能接收到自己發(fā)送的廣播消息,從而造成循環(huán)重復(fù)發(fā)送,為了避免廣播消息的循環(huán)重復(fù)發(fā)送,SN在接收到SubDomain內(nèi)的廣播消息后,提取該廣播消息攜帶的目的Overlay地址中的SubDomainID之前,進一步包括從接收的廣播(組播)消息中獲取廣播(組播)消息的發(fā)送方,如果發(fā)送方是SN,且該發(fā)送方Overlay地址中的SubDomainID與存儲的SubDomainID相同,結(jié)束廣播(組播)流程,將不再重復(fù)轉(zhuǎn)發(fā)。本步驟中,假設(shè)該SubDomain內(nèi)SN的數(shù)目為N,這樣,在該SubDomain內(nèi),SN之間傳輸該廣播消息的次數(shù)為(N-1)。實際應(yīng)用中,如果該SN預(yù)先沒有存儲自身所屬的SubDomain內(nèi)的所有SN,將允許循環(huán)重復(fù)發(fā)送,使得在SN所屬的SubDomain內(nèi),SN之間傳輸該廣播消息的次數(shù)是(N-I) + (N-2) + (N-3) +......+2+l=N (N-I) /2這樣,將大大增加網(wǎng)絡(luò)消息流量,造成廣播消息的泛濫。由于一個SN可能會重復(fù)收到同一條廣播消息,本發(fā)明實施例中,為了避免該廣播消息被重復(fù)發(fā)送給該SN管轄下的Peer,以及,在SN之間循環(huán)重復(fù)發(fā)送,提出如下改進機制。對于任何一個廣播消息,在廣播消息頭中進一步添加以下標(biāo)示信息源Overlay 地址Source_0verlay_Addr ;輪轉(zhuǎn)次數(shù)Round;唯一表示廣播消息的消息標(biāo)識msg_ID。其中,源Overlay地址的格式與目的Overlay地址的格式相同,在此不再贅述。這樣,通過源Overlay地址、輪轉(zhuǎn)次數(shù)以及廣播消息的消息標(biāo)識,可以控制廣播消息在SN之間循環(huán)重復(fù)以及對Peer的重復(fù)發(fā)送??刂茝V播消息在SN之間循環(huán)重復(fù)發(fā)送的機制如下消息發(fā)送方將Round設(shè)定為一個常數(shù)值,例如,將Round設(shè)置為6,每個消息接收方,例如SN,在接收到廣播消息后,將消息體中的Round減去1,如果接收的廣播消息的消息體中,Round為0,則丟棄該廣播消息。這樣,一條廣播消息最多的傳播次數(shù)為(N-l)*Round,大大降低了網(wǎng)絡(luò)消息流量??刂茝V播消息重復(fù)發(fā)送到Peer的機制如下消息接收方,例如SN,每接收到一條廣播消息,將該消息體中的源Overlay地址和msg_ID緩存預(yù)先設(shè)置的時間;SN接收到新廣播消息時,判斷緩存中是否存在消息體中的源Overlay地址和msg_ID,如果存在,說明該接收的廣播消息是重復(fù)發(fā)送的廣播消息,丟棄該廣播消息。也就是說,消息接收方接收到廣播消息時,判斷緩存中是否存在接收的廣播消息中包含的源疊加網(wǎng)地址和唯一表示廣播消息的消息標(biāo)識,如果存在,丟棄該接收的廣播消息;否則,緩存接收的廣播消息中的源疊加網(wǎng)地址和唯一表示廣播消息的消息標(biāo)識預(yù)先設(shè)置的時間,執(zhí)行所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息的步驟。所應(yīng)說明的是,上述控制廣播消息在SN之間循環(huán)重復(fù)發(fā)送以及控制廣播消息重 復(fù)發(fā)送到Peer的方法和機制,也可以用在普通的Overlay消息傳輸中,即非廣播消息傳輸?shù)膱龊?。?dāng)然,在上述流程中,在SN判斷提取的SubDomainID與存儲的SubDomainID相同時,也可以通過將該廣播消息發(fā)送給SubDomain內(nèi)除自身外的所有SN以及自身管轄下的除發(fā)送廣播消息外的所有Peer,從而避免廣播消息的循環(huán)重復(fù)發(fā)送。Domain內(nèi)的廣播消息的路由機制描述如下SN接收到廣播消息后,提取該廣播消息攜帶的目的Overlay地址中的DomainID,與存儲的Overlay地址中的DomainID進行比較如果提取的DomainID與存儲的DomainID不同,將該廣播消息路由到目的Domain中的SN ;如果提取的DomainID與存儲的DomainID相同,將該廣播消息發(fā)送給Domain內(nèi)的所有SN以及自身管轄下的所有Peer。與SubDomain內(nèi)的廣播消息的路由機制相類似,可以采用與上述控制廣播消息在SN之間循環(huán)重復(fù)發(fā)送以及控制廣播消息重復(fù)發(fā)送到Peer相類似的機制,避免循環(huán)重復(fù)發(fā)送的技術(shù)問題。下面舉幾個具體實施例,對本發(fā)明基于疊加網(wǎng)的組播、廣播方法作進一步的詳細(xì)說明。實施例一本發(fā)明實施例中,實現(xiàn)對于特定類型的Peer的廣播,該特定類型的Peer為機頂盒。Overlay網(wǎng)絡(luò)系統(tǒng)內(nèi)的廣播地址(Overlay地址)包括SubDomain內(nèi)的STB廣播地址以及Domain內(nèi)的STB廣播地址,格式分別如下 SubDomain 內(nèi)的 STB 廣播地址STB_broadcast@DomainID. SubDomainID。當(dāng)然,實際應(yīng)用中,也可以實現(xiàn)對Subdomain內(nèi)的某幾個STB的廣播,例如STB_grp001_broadcast@DomainID. SubDomainID,STB_grp002_broadcast@DomainID. SubDomainID 等,其中,grpOOl 和 grp002 為機頂盒的標(biāo)識。
Domain內(nèi)的STB廣播地址STB_broadcast@DomainID. 65535本發(fā)明實施例中,與IP的廣播地址相類似,對于SubDomainID為65535,設(shè)置為專用于廣播的地址,即子域標(biāo)識值,需要預(yù)留,不能分配給實際的SubDomain。當(dāng)然,實際應(yīng)用中,也可以設(shè)置SubDomainID為O或其它數(shù)值,表示專用于廣播的地址。STB_broadcast,用于表示SubDomain內(nèi)的STB廣播或Domain內(nèi)的STB廣播,因而,不能分配給其它非機頂盒的Peer作為Overlay地址的首部,即第一部分。其中,STB只能作為機頂盒的Overlay地址的前三個字節(jié),其他類型的Overlay Peer,例如,應(yīng)用服務(wù)器的Overlay地址的前三個字節(jié)不能是STB,舉例來說,對于應(yīng)用服務(wù)器來說,Overlay地址的首部可以設(shè)置為SVR_broadcast,用于表示SubDomain內(nèi)的應(yīng)用服務(wù)器廣播或Domain內(nèi)的應(yīng)用服務(wù)器廣播。 實施例二本發(fā)明實施例中,實現(xiàn)對所有Peer的廣播。Overlay網(wǎng)絡(luò)系統(tǒng)內(nèi)的廣播地址包括SubDomain內(nèi)的廣播地址以及Domain內(nèi)的廣播地址,格式分別如下SubDomain 內(nèi)的 Peer 廣播地址broadcastiDomainID. SubDomainID。與實施例一 SubDomain中廣播地址不同的是,由于是對網(wǎng)絡(luò)系統(tǒng)中所有的Peer進行廣播,Overlay地址的首部采用broadcast,用于標(biāo)識網(wǎng)絡(luò)系統(tǒng)中的所有Peer,因而,不管Peer是STB還是應(yīng)用服務(wù)器(SN或BSSN),只要在相應(yīng)的域內(nèi),都可以收到該廣播消息。當(dāng)然,實際應(yīng)用中,Overlay地址的首部不限于采用類似“Broadcast”的字符串,可以用其他的特定字符串代替Overlay地址的首部字符串“Broadcast”。Domain內(nèi)的Peer廣播地址broadcastiDomainID. 65535與實施例一 Domain中廣播地址不同的是目的Overlay地址的首部,采用不同的字符串,用于標(biāo)識是廣播消息還是組播消息。圖3為本發(fā)明實施例廣播消息在Domain內(nèi)的發(fā)送流程示意圖。參見圖3,假設(shè)在Overlay網(wǎng)絡(luò)系統(tǒng)內(nèi),發(fā)送廣播消息的第一 Peer (源節(jié)點)所屬的DomainID為2,第一 SN所屬的DomainID為2,第二 SN所屬的DomainID為I,第二 Peer至第N Peer所屬的DomainID為I,第一 Peer與第一 SN相連,第一 Peer需要向DomainID為I的各Peer發(fā)送廣播消息,Peer預(yù)先通過BSSN在疊加網(wǎng)中進行注冊,即Peer加入Overlay時,先找BSSN,BSSN起了一個聯(lián)系紐帶的作用,該流程包括步驟301,第一 Peer向第一 SN發(fā)送廣播消息;本步驟中,第一 Peer發(fā)送的廣播消息中的目的疊加網(wǎng)地址設(shè)置為broadcast@DomainID. 65535,其中,設(shè)置 Domain 的 DomainID=I。步驟302,第一 SN接收廣播消息,轉(zhuǎn)發(fā)廣播消息,如果消息目的地址的domain和自己的不同,將消息轉(zhuǎn)發(fā)給和消息目的地址的domain相同的SN ;如果和自己的domain相同,將把這條消息發(fā)給domain內(nèi)的所有SN.同時把消息轉(zhuǎn)發(fā)給自己管轄的所有Peer ;本步驟中,第一 SN接收廣播消息,如果廣播消息的目的疊加網(wǎng)地址的DomainID與自身所屬的DomainID不同,將廣播消息轉(zhuǎn)發(fā)給與廣播消息的目的疊加網(wǎng)地址相同的Domain 內(nèi)的 SN 或 SN ;如果廣播消息的目的疊加網(wǎng)地址的DomainID與自身所屬的DomainID相同,將該廣播消息發(fā)送給Domain內(nèi)的所有SN,同時,將廣播消息轉(zhuǎn)發(fā)給自己管轄Domain內(nèi)的所有Peer0本發(fā)明實施例中,廣播消息的目的疊加網(wǎng)地址的DomainID為I,第一 SN所屬的DomainID為2,域標(biāo)識值不相同,第一 SN將廣播消息轉(zhuǎn)發(fā)至與自身相連、且DomainID為I
的第二 SN。步驟303,第二 SN接收廣播消息,進行處理后將廣播消息分別轉(zhuǎn)發(fā)至第二 Peer至第 N Peer0
本步驟中,第二 SN接收廣播消息,如果廣播消息的目的疊加網(wǎng)地址的DomainID與自身所屬的DomainID不同,將廣播消息轉(zhuǎn)發(fā)給廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的Domain內(nèi)的SN ;如果廣播消息的目的疊加網(wǎng)地址的DomainID與自身(第二 SN)所屬的DomainID相同,將該廣播消息發(fā)送給Domain內(nèi)的所有SN,同時,將廣播消息轉(zhuǎn)發(fā)給自己管轄Domain內(nèi)的所有Peer,即第二 SN管轄范圍內(nèi)的所有Peer。本發(fā)明實施例中,廣播消息的目的疊加網(wǎng)地址的DomainID為1,第二 SN所屬的DomainID為I,域標(biāo)識相同,第二 SN將廣播消息轉(zhuǎn)發(fā)至DomainID為I的第二 Peer至第NPeer,從而完成廣播消息在Domain內(nèi)的發(fā)送流程。圖4為本發(fā)明實施例廣播消息在SubDomain內(nèi)的發(fā)送流程示意圖。參見圖4,假設(shè)在Overlay網(wǎng)絡(luò)系統(tǒng)內(nèi),發(fā)送廣播消息的第一 Peer所屬的SubDomainID為2,第一 SN所屬的SubDomainID為2,第二 SN所屬的SubDomainID為I,第二 Peer至第N Peer所屬的SubDomainID 為 1,第一 Peer、第一 SN、第二 SN、第二 Peer 至第 N Peer 所屬的 DomainID 為I,第一 Peer與第一 SN相連,第一 Peer需要向SubDomainID為I的各Peer發(fā)送廣播消息,Peer預(yù)先通過BSSN在疊加網(wǎng)中進行注冊,該流程包括步驟401,第一 Peer向第一 SN發(fā)送廣播消息;本步驟中,第一 Peer發(fā)送的廣播消息中的目的疊加網(wǎng)地址設(shè)置為broadcast@DomainID. SubDomainID,其中,設(shè)置 SubDomain 的 SubDomainID=I。步驟402,第一 SN接收廣播消息,轉(zhuǎn)發(fā)廣播消息,如果消息目的地址的subdomain和自己的不同,將消息轉(zhuǎn)發(fā)給和消息目的地址的subdomain相同的SN ;如果和自己的subdomain相同,將把這條消息發(fā)給subdomain內(nèi)的所有SN,同時把消息轉(zhuǎn)發(fā)給自己管轄的所有Peer ;本步驟中,第一 SN接收廣播消息,如果廣播消息的目的疊加網(wǎng)地址的DomainID與自身所屬的DomainID相同,但SubDomainID與自身所屬的SubDomainID不同,將廣播消息轉(zhuǎn)發(fā)給廣播消息的目的疊加網(wǎng)地址中子域標(biāo)識對應(yīng)的SubDomain內(nèi)的SN或SN ;如果廣播消息的目的疊加網(wǎng)地址的SubDomainID與自身所屬的SubDomainID相同,將該廣播消息發(fā)送給SubDomain內(nèi)的所有SN,同時,將廣播消息轉(zhuǎn)發(fā)給自己管轄SubDomain 內(nèi)的所有 Peer。本發(fā)明實施例中,廣播消息的目的疊加網(wǎng)地址的SubDomainID為I,第一 SN所屬的SubDomainID為2,不相同,第一 SN將廣播消息轉(zhuǎn)發(fā)至SubDomainID為I的第二 SN。步驟403,第二 SN接收廣播消息,進行處理后將廣播消息分別轉(zhuǎn)發(fā)至第二 Peer至第 N Peer0本步驟中,第二 SN接收廣播消息,如果廣播消息的目的疊加網(wǎng)地址的SubDomainID與自身所屬的SubDomainID不同,將廣播消息轉(zhuǎn)發(fā)給與廣播消息的目的疊加網(wǎng)地址相同的SubDomain內(nèi)的SN或SN ;如果廣播消息的目的疊加網(wǎng)地址的SubDomainID與自身所屬的SubDomainID相同,將該廣播消息發(fā)送給SubDomain內(nèi)的所有 SN,同時,將廣播消息轉(zhuǎn)發(fā)給自己管轄SubDomain 內(nèi)的所有 Peer。 本發(fā)明實施例中,廣播消息的目的疊加網(wǎng)地址的SubDomainID為I,第二 SN所屬的SubDomainID為I,子域標(biāo)識相同,第二 SN將廣播消息轉(zhuǎn)發(fā)至SubDomainID為I的第二 Peer至第N Peer,從而完成廣播消息在SubDomain內(nèi)的發(fā)送流程。實施例三本發(fā)明實施例中,實現(xiàn)對網(wǎng)絡(luò)系統(tǒng)中各Peer的組播。與廣播的Overlay地址相類似的是,通過Overlay地址的首部來標(biāo)識是組播(Multicast)??梢詫崿F(xiàn)一個Domain內(nèi)的Multicast,也可以實現(xiàn)一個SubDomain內(nèi)的Multicast。Overlay網(wǎng)絡(luò)系統(tǒng)SubDomain內(nèi)的組播地址格式如下Multicast_xyziDomainID. SubDomainID。Overlay網(wǎng)絡(luò)系統(tǒng)Domain內(nèi)的組播地址格式如下Multicast_xyziDomainID. 65535。其中,xyz表示組播組標(biāo)識(group ID), group ID可以以I位數(shù)字表示,也可以以2位或3位數(shù)字表示,較佳地,以字符”和之間的數(shù)字為準(zhǔn),例如,xyz支持I到128,即groupID的取值范圍為I到128。圖5為本發(fā)明實施例組播消息在Domain內(nèi)的發(fā)送流程示意圖。參見圖5,假設(shè)在Overlay網(wǎng)絡(luò)系統(tǒng)內(nèi),發(fā)送組播消息的第一 Peer所屬的DomainID為2,第一 SN所屬的DomainID 為 2,第二 SN 所屬的 DomainID 為 I,第二 Peer 至第 N Peer 所屬的 DomainID 為I,第二 Peer至第N Peer所屬的組播組為3,第一 Peer與第一 SN相連,第一 Peer需要向DomainID為I、且組播組為3的各Peer發(fā)送組播消息,Peer預(yù)先通過BSSN在疊加網(wǎng)中進行注冊,該流程包括步驟501,第二 Peer向第二 SN發(fā)送加入組播組請求,加入組播組3 ;本步驟中,第二 Peer調(diào)用函數(shù)Multicast_enable(3),向第二 SN發(fā)送加入組播組請求,請求加入組播組3。第二 SN接收第二 Peer發(fā)送的加入組播組請求,向第二 Peer返回加入組播組請求響應(yīng),確認(rèn)第二 Peer加入組播組3。步驟502,第N Peer向第二 SN發(fā)送加入組播組請求,加入組播組3 ;本步驟中,第N Peer調(diào)用函數(shù)Multicast_enable(3),向第二 SN發(fā)送加入組播組請求,請求加入組播組3。第二 SN接收第N Peer發(fā)送的加入組播組請求,向第N Peer返回加入組播組請求響應(yīng),確認(rèn)第N Peer加入組播組3。
第二 Peer至第N Peer之間的Peer加入組播組的流程與步驟52相同,在此不再贅述。步驟503,第一 Peer向第一 SN發(fā)送組播消息;本步驟中,第一 Peer發(fā)送的組播消息中的目的疊加網(wǎng)地址設(shè)置為broadcast_3@DomainID. 65535,其中,設(shè)置 Domain 的 DomainID=I,組播組為 3。步驟504,第一 SN接收組播消息,轉(zhuǎn)發(fā)組播消息,如果消息目的地址的domain和自己的不同,將消息轉(zhuǎn)發(fā)給和消息目的地址的domain相同的SN ;如果和自己的domain相同,將把這條消息發(fā)給domain內(nèi)的所有SN,同時把消息轉(zhuǎn)發(fā)給自己管轄的并且加入該多播組的Peer ;本步驟中,第一 SN接收組播消息,如果組播消息的目的疊加網(wǎng)地址的DomainID與自身所屬的DomainID不同,將組播消息轉(zhuǎn)發(fā)給組播消息的目的疊加網(wǎng)地址中域標(biāo)識對應(yīng) 的Domain內(nèi)的SN或SN ;如果組播消息的目的疊加網(wǎng)地址的DomainID與自身所屬的DomainID相同,將該組播消息發(fā)送給Domain內(nèi)的所有SN,同時,將組播消息轉(zhuǎn)發(fā)給自己管轄Domain內(nèi)、且加入組播組為3的所有Peer。本發(fā)明實施例中,組播消息的目的疊加網(wǎng)地址的DomainID為I,第一 SN所屬的DomainID為2,不相同,第一 SN將組播消息轉(zhuǎn)發(fā)至DomainID為I的第二 SN。步驟505,第二 SN接收組播消息,根據(jù)域標(biāo)識進行處理后將組播消息分別轉(zhuǎn)發(fā)至第二 Peer 至第 N Peer。本步驟中,第二 SN接收組播消息,如果組播消息的目的疊加網(wǎng)地址的DomainID與自身所屬的DomainID不同,將組播消息轉(zhuǎn)發(fā)給與組播消息的目的地疊加網(wǎng)址相同的Domain 內(nèi)的 SN 或 SN ;如果組播消息的目的疊加網(wǎng)地址的DomainID與自身所屬的DomainID相同,將該組播消息發(fā)送給Domain內(nèi)的所有SN,同時,將組播消息轉(zhuǎn)發(fā)給自己管轄Domain內(nèi)、且加入組播組為3的所有Peer。本發(fā)明實施例中,組播消息的目的疊加網(wǎng)地址的DomainID為I,第二 SN所屬的DomainID為1,相同,第二 SN將組播消息轉(zhuǎn)發(fā)至DomainID為I、且加入組播組為3的第二Peer至第N Peer,從而完成組播消息在Domain內(nèi)的發(fā)送流程。圖6為本發(fā)明實施例組播消息在SubDomain內(nèi)的發(fā)送流程示意圖。參見圖6,假設(shè)在Overlay網(wǎng)絡(luò)系統(tǒng)內(nèi),發(fā)送組播消息的第一 Peer所屬的SubDomainID為2,第一 SN所屬的SubDomainID為2,第二 SN所屬的SubDomainID為I,第二 Peer至第N Peer所屬的SubDomainID為I,第二 Peer至第N Peer所屬的組播組為3,第一 Peer、第一 SN、第二 SN、第二 Peer至第N Peer所屬的DomainID為I,第一 Peer與第一 SN相連,第一 Peer需要向SubDomainID為I、且組播組為3的各Peer發(fā)送組播消息,該流程包括步驟601,第二 Peer向第二 SN發(fā)送加入組播組請求,加入組播組3 ;本步驟中,第二 Peer調(diào)用函數(shù)Multicast_enable(3),向第二 SN發(fā)送加入組播組請求,請求加入組播組3。第二 SN接收第二 Peer發(fā)送的加入組播組請求,向第二 Peer返回加入組播組請求響應(yīng),確認(rèn)第二 Peer加入組播組3。步驟602,第N Peer向第二 SN發(fā)送加入組播組請求,加入組播組3 ;
本步驟中,第N Peer調(diào)用函數(shù)Multicast_enable(3),向第二 SN發(fā)送加入組播組請求,請求加入組播組3。第二 SN接收第N Peer發(fā)送的加入組播組請求,向第N Peer返回加入組播組請求響應(yīng),確認(rèn)第N Peer加入組播組3。第二 Peer至第N Peer之間的Peer加入組播組的流程與步驟62相同,在此不再贅述。步驟603,第一 Peer向第一 SN發(fā)送組播消息;本步驟中,第一 Peer發(fā)送的組播消息中的目的疊加網(wǎng)地址設(shè)置為broadcast_3@DomainID. SubDomainID,其中,設(shè)置 SubDomain 的 SubDomainID=I,組播組為 3。步驟604,第一 SN接收組播消息,轉(zhuǎn)發(fā)組播消息,如果消息目的地址的subdomain和自己的不同,將消息轉(zhuǎn)發(fā)給和消息目的地址的subdomain相同的SN ;如果和自己的subdomain相同,將把這條消息發(fā)給subdomain內(nèi)的所有SN,同時把消息轉(zhuǎn)發(fā)給自己管轄的并且加入該多播組的Peer ;本步驟中,第一 SN接收組播消息,如果組播消息的目的疊加網(wǎng)地址的SubDomainID與自身所屬的SubDomainID不同,將組播消息轉(zhuǎn)發(fā)給與組播消息的目的疊加網(wǎng)地址相同的SubDomain內(nèi)的SN ;如果組播消息的目的疊加網(wǎng)地址的SubDomainID與自身(第一 SN)所屬的SubDomainID相同,將該組播消息發(fā)送給SubDomain內(nèi)的所有SN,同時,將組播消息轉(zhuǎn)發(fā)給自己管轄SubDomain內(nèi)、且加入組播組為3的所有Peer。本發(fā)明實施例中,組播消息的目的疊加網(wǎng)地址中的SubDomainID為I,第一 SN所屬的SubDomainID為2,子域標(biāo)識不相同,第一 SN將組播消息轉(zhuǎn)發(fā)至SubDomainID為I的第二SN。步驟605,第二 SN接收組播消息,根據(jù)子域標(biāo)識進行處理后將組播消息分別轉(zhuǎn)發(fā)至第二 Peer至第N Peer。本步驟中,第二 SN接收組播消息,如果組播消息的目的疊加網(wǎng)地址的SubDomainID與自身所屬的SubDomainID不同,將組播消息轉(zhuǎn)發(fā)給與組播消息的目的疊加網(wǎng)地址相同的SubDomain內(nèi)的SN ;如果組播消息的目的疊加網(wǎng)地址的SubDomainID與自身(第二 SN)所屬的SubDomainID相同,將該組播消息發(fā)送給SubDomain內(nèi)的所有SN,同時,將組播消息轉(zhuǎn)發(fā)給自己管轄SubDomain內(nèi)、且加入組播組為3的所有Peer。本發(fā)明實施例中,組播消息的目的疊加網(wǎng)地址的SubDomainID為I,第二 SN所屬的SubDomainID為I,子域標(biāo)識相同,第二 SN將組播消息轉(zhuǎn)發(fā)至SubDomainID為I、且加入組播組為3的第二 Peer至第N Peer,從而完成組播消息在SubDomain內(nèi)的發(fā)送流程。由上述可見,本發(fā)明實施例基于疊加網(wǎng)的組播、廣播方法,通過按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域;根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式;源節(jié)點按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過應(yīng)用層進行發(fā)送;中間節(jié)點接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。這樣,通過提供應(yīng)用層的組播和廣播的實現(xiàn)方法,可以避免通過TCP/IP層的協(xié)議實現(xiàn)多播和組播時對交換機的依賴,降低了交換機發(fā)生故障時,無法發(fā)送多播和組播消息的概率,提高了網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性;進一步地,也避免了網(wǎng)絡(luò)管理員出于網(wǎng)絡(luò)系統(tǒng)性能的考慮,經(jīng)常關(guān)閉交換機的組播和廣播功能導(dǎo)致的網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性不高的技術(shù)問題。具體來說,具有如下有益技術(shù)效果I),基于對等網(wǎng)絡(luò)(Overlay網(wǎng)絡(luò))實現(xiàn)了應(yīng)用層的廣播通過設(shè)置特定的Overlay地址中的Domain和SubDomain屬性,實現(xiàn)了 Overlay網(wǎng)絡(luò)系統(tǒng)中應(yīng)用層消息的廣播,對于應(yīng)用層而言,可以為廣播范圍提供更大的靈活性。2),基于對等網(wǎng)絡(luò)(Overlay網(wǎng)絡(luò))實現(xiàn)了應(yīng)用層的組播通過設(shè)置特定的Overlay地址中的Domain和SubDomain屬性,實現(xiàn)了 Overlay網(wǎng)絡(luò)系統(tǒng)中應(yīng)用層消息的組播,避免了依賴TCP/IP層的協(xié)議實現(xiàn)多播和組播,從而避免了對交換機的依賴,提高了網(wǎng)絡(luò)系統(tǒng)組播和廣播的可靠性。3),組播組可以進行便捷的擴展擴展一個組播組,Overlay網(wǎng)絡(luò)系統(tǒng)中的SN實現(xiàn)和Peer實現(xiàn)無需改動,只需要對組播組的掩碼進行業(yè)務(wù)上統(tǒng)一的規(guī)劃即可,通過消息格式Multicast_enable(U8 group_id),可以表明SN加入的組播組,而通過擴展group_id的范圍,可以方便擴展組播組的數(shù)量。例如,將group_id的范圍擴展到U16,就可以實現(xiàn)65535 路組播,使得組播組的數(shù)量可以很方便進行擴展,便于網(wǎng)絡(luò)規(guī)劃。而且,Peer的應(yīng)用層可以選擇加入不同的組播組,例如,可以選擇加入或退出一個或多個組播組,從而為應(yīng)用層業(yè)務(wù)的實現(xiàn)提供了便利。圖7為本發(fā)明實施例基于疊加網(wǎng)的組播、廣播系統(tǒng)結(jié)構(gòu)示意圖。參見圖7,該系統(tǒng)包括劃分單元、配置單元、發(fā)送單元以及接收單元,其中,劃分單元,用于按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域;配置單元,用于根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式;本發(fā)明實施例中,目的疊加網(wǎng)地址格式依序包括消息類型標(biāo)識信息、疊加網(wǎng)地址標(biāo)識信息、目的域標(biāo)識以及目的子域標(biāo)識信息三部分。其中,消息類型標(biāo)識包括廣播消息標(biāo)識以及組播消息標(biāo)識,相應(yīng)地,目的疊加網(wǎng)地址格式包括廣播消息目的疊加網(wǎng)地址格式以及組播消息目的疊加網(wǎng)地址格式。發(fā)送單元,用于消息按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過疊加網(wǎng)進行發(fā)送;接收單元,用于接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。其中,接收單元包括獲取模塊、判斷模塊、廣播消息處理模塊以及組播消息處理模塊(圖中未示出),其中,獲取模塊,用于獲取目的疊加網(wǎng)地址中的消息類型標(biāo)識信息;判斷模塊,用于根據(jù)獲取模塊中的消息類型標(biāo)識信息,判斷接收的消息是否為廣播消息,如果是,輸出至廣播消息處理模塊,否則,輸出至組播消息處理模塊;廣播消息處理模塊,用于判斷廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將廣播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至子域標(biāo)識中,廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN;組播消息處理模塊,用于判斷組播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將組播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至組播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識否則獲取組播消息標(biāo)識信息,將組播消息發(fā)送至子域標(biāo)識中,組播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN。其中,廣播消息處理模塊包括第一判斷子模塊、第二判斷子模塊、第一發(fā)送子模塊、第二發(fā)送子模塊以及第三發(fā)送子模塊(圖中未示出),其中, 第一判斷子模塊,用于判斷廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,輸出至發(fā)送子模塊;如果相同,將廣播消息輸出至第二判子斷模塊;第一發(fā)送子模塊,用于接收第一判斷模塊的輸出,將廣播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;第二判子斷模塊,用于判斷廣播消息中包含的子域標(biāo)識,如果為全局子域標(biāo)識,輸出至第二發(fā)送子模塊;如果為局部子域標(biāo)識,輸出至第三發(fā)送子模塊;第二發(fā)送子模塊,用于接收第二判子斷模塊的輸出,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;第三發(fā)送子模塊,用于接收第二判子斷模塊的輸出,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至子域標(biāo)識中,廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN。較佳地,本發(fā)明實施例中,配置單元還可以進一步用于在廣播消息頭中添加源疊加網(wǎng)地址信息、輪轉(zhuǎn)次數(shù)信息以及唯一表示廣播消息的消息標(biāo)識信息。發(fā)送單元進一步將輪轉(zhuǎn)次數(shù)信息設(shè)置為預(yù)先設(shè)定的常數(shù),相應(yīng)地,接收單元進一步用于從接收的消息中獲取輪轉(zhuǎn)次數(shù)信息,將獲取的輪轉(zhuǎn)次數(shù)減一,如果為零,則丟棄該接收的消息,否則,執(zhí)行所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。接收單元也可以進一步用于在接收到廣播消息時,判斷緩存中是否存在接收的廣播消息中包含的源疊加網(wǎng)地址和唯一表示廣播消息的消息標(biāo)識,如果存在,丟棄該接收的廣播消息;否則,緩存接收的廣播消息中的源疊加網(wǎng)地址和唯一表示廣播消息的消息標(biāo)識預(yù)先設(shè)置的時間,執(zhí)行所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。圖8為本發(fā)明實施例基于疊加網(wǎng)的組播、廣播系統(tǒng)物理結(jié)構(gòu)示意圖。參見圖8,包括Peer、SN以及BSSN,其中,Peer既可以與SN相連,也可以與BSSN相連;SN既可以與BSSN相連,也可以與其它SN相連;BSSN可以與其它BSSN相連,系統(tǒng)中的每個Peer既可以作為消息發(fā)送方,又可以作為消息接收方,SN不會主動發(fā)消息,只會轉(zhuǎn)發(fā),起到TCP/IP網(wǎng)絡(luò)中路由器或交換機的作用,與圖I不同的是,系統(tǒng)以域進行劃分,每個劃分的域又被劃分為多個子域,每個子域中,包含有Peer以及SN,或者,還包括有BSSN。
顯然,本領(lǐng)域技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種基于疊加網(wǎng)的組播、廣播方法,包括 按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域; 根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式; 消息發(fā)送方按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過疊加網(wǎng)進行發(fā)送; 超級節(jié)點SN接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。
2.根據(jù)權(quán)利要求I所述的方法,其中,所述按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)包括 將疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)按照預(yù)先的設(shè)置劃分為多個域; 按照子域的邏輯,將每一劃分的域再次劃分為多個子域。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域包括 超級節(jié)點和節(jié)點的屬性包括域和子域; 為域設(shè)置域標(biāo)識,為子域設(shè)置子域標(biāo)識,并說明一個域包含的子域。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述目的疊加網(wǎng)地址格式依序包括消息類型標(biāo)識信息、疊加網(wǎng)地址標(biāo)識信息、目的域標(biāo)識以及目的子域標(biāo)識信息三部分。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述消息類型標(biāo)識包括廣播消息標(biāo)識以及組播消息標(biāo)識,相應(yīng)地, 所述目的疊加網(wǎng)地址格式包括廣播消息目的疊加網(wǎng)地址格式以及組播消息目的疊加網(wǎng)地址格式。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述組播消息目的疊加網(wǎng)地址格式設(shè)置為 Multicast@DomainID. SubDomainID ; 其中,Multicast為組播消息標(biāo)識,@為疊加網(wǎng)地址標(biāo)識,DomainID為目的域標(biāo)識,SubDomainID為目的子域標(biāo)識。
7.—種基于疊加網(wǎng)的組播、廣播系統(tǒng),其特征在于,該系統(tǒng)包括劃分單元、配置單元、發(fā)送單元以及接收單元,其中, 劃分單元,用于按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域; 配置單元,用于根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式; 發(fā)送單元,用于按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過疊加網(wǎng)進行發(fā)送; 接收單元,用于超級節(jié)點SN接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述接收單元包括獲取模塊、判斷模塊、廣播消息處理模塊以及組播消息處理模塊,其中, 獲取模塊,用于獲取目的疊加網(wǎng)地址中的消息類型標(biāo)識信息; 判斷模塊,用于根據(jù)獲取模塊中的消息類型標(biāo)識信息,判斷接收的消息是否為廣播消息,如果是,輸出至廣播消息處理模塊,否則,輸出至組播消息處理模塊;廣播消息處理模塊,用于判斷廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將廣播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至子域標(biāo)識中,廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN; 組播消息處理模塊,用于判斷組播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,將組播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點;如果相同,進一步判斷子域標(biāo)識,如果為全局子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至組播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ;如果為局部子域標(biāo)識,獲取組播消息標(biāo)識信息,將組播消息發(fā)送至子域標(biāo)識中,組播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述廣播消息處理模塊包括第一判斷子模塊、第二判斷子模塊、第一發(fā)送子模塊、第二發(fā)送子模塊以及第三發(fā)送子模塊,其中, 第一判斷子模塊,用于判斷廣播消息的目的疊加網(wǎng)地址中的域標(biāo)識與自身所屬的域標(biāo)識是否相同,如果不同,輸出至發(fā)送子模塊;如果相同,將廣播消息輸出至第二判子斷模塊; 第一發(fā)送子模塊,用于接收第一判斷模塊的輸出,將廣播消息轉(zhuǎn)發(fā)給目的疊加網(wǎng)地址中的域標(biāo)識對應(yīng)的域內(nèi)的超級節(jié)點; 第二判子斷模塊,用于判斷廣播消息中包含的子域標(biāo)識,如果為全局子域標(biāo)識,輸出至第二發(fā)送子模塊;如果為局部子域標(biāo)識,輸出至第三發(fā)送子模塊; 第二發(fā)送子模塊,用于接收第二判子斷模塊的輸出,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及域內(nèi)所有的SN ; 第三發(fā)送子模塊,用于接收第二判子斷模塊的輸出,獲取廣播消息標(biāo)識信息,將廣播消息發(fā)送至子域標(biāo)識中,廣播消息標(biāo)識信息對應(yīng)的節(jié)點以及子域內(nèi)所有的SN。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述發(fā)送單元進一步將輪轉(zhuǎn)次數(shù)信息設(shè)置為預(yù)先設(shè)定的常數(shù),所述接收單元進一步用于從接收的消息中獲取輪轉(zhuǎn)次數(shù)信息,將獲取的輪轉(zhuǎn)次數(shù)減一,如果為零,則丟棄該接收的消息,否則,執(zhí)行所述根據(jù)消息中的目的疊加網(wǎng)地址和自身所屬的域和子域信息,轉(zhuǎn)發(fā)消息。
全文摘要
本發(fā)明公開了一種基于疊加網(wǎng)的組播、廣播方法及系統(tǒng)。該方法包括按照域和子域劃分疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng),配置疊加網(wǎng)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點所屬的域以及子域;根據(jù)配置的域以及子域,設(shè)置消息中目的疊加網(wǎng)地址格式;消息發(fā)送方按照預(yù)先設(shè)置的目的疊加網(wǎng)地址格式封裝待發(fā)送消息,通過疊加網(wǎng)進行消息路由;疊加網(wǎng)中的SN接收消息,并根據(jù)消息中的目的疊加網(wǎng)地址與自身所屬的域以及子域信息,轉(zhuǎn)發(fā)消息。應(yīng)用本發(fā)明,可以在疊加網(wǎng)中實現(xiàn)消息的組播和廣播。
文檔編號H04L12/18GK102857352SQ20121033119
公開日2013年1月2日 申請日期2012年9月7日 優(yōu)先權(quán)日2012年9月7日
發(fā)明者李國懷, 姚雪鋒 申請人:青島海信傳媒網(wǎng)絡(luò)技術(shù)有限公司