專利名稱::確定組播代理節(jié)點(diǎn)的方法、組播方法、設(shè)備及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信領(lǐng)域,尤其涉及一種組播技術(shù)。
背景技術(shù):
:組播,也叫多播,是指網(wǎng)絡(luò)當(dāng)時的一個節(jié)點(diǎn)同時發(fā)送數(shù)據(jù)到多個目的節(jié)點(diǎn)。組播技術(shù)主要涉及組播路由、組成員管理和組播安全等方面。其中,組播安全方面,需要保證組播數(shù)據(jù)不會被未授權(quán)的節(jié)點(diǎn)獲得,通常是通過加解密來實(shí)現(xiàn)的。在現(xiàn)有的一些網(wǎng)絡(luò)中,例如ZigBee網(wǎng)絡(luò),組播源節(jié)點(diǎn)和組成員節(jié)點(diǎn)分別使用所有網(wǎng)絡(luò)節(jié)點(diǎn)共享的網(wǎng)絡(luò)密鑰來對組播數(shù)據(jù)進(jìn)行加密和解密,由于非組成員節(jié)點(diǎn)也知道網(wǎng)絡(luò)密鑰,因此不能防范非組成員獲取組播數(shù)據(jù)。在另一些網(wǎng)絡(luò)中,組播源節(jié)點(diǎn)和組成員節(jié)點(diǎn)使用組密鑰來對組播數(shù)據(jù)進(jìn)行加密和解密。所有組成員節(jié)點(diǎn)都知道或可以獲得組密鑰,而非組成員節(jié)點(diǎn)不掌握組密鑰,因此可以防止非組成員節(jié)點(diǎn)獲得組播數(shù)據(jù)。但是,組播源節(jié)點(diǎn)可能是組成員節(jié)點(diǎn),也可能是非組成員節(jié)點(diǎn),當(dāng)組播源節(jié)點(diǎn)是非組成員節(jié)點(diǎn)時,由于非組成員節(jié)點(diǎn)不掌握組密鑰,因此不能直接使用組密鑰來加密。一種解決方法是使用非對稱密鑰算法,即加密密鑰和解密密鑰不相同,這樣即使作為組播源節(jié)點(diǎn)的非組成員節(jié)點(diǎn)知道加密密鑰,也不能用它來解密以后的其他組播源節(jié)點(diǎn)發(fā)送的組播數(shù)據(jù)。但是,采用該種非對稱算法,運(yùn)算量大,速度慢,性能差。第二種解決方法是,非組成員發(fā)送完組播數(shù)據(jù)后,組成員節(jié)點(diǎn)更新組密鑰。此種方法的缺陷在于,頻繁更新組密鑰,大大增加了組成員節(jié)點(diǎn)的工作量。第三種解決方法是,每次發(fā)送組播數(shù)據(jù)前,組播源節(jié)點(diǎn)與各組成員節(jié)點(diǎn)之間進(jìn)行密鑰協(xié)商,然后采用該協(xié)商后的特定密鑰(與組密鑰不同)來加密組播數(shù)據(jù)包,各組成員用該特定密鑰來解密組播數(shù)據(jù)包。此種方法的缺陷在于,源節(jié)點(diǎn)需要與所有組成員節(jié)點(diǎn)協(xié)商,協(xié)商的過程復(fù)雜,信令開銷大。還有一種解決方法是,每個組中設(shè)置一個組播管理器,它是其中一個組成員節(jié)點(diǎn),對安全作集中式管理。非組成員發(fā)起的所有組播數(shù)據(jù)都先發(fā)送到組播管理器,組播管理器再使用組密鑰來加密數(shù)據(jù)包,然后發(fā)送到各組成員節(jié)點(diǎn)。此種方法的缺陷在于,所有組播數(shù)據(jù)都必須先發(fā)送到組播管理器,路由不一定是最優(yōu)的,并且,對于不同的組播源節(jié)點(diǎn),組播管理器相同,組播管理器負(fù)擔(dān)較重。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供了一種確定組播代理節(jié)點(diǎn)的方法,使組播源節(jié)點(diǎn)可以按照最優(yōu)路由進(jìn)行組播。依據(jù)本發(fā)明實(shí)施例的確定組播代理節(jié)點(diǎn)的方法包括組播源節(jié)點(diǎn)發(fā)送組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求;收到所述發(fā)現(xiàn)請求的各組成員節(jié)點(diǎn)或存儲有組成員節(jié)點(diǎn)路由信息的中間節(jié)點(diǎn)返回路由代價給所述組播源節(jié)點(diǎn),所述路由代價為所述組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)的路由代價;所述組播源節(jié)點(diǎn)根據(jù)返回的路由代價,選擇路由代價最'J、的路徑所對應(yīng)的組成員節(jié)點(diǎn)作為組播代理節(jié)點(diǎn)。本發(fā)明實(shí)施例還提供了一種組播方法、節(jié)點(diǎn)設(shè)備及組播系統(tǒng),可以在滿足組播安全要求的前提下,實(shí)現(xiàn)組播路由的最優(yōu)。依據(jù)本發(fā)明實(shí)施例的組播方法,包括組播源節(jié)點(diǎn)使用與組播代理節(jié)點(diǎn)共享的密鑰對組播數(shù)據(jù)進(jìn)行加密,然后按照預(yù)設(shè)路由發(fā)送;所述組播代理節(jié)點(diǎn)為組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)之間路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn),所述預(yù)設(shè)路由為該路由代價最小的路徑,所述組播數(shù)據(jù)中攜帶目的組標(biāo)識,所述共享的密鑰為所述目的組標(biāo)識對應(yīng)的組密鑰之外的其他密鑰;所述組播代理節(jié)點(diǎn)接收到所述組播數(shù)據(jù)后,使用所述共享的密鑰把所述組播數(shù)據(jù)解密后傳到高層進(jìn)行處理,并把所述解密后的組播數(shù)據(jù)使用組密鑰加密后向其他組成員節(jié)點(diǎn)傳輸。依據(jù)本發(fā)明實(shí)施例的節(jié)點(diǎn)設(shè)備包括存儲單元,用于所述節(jié)點(diǎn)設(shè)備作為組播源節(jié)點(diǎn)時,存儲目的組標(biāo)識以及對應(yīng)的預(yù)設(shè)路由,以及預(yù)先確定的對應(yīng)組播代理節(jié)點(diǎn)的標(biāo)識和/或?qū)?yīng)的組播代理節(jié)點(diǎn)與該節(jié)點(diǎn)設(shè)備之間的共享密鑰,所述組播代理節(jié)點(diǎn)為所述節(jié)點(diǎn)設(shè)備到各組成員節(jié)點(diǎn)之間路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn),所述預(yù)設(shè)路由為該路由代價最小的路徑,所述共享密鑰為目的組所對應(yīng)的組密鑰之外的其他密鑰;加密單元,用于使用所述共享密鑰對組播數(shù)據(jù)進(jìn)行加密;發(fā)送單元,用于按照所述預(yù)設(shè)路由發(fā)送加密后的組播數(shù)據(jù)。依據(jù)本發(fā)明又一實(shí)施例的節(jié)點(diǎn)設(shè)備包括接收單元,用于接收來自組播源節(jié)點(diǎn)的組播數(shù)據(jù);判斷單元,用于判斷自己是否為所接收的組播數(shù)據(jù)對應(yīng)的組播代理節(jié)點(diǎn),所述組播代理節(jié)點(diǎn)為所述組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)之間路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn);解密單元,用于在判斷單元判斷出所述節(jié)點(diǎn)設(shè)備是對應(yīng)的組播代理節(jié)點(diǎn)時,使用與所述組播源節(jié)點(diǎn)共享的密鑰對所述組播數(shù)據(jù)進(jìn)行解密,所述共享的密鑰為組密鑰之外的其他密鑰;加密單元,用于使用所述組密鑰對所述解密后的組播數(shù)據(jù)進(jìn)行加密;發(fā)送單元,用于發(fā)送使用所述組密鑰加密后的組播數(shù)據(jù)。依據(jù)本發(fā)明實(shí)施例的組播系統(tǒng)包括組播源節(jié)點(diǎn),用于使用與組播代理節(jié)點(diǎn)共享的密鑰對組播數(shù)據(jù)進(jìn)行加密,然后按照預(yù)設(shè)路由發(fā)送;所述組播代理節(jié)點(diǎn)為組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)之間路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn),所述預(yù)設(shè)路由為該路由代價最小的路徑,所述共享的密鑰為組密鑰之外的其他密鑰;組播代理節(jié)點(diǎn),用于在接收到所述組播數(shù)據(jù)后,使用所述共享的密鑰把所述組播數(shù)據(jù)解密后傳到高層進(jìn)行處理,并把所述解密后的組播數(shù)據(jù)使用組密鑰加密后向其他組成員節(jié)點(diǎn)傳輸。依據(jù)本發(fā)明實(shí)施例,組播源節(jié)點(diǎn)從組成員節(jié)點(diǎn)或中間節(jié)點(diǎn)中選擇路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn)作為組播代理節(jié)點(diǎn),從而可以使組播源節(jié)點(diǎn)按照最優(yōu)路由進(jìn)行組播。另外,組播源節(jié)點(diǎn)使用與組密鑰之外的其他密鑰對組播數(shù)據(jù)進(jìn)行加密,可以滿足組播安全性的要求。此外,對于不同的組播源節(jié)點(diǎn),組播代理節(jié)點(diǎn)可以不同,從而分散了組播代理節(jié)點(diǎn)的負(fù)擔(dān),避免了同一節(jié)點(diǎn)作為不同組播源節(jié)點(diǎn)的組播代理節(jié)點(diǎn)時負(fù)擔(dān)過重的問題。下面將參照附圖對本發(fā)明進(jìn)行更為詳細(xì)的描述,附圖中圖1是本發(fā)明實(shí)施例所應(yīng)用的一種場景下的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖2是依據(jù)本發(fā)明第三實(shí)施例的組播系統(tǒng)示意圖。具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。本發(fā)明實(shí)施例一描述了一種確定組播代理節(jié)點(diǎn)的方法。該方法包括以下步驟101、組播源節(jié)點(diǎn)發(fā)送組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求,在發(fā)現(xiàn)請求中攜帶目的組標(biāo)識。該組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求可以通過廣播的形式發(fā)送。102、各組成員節(jié)點(diǎn)收到發(fā)現(xiàn)請求后,確定自己到組播源節(jié)點(diǎn)的路由代價,然后返回給組播源節(jié)點(diǎn)。在發(fā)現(xiàn)請求到達(dá)各組成員節(jié)點(diǎn)之前,通常會經(jīng)過中間節(jié)點(diǎn),中間節(jié)點(diǎn)可能是組成員節(jié)點(diǎn),也可能是非組成員節(jié)點(diǎn)。一個節(jié)點(diǎn)收到發(fā)現(xiàn)請求后,可以根據(jù)發(fā)現(xiàn)請求中攜帶的目的組標(biāo)識來判斷自己是否為組成員節(jié)點(diǎn),如果是組成員節(jié)點(diǎn),則向組播源節(jié)點(diǎn)返回路由代價信息,如果不是組成員節(jié)點(diǎn)(即是非組成員節(jié)點(diǎn)),則累加從上一跳到自己的路由代價,然后向其鄰節(jié)點(diǎn)轉(zhuǎn)發(fā)組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求,直到到達(dá)組成員節(jié)點(diǎn)。各組成員節(jié)點(diǎn)可以向組播源節(jié)點(diǎn)返回所有路由代價,這里的"所有路由代價"理論上是指,根據(jù)網(wǎng)絡(luò)結(jié)構(gòu),組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)的所有客觀存在的路徑所對應(yīng)的路由代價,但實(shí)際上,組播源節(jié)點(diǎn)通常會預(yù)設(shè)一段時間,在該預(yù)設(shè)時間結(jié)束后,不再接收返回的路由代價。因此,"所有路由代價"通常是指預(yù)設(shè)時間內(nèi)的各路徑的路由代價。各組成員節(jié)點(diǎn)也可以先對各路徑的路由代價做比較,只返回最小的路由代價;也可以在第一次接收到發(fā)現(xiàn)請求后,向組播源節(jié)點(diǎn)返回第一次發(fā)現(xiàn)請求傳輸路徑的路由代價,第二次接收到發(fā)現(xiàn)請求時,先判斷第二次發(fā)現(xiàn)請求傳輸路徑對應(yīng)的路由代價是否比第一次發(fā)現(xiàn)請求傳輸路徑對應(yīng)的路由代價小,如果是,則返回該較小的路由代價,如果不是,則不返回,并記錄該較小的路由代價。以后各次接收到發(fā)現(xiàn)請求時,均與此前較小的路由代價比較,如果更小,則返回該更小的路由代價,否則不返回。采用先比較再返回較小者或最小者的方式,相對于返回所有路由代價而言,可以減少返回次數(shù),從而減少返回途中各節(jié)點(diǎn)信令交互,有利于減少網(wǎng)絡(luò)負(fù)荷。此外,如果某中間節(jié)點(diǎn)存儲有自己到各組成員節(jié)點(diǎn)的路由信息,則該中間節(jié)點(diǎn)接收到發(fā)現(xiàn)請求后,可以直接向組播源節(jié)點(diǎn)返回路由代價。這里的路由代價,可以是組播源節(jié)點(diǎn)到該中間節(jié)點(diǎn)的各路由代價與該中間節(jié)點(diǎn)到各組成員節(jié)點(diǎn)的各路由代價之和,優(yōu)先的,是組播源節(jié)點(diǎn)到該中間節(jié)點(diǎn)的最小路由代價與該中間節(jié)點(diǎn)到各組成員節(jié)點(diǎn)的最小路由代價之和,因?yàn)榭梢詼p少返回的次數(shù)。103、組播源節(jié)點(diǎn)根據(jù)各組成員節(jié)點(diǎn)返回的路由代價信息,選擇路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn)作為所述目的組的組播代理節(jié)點(diǎn)。下面介紹實(shí)施例一的方法在圖1所示的網(wǎng)絡(luò)中的具體應(yīng)用實(shí)施例1。如圖1所示,節(jié)點(diǎn)A、B、C、D、E都屬于組播組G的組成員,組G中所有成員共享一個組密鑰Kg,非組成員節(jié)點(diǎn)不能獲取此組密鑰。節(jié)點(diǎn)S為非組成員,需要發(fā)送組播數(shù)據(jù)到組G的各個組成員節(jié)點(diǎn)。也就是說,在該次組播過程中,節(jié)點(diǎn)S為組^"源節(jié)點(diǎn)。在該網(wǎng)絡(luò)中,確定組4番代理節(jié)點(diǎn)的方法如下201、組播源節(jié)點(diǎn)S向其鄰節(jié)點(diǎn)K和I廣播組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求,在該組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求中攜帶目的組G的標(biāo)識和路由代價。這里設(shè)路由代價初始值為0。9202、節(jié)點(diǎn)K收到組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求后,根據(jù)目的組G的標(biāo)識,判斷出自己不屬于組G,因此,累加從S到K的路由代價1,然后重新廣播組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求,該請求中攜帶的路由代價為累加后的路由代價,即1。節(jié)點(diǎn)A收到節(jié)點(diǎn)K重新廣播的組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求后,根據(jù)目的組G的標(biāo)識判斷出自己屬于組G的組成員,因此,累加從K到A的路由代價1.2,得到累加后的路由代價2.2,并將該累加后的路由代價返回給組播源節(jié)點(diǎn)S。同樣,組成員節(jié)點(diǎn)A還會收到其他非組成員節(jié)點(diǎn)(例如節(jié)點(diǎn)l)轉(zhuǎn)發(fā)的組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求,并累加路由代價,將累加后的路由代價返回給組播源節(jié)點(diǎn)S。需要說明的是,組成員節(jié)點(diǎn)A也可以先分別累加各非組成員轉(zhuǎn)發(fā)的組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求中的路由代價,即組播源節(jié)點(diǎn)S到A的不同路徑的路由代價,然后從中選擇一個最'J、的路由代價,并將該最低的路由代價返回給組播源節(jié)點(diǎn)S。其他組成員節(jié)點(diǎn)B、C、D、E也會收到非組成員節(jié)點(diǎn)轉(zhuǎn)發(fā)的組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求,并累加路由代價后返回給組播源節(jié)點(diǎn)。返回方式也可以有兩種,即分別返回不同路徑的路由代價,或者先從不同路徑的路由代價中選擇最小的一個然后返回該最小路由代價。203、組播源節(jié)點(diǎn)S根據(jù)各組成員節(jié)點(diǎn)返回的路由代價,選擇路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn),作為目的組G的組播代理節(jié)點(diǎn)。例如,在一個組成員節(jié)點(diǎn)返回多條路徑的路由代價的情況下,如果組播源節(jié)點(diǎn)選擇出的最小路由代價是這多條路徑的路由代價之一,則將該組成員節(jié)點(diǎn)作為組播代理節(jié)點(diǎn)。在這種情況下,組播源節(jié)點(diǎn)也可以先選擇同一組成員節(jié)點(diǎn)返回的多個路由代價中的最小值,然后將各個組成員節(jié)點(diǎn)返回路由代價的最小值進(jìn)行比較,最后得出的最小值所對應(yīng)的組成員節(jié)點(diǎn)就是組播代理節(jié)點(diǎn)。在每個組成員節(jié)點(diǎn)只返回一個路由代價的情況下,組播源節(jié)點(diǎn)直接選擇路由代價最,J、的路徑所對應(yīng)的組成員節(jié)點(diǎn)作為組播代理節(jié)點(diǎn)。在本應(yīng)用實(shí)施例中,組播源節(jié)點(diǎn)判斷出A節(jié)點(diǎn)對應(yīng)的路由代價最小,因此將節(jié)點(diǎn)A作為其組播代理節(jié)點(diǎn)。需要說明的是,組成員節(jié)點(diǎn)A只是對組G和源節(jié)點(diǎn)S來說是組播代理節(jié)點(diǎn),對于不同的組播源節(jié)點(diǎn),或者不同的組,組播代理節(jié)點(diǎn)可能不同。下面接著介紹實(shí)施例一的方法在圖1所示的網(wǎng)絡(luò)中的具體應(yīng)用實(shí)施例2。在該實(shí)施例中,從組播源節(jié)點(diǎn)S到組G的各組成員節(jié)點(diǎn)的中間節(jié)點(diǎn)存儲了相關(guān)路由信息,該中間節(jié)點(diǎn)可以是組成員節(jié)點(diǎn),也可以是非組成員節(jié)點(diǎn)。例如,中間節(jié)點(diǎn)K存儲了K到組成員節(jié)點(diǎn)A、B、C、D、E的路由信息。該存儲的路由信息可以是K到單個組成員節(jié)點(diǎn)的最小路由代價信息,也可以是將各個組成員節(jié)點(diǎn)所對應(yīng)的最小路由代價進(jìn)行比較之后得出的最小路由代價信息。在該實(shí)施例中,當(dāng)節(jié)點(diǎn)K收到組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求并得知出目的組是組G后,直接根據(jù)自己存儲的到組G的路由信息向組播源節(jié)點(diǎn)A返回路由代價信息,即,把自己存儲的到各組成員節(jié)點(diǎn)的路由代價累加上K到S的路由代價,然后向節(jié)點(diǎn)A返回該累加后的路由代價。本發(fā)明實(shí)施例二描述了一種組播方法。該組播方法包括如下步驟301、組播源節(jié)點(diǎn)使用與組播代理節(jié)點(diǎn)共享的密鑰對組播數(shù)據(jù)進(jìn)行加密,然后按照預(yù)設(shè)路由發(fā)送。組播代理節(jié)點(diǎn)是組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)之間的路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn),它是預(yù)先確定并存儲在組播源節(jié)點(diǎn)中的,確定的方法可以是前述實(shí)施例一的確定組播代理節(jié)點(diǎn)的方法,也可以采用其他方法。預(yù)設(shè)的路由是組播源節(jié)點(diǎn)與組播代理節(jié)點(diǎn)之間路由代價最'J、的路徑,也是預(yù)先確定并存儲在組播源節(jié)點(diǎn)中的,可以采用前述實(shí)施例一的方法來確定,也可以采用其他方法來確定。共享的密鑰可以是該組播數(shù)據(jù)對應(yīng)的組密鑰以外的其他密鑰,可以是點(diǎn)對點(diǎn)密鑰、也可以是多點(diǎn)對點(diǎn)的密鑰,還可以點(diǎn)對多點(diǎn)的密鑰。多點(diǎn)對點(diǎn)的密鑰可以由組播代理節(jié)點(diǎn)與其對應(yīng)的多個組播源節(jié)點(diǎn)之間通過協(xié)商、分發(fā)等方式來確定。302、組播代理節(jié)點(diǎn)接收到組播數(shù)據(jù)后,使用共享的密鑰把組播數(shù)據(jù)解密后傳到高層進(jìn)行處理,并把解密后的組播數(shù)據(jù)使用組密鑰加密后向其他組成員節(jié)點(diǎn)傳輸。組播代理節(jié)點(diǎn)在對組播數(shù)據(jù)進(jìn)行解密之前,可以先判斷自己是否為所接收到的組播數(shù)據(jù)所對應(yīng)的組播代理節(jié)點(diǎn)。判斷的方法有多種,其中一種方法是,組播源節(jié)點(diǎn)發(fā)送組播數(shù)據(jù)時,攜帶組播代理節(jié)點(diǎn)標(biāo)識,組播代理節(jié)點(diǎn)接收到組播數(shù)據(jù)后,根據(jù)該標(biāo)識來進(jìn)行判斷;第二種方法是,組播源節(jié)點(diǎn)發(fā)送組播數(shù)據(jù)時,攜帶目的組標(biāo)識和Flag標(biāo)志,當(dāng)組播代理節(jié)點(diǎn)接收到組播數(shù)據(jù)后,如果發(fā)現(xiàn)目的組為自己所在的組,且Flag標(biāo)志表明所述組播數(shù)據(jù)未經(jīng)組成員轉(zhuǎn)發(fā)時,則判斷得出自己就是所接收的組播數(shù)據(jù)所對應(yīng)的組播代理節(jié)點(diǎn);第三種方法是,組播源節(jié)點(diǎn)發(fā)送組播數(shù)據(jù)時,攜帶目的組標(biāo)識和組播源節(jié)點(diǎn)標(biāo)識,并且在組播代理節(jié)點(diǎn)中存儲自己作為組播代理節(jié)點(diǎn)時所對應(yīng)的組標(biāo)識和組播源節(jié)點(diǎn)標(biāo)識(組播代理節(jié)點(diǎn)可以事先從各組播源節(jié)點(diǎn)處獲得這些信息并存儲),當(dāng)所接收的組播數(shù)據(jù)中攜帶的目的組標(biāo)識和組播源節(jié)點(diǎn)標(biāo)識與自己所存儲的標(biāo)識一致時,判斷出自己就是所對應(yīng)的組播代理節(jié)點(diǎn)。這三種方法中,優(yōu)選前兩種方法,簡單方便,且消耗的信令小。下面結(jié)合圖1所示的網(wǎng)絡(luò),詳細(xì)描述實(shí)施例二中的組播方法的應(yīng)用實(shí)施例。在應(yīng)用實(shí)施例1中,組#"方法如下401、組播源節(jié)點(diǎn)S使用和組播代理節(jié)點(diǎn)A共享的點(diǎn)對點(diǎn)密鑰Ks對組播數(shù)據(jù)包進(jìn)行加密(即將幀中的凈荷部分用Ks加密)后沿預(yù)設(shè)路由發(fā)送出去。數(shù)據(jù)包中帶有目的組G的標(biāo)識(本實(shí)施例中為目的組地址)和一個Flag標(biāo)志,F(xiàn)lag的初始值為O,表示該數(shù)據(jù)包未經(jīng)組成員節(jié)點(diǎn)轉(zhuǎn)發(fā)。如果組播數(shù)據(jù)包經(jīng)過了組播成員的轉(zhuǎn)發(fā),則Flag變?yōu)?。表一示出了組播數(shù)據(jù)包的一種可能的幀格式,包含F(xiàn)lag標(biāo)志,源節(jié)點(diǎn)地址和目的組標(biāo)識。表一組播數(shù)據(jù)包的一種可能的幀格式<table>tableseeoriginaldocumentpage12</column></row><table>本實(shí)施例中,組播源節(jié)點(diǎn)中存儲有包含各個組播組及對應(yīng)的路由、對應(yīng)的組播代理節(jié)點(diǎn)與該組播源節(jié)點(diǎn)的共享密鑰。如表二所示,該路由表中,組播組G的標(biāo)識用其地址來表示,即為0xl234。同時,路由表中還存儲有S到A的最小路由。組播源節(jié)點(diǎn)發(fā)送組播數(shù)據(jù)包前,根據(jù)目的組地址查找自身存儲的路由表,可以得到對應(yīng)的路由及共享密鑰。本實(shí)施例中,組播源節(jié)點(diǎn)也可以存儲各共享密鑰對應(yīng)的組播代理節(jié)點(diǎn)標(biāo)識。表二路由表1<table>tableseeoriginaldocumentpage13</column></row><table>402、組播數(shù)據(jù)包按照預(yù)設(shè)的路由到達(dá)節(jié)點(diǎn)K,節(jié)點(diǎn)K判斷出數(shù)據(jù)包的目的組標(biāo)識不是自己所在的組,因此按照預(yù)設(shè)的路由進(jìn)行轉(zhuǎn)發(fā)。由于K不知道密鑰Ks,因此無法截獲數(shù)據(jù)包的內(nèi)容。403、組播數(shù)據(jù)包按照預(yù)設(shè)的路由到達(dá)節(jié)點(diǎn)A,根據(jù)目的組標(biāo)識判斷出目的組就是自己所在的組,再檢查Flag的值為O,因此判斷出自己就是組播代理節(jié)點(diǎn)。同時,節(jié)點(diǎn)A根據(jù)源節(jié)點(diǎn)地址得知源節(jié)點(diǎn)為S,因此,使用與S共享的密鑰Ks對數(shù)據(jù)包進(jìn)行解密,然后傳到高層進(jìn)行處理。并且,節(jié)點(diǎn)A把Flag標(biāo)識的值更改為1,使用組密鑰Kg重新加密組播數(shù)據(jù)包,然后在組內(nèi)節(jié)點(diǎn)之間進(jìn)行組播數(shù)據(jù)包的傳輸,可以用組播的方式,也可以用廣播或單播的方式。404、后面的組播節(jié)點(diǎn)B、C、D、E接收到組播數(shù)據(jù)包后,根據(jù)目的組標(biāo)識判斷出目的組就是自己所在的組,并且檢查到Flag二1,因此,直接使用組密鑰Kg把數(shù)據(jù)包解密后傳到高層進(jìn)行處理,并向其他組內(nèi)成員進(jìn)行數(shù)據(jù)包的傳輸??梢岳斫獾氖牵緦?shí)施例中,按照預(yù)設(shè)的路由進(jìn)行數(shù)據(jù)包的發(fā)送的過程,可以采取多種路由算法來實(shí)現(xiàn),例如,可以用AODV算法,在路由表中只記錄下一跳的地址,也可以采用DSR算法,在路由表中記錄全路徑的地址,在所發(fā)送的組播數(shù)據(jù)包中給出剩余全路由節(jié)點(diǎn)地址。在應(yīng)用實(shí)施例2中,與應(yīng)用實(shí)施例1的區(qū)別在于,組播源節(jié)點(diǎn)中存儲有代理節(jié)點(diǎn)標(biāo)識,這里用代理節(jié)點(diǎn)地址表示。如表三所示,組播源節(jié)點(diǎn)中存儲有目的組標(biāo)識(這里用目的組地址表示)及對應(yīng)的路由、代理節(jié)點(diǎn)地址。組播源節(jié)點(diǎn)中還存儲有各組播代理節(jié)點(diǎn)與該組播源節(jié)點(diǎn)的共享密鑰。組播源節(jié)點(diǎn)發(fā)送組播數(shù)據(jù)包時,攜帶目的組標(biāo)識和組播代理節(jié)點(diǎn)的標(biāo)識。組播代理節(jié)點(diǎn)的標(biāo)識是預(yù)先確定并存儲在組播源節(jié)點(diǎn)中的,確定組播代理節(jié)點(diǎn)的方法可以采用前述實(shí)施例一的確定組播代理節(jié)點(diǎn)的方法,也可以采用其他方法。預(yù)設(shè)路由上的各節(jié)點(diǎn)收到組播數(shù)據(jù)包后,判斷數(shù)據(jù)包中的組播代理節(jié)點(diǎn)標(biāo)識是否為自己的標(biāo)識,如果是,則使用與組播源節(jié)點(diǎn)共享的密鑰進(jìn)行解密,傳到高層處理,同時,使用目的組標(biāo)識所應(yīng)的組密鑰Kg將數(shù)據(jù)包加密后在組內(nèi)節(jié)點(diǎn)之間進(jìn)行傳輸。如果不是,則繼續(xù)按照預(yù)設(shè)路由向下轉(zhuǎn)發(fā)。表三路由表2目的組地址路由代理節(jié)點(diǎn)地址0x1234OxdefD0x56780x13570x9abc0x2468在應(yīng)用實(shí)施例3中,與應(yīng)用實(shí)施例1不同的是,組播代理節(jié)點(diǎn)存儲有自己作為組播代理節(jié)點(diǎn)所對應(yīng)的組播源節(jié)點(diǎn)及組播組信息。數(shù)據(jù)幀中包含組播源節(jié)點(diǎn)標(biāo)識(例如可以是組播源節(jié)點(diǎn)地址)。當(dāng)組播代理節(jié)點(diǎn)接收到組播數(shù)據(jù)包時,根據(jù)數(shù)據(jù)包中的目的組標(biāo)識和組播源節(jié)點(diǎn)標(biāo)識判斷出自己為對應(yīng)的組播代理節(jié)點(diǎn),并使用與組播源節(jié)點(diǎn)共享的密鑰進(jìn)行解密,傳到高層處理,同時,使用組密鑰Kg將數(shù)據(jù)包加密后在組內(nèi)節(jié)點(diǎn)之間進(jìn)行傳輸??梢岳斫獾氖?,雖然上述各實(shí)施例中,為便于理解,對方法的步驟采用了順序性描述,但是應(yīng)當(dāng)指出的是,對于上述步驟的順序并不做嚴(yán)格的限制。本領(lǐng)域普通技術(shù)人員可以理解,上述各實(shí)施例的方法中的全部或部分步驟可以通過程序來指令相關(guān)的硬件來實(shí)現(xiàn),所述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,所述的存儲介質(zhì),可以是ROM/RAM、》茲碟、光盤等。本發(fā)明實(shí)施例三描述了一種組播系統(tǒng)。如圖3所示,該組播系統(tǒng)包括組播源節(jié)點(diǎn)2000和組播代理節(jié)點(diǎn)2002。源節(jié)點(diǎn)2000具體包括存儲單元2004、加密單元2006和發(fā)送單元2008。其中,存儲單元2004用于存儲目的組標(biāo)識以及對應(yīng)的預(yù)設(shè)路由,以及對應(yīng)的組播代理節(jié)點(diǎn)標(biāo)識和/或?qū)?yīng)的組播代理節(jié)點(diǎn)與該節(jié)點(diǎn)設(shè)備之間的共享密鑰。目的組標(biāo)識可以是目的組的地址,組播代理節(jié)點(diǎn)標(biāo)識可以是組播代理節(jié)點(diǎn)的地址,預(yù)設(shè)路由為組播源節(jié)點(diǎn)2000與相應(yīng)的組播代理節(jié)點(diǎn)之間路由代價最小的路徑。共享密鑰為目的組所對應(yīng)的組密鑰之外的其他密鑰,即不能是目的組標(biāo)識所對應(yīng)的組密鑰。加密單元2006用于對使用與相應(yīng)組播代理節(jié)點(diǎn)共享的密鑰(例如點(diǎn)對點(diǎn)密鑰)對組播數(shù)據(jù)進(jìn)行加密。該共享的密鑰不能是相應(yīng)目的組的組密鑰。發(fā)送單元2008,用于將加密后的組播數(shù)據(jù)按照預(yù)設(shè)路由發(fā)送。組播代理節(jié)點(diǎn)2002包括接收單元2018、判斷單元2016、解密單元2014、加密單元2012、發(fā)送單元2010。其中,接收單元2018用于接收來自組播源節(jié)點(diǎn)2000的組播數(shù)據(jù),然后,判斷單元2016用于判斷組播代理節(jié)點(diǎn)2002是否為所接收的組播數(shù)據(jù)對應(yīng)的組播代理節(jié)點(diǎn)。如果是,則解密單元2014使用前述的共享密鑰對該組播數(shù)據(jù)進(jìn)行解密,以傳往高層處理。判斷單元所采用的判斷方法可以有多種,例如可以采用步驟302描述的三種方法。加密單元2012用于使用組密鑰對解密后的組播數(shù)據(jù)進(jìn)行重新加密,然后,由發(fā)送單元2010將該重新加密后的數(shù)據(jù)向其他組成員節(jié)點(diǎn)發(fā)送。可以理解的是,附圖中(或?qū)嵤├?所示僅僅是示意性的,表示邏輯結(jié)構(gòu),其中所述作為分離部件顯示的單元可能是或者可能不是物理上分開的,作為單元顯示的部件可能是或者可能不是物理單元,即可以位于一個地方,或者15分布到幾個網(wǎng)絡(luò)單元上。例如,發(fā)送單元2010和接收單元2018可能物理上位于一個地方,組合成收發(fā)單元,而加密單元2012和解密單元2014也可能是位于一個地方,組合成加解密單元。依據(jù)本發(fā)明實(shí)施例,組播源節(jié)點(diǎn)從組成員節(jié)點(diǎn)中選擇路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn)作為組播代理節(jié)點(diǎn),從而可以使組播源節(jié)點(diǎn)按照最優(yōu)路由進(jìn)行組播。并且,組播源節(jié)點(diǎn)使用與組密鑰之外的其他密鑰對組播數(shù)據(jù)進(jìn)行加密,可以滿足組播安全性的要求。此外,對于不同的組播源節(jié)點(diǎn),組播代理節(jié)點(diǎn)可以不同,從而分散了組播代理節(jié)點(diǎn)的負(fù)擔(dān),避免了同一節(jié)點(diǎn)作為不同組播源節(jié)點(diǎn)的組^"代理節(jié)點(diǎn)時負(fù)擔(dān)過重的問題。附圖和相關(guān)描述只是為了說明本發(fā)明的原理,并非用于限定本發(fā)明的保護(hù)范圍。例如,本發(fā)明可以應(yīng)用于任何類型的通信網(wǎng),有線網(wǎng),固定網(wǎng),衛(wèi)星網(wǎng)等等,并且不局限于圖1所示的網(wǎng)絡(luò)結(jié)構(gòu)。因此,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。權(quán)利要求1、一種確定組播代理節(jié)點(diǎn)的方法,其特征在于,包括組播源節(jié)點(diǎn)發(fā)送組播代理節(jié)點(diǎn)發(fā)現(xiàn)請求;收到所述發(fā)現(xiàn)請求的各組成員節(jié)點(diǎn)或存儲有組成員節(jié)點(diǎn)路由信息的中間節(jié)點(diǎn)返回路由代價給所述組播源節(jié)點(diǎn),所述路由代價為所述組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)的路由代價;所述組播源節(jié)點(diǎn)根據(jù)返回的路由代價,選擇路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn)作為組播代理節(jié)點(diǎn)。2、根據(jù)權(quán)利要求1所述的方法,其特征在于所述組成員節(jié)點(diǎn)返回的路由代價為所述組播源節(jié)點(diǎn)到該組成員節(jié)點(diǎn)的最小路由代價。3、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述中間節(jié)點(diǎn)返回的路由代價為自己到各組成員節(jié)點(diǎn)的最小路由代價與所述組播源節(jié)點(diǎn)到該中間節(jié)點(diǎn)的最小路由代價之和。4、根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述發(fā)現(xiàn)請求中攜帶目的組標(biāo)識;收到所述發(fā)現(xiàn)請求的各組成員節(jié)點(diǎn)返回路由代價給所述組播源節(jié)點(diǎn)包括收到所述發(fā)現(xiàn)請求的節(jié)點(diǎn)根據(jù)所述目的組標(biāo)識判斷自己是否為組成員節(jié)點(diǎn),如果是,則返回路由代價給所述組播源節(jié)點(diǎn);如果不是,則將所述發(fā)現(xiàn)請求進(jìn)行轉(zhuǎn)發(fā),直到到達(dá)組成員節(jié)點(diǎn)。5、一種組播方法,其特征在于組播源節(jié)點(diǎn)使用與組播代理節(jié)點(diǎn)共享的密鑰對組播數(shù)據(jù)進(jìn)行加密,然后按照預(yù)設(shè)路由發(fā)送;所述組播代理節(jié)點(diǎn)為組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)之間路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn),所述預(yù)設(shè)路由為該路由代價最小的路徑,所述組播數(shù)據(jù)中攜帶目的組標(biāo)識,所述共享的密鑰為所述目的組標(biāo)識對應(yīng)的組密鑰之外的其他密鑰;所述組播代理節(jié)點(diǎn)接收到所述組播數(shù)據(jù)后,使用所述共享的密鑰把所述組播數(shù)據(jù)解密后傳到高層進(jìn)行處理,并把所述解密后的組播數(shù)據(jù)使用組密鑰加密后向其他組成員節(jié)點(diǎn)傳輸。6、根據(jù)權(quán)利要求5所述的組播方法,其特征在于,在所述組播代理節(jié)點(diǎn)使用所述共享的密鑰對組播數(shù)據(jù)進(jìn)行解密之前,還包括所述組播代理節(jié)點(diǎn)判斷自己是否為所述組播數(shù)據(jù)所對應(yīng)的組播代理節(jié),泉。7、根據(jù)權(quán)利要求6所述的組播方法,其特征在于,所述判斷自己是否為所述組播數(shù)據(jù)所對應(yīng)的組播代理節(jié)點(diǎn)的方法為所述組播數(shù)據(jù)中還攜帶有組播代理節(jié)點(diǎn)標(biāo)識,所述組播代理節(jié)點(diǎn)根據(jù)該標(biāo)識來進(jìn)行判斷;或者所述組播數(shù)據(jù)中還攜帶有Flag標(biāo)志,當(dāng)所述組播代理節(jié)點(diǎn)根據(jù)所述目的組標(biāo)識判斷出目的組為自己所在的組,且Flag標(biāo)志表明所述組播數(shù)據(jù)未經(jīng)組成員轉(zhuǎn)發(fā)時,判斷出自己為所述組播數(shù)據(jù)所對應(yīng)的組播代理節(jié)點(diǎn);或者所述組播數(shù)據(jù)中攜帶有組播源節(jié)點(diǎn)標(biāo)識,所述組播代理節(jié)點(diǎn)中存儲有自己作為組播代理節(jié)點(diǎn)時所對應(yīng)的目的組標(biāo)識和組播源節(jié)點(diǎn)標(biāo)識,當(dāng)所述組播數(shù)據(jù)中攜帶的目的組標(biāo)識和組播源節(jié)點(diǎn)標(biāo)識與自己所存儲的標(biāo)識一致時,判斷出自己為所述組播數(shù)據(jù)所對應(yīng)的組播代理節(jié)點(diǎn)。8、根據(jù)權(quán)利要求5、6或7所述的方法,其特征在于,所述共享的密鑰為點(diǎn)對點(diǎn)密鑰。9、一種節(jié)點(diǎn)設(shè)備,其特征在于,包括存儲單元,用于所述節(jié)點(diǎn)設(shè)備作為組播源節(jié)點(diǎn)時,存儲目的組標(biāo)識以及對應(yīng)的預(yù)設(shè)路由,以及預(yù)先確定的對應(yīng)組播代理節(jié)點(diǎn)的標(biāo)識和/或?qū)?yīng)的組播代理節(jié)點(diǎn)與該節(jié)點(diǎn)設(shè)備之間的共享密鑰,所述組播代理節(jié)點(diǎn)為所述節(jié)點(diǎn)設(shè)備到各組成員節(jié)點(diǎn)之間路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn),所述預(yù)設(shè)路由為該路由代價最小的路徑,所述共享密鑰為目的組所對應(yīng)的組密鑰之外的其他密鑰;加密單元,用于使用所述共享密鑰對組播數(shù)據(jù)進(jìn)行加密;發(fā)送單元,用于按照所述預(yù)設(shè)路由發(fā)送加密后的組播數(shù)據(jù)。10、一種節(jié)點(diǎn)設(shè)備,其特征在于,包括接收單元,用于接收來自組播源節(jié)點(diǎn)的組播數(shù)據(jù);判斷單元,用于判斷自己是否為所接收的組播數(shù)據(jù)對應(yīng)的組播代理節(jié)點(diǎn),所述組播代理節(jié)點(diǎn)為所述組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)之間路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn);解密單元,用于在判斷單元判斷出所述節(jié)點(diǎn)設(shè)備是對應(yīng)的組播代理節(jié)點(diǎn)時,使用與所述組播源節(jié)點(diǎn)共享的密鑰對所述組播數(shù)據(jù)進(jìn)行解密,所述共享的密鑰為組密鑰之外的其他密鑰;加密單元,用于使用所述組密鑰對所述解密后的組播數(shù)據(jù)進(jìn)行加密;發(fā)送單元,用于發(fā)送使用所述組密鑰加密后的組播數(shù)據(jù)。11、一種組播系統(tǒng),其特征在于,包括組播源節(jié)點(diǎn),用于使用與組播代理節(jié)點(diǎn)共享的密鑰對組播數(shù)據(jù)進(jìn)行加密,然后按照預(yù)設(shè)路由發(fā)送;所述組播代理節(jié)點(diǎn)為組播源節(jié)點(diǎn)到各組成員節(jié)點(diǎn)之間路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn),所述預(yù)設(shè)路由為該路由代價最小的路徑,所述共享的密鑰為組密鑰之外的其他密鑰;組播代理節(jié)點(diǎn),用于在接收到所述組播數(shù)據(jù)后,使用所述共享的密鑰把所述組播數(shù)據(jù)解密后傳到高層進(jìn)行處理,并把所述解密后的組播數(shù)據(jù)使用組密鑰加密后向其他組成員節(jié)點(diǎn)傳輸。全文摘要本發(fā)明公開了一種確定組播代理節(jié)點(diǎn)的方法和組播方法,選擇路由代價最小的路徑所對應(yīng)的組成員節(jié)點(diǎn)作為組播代理節(jié)點(diǎn),從而可以使組播源節(jié)點(diǎn)按照最優(yōu)路由進(jìn)行組播。另外,對于不同的組播源節(jié)點(diǎn),組播代理節(jié)點(diǎn)可以不同,從而分散了組播代理節(jié)點(diǎn)的負(fù)擔(dān),避免了同一節(jié)點(diǎn)作為不同組播源節(jié)點(diǎn)的組播代理節(jié)點(diǎn)時負(fù)擔(dān)過重的問題。本發(fā)明還公開了節(jié)點(diǎn)設(shè)備和組播系統(tǒng)。文檔編號H04L12/18GK101442419SQ20071012466公開日2009年5月27日申請日期2007年11月21日優(yōu)先權(quán)日2007年11月21日發(fā)明者劉永俊申請人:華為技術(shù)有限公司