專利名稱:一種基于dvpn的組播數(shù)據(jù)傳輸方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種基于DVPN(Dynamic Virtual PrivateNetwork,動態(tài)虛擬專用網(wǎng)絡(luò))的組播數(shù)據(jù)傳輸方法和設(shè)備。
背景技術(shù):
越來越多的企業(yè)希望利用公共網(wǎng)絡(luò)組建VPN (Virtual Private Network,虛擬專用網(wǎng)絡(luò)),以連接地理位置不同的 多個分支機構(gòu);然而企業(yè)分支機構(gòu)通常采用動態(tài)地址接入公共網(wǎng)絡(luò),使得通信一端無法事先知道對端的公網(wǎng)地址,為組建VPN提出了難題。為此提出了 DVPN 技術(shù),其通過 NHRP (Next Hop Resolution Protocol,下一跳解析協(xié)議)或者 VAM(VPN Address Management, VPN地址管理)協(xié)議收集、維護和分發(fā)動態(tài)變化的公網(wǎng)地址信息,從而在企業(yè)網(wǎng)各分支機構(gòu)使用動態(tài)地址接入公網(wǎng)的情況下,在各分支機構(gòu)間建立VPN。DVPN包括Full-Mesh (全互聯(lián))網(wǎng)絡(luò),在該Full-Mesh網(wǎng)絡(luò)中,Spoke之間可以建立direct (直連)隧道直接進行通信,且Hub主要作為路由信息交換的中心;具體的,Spoke在向Server (服務(wù)器)注冊后可以獲得Hub的信息,并與Hub建立永久的隧道連接;且任意兩個Spoke之間可以建立direct隧道,該direct隧道是動態(tài)的,在一段規(guī)定時間內(nèi)沒有數(shù)據(jù)交互時需要被刪除。在Full-Mesh網(wǎng)絡(luò)中,隧道建立過程包括如下步驟
步驟1、如圖1所示的Site(節(jié)點)接入網(wǎng)絡(luò)的初始狀態(tài)示意圖;在初始狀態(tài)下,各Site都接入到網(wǎng)絡(luò),但彼此之間沒有建立隧道。步驟2、如圖2所示的Site向Server注冊示意圖;在各Site向Server注冊的過程中,各Site可以通過注冊請求報文和回應(yīng)報文的交互,獲得Hub或Spoke的身份,且在Spoke和Hub之間建立隧道;其中,該Server可以是NHS (對應(yīng)于NHRP實現(xiàn)的方式)或者VAM Server (對應(yīng)于VAM實現(xiàn)的方式)。步驟3、如圖3所示的Spoke之間建立direct隧道示意圖;在Spoke之間建立direct隧道的過程中,假設(shè)Spokel與PCl相連,Spoke2與PC2相連,當PCl需要發(fā)送數(shù)據(jù)給PC2時,Spokel向Server發(fā)送下一跳解析請求報文,Server將Spoke2注冊的公網(wǎng)地址通過下一跳解析響應(yīng)報文通知給Spokel,之后Spokel可以利用Spoke2的公網(wǎng)地址建立到Spoke2 的 direct 隧道。在所有Spoke之間都建立direct隧道之后,則可以形成一個Full-Mesh網(wǎng)絡(luò),如圖4所示,為Full-Mesh網(wǎng)絡(luò)的示意圖;該網(wǎng)絡(luò)中包括Spoke和Hub之間的隧道以及Spoke和Spoke之間的direct隧道;此時,各Spoke之間的數(shù)據(jù)可以直接通過Spoke之間的direct隧道轉(zhuǎn)發(fā),而不需要通過Hub進行中轉(zhuǎn)。在Full-Mesh網(wǎng)絡(luò)中組播數(shù)據(jù)的轉(zhuǎn)發(fā)過程如下當Spoke相連終端需要發(fā)送組播數(shù)據(jù)時,由于Spoke不知道將組播數(shù)據(jù)轉(zhuǎn)發(fā)給哪些鄰居,因此該Spoke只能將組播數(shù)據(jù)發(fā)送給Hub,由Hub將組播數(shù)據(jù)復制發(fā)送給所有已注冊在線的Spoke。如圖5所示的組播數(shù)據(jù)發(fā)送示意圖,Spokel、Spoke3、Spoke4各自下掛的子網(wǎng)中分別有PC1、PC3、PC4加入組播組MGl ;Spokel收到來自PCl的組播數(shù)據(jù)后,將組播數(shù)據(jù)進行單播隧道封裝,經(jīng)過路徑KSpokel和Hub之間的隧道)發(fā)送給Hub ;由Hub對組播數(shù)據(jù)進行復制,并分別發(fā)送給Spoke2, Spoke3和Spoke4 ;Sp0ke3在收到組播數(shù)據(jù)后,將組播數(shù)據(jù)發(fā)送給PC3,Spoke4在收到組播數(shù)據(jù)后,將組播數(shù)據(jù)發(fā)送給PC4 ;由于Spoke2下掛子網(wǎng)中沒有PC加入此組播組,因此Spoke2會丟棄收到的組播數(shù)據(jù)。在上述實現(xiàn)過程中,如圖6所示的Hub復制轉(zhuǎn)發(fā)組播數(shù)據(jù)示意圖,通過Hub復制組播數(shù)據(jù)并轉(zhuǎn)發(fā)給所有非組播源所在的Spoke時,如果上線的Spoke很多并且相連終端都沒有加入組播組,則會有大量的組播數(shù)據(jù)在這些Spoke上被丟棄;當多個Spoke相連終端加入了不同組播組,而且都有組播數(shù)據(jù)發(fā)送時,Hub作為組播數(shù)據(jù)的復制和中轉(zhuǎn)中心,其負載很大,性能極差
發(fā)明內(nèi)容
本發(fā)明提供一種基于DVPN的組播數(shù)據(jù)傳輸方法和設(shè)備,以由Spoke利用direct隧道直接發(fā)送組播數(shù)據(jù),減輕Hub的處理負載。為了達到上述目的,本發(fā)明實施例提供一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸方法,應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,所述服務(wù)器上維護有注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系,該方法包括以下步驟
Spoke在收到來自自身相連終端的組播數(shù)據(jù)時,獲得所述組播數(shù)據(jù)對應(yīng)的組播組地址,并向所述服務(wù)器發(fā)送請求報文,所述請求報文中攜帶了所述組播組地址;
所述Spoke接收來自所述服務(wù)器的響應(yīng)報文,所述響應(yīng)報文中攜帶了所述服務(wù)器查詢所述注冊信息表獲得的對應(yīng)于所述組播組地址的公網(wǎng)地址;
所述Spoke判斷當前自身是否與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道,如果是,則利用建立的direct隧道發(fā)送所述組播數(shù)據(jù);
如果否,貝1J所述Spoke利用所述公網(wǎng)地址與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道,并利用所述direct隧道發(fā)送所述組播數(shù)據(jù)。所述方法進一步包括所述Spoke通過注冊請求報文將自身的公網(wǎng)地址以及自身相連終端加入的組播組地址發(fā)送給所述服務(wù)器;
由所述服務(wù)器在所述注冊信息表中記錄所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系。所述方法進一步包括當所述Spoke相連終端離開組播組后,所述Spoke通過注銷請求報文將自身的公網(wǎng)地址以及自身相連終端離開的組播組地址發(fā)送給所述服務(wù)器;由所述服務(wù)器在所述注冊信息表中刪除所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址之間的對應(yīng)關(guān)系;以及,
當所述Spoke相連終端離開組播組后,所述Spoke將自身相連終端離開的組播組地址發(fā)送給當前向所述Spoke相連終端發(fā)送組播數(shù)據(jù)的其它Spoke,以指示所述其它Spoke停止向所述Spoke相連終端發(fā)送組播數(shù)據(jù)。本發(fā)明實施例提供一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸方法,應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,該方法包括以下步驟所述服務(wù)器維護注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系;
所述服務(wù)器接收來自Spoke的請求報文,且所述請求報文中攜帶了所述Spoke需要發(fā)送的組播數(shù)據(jù)的組播組地址;
所述服務(wù)器利用所述組播組地址查詢所述注冊信息表,獲得與所述組播組地址相對應(yīng)的公網(wǎng)地址;
所述服務(wù)器向所述Spoke發(fā)送響應(yīng)報文,且所述響應(yīng)報文中攜帶了所述公網(wǎng)地址;使所述Spoke利用所述公網(wǎng)地址發(fā)送所述組播數(shù)據(jù)。所述服務(wù)器維護注冊信息表的過程,進一步包括
所述服務(wù)器接收來自所述Spoke的注冊請求報文,且所述注冊請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址,并在所述注冊信息表中記 錄所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系。所述方法進一步包括當Spoke相連終端離開組播組后,所述服務(wù)器接收來自所述Spoke的注銷請求報文,且所述注銷請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址,并在所述注冊信息表中刪除所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址之間的對應(yīng)關(guān)系。本發(fā)明實施例提供一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸設(shè)備,作為Spoke應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,所述服務(wù)器上維護有注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系,該設(shè)備包括
獲得模塊,用于在收到來自本設(shè)備相連終端的組播數(shù)據(jù)時,獲得所述組播數(shù)據(jù)對應(yīng)的組播組地址;
發(fā)送模塊,用于向所述服務(wù)器發(fā)送請求報文,且所述請求報文中攜帶了所述組播組地
址;
接收模塊,用于接收來自所述服務(wù)器的響應(yīng)報文,所述響應(yīng)報文中攜帶了所述服務(wù)器查詢所述注冊信息表獲得的對應(yīng)所述組播組地址的公網(wǎng)地址;
判斷模塊,用于判斷當前本設(shè)備是否與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道;處理模塊,用于當判斷結(jié)果為是時,利用建立的direct隧道發(fā)送所述組播數(shù)據(jù);當判斷結(jié)果為否時,利用所述公網(wǎng)地址與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道,并利用所述direct隧道發(fā)送所述組播數(shù)據(jù)。所述發(fā)送模塊,還用于通過注冊請求報文將本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端加入的組播組地址發(fā)送給所述服務(wù)器;
由所述服務(wù)器在所述注冊信息表中記錄本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端加入的組播組地址之間的對應(yīng)關(guān)系。所述發(fā)送模塊,還用于當本設(shè)備相連終端離開組播組后,通過注銷請求報文將本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端離開的組播組地址發(fā)送給所述服務(wù)器;由所述服務(wù)器在所述注冊信息表中刪除本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端離開的組播組地址之間的對應(yīng)關(guān)系;以及,
當本設(shè)備相連終端離開組播組后,將本設(shè)備相連終端離開的組播組地址發(fā)送給當前向本設(shè)備相連終端發(fā)送組播數(shù)據(jù)的其它Spoke,以指示所述其它Spoke停止向本設(shè)備相連終端發(fā)送組播數(shù)據(jù)。本發(fā)明實施例提供一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸設(shè)備,作為服務(wù)器應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,該設(shè)備包括 維護模塊,用于維護注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系;
接收模塊,用于接收來自Spoke的請求報文,且所述請求報文中攜帶了所述Spoke需要發(fā)送的組播數(shù)據(jù)的組播組地址;
獲得模塊,用于利用所述組播組地址查詢所述注冊信息表,獲得與所述組播組地址相對應(yīng)的公網(wǎng)地址;
發(fā)送模塊,用于向所述Spoke發(fā)送響應(yīng)報文,且所述響應(yīng)報文中攜帶了所述公網(wǎng)地址;使所述Spoke利用所述公網(wǎng)地址發(fā)送所述組播數(shù)據(jù)。所述接收模塊,還用于接收來自所述Spoke的注冊請求報文,且所述注冊請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址;
所述維護模塊,進一步用于在所述注冊信息表中記錄所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系。所述接收模塊,還用于當Spoke相連終端離開組播組后,接收來自所述Spoke的注銷請求報文,且所述注銷請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址;
所述維護模塊,進一步用于在所述注冊信息表中刪除所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址之間的對應(yīng)關(guān)系。與現(xiàn)有技術(shù)相比,本發(fā)明實施例至少具有以下優(yōu)點本發(fā)明實施例中,Spoke在需要發(fā)送組播數(shù)據(jù)時,能夠獲知該組播數(shù)據(jù)的接收者所在的其它Spoke的公網(wǎng)地址信息,從而能夠利用direct隧道直接發(fā)送組播數(shù)據(jù),避免Hub復制轉(zhuǎn)發(fā)Spoke側(cè)的組播數(shù)據(jù),減輕Hub的處理負載,并提高了整個DVPN網(wǎng)絡(luò)的組播數(shù)據(jù)轉(zhuǎn)發(fā)性能,以及降低了公網(wǎng)帶寬的消耗。
圖1是現(xiàn)有技術(shù)的Full-Mesh網(wǎng)絡(luò)中Site接入網(wǎng)絡(luò)的初始狀態(tài)示意 圖2是現(xiàn)有技術(shù)的Full-Mesh網(wǎng)絡(luò)中Site向Server注冊示意 圖3是現(xiàn)有技術(shù)的Full-Mesh網(wǎng)絡(luò)中Spoke之間建立direct隧道示意 圖4是現(xiàn)有技術(shù)的Full-Mesh網(wǎng)絡(luò)的示意 圖5是現(xiàn)有技術(shù)的Full-Mesh網(wǎng)絡(luò)中組播數(shù)據(jù)發(fā)送示意 圖6是現(xiàn)有技術(shù)的Full-Mesh網(wǎng)絡(luò)中Hub復制轉(zhuǎn)發(fā)組播數(shù)據(jù)示意 圖7是本發(fā)明實施例中Spoke注冊過程示意 圖8是本發(fā)明實施例提供的一種基于DVPN的組播數(shù)據(jù)傳輸方法流程 圖9是本發(fā)明實施例的具體應(yīng)用場景意 圖10是本發(fā)明實施例中存在多個組播組時Spoke間建立隧道示意 圖11是本發(fā)明實施例中一種基于DVPN的組播數(shù)據(jù)傳輸設(shè)備結(jié)構(gòu)圖;圖12是本發(fā)明實施例中另一種基于DVPN的組播數(shù)據(jù)傳輸設(shè)備結(jié)構(gòu)圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明實施例提出了一種基于DVPN的組播數(shù)據(jù)傳輸方法,該方法可以應(yīng)用在DVPN的Fu 11 -Me sh網(wǎng)絡(luò)中;且在Fu 11 -Me sh網(wǎng)絡(luò)中,可以包括服務(wù)器(Server)和多個Spoke。本發(fā)明實施例中,服務(wù)器上需要維護有注冊信息表,且該注冊信息表中記錄了各Spoke的公網(wǎng)地址以及各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系;具體的,各Spoke需要通過注冊請求報文將自身的公網(wǎng)地址以及自身相連終端加入的組播組地址發(fā)送給服務(wù)器;且服務(wù)器在接收到注冊請求報文后,在注冊信息表中記錄Spoke的公網(wǎng)地址以及Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系。其中,各Spoke可以在 注冊過程中,通過注冊請求報文將自身的公網(wǎng)地址以及自身相連終端加入的組播組地址發(fā)送給服務(wù)器;或者,各Spoke可以在有終端加入組播組時,通過注冊請求報文將自身的公網(wǎng)地址以及自身相連終端加入的組播組地址發(fā)送給服務(wù)器。如圖7所示的Spoke注冊過程示意圖,Ful1-Mesh網(wǎng)絡(luò)中包括SpokeI(公網(wǎng)地址為1.1.1. l)、Spoke2 (公網(wǎng)地址為 2.1.1. l)、Spoke3 (公網(wǎng)地址為 3.1.1. l)、Spoke4 (公網(wǎng)地址為4.1.1.1)和Spoke5(公網(wǎng)地址為5.1.1. D5Spokel相連終端為PCLPCl加入的組播組地址為224. 0. 0. 30 ;Spoke2相連終端為PC2,PC2加入的組播組地址為225. 0. 0. 30 ;Spoke3相連終端為PC3,PC3加入的組播組地址為224. 0. 0. 30 ;Spoke4相連終端為PC4,PC4加入的組播組地址為224. 0. 0. 30 ;Spoke5相連終端為PC5,PC5加入的組播組地址為225. 0. 0. 30。在上述應(yīng)用場景下,Spokel在注冊過程中,通過注冊請求報文將自身的公網(wǎng)地址(1.1.1.1)以及自身相連終端加入的組播組地址(224. 0.0. 30)發(fā)送給服務(wù)器;服務(wù)器在接收到注冊請求報文后,在注冊信息表中記錄(1.1.1.1)與(224. 0. 0. 30)之間的對應(yīng)關(guān)系;同樣的,Spoke2在注冊過程中,服務(wù)器可以在注冊信息表中記錄(2.1.1.1)與(225. 0. 0. 30)之間的對應(yīng)關(guān)系;Sp0ke3在注冊過程中,服務(wù)器可以在注冊信息表中記錄(3.1.1.1)與(224. 0. 0. 30)之間的對應(yīng)關(guān)系;Sp0ke4在注冊過程中,服務(wù)器可以在注冊信息表中記錄(4.1.1.1)與(224. 0. 0. 30)之間的對應(yīng)關(guān)系;Spoke5在注冊過程中,服務(wù)器可以在注冊信息表中記錄(5.1.1.1)與(225. 0. 0. 30)之間的對應(yīng)關(guān)系。進一步的,針對單播數(shù)據(jù)的發(fā)送過程,各Spoke在注冊過程中還需要將自身的私網(wǎng)地址與公網(wǎng)地址之間的對應(yīng)關(guān)系通知給服務(wù)器;當Spokel接收到來自PCl的單播數(shù)據(jù)(假設(shè)為PCl發(fā)送給PC2的單播數(shù)據(jù))后,Spokel上可以通過該單播數(shù)據(jù)對應(yīng)的路由信息查找出到達Spoke2的私網(wǎng)地址,并向服務(wù)器發(fā)送Next hop resolve request (下一跳解析請求)報文(攜帶該私網(wǎng)地址),之后服務(wù)器利用該私網(wǎng)地址確定Spoke2的公網(wǎng)地址,并將Spoke2的公網(wǎng)地址通過Next hop resolve reply (下一跳解析響應(yīng))報文通知給Spokel,由是Spokel觸發(fā)建立到Spoke2的direct隧道,并通過direct隧道發(fā)送單播數(shù)據(jù)。 因此為了兼容單播數(shù)據(jù)的處理過程,本發(fā)明實施例中,各Spoke在注冊過程中,需要通過注冊請求報文將自身的公網(wǎng)地址、自身的私網(wǎng)地址以及自身相連終端加入的組播組地址發(fā)送給服務(wù)器;且服務(wù)器在接收到注冊請求報文后,在注冊信息表中記錄Spoke的公網(wǎng)地址、Spoke的私網(wǎng)地址以及Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系,具體過程在此不再贅述。基于服務(wù)器上維護的注冊信息表,如圖8所示,本發(fā)明實施例提出的基于DVPN的組播數(shù)據(jù)傳輸方法可以包括以下步驟
步驟801,Spoke在收到來自自身相連終端的組播數(shù)據(jù)時,獲得該組播數(shù)據(jù)對應(yīng)的組播組地址(即組播數(shù)據(jù)的目的地址)。例如,Spokel相連終端為PC1,且PCl為組播源時,PCl發(fā)送的組播數(shù)據(jù)需要經(jīng)由Spokel轉(zhuǎn)發(fā),即Spokel會收到來自PCl的組播數(shù)據(jù),并且需要獲得該組播數(shù)據(jù)對應(yīng)的組播組地址(即組播目的地址)。步驟802,Spoke向服務(wù)器發(fā)送請求報文,且該請求報文中攜帶了該組播組地址,且該請求報文用于申請該組播組地址對應(yīng)的公網(wǎng)地址。 步驟803,服務(wù)器在收到請求報文后,利用請求報文中攜帶的組播組地址查詢注冊信息表,獲得與組播組地址相對應(yīng)的公網(wǎng)地址。步驟804,服務(wù)器向Spoke發(fā)送響應(yīng)報文,且該響應(yīng)報文中攜帶了查詢到的公網(wǎng)地址。步驟805,Spoke在收到來自服務(wù)器的響應(yīng)報文之后,判斷當前自身是否與公網(wǎng)地址(即響應(yīng)報文中攜帶的公網(wǎng)地址)對應(yīng)的Spoke建立有direct隧道;如果是,執(zhí)行步驟806 ;否則,執(zhí)行步驟807。步驟806,Spoke利用自身與公網(wǎng)地址(即響應(yīng)報文中攜帶的公網(wǎng)地址)對應(yīng)的Spoke之間已經(jīng)建立的direct隧道發(fā)送組播數(shù)據(jù)。步驟807,Spoke利用公網(wǎng)地址(即響應(yīng)報文中攜帶的公網(wǎng)地址)與公網(wǎng)地址對應(yīng)的Spoke建立direct隧道,并利用該direct隧道發(fā)送組播數(shù)據(jù)。本發(fā)明實施例中,由于響應(yīng)報文中攜帶的公網(wǎng)地址可以為多個,因此Spoke在接收到響應(yīng)報文后,需要分別與多個公網(wǎng)地址所對應(yīng)的Spoke建立多個direct隧道,并需要復制組播數(shù)據(jù),以及通過多個direct隧道分別發(fā)送多個組播數(shù)據(jù)到各公網(wǎng)地址所對應(yīng)的Spoke。以下結(jié)合圖9所示的應(yīng)用場景對上述過程進行進一步的說明。在步驟801中,Spokel、Spoke3、Spoke4各自下掛的子網(wǎng)中分別有PC1、PC3、PC4加入組播組MG1,PC1為組播源,發(fā)送組播數(shù)據(jù)經(jīng)由Spokel轉(zhuǎn)發(fā),Spokel在收到PCl的組播數(shù)據(jù)后,獲得該組播數(shù)據(jù)對應(yīng)的組播組地址(即組播目的地址),該組播組地址為224. O. O. 30。在步驟802中,Spokel向服務(wù)器發(fā)送請求報文,且該請求報文中攜帶了組播組地址(即 224. O. O. 30)。在步驟803中,服務(wù)器在收到請求報文后,利用224. O. O. 30查詢注冊信息表,獲得與 224. O. O. 30 對應(yīng)的公網(wǎng)地址為1.1.1. 1,3.1.1. 1,4.1. 4.1。在步驟804中,服務(wù)器向Spokel發(fā)送響應(yīng)報文,且該響應(yīng)報文中攜帶了公網(wǎng)地址(3.1.1. 1,4. 1.4.1);或者,攜帶了公網(wǎng)地址(1.1.1. 1,3.1.1. 1,4. 1.4.1)。在步驟805中,Spokel在收到響應(yīng)報文后,判斷當前自身是否與3.1.1.1對應(yīng)的Spoke3建立有direct隧道;如果是,則利用已經(jīng)建立的direct隧道(即Spokel與Spoke3之間的direct隧道)發(fā)送組播數(shù)據(jù);如果否,則利用自身的公網(wǎng)地址(1.1.1.1)以及3·1.1.1與Spoke3建立direct隧道,并利用該direct隧道(即Spokel與Spoke3之間的direct隧道)發(fā)送組播數(shù)據(jù);此外,Spokel還需要判斷當前自身是否與4.1.1.1對應(yīng)的Spoke4建立有direct隧道;如果是,則利用已經(jīng)建立的direct隧道(即Spokel與Spoke4之間的direct隧道)發(fā)送組播數(shù)據(jù);如果否,則利用自身的公網(wǎng)地址(1.1.1.1)以及4.1.1.1與Spoke4建立direct隧道,并利用該direct隧道(即Spokel與Spoke4之間的direct隧道)發(fā)送組播數(shù)據(jù);此后,Spokel可以將組播數(shù)據(jù)復制,并通過direct隧道分別轉(zhuǎn)發(fā)給Spoke3和Spoke4。本發(fā)明實施例中,當Spoke相連終端離開組播組后,Spoke需要通過注銷請求報文將自身的公網(wǎng)地址以及自身相連終端離開的組播組地址發(fā)送給服務(wù)器;服務(wù)器在收到注銷請求報文后,需要在注冊信息表中刪除該Spoke的公網(wǎng)地址以及Spoke相連終端離開的組播組地址之間的對應(yīng)關(guān)系。進一步的,當Spoke相連終端離開組播組后,該Spoke還需要將自身相連終端離開 的組播組地址發(fā)送給當前向Spoke相連終端發(fā)送組播數(shù)據(jù)的其它Spoke,以指示其它Spoke停止向Spoke相連終端發(fā)送組播數(shù)據(jù);或者,服務(wù)器在獲知Spoke相連終端離開的組播組地址后,將Spoke相連終端離開的組播組地址發(fā)送給當前向Spoke相連終端發(fā)送組播數(shù)據(jù)的其它Spoke,以指示其它Spoke停止向Spoke相連終端發(fā)送組播數(shù)據(jù)。本發(fā)明實施例中,如圖10所示,為存在多個組播組時Spoke之間建立direct隧道示意圖,當有多個Spoke相連終端加入不同的組播組時,針對每個組播組按照上述方式處理后,同樣可以實現(xiàn)Spoke之間組播數(shù)據(jù)的傳輸?;谂c上述方法同樣的發(fā)明構(gòu)思,本發(fā)明實施例還提出了一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸設(shè)備,作為Spoke應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,所述服務(wù)器上維護有注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系,如圖11所示,該設(shè)備包括
獲得模塊11,用于在收到來自本設(shè)備相連終端的組播數(shù)據(jù)時,獲得所述組播數(shù)據(jù)對應(yīng)的組播組地址;
發(fā)送模塊12,用于向所述服務(wù)器發(fā)送請求報文,且所述請求報文中攜帶了所述組播組地址;
接收模塊13,用于接收來自所述服務(wù)器的響應(yīng)報文,所述響應(yīng)報文中攜帶了所述服務(wù)器查詢所述注冊信息表獲得的對應(yīng)所述組播組地址的公網(wǎng)地址;
判斷模塊14,用于判斷當前本設(shè)備是否與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧
道;
處理模塊15,用于當判斷結(jié)果為是時,利用建立的direct隧道發(fā)送所述組播數(shù)據(jù);當判斷結(jié)果為否時,利用所述公網(wǎng)地址與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道,并利用所述direct隧道發(fā)送所述組播數(shù)據(jù)。所述發(fā)送模塊12,還用于通過注冊請求報文將本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端加入的組播組地址發(fā)送給所述服務(wù)器;
由所述服務(wù)器在所述注冊信息表中記錄本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端加入的組播組地址之間的對應(yīng)關(guān)系。所述發(fā)送模塊12,還用于當本設(shè)備相連終端離開組播組后,通過注銷請求報文將本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端離開的組播組地址發(fā)送給所述服務(wù)器;由所述服務(wù)器在所述注冊信息表中刪除本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端離開的組播組地址之間的對應(yīng)關(guān)系;以及,
當本設(shè)備相連終端離開組播組后,將本設(shè)備相連終端離開的組播組地址發(fā)送給當前向本設(shè)備相連終端發(fā)送組播數(shù)據(jù)的其它Spoke,以指示所述其它Spoke停止向本設(shè)備相連終端發(fā)送組播數(shù)據(jù)。其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊?;谂c上述方法同樣的發(fā)明構(gòu)思,本發(fā)明還提出了一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸設(shè)備,作為服務(wù)器應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,如圖12所示,該設(shè)備包括
維護模塊21,用于維護注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址 以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系;
接收模塊22,用于接收來自Spoke的請求報文,且所述請求報文中攜帶了所述Spoke需要發(fā)送的組播數(shù)據(jù)的組播組地址;
獲得模塊23,用于利用所述組播組地址查詢所述注冊信息表,獲得與所述組播組地址相對應(yīng)的公網(wǎng)地址;
發(fā)送模塊24,用于向所述Spoke發(fā)送響應(yīng)報文,且所述響應(yīng)報文中攜帶了所述公網(wǎng)地址;使所述Spoke利用所述公網(wǎng)地址發(fā)送所述組播數(shù)據(jù)。所述接收模塊22,還用于在接收來自所述Spoke的注冊請求報文,且所述注冊請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址;
所述維護模塊21,進一步用于在所述注冊信息表中記錄所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系。所述接收模塊22,還用于當Spoke相連終端離開組播組后,接收來自所述Spoke的注銷請求報文,且所述注銷請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址;
所述維護模塊21,進一步用于在所述注冊信息表中刪除所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址之間的對應(yīng)關(guān)系。其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是⑶-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。 上述本發(fā)明序號僅僅為了描述,不代表實施例的優(yōu)劣。 以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸方法,應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,其特征在于,所述服務(wù)器上維護有注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系,該方法包括以下步驟 Spoke在收到來自自身相連終端的組播數(shù)據(jù)時,獲得所述組播數(shù)據(jù)對應(yīng)的組播組地址,并向所述服務(wù)器發(fā)送請求報文,所述請求報文中攜帶了所述組播組地址; 所述Spoke接收來自所述服務(wù)器的響應(yīng)報文,所述響應(yīng)報文中攜帶了所述服務(wù)器查詢所述注冊信息表獲得的對應(yīng)于所述組播組地址的公網(wǎng)地址; 所述Spoke判斷當前自身是否與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道,如果是,則利用建立的direct隧道發(fā)送所述組播數(shù)據(jù); 如果否,貝1J所述Spoke利用所述公網(wǎng)地址與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道,并利用所述direct隧道發(fā)送所述組播數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法進一步包括 所述Spoke通過注冊請求報文將自身的公網(wǎng)地址以及自身相連終端加入的組播組地址發(fā)送給所述服務(wù)器; 由所述服務(wù)器在所述注冊信息表中記錄所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述方法進一步包括 當所述Spoke相連終端離開組播組后,所述Spoke通過注銷請求報文將自身的公網(wǎng)地址以及自身相連終端離開的組播組地址發(fā)送給所述服務(wù)器; 由所述服務(wù)器在所述注冊信息表中刪除所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址之間的對應(yīng)關(guān)系;以及, 當所述Spoke相連終端離開組播組后,所述Spoke將自身相連終端離開的組播組地址發(fā)送給當前向所述Spoke相連終端發(fā)送組播數(shù)據(jù)的其它Spoke,以指示所述其它Spoke停止向所述Spoke相連終端發(fā)送組播數(shù)據(jù)。
4.一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸方法,應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,其特征在于,該方法包括以下步驟 所述服務(wù)器維護注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系; 所述服務(wù)器接收來自Spoke的請求報文,且所述請求報文中攜帶了所述Spoke需要發(fā)送的組播數(shù)據(jù)的組播組地址; 所述服務(wù)器利用所述組播組地址查詢所述注冊信息表,獲得與所述組播組地址相對應(yīng)的公網(wǎng)地址; 所述服務(wù)器向所述Spoke發(fā)送響應(yīng)報文,且所述響應(yīng)報文中攜帶了所述公網(wǎng)地址;使所述Spoke利用所述公網(wǎng)地址發(fā)送所述組播數(shù)據(jù)。
5.如權(quán)利要求4所述的方法,其特征在于,所述服務(wù)器維護注冊信息表的過程,進一步包括 所述服務(wù)器接收來自所述Spoke的注冊請求報文,且所述注冊請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址,并在所述注冊信息表中記錄所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系。
6.如權(quán)利要求4或5所述的方法,其特征在于,所述方法進一步包括 當Spoke相連終端離開組播組后,所述服務(wù)器接收來自所述Spoke的注銷請求報文,且所述注銷請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址,并在所述注冊信息表中刪除所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址之間的對應(yīng)關(guān)系。
7.一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸設(shè)備,作為Spoke應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,其特征在于,所述服務(wù)器上維護有注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系,該設(shè)備包括 獲得模塊,用于在收到來自本設(shè)備相連終端的組播數(shù)據(jù)時,獲得所述組播數(shù)據(jù)對應(yīng)的組播組地址; 發(fā)送模塊,用于向所述服務(wù)器發(fā)送請求報文,且所述請求報文中攜帶了所述組播組地址; 接收模塊,用于接收來自所述服務(wù)器的響應(yīng)報文,所述響應(yīng)報文中攜帶了所述服務(wù)器查詢所述注冊信息表獲得的對應(yīng)所述組播組地址的公網(wǎng)地址; 判斷模塊,用于判斷當前本設(shè)備是否與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道; 處理模塊,用于當判斷結(jié)果為是時,利用建立的direct隧道發(fā)送所述組播數(shù)據(jù);當判斷結(jié)果為否時,利用所述公網(wǎng)地址與所述公網(wǎng)地址對應(yīng)的Spoke建立direct隧道,并利用所述direct隧道發(fā)送所述組播數(shù)據(jù)。
8.如權(quán)利要求7所述的設(shè)備,其特征在于, 所述發(fā)送模塊,還用于通過注冊請求報文將本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端加入的組播組地址發(fā)送給所述服務(wù)器; 由所述服務(wù)器在所述注冊信息表中記錄本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端加入的組播組地址之間的對應(yīng)關(guān)系。
9.如權(quán)利要求7或8所述的設(shè)備,其特征在于, 所述發(fā)送模塊,還用于當本設(shè)備相連終端離開組播組后,通過注銷請求報文將本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端離開的組播組地址發(fā)送給所述服務(wù)器;由所述服務(wù)器在所述注冊信息表中刪除本設(shè)備的公網(wǎng)地址以及本設(shè)備相連終端離開的組播組地址之間的對應(yīng)關(guān)系;以及, 當本設(shè)備相連終端離開組播組后,將本設(shè)備相連終端離開的組播組地址發(fā)送給當前向本設(shè)備相連終端發(fā)送組播數(shù)據(jù)的其它Spoke,以指示所述其它Spoke停止向本設(shè)備相連終端發(fā)送組播數(shù)據(jù)。
10.一種基于動態(tài)虛擬專用網(wǎng)絡(luò)DVPN的組播數(shù)據(jù)傳輸設(shè)備,作為服務(wù)器應(yīng)用于包括服務(wù)器和多個Spoke的網(wǎng)絡(luò)中,其特征在于,該設(shè)備包括 維護模塊,用于維護注冊信息表,且所述注冊信息表中記錄了各Spoke的公網(wǎng)地址以及所述各Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系; 接收模塊,用于接收來自Spoke的請求報文,且所述請求報文中攜帶了所述Spoke需要發(fā)送的組播數(shù)據(jù)的組播組地址;獲得模塊,用于利用所述組播組地址查詢所述注冊信息表,獲得與所述組播組地址相對應(yīng)的公網(wǎng)地址; 發(fā)送模塊,用于向所述Spoke發(fā)送響應(yīng)報文,且所述響應(yīng)報文中攜帶了所述公網(wǎng)地址;使所述Spoke利用所述公網(wǎng)地址發(fā)送所述組播數(shù)據(jù)。
11.如權(quán)利要求10所述的設(shè)備,其特征在于, 所述接收模塊,還用于接收來自所述Spoke的注冊請求報文,且所述注冊請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址; 所述維護模塊,進一步用于在所述注冊信息表中記錄所述Spoke的公網(wǎng)地址以及所述Spoke相連終端加入的組播組地址之間的對應(yīng)關(guān)系。
12.如權(quán)利要求10或11所述的設(shè)備,其特征在于, 所述接收模塊,還用于當Spoke相連終端離開組播組后,接收來自所述Spoke的注銷請求報文,且所述注銷請求報文中攜帶了所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址; 所述維護模塊,進一步用于在所述注冊信息表中刪除所述Spoke的公網(wǎng)地址以及所述Spoke相連終端離開的組播組地址之間的對應(yīng)關(guān)系。
全文摘要
本發(fā)明公開了一種基于DVPN的組播數(shù)據(jù)傳輸方法和設(shè)備,該方法包括Spoke獲得組播數(shù)據(jù)對應(yīng)的組播組地址,并向服務(wù)器發(fā)送請求報文,所述請求報文中攜帶了所述組播組地址;所述Spoke接收來自所述服務(wù)器的響應(yīng)報文,所述響應(yīng)報文中攜帶了所述組播組地址對應(yīng)的公網(wǎng)地址;所述Spoke利用所述公網(wǎng)地址建立direct隧道,并利用所述direct隧道發(fā)送所述組播數(shù)據(jù)。本發(fā)明中,減輕了Hub的處理負載,并降低了公網(wǎng)帶寬的消耗。
文檔編號H04L12/803GK103023667SQ201210507830
公開日2013年4月3日 申請日期2012年12月3日 優(yōu)先權(quán)日2012年12月3日
發(fā)明者王佩龍, 毛昱 申請人:杭州華三通信技術(shù)有限公司