集群路由器多播轉(zhuǎn)發(fā)表設(shè)計(jì)與轉(zhuǎn)發(fā)算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種集群路由器多播轉(zhuǎn)發(fā)表設(shè)計(jì)與轉(zhuǎn) 發(fā)算法。
【背景技術(shù)】
[0002] 隨著分布式路由器的廣泛應(yīng)用,現(xiàn)在的集群路由器可由多個(gè)分布式路由器組成。 并且隨著遠(yuǎn)程視頻教學(xué)、網(wǎng)絡(luò)電視、視頻點(diǎn)播等多媒體業(yè)務(wù)的發(fā)展,多播技術(shù)顯的越發(fā)的重 要。現(xiàn)在業(yè)界并沒有明確提出集群路由器下的多播轉(zhuǎn)發(fā)表模型?,F(xiàn)有的多播轉(zhuǎn)發(fā)表若應(yīng)用 在這種新型集群路由器中,會產(chǎn)生存儲冗余并且轉(zhuǎn)發(fā)效率較低。因此需要設(shè)計(jì)適合于新型 集群路由器的新的多播轉(zhuǎn)發(fā)表與新的多播路由轉(zhuǎn)發(fā)算法。
[0003] 現(xiàn)有的組播轉(zhuǎn)發(fā)表只適用于一個(gè)路由器的情況,并不適用于集群路由器?,F(xiàn)有的 組播轉(zhuǎn)發(fā)表項(xiàng)為:〈組地址,源地址,入接口,標(biāo)識位,出接口列表〉。轉(zhuǎn)發(fā)策略為先匹配 '組地址'與'源地址'項(xiàng),若匹配失敗,則丟棄組播數(shù)據(jù)包;匹配成功之后進(jìn)行RPF檢查,如 果RPF檢查通過,則查詢出接口列表,則根據(jù)出接口列表將組播數(shù)據(jù)包轉(zhuǎn)發(fā)出去。
[0004] 現(xiàn)有的組播轉(zhuǎn)發(fā)方法存在嚴(yán)重的轉(zhuǎn)發(fā)冗余,會導(dǎo)致較長時(shí)間的網(wǎng)絡(luò)延遲?,F(xiàn)有的 組播轉(zhuǎn)發(fā)表項(xiàng)為:〈組地址,源地址,入接口,標(biāo)識位,出接口列表〉,若某轉(zhuǎn)發(fā)表項(xiàng)的出 接口列表為{〇/1,1/1,2/1,3/1},則組播數(shù)據(jù)包會向線卡1發(fā)送四次重復(fù)的數(shù)據(jù)包;理論 上,只需要向線卡1發(fā)送1份數(shù)據(jù)包即可,其余3份都是冗余數(shù)據(jù)包。同時(shí)可以看出線卡號 '1'被存儲了 4次,而實(shí)際只需存儲1次即可。
[0005] 在集群路由器中,組播轉(zhuǎn)發(fā)時(shí)要先定位到集群路由器中的某個(gè)具體的分布式路由 器,因此在轉(zhuǎn)發(fā)表項(xiàng)中要有相應(yīng)的'內(nèi)部路由器標(biāo)識'字段,然而傳統(tǒng)的組播轉(zhuǎn)發(fā)表中沒有 此字段,因此傳統(tǒng)的組播轉(zhuǎn)發(fā)表并不適用于新型的集群路由器。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明旨在至少解決相關(guān)技術(shù)中的技術(shù)問題之一。
[0007] 為此,本發(fā)明的一個(gè)目的在于提出一種集群路由器多播轉(zhuǎn)發(fā)表設(shè)計(jì)與轉(zhuǎn)發(fā)算法。 該方法適用于新型集群路由器(由多個(gè)分布式路由器構(gòu)成),可以減少轉(zhuǎn)發(fā)冗余,具有較高 的轉(zhuǎn)發(fā)效率。
[0008] 本發(fā)明的另一個(gè)目的在于提出一種集群路由器多播轉(zhuǎn)發(fā)表設(shè)計(jì)與轉(zhuǎn)發(fā)系統(tǒng)。
[0009] 為了實(shí)現(xiàn)上述目的,本發(fā)明的第一方面的實(shí)施例公開了一種集群路由器多播轉(zhuǎn)發(fā) 表設(shè)計(jì)與轉(zhuǎn)發(fā)算法,所述集群路由器包括多個(gè)分布式路由器,所述方法包括以下步驟:構(gòu)建 集群路由器組播轉(zhuǎn)發(fā)表的步驟,包括:對所述多個(gè)分布式路由器進(jìn)行編碼,并計(jì)算進(jìn)行多播 轉(zhuǎn)發(fā)所使用的內(nèi)部路由器的字段的值;對每個(gè)分布式路由器包括的線卡進(jìn)行編碼,并計(jì)算 用于多播轉(zhuǎn)發(fā)的出線卡的字段的值;對每個(gè)線卡所含接口進(jìn)行編碼,并計(jì)算進(jìn)行多播轉(zhuǎn)發(fā) 所使用的出接口的字段的值;根據(jù)所述內(nèi)部路由器的字段的值、出線卡的字段的值和所述 出接口的字段的值生成組播轉(zhuǎn)發(fā)表;集群路由器三級多播轉(zhuǎn)發(fā)步驟,包括:所述集群路由 器根據(jù)所述組播轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)組播數(shù)據(jù)包,其中,第一級定位內(nèi)部可擴(kuò)展路由器;第二級定位 出線卡;第三級定位出接口,每次查詢與定位通過查找所述組播轉(zhuǎn)發(fā)表完成。
[0010] 根據(jù)本發(fā)明實(shí)施例的集群路由器多播轉(zhuǎn)發(fā)表設(shè)計(jì)與轉(zhuǎn)發(fā)算法,適用于新型集群路 由器(由多個(gè)分布式路由器構(gòu)成),可以減少轉(zhuǎn)發(fā)冗余,具有較高的轉(zhuǎn)發(fā)效率。相關(guān)技術(shù)中 的組播轉(zhuǎn)發(fā)方法只適用于單一路由器,不適用于新型集群路由器,且其組播轉(zhuǎn)發(fā)表采用完 全備份存儲方式(傳統(tǒng)的組播轉(zhuǎn)發(fā)表是采用完全備份存儲方式,在本發(fā)明中,由于組播轉(zhuǎn) 發(fā)中需要RPF檢查,入接口不屬于本線卡的組播數(shù)據(jù)包一定匹配失敗,因此在本發(fā)明中,只 存儲屬于本線卡的數(shù)據(jù)包,不采用完全備份存儲方式),且冗余轉(zhuǎn)發(fā)次數(shù)較高,轉(zhuǎn)發(fā)時(shí)延較 大。本發(fā)明實(shí)施例的集群路由器多播轉(zhuǎn)發(fā)表設(shè)計(jì)與轉(zhuǎn)發(fā)算法可應(yīng)用于新型集群路由器,采 用部分存儲方式,各線卡只存儲屬于本線卡的組播轉(zhuǎn)發(fā)項(xiàng),大大減少了冗余轉(zhuǎn)發(fā)次數(shù),降低 了轉(zhuǎn)發(fā)時(shí)延,具有較高的轉(zhuǎn)發(fā)效率。另外,根據(jù)本發(fā)明上述實(shí)施例的集群路由器多播轉(zhuǎn)發(fā)表 設(shè)計(jì)與轉(zhuǎn)發(fā)算法還可以具有如下附加的技術(shù)特征:
[0011] 在一些示例中,所述集群路由器根據(jù)所述組播轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)組播數(shù)據(jù)包,具體包括: 當(dāng)收到組播數(shù)據(jù)包之后,判斷"組地址"和"源地址"字段是否匹配成功以及是否通過RPF檢 查;如果判斷"組地址"和"源地址"字段匹配成功且通過RPF檢查,則根據(jù)所述組播轉(zhuǎn)發(fā)表 查詢內(nèi)部路由器、出線卡和出接口對應(yīng)字段的值;根據(jù)查詢到的內(nèi)部路由器、出線卡和出接 口對應(yīng)字段的值轉(zhuǎn)發(fā)所述組播數(shù)據(jù)包。
[0012] 在一些示例中,所述根據(jù)組播轉(zhuǎn)發(fā)表查詢內(nèi)部路由器、出線卡和出接口對應(yīng)字段 的值,進(jìn)一步包括:查詢所述組播轉(zhuǎn)發(fā)表中的內(nèi)部路由器的字段;如果查詢成功,則將相應(yīng) 的出線卡和出接口的字段加入到邊帶信息中,與所述組播數(shù)據(jù)包一同發(fā)送至所述內(nèi)部路由 器;在線卡接收到所述組播數(shù)據(jù)包之后,從其邊帶信息中提取出線卡的字段;如果出線卡 的字段的值與當(dāng)前線卡的字段的值一致,則進(jìn)一步從所述邊帶信息中查詢出接口的字段, 以所述出接口將組播數(shù)據(jù)包轉(zhuǎn)發(fā);如果出線卡的字段的值與當(dāng)前線卡的字段的值不一致, 則進(jìn)一步將出接口的字段加入到所述邊帶信息中,并與組播數(shù)據(jù)包一同轉(zhuǎn)發(fā)到出線卡的字 段所指示的線卡,并當(dāng)線卡收到數(shù)據(jù)包之后,從邊帶信息中提取出接口的字段,將組播數(shù)據(jù) 包從出接口轉(zhuǎn)發(fā)。
[0013] 在一些示例中,采用二進(jìn)制位編碼方式對所述分布式路由器、線卡和接口進(jìn)行編 碼,其中,如果分布式路由器的總數(shù)為n,則第i (〇彡i彡n-1)個(gè)分布式路由器氏的編碼為
【主權(quán)項(xiàng)】
1. 一種集群路由器多播轉(zhuǎn)發(fā)表設(shè)計(jì)與轉(zhuǎn)發(fā)算法,其特征在于,所述集群路由器包括多 個(gè)分布式路由器,所述方法包括以下步驟: 構(gòu)建集群路由器組播轉(zhuǎn)發(fā)表的步驟,包括: 對所述多個(gè)分布式路由器進(jìn)行編碼,并計(jì)算進(jìn)行多播轉(zhuǎn)發(fā)所使用的內(nèi)部路由器的字段 的值; 對每個(gè)分布式路由器包括的線卡進(jìn)行編碼,并計(jì)算用于多播轉(zhuǎn)發(fā)的出線卡的字段的 值; 對每個(gè)線卡所含接口進(jìn)行編碼,并計(jì)算進(jìn)行多播轉(zhuǎn)發(fā)所使用的出接口的字段的值; 根據(jù)所述內(nèi)部路由器的字段的值、出線卡的字段的值和所述出接口的字段的值生成組 播轉(zhuǎn)發(fā)表; 集群路由器三級多播轉(zhuǎn)發(fā)步驟,包括:所述集群路由器根據(jù)所述組播轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)組播 數(shù)據(jù)包,其中,第一級定位內(nèi)部可擴(kuò)展路由器;第二級定位出線卡