專利名稱:一種新型的適用于小型ip網(wǎng)絡(luò)的組播/廣播實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種IP數(shù)據(jù)通信領(lǐng)域的組播/廣播實(shí)現(xiàn)方法。
背景技術(shù):
標(biāo)準(zhǔn)的IP組播涉及到的協(xié)議主要有組播組管理協(xié)議和組播路由協(xié)議。組播組管理協(xié)議米用IGMP (Internet Group Membership Protocol,因特網(wǎng)組管理協(xié)議),它運(yùn)行在主機(jī)和組播路由器之間,定義了主機(jī)與組播路由器之間組播成員關(guān)系的建立和維護(hù)機(jī)制。組播路由協(xié)議運(yùn)行在組播路由器之間,用于建立和維護(hù)組播路由,并正確、高效地 轉(zhuǎn)發(fā)組播數(shù)據(jù)包。組播路由建立了一個(gè)從數(shù)據(jù)源端到多個(gè)接收端的無環(huán)數(shù)據(jù)傳輸路徑。組播路由協(xié)議的任務(wù)就是構(gòu)建分發(fā)樹結(jié)構(gòu)。組播路由器能采用多種方法來建立數(shù)據(jù)傳輸?shù)穆窂剑捶职l(fā)樹。在眾多的組播路由協(xié)議中,PIM (Protocol Independent Multicast,協(xié)議無關(guān)組播協(xié)議)是目前應(yīng)用最多的協(xié)議,可以和任何單播路由協(xié)議協(xié)同工作。PIM 包括 PIM-DM (Protocol Independent Multicast Dense Mode)協(xié)議無關(guān)組播一密集模式和 PIM-SM (Protocol Independent Multicast Sparse Mode)協(xié)議無關(guān)組播一稀疏模式。不管是使用PM-DM還是PM-SM都會伴隨大量的協(xié)議數(shù)據(jù)交互。如果在寬帶網(wǎng)絡(luò)內(nèi)這些協(xié)議開銷可以忽略,但是在窄帶無線網(wǎng)絡(luò)內(nèi)這些協(xié)議開銷是網(wǎng)絡(luò)不可承受的。
發(fā)明內(nèi)容
基于背景技術(shù)中述及的實(shí)際問題,本發(fā)明提出了一種IP數(shù)據(jù)通信領(lǐng)域的一種組播/廣播實(shí)現(xiàn)方法。該方法是在無任何協(xié)議開銷的情況下,利用IP選項(xiàng)攜帶的關(guān)鍵信息來實(shí)現(xiàn)組播、廣播數(shù)據(jù)無環(huán)的轉(zhuǎn)發(fā)功能。此方法包括
網(wǎng)絡(luò)編址時(shí),網(wǎng)內(nèi)的每個(gè)組播路由器有一個(gè)全網(wǎng)唯一的ID,且由該組播路由器IP地址的特定字節(jié)顯式的表示。組播路由器從IP終端接收的組播/廣播報(bào)文能夠從配置文件獲取實(shí)際需要到達(dá)的目的單播IP地址組。組播路由器對每個(gè)IP單播地址進(jìn)行查找路由表的操作,并按照出接口進(jìn)行分類,如果出接口是廣播接口,先根據(jù)目的地是一跳可達(dá)還是中繼可達(dá)分類,對中繼可達(dá)還需要根據(jù)網(wǎng)關(guān)IP地址細(xì)分子類。對每個(gè)分類形成單獨(dú)的IP報(bào)文,且報(bào)文的IP選項(xiàng)插入“中繼項(xiàng)”組合,如果出接口是點(diǎn)對點(diǎn)接口 “中繼項(xiàng)”只有一項(xiàng),如果出接口是廣播接口,根據(jù)細(xì)分子類的個(gè)數(shù)形成“中繼項(xiàng)”的個(gè)數(shù)。每個(gè)“中繼項(xiàng)”由“中繼標(biāo)志”、“中繼節(jié)點(diǎn)”、“剩余節(jié)點(diǎn)”組成。“中繼標(biāo)志”:如果是廣播接口,表示本“中繼項(xiàng)”中的“剩余節(jié)點(diǎn)”是一跳可達(dá)(0)還是中繼可達(dá)(I)?!爸欣^節(jié)點(diǎn)”如果是廣播接口,表示本“中繼項(xiàng)”的網(wǎng)關(guān)組播路由器的ID。“剩余節(jié)點(diǎn)”:表示該條線路上剩余的組播路由器ID的組合。每個(gè)組播路由器從中繼接口接收組播/廣播報(bào)文,如果是廣播接口,因?yàn)榭赡苡卸鄠€(gè)中繼項(xiàng),所以需要根據(jù)“中繼節(jié)點(diǎn)”來判斷自己需要處理的“中繼項(xiàng)”,如果是點(diǎn)對點(diǎn)接口,有且只有一個(gè)“中繼項(xiàng)”需要處理。組播路由器判斷“剩余節(jié)點(diǎn)”是否有本組播路由器的ID,如果存在此ID,需要將報(bào)文去掉IP選項(xiàng)后發(fā)送給IP終端接口 ;然后在“剩余節(jié)點(diǎn)”中對剩余的組播路由器的ID分別查找路由表并分類、形成“中繼項(xiàng)”并發(fā)送出去,最后直 到“剩余節(jié)點(diǎn)”為O結(jié)束傳播過程,此時(shí)網(wǎng)絡(luò)內(nèi)所有需要接收此組播/廣播報(bào)文的IP終端都已經(jīng)接收到此報(bào)文。本發(fā)明的有益效果是可以在小型IP通信系統(tǒng)內(nèi)部署組播和廣播業(yè)務(wù)而無需額外的協(xié)議開銷,且組播、廣播報(bào)文的轉(zhuǎn)發(fā)能力完全和組播路由器的單播轉(zhuǎn)發(fā)能力相當(dāng)。
圖I組播/廣播IP地址配置文件格式圖。圖2 IP選項(xiàng)的報(bào)文格式。圖3給定拓?fù)浜虸、J、K值的廣播報(bào)文轉(zhuǎn)發(fā)流程圖解。圖中1=1、J=7、K=8。
具體實(shí)施例方式具體實(shí)施方式
從4個(gè)方面來描述
I. 網(wǎng)絡(luò)編址方式。網(wǎng)絡(luò)內(nèi)所有IP地址的編址必須有一個(gè)字節(jié)顯式的表示出該IP地址屬于哪個(gè)組播路由器或者該組播路由器所連接的IP終端。定義方式可以為N. O. O. M/8,也可以為X. N. O. M/16,也可以為X. Y. N. M/24。其中X、Y都是任意值。N是關(guān)鍵值,可以顯式的表不組播路由器的編號。M是主機(jī)位。N值會用于報(bào)文格式的“中繼節(jié)點(diǎn)”和“剩余節(jié)點(diǎn)”,詳情見報(bào)文格式和報(bào)文收發(fā)處理。每個(gè)組播路由器IP地址的N值全網(wǎng)應(yīng)唯一。2. 組播/廣播成員IP地址識別。因?yàn)闊o組播組管理協(xié)議和組播路由協(xié)議的支持,每個(gè)組播路由器必須能夠顯式的識別每個(gè)組播組和廣播地址所對應(yīng)的實(shí)際的目的IP地址組。本發(fā)明依靠配置文件識別組播/廣播成員的IP地址。組播路由器讀取組播/廣播配置文件識別每個(gè)組播IP地址和廣播IP地址具體對應(yīng)的成員的IP地址。假定每個(gè)組播路由器的以太網(wǎng)接口地址為Χ. Y. N. 1/24 ;每個(gè)終端的IP地址為X. Y. N. Μ,那么配置文件的格式可以參照圖I。3. 報(bào)文格式。報(bào)文格式見圖2。
各個(gè)字段的定義如下。類型8比特,取OxFE這個(gè)特定值,避免和公用的IP選項(xiàng)類型字段沖突。本類型長度8比特,表示從“類型”字段到最后一個(gè)“剩余節(jié)點(diǎn)”的字節(jié)長度。中繼標(biāo)志1比特,如果是點(diǎn)對點(diǎn)接口,“中繼標(biāo)志”為O ;如果是廣播接口,表示本“中繼項(xiàng)”中的“剩余節(jié)點(diǎn)”是一跳可達(dá)(O)還是中繼可達(dá)(I)。中繼節(jié)點(diǎn)J比特,表示下一跳組播路由器IP地址的N值。如果是點(diǎn)對點(diǎn)接口,“中繼節(jié)點(diǎn)”為O ;如果是廣播接口且“中繼標(biāo)志”為I時(shí),“中繼節(jié)點(diǎn)”為下一跳組播路由器IP地址的N值。剩余節(jié)點(diǎn)K比特,為了字節(jié)對齊,需要K是8的整倍數(shù)?!笆S喙?jié)點(diǎn)”使用比特的方式來表示剩余的組播組成員的IP地址的N值(即ID),例如Oxl代表X. Y. I. M ;0xll代 表X. Y. I. M和X. Y. 5. M兩個(gè)地址。為了字節(jié)對齊,I值和J值的和必須等于8。J值和K值決定了組播路由器的最大數(shù)量,J和K的關(guān)系可以用下面的公式來表示
K 彡 2 J。K值與最大能支持的中繼項(xiàng)個(gè)數(shù)(W)成反比關(guān)系。每個(gè)中繼項(xiàng)的字節(jié)長度U=l+K/8+(7 + K%8)/8。最大能支持的中繼項(xiàng)個(gè)數(shù)W = 38 / U。所以J、K值的選取需要綜合考慮網(wǎng)絡(luò)內(nèi)組播路由器的數(shù)量和網(wǎng)絡(luò)的拓?fù)湫螒B(tài)(中繼的個(gè)數(shù))。4. 報(bào)文收發(fā)處理。報(bào)文的收發(fā)處理包括4個(gè)部分的內(nèi)容從終端接收報(bào)文的處理;從點(diǎn)對點(diǎn)中繼接口接收報(bào)文的處理;從廣播中繼接口接收報(bào)文的處理;發(fā)送報(bào)文給終端的處理。在特定拓?fù)湎驴蓞⒁妶D3 “給定拓?fù)涞膹V播報(bào)文轉(zhuǎn)發(fā)流程圖解”來幫助理解。I) 從終端接收報(bào)文的處理。a)組播路由器從IP終端接收組播、廣播報(bào)文,根據(jù)IP目的地址(組播/廣播地址)查找目的單播IP地址,方法見“組播/廣播成員IP地址識別”。b) 查找得到的各個(gè)單播IP地址可能包括本組播路由器直接連接的IP終端,需要從查找結(jié)果中去掉這些IP地址。c)對每個(gè)單播IP地址分別查找路由,根據(jù)出接口進(jìn)行分類;如果出接口是廣播接口再根據(jù)網(wǎng)關(guān)地址的不同細(xì)分子類(需要形成不同的中繼項(xiàng)),且需要區(qū)分目的IP是一跳可達(dá)還是中繼可達(dá),一跳可達(dá)和中繼可達(dá)的是不同的中繼項(xiàng)。d)根據(jù)C形成的分類(按接口的分類)個(gè)數(shù),進(jìn)行原始接收報(bào)文的復(fù)制,一個(gè)分類對應(yīng)一個(gè)報(bào)文。e)向每個(gè)復(fù)制后的報(bào)文插入IP選項(xiàng)。f) 如果該分類的出接口是點(diǎn)對點(diǎn)接口,那么中繼項(xiàng)有且只有一項(xiàng)并且“中繼標(biāo)志”和“中繼節(jié)點(diǎn)”都為0,“剩余節(jié)點(diǎn)”為每個(gè)目標(biāo)IP地址的N值的比特排列。g) 如果該分類的出接口是廣播接口,那么中繼項(xiàng)可能有多項(xiàng),按照細(xì)分子類的個(gè)數(shù)來決定中繼項(xiàng)的個(gè)數(shù),如果是一跳可達(dá),那么“中繼標(biāo)志”和“中繼節(jié)點(diǎn)”為0,“剩余節(jié)點(diǎn)”為每個(gè)目標(biāo)IP地址的N值的比特排列;如果是中繼可達(dá),那么“中繼標(biāo)志”為1,“中繼節(jié)點(diǎn)”為網(wǎng)關(guān)組播路由器IP地址的N值,“剩余節(jié)點(diǎn)”為每個(gè)目標(biāo)IP地址的N值的比特排列。h) 計(jì)算新插入的IP選項(xiàng)的長度并重新設(shè)置IP報(bào)文頭部中的“頭長度”字段,“TTL”遞減后重新計(jì)算IP頭部的“校驗(yàn)和”,然后從該分類的出接口發(fā)送出去。2) 從點(diǎn)對點(diǎn)中繼接口接收報(bào)文的處理。a)從“剩余節(jié)點(diǎn)”中尋找本組播路由器IP地址的N值,如果存在該比特表示本地的IP終端需要接收此組播/廣播報(bào)文,首先將本組播路由器IP地址的N值從“剩余節(jié)點(diǎn)”的相應(yīng)比特置為0,然后進(jìn)入4)發(fā)送數(shù)據(jù)報(bào)文給終端的處理。b)如果“剩余節(jié)點(diǎn)”中還有其它比特為1,表示本組播路由器還需要繼續(xù)轉(zhuǎn)發(fā)此 報(bào)文,此時(shí)從“剩余節(jié)點(diǎn)”中還原出目的IP地址組,然后進(jìn)入1)->C開始的流程。3) 從廣播中繼接口接收報(bào)文的處理。a) 此時(shí)IP選項(xiàng)內(nèi)的中繼項(xiàng)可能有多項(xiàng),首先根據(jù)本組播路由器IP地址的N值遍歷每個(gè)中繼項(xiàng)的“中繼節(jié)點(diǎn)”,查找到有本組播路由器IP地址的N值的那一項(xiàng)。b) 判斷本組播路由器IP地址的N值是否在該中繼項(xiàng)的“剩余節(jié)點(diǎn)”內(nèi),如果不在此內(nèi)說明本組播路由器是純中繼節(jié)點(diǎn),此時(shí)從“剩余節(jié)點(diǎn)”中還原出目的IP地址組,然后進(jìn)入1)->C開始的流程。c) 如果本組播路由器IP地址的N值在該中繼項(xiàng)的“剩余節(jié)點(diǎn)”內(nèi),將本組播路由器IP地址的N值從“剩余節(jié)點(diǎn)”的相應(yīng)比特置為0,然后進(jìn)入4)發(fā)送數(shù)據(jù)報(bào)文給終端的處理,同時(shí)從“剩余節(jié)點(diǎn)”中還原出目的IP地址組,然后進(jìn)入1)_>C開始的流程。d)如果未找到,再根據(jù)本組播路由器IP地址的N值查找一跳可達(dá)中繼項(xiàng)(“中繼標(biāo)志”和“中繼節(jié)點(diǎn)”都為O)的“剩余節(jié)點(diǎn)”,如果未找到就不處理此報(bào)文,如果找到就將本組播路由器IP地址的N值從“剩余節(jié)點(diǎn)”的相應(yīng)比特置為0,然后進(jìn)入4)發(fā)送數(shù)據(jù)報(bào)文給終端的處理。4) 發(fā)送報(bào)文給終端的處理。剔除報(bào)文的IP選項(xiàng),重新設(shè)置IP報(bào)文頭部中的“頭長度”字段,“TTL”遞減后重新計(jì)算IP頭部的“校驗(yàn)和”,然后從IP終端接口發(fā)送。
權(quán)利要求
1.一種適用于小型IP網(wǎng)絡(luò)的組播、廣播實(shí)現(xiàn)方法,其特征在于組播路由器利用IP選項(xiàng)攜帶關(guān)鍵信息來實(shí)現(xiàn)組播、廣播數(shù)據(jù)無環(huán)的轉(zhuǎn)發(fā)功能。
2.根據(jù)權(quán)利要求I所述的IP選項(xiàng)的特征在于由一個(gè)或多個(gè)中繼項(xiàng)來確定報(bào)文的中繼網(wǎng)關(guān)和剩余的需要到達(dá)的組播路由器。
3.根據(jù)權(quán)利要求2所述的“中繼項(xiàng)”的特征在于由“中繼標(biāo)志”、“中繼節(jié)點(diǎn)”、“剩余節(jié)點(diǎn)” 3個(gè)字段組成,其中“中繼標(biāo)志”表示該“中繼項(xiàng)”在廣播接口上是一跳可達(dá)還是中繼可達(dá),其比特?cái)?shù)由I表示;“中繼節(jié)點(diǎn)”表示該“中繼項(xiàng)”在廣播接口上網(wǎng)關(guān)路由器的ID,其比特?cái)?shù)由J表示;“剩余節(jié)點(diǎn)”表示剩余的組播路由器ID的集合,其比特?cái)?shù)由K表示,這3個(gè)值之間的關(guān)系滿足下面的公式I + J = 8 ;K ≤ 2 J。
4.根據(jù)權(quán)利要求2所述的中繼項(xiàng)的特征還在于最大能支持的中繼項(xiàng)的個(gè)數(shù)由下面的公式來表不 最大能支持的中繼項(xiàng)個(gè)數(shù)W = 38/(l+K/8+(7+K%8)/8)。
5.根據(jù)權(quán)利要求3所述的“剩余節(jié)點(diǎn)”的特征在于K值是8的整倍數(shù),使用比特的方式來表示剩余的組播組成員的ID。
全文摘要
本發(fā)明公開了一種用于小型IP網(wǎng)絡(luò)的組播/廣播的實(shí)現(xiàn)方法。該方法可以在無任何協(xié)議開銷的情況下,利用IP報(bào)文的選項(xiàng)擴(kuò)展能力,能夠在小型的IP網(wǎng)絡(luò)中使用組播/廣播業(yè)務(wù)。本發(fā)明的有益效果是可以在小型IP通信系統(tǒng)內(nèi)部署組播和廣播業(yè)務(wù)而無需額外的協(xié)議開銷,且組播、廣播報(bào)文的轉(zhuǎn)發(fā)能力完全和組播路由器的單播轉(zhuǎn)發(fā)能力相當(dāng)。
文檔編號H04L12/761GK102970237SQ201210535878
公開日2013年3月13日 申請日期2012年12月13日 優(yōu)先權(quán)日2012年12月13日
發(fā)明者瞿輝, 張唯炯, 劉亞軍, 康宗緒, 楊曉, 肖宏, 廖紅云 申請人:重慶金美通信有限責(zé)任公司