專利名稱:一種多網(wǎng)口設(shè)備組播的實現(xiàn)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及組播,尤其涉及一種多網(wǎng)口設(shè)備組播的實現(xiàn)方法及系統(tǒng)。
技術(shù)背景對于通用的服務(wù)器或客戶端,如果其存在兩個或兩個以上的對外端口, 并且希望這些端口都同時加入同一個組播組時,組網(wǎng)圖如圖l所示。此時在L2交換機(jī)(Switch)上開啟IGMP Snooping功能,就會導(dǎo)致交換機(jī)上兩個端 口都會監(jiān)聽到同一個組播組的互聯(lián)網(wǎng)組管理協(xié)議(IGMP)報告(Report)報 文,而此時從組播源發(fā)出的組播業(yè)務(wù)報文就會有相同的兩份被發(fā)送到同一個 組播目的機(jī)。針對這樣的組網(wǎng),通常的做法是需要借助第三方協(xié)議,將同一設(shè)備上兩 個端口進(jìn)行聚合,從而來避免組播目的機(jī)收到重復(fù)報文。這種處理上的缺點(diǎn)是需要借助其他協(xié)議(如端口聚合等)來實現(xiàn),但并 不是所有設(shè)備都是支持類似端口聚合這樣的協(xié)議的,當(dāng)無法進(jìn)行端口聚合時, 組播目的機(jī)就會收到雙份(或多份)的報文,只能通過上層協(xié)議來進(jìn)行取舍, 嚴(yán)重影響處理性能,無法滿足特定條件下的需求。另外,對于實時性要求比 較高的場合來說,端口聚合這樣的協(xié)議也無法滿足特定的要求。尤其對于通訊設(shè)備而言,如圖2所示,通常是由接口線卡、交換線卡、 協(xié)議處理線卡及連接這些線卡的背板組成。交換線卡是二層以太網(wǎng)的交換中 心,功能相當(dāng)于一個L2 Switch;接口線卡主要負(fù)責(zé)接收外部用戶的請求,然 后轉(zhuǎn)給網(wǎng)元內(nèi)的協(xié)議處理線卡進(jìn)行處理;協(xié)議處理線卡有多種,分別處理不 同類型的業(yè)務(wù)報文,如語音解碼、實時數(shù)據(jù)傳輸?shù)鹊?。接口線卡響應(yīng)外部用 戶請求的部分,稱之為外部用戶面,由接口線卡轉(zhuǎn)給網(wǎng)元內(nèi)的協(xié)議處理線卡 處理的部分,稱為內(nèi)部用戶面。在圖3所示的常見組網(wǎng)中,對于外部用戶面,由于其連接的外部網(wǎng)絡(luò)均 為標(biāo)準(zhǔn)以太網(wǎng),所以建議采用端口聚合協(xié)議進(jìn)行互聯(lián);對于內(nèi)部用戶面,由于不支持端口聚合協(xié)議,所以如果實現(xiàn)組播方案就需要對重復(fù)的報文進(jìn)行適 當(dāng)處理,影響性能。發(fā)明內(nèi)容為了解決上述的技術(shù)問題,提供了 一種多網(wǎng)口設(shè)備組播的實現(xiàn)方法及系 統(tǒng),其目的在于,在不需要進(jìn)行端口聚合的情況下,能夠完成很好的負(fù)荷分 擔(dān),當(dāng)端口狀態(tài)發(fā)生變化時,能夠很快的進(jìn)行切換,極小的影響業(yè)務(wù)。本發(fā)明提供了一種多網(wǎng)口設(shè)備組播的實現(xiàn)方法,包括步驟1,在多網(wǎng)口設(shè)備上將一個或多個組播地址映射到一個端口號,用 于避免組播目的機(jī)接收相同的報文;步驟2,當(dāng)所述端口號對應(yīng)的端口狀態(tài)發(fā)生變化時,將所述一個或多個 組播地址更新到相應(yīng)的端口號,用于避免因所述端口號對應(yīng)的端口狀態(tài)發(fā)生 變化導(dǎo)致無法發(fā)送IGMP報文。步驟1中,還設(shè)置組播地址與端口號的映射關(guān)系表。步驟1中,組播地址為協(xié)議處理線卡加入的組播IP地址,所述映射為依 據(jù)組播IP地址及端口狀態(tài)進(jìn)行計算端口號。步驟l中,端口號為組播地址除以協(xié)議處理線卡最大端口數(shù)的余數(shù)對應(yīng) 的可用端口的端口號。步驟1還包括步驟51,接收到等待加入組播組的消息時,將該消息加入組播組,并檢 査該組播組是否存在,如果存在,則執(zhí)行步驟53,否則執(zhí)行步驟52;步驟52,根據(jù)組播地址計算端口號,并將該組播地址與端口號的映射關(guān) 系加入組播地址與端口號的映射關(guān)系表,執(zhí)行步驟53;步驟53,設(shè)置IGMP報文類型為報告,加入到報文發(fā)送隊列;步驟54,檢查發(fā)送隊列,準(zhǔn)備發(fā)送IGMP報文。步驟1還包括步驟61,接收到等待離開組播組的消息時,并檢查該組播組是否存在, 如果存在,則執(zhí)行步驟62,否則不進(jìn)行任何處理;步驟62,根據(jù)組播組地址刪除組播地址與端口號的映射關(guān)系; 步驟63,設(shè)置IGMP報文類型為離開,加入到報文發(fā)送隊列;步驟64,檢査發(fā)送隊列,準(zhǔn)備發(fā)送IGMP報文。 端口狀態(tài)包括端口可用和端口不可用。步驟2中,當(dāng)端口狀態(tài)為端口不可用時,在其余可用的端口中選擇一個 端口的端口號作為相應(yīng)的端口號。步驟2中,其余可用的端口通過輪詢的方式排列。本發(fā)明提供了多網(wǎng)口設(shè)備組播的實現(xiàn)系統(tǒng),包括組播地址與端口號映射模塊,用于在多網(wǎng)口設(shè)備上將一個或多個組播地址映射到一個端口號,以避免組播目的機(jī)接收相同的報文;組播地址與端口號映射更新模塊,用于當(dāng)所述端口號對應(yīng)的端口狀態(tài)發(fā) 生變化時,將所述一個或多個組播地址更新到相應(yīng)的端口號,以避免因所述 端口號對應(yīng)的端口狀態(tài)發(fā)生變化導(dǎo)致無法發(fā)送IGMP報文。本發(fā)明的多網(wǎng)口設(shè)備組播實現(xiàn)方法采用固定的算法,實現(xiàn)了組播地址和 有效物理端口的對應(yīng),使得某一個組播地址的IGMP Report報文始終從一個 物理端口發(fā)送出去;當(dāng)存在多個組播地址時,又能夠?qū)崿F(xiàn)很好的負(fù)荷分擔(dān); 同時端口狀態(tài)的變化對業(yè)務(wù)影響極小。
圖1是現(xiàn)有技術(shù)中常見組網(wǎng)示意圖;圖2是現(xiàn)有技術(shù)中通訊處理設(shè)備結(jié)構(gòu)示意圖;圖3是現(xiàn)有技術(shù)中通訊處理設(shè)備組網(wǎng)示意圖;圖4是本發(fā)明的多網(wǎng)口設(shè)備組播實現(xiàn)方法流程示意圖;圖5是本發(fā)明的多網(wǎng)口設(shè)備組播實現(xiàn)系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
本發(fā)明中,在多網(wǎng)口設(shè)備上建立、維護(hù)一張組播組地址和端口號的對應(yīng) 關(guān)系表,可以是一個組播組地址對應(yīng)一個端口號或者多個組播組地址對應(yīng)一 個端口號;其中,組播組地址就是一系列該協(xié)議處理線卡加入的組播IP地址; 而端口號是根據(jù)不同的組播IP地址以及結(jié)合端口目前的狀態(tài)按照一定的方 法計算出來的端口號,這些端口號直接對應(yīng)到協(xié)議處理線卡的物理端口號, 在組播組往外發(fā)送IGMP Report報文時選擇使用。上述多網(wǎng)口設(shè)備組播實現(xiàn)方法中,當(dāng)所述協(xié)議處理線卡的端口狀態(tài)發(fā)生 變化時,會對表中對應(yīng)與該變化的端口的條目進(jìn)行適當(dāng)?shù)母?,結(jié)合組播地 址,計算并換成一個可用的端口號。本發(fā)明的多網(wǎng)口設(shè)備組播實現(xiàn)方法流程圖如圖4,具體包括下面幾個步驟步驟401,初始化組播地址和端口映射表,如內(nèi)存的分配和初始化等; 步驟402,進(jìn)入消息處理函數(shù),等待如加入組播組,離開組播組的消息。 當(dāng)收到加入組播組消息,則轉(zhuǎn)入步驟403;當(dāng)收到離開組播組消息,則轉(zhuǎn)入步驟406;步驟403,根據(jù)組播地址查表,看表項中是否己經(jīng)存在同樣的組播組了; 如果存在,則轉(zhuǎn)入步驟405;如果不存在,則轉(zhuǎn)入步驟404 ;步驟404,根據(jù)組播地址計算端口號;然后連同組播地址寫入組播地址/ 端口映射表中;上述步驟中計算端口號的方法是端口號=組播地址/協(xié)議處理線卡最大端口數(shù)的余數(shù); 步驟405,設(shè)置IGMP報文類型為Report,加入到報文發(fā)送隊列中; 步驟406,同功能上面步驟403;如果存在,則轉(zhuǎn)步驟407;如果不存在, 則不處理;步驟407,根據(jù)組播地址査找組播地址/端口映射關(guān)系表,將查到的條目 刪除掉;步驟408,設(shè)置IGMP報文類型為離開(Leave),加入到報文發(fā)送隊列中;步驟409,檢査發(fā)送隊列,如果有報文,則逐個的取出組播地址和出端 口,準(zhǔn)備進(jìn)行發(fā)送;步驟410,對于需要發(fā)送IGMP報文的組播地址,看端口映射表中對應(yīng) 的端口是否有效;如果有效,則轉(zhuǎn)步驟412;如果無效,則轉(zhuǎn)步驟411;步驟411 ,選擇一個有效的物理端口號替換表項中無效的端口號;上述步驟中選擇有效端口號的方法是將有效端口號按照輪詢的方式映射到端口數(shù)組中,此數(shù)組的最大條目對 應(yīng)協(xié)議處理線卡的最大端口數(shù);假設(shè),協(xié)議處理線卡目前最大端口數(shù)為4個,則可以定義一個端口數(shù)組為aucPortlndex[4];如果此時可用的端口數(shù)是4個,端口編號分別為l、 2、 3、 4;則對應(yīng)到 數(shù)組中的值為U, 2, 3, 4};如果此時可用的端口數(shù)是1個(假如可用的端口號為2);則對應(yīng)到數(shù)組中的值為{2, 2, 2, 2};如果此時可用的端口數(shù)是2個(假如可用的端口號為1, 4);則對應(yīng)到數(shù)組中的值為U, 4, 1, 4};如果此時可用的端口數(shù)是3個(假如可用的端口號為1, 2, 3);則對應(yīng) 到數(shù)組中的值為U, 2, 3, 1};可用端口映射的原則是輪詢,但盡量要求均勻分配到數(shù)組中。因此有效 端口號的選擇方法如下有效端口號zaucPortlndex[組播地址MOD協(xié)議處理線卡最大端口數(shù)]; 步驟412,從有效端口發(fā)送IGMP報文。當(dāng)端口物理狀態(tài)由UP變化為DOWN時,檢査一下組播地址/端口映射 關(guān)系表中有沒有端口號對應(yīng)這個端口的,如果有,則轉(zhuǎn)到上面步驟405,向 外面發(fā)送一下Report報文,對改端口進(jìn)行更新。通過上面的一些步驟,可以保證多網(wǎng)口設(shè)備和L2 Switch對接時,如圖3 那樣的組網(wǎng),不會導(dǎo)致協(xié)議處理線卡收到重復(fù)的組播報文。而且當(dāng)某一個或 幾個端口狀態(tài)發(fā)生變化時,能夠很快的完成端口切換,減少業(yè)務(wù)的丟包。為了實現(xiàn)本發(fā)明提供的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,本發(fā)明提供了一種 多網(wǎng)口設(shè)備組播的實現(xiàn)系統(tǒng)500,如圖5所示,包括組播地址與端口號映射模塊501,用于在多網(wǎng)口設(shè)備上將一個或多個組 播地址映射到一個端口號,以避免組播目的機(jī)接收相同的報文;組播地址與端口號映射更新模塊502,用于當(dāng)所述端口號對應(yīng)的端口狀 態(tài)發(fā)生變化時,將所述一個或多個組播地址更新到相應(yīng)的端口號,以避免因 所述端口號對應(yīng)的端口狀態(tài)發(fā)生變化導(dǎo)致無法發(fā)送IGMP報文。本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書確定的本發(fā)明的精神和范圍的條 件下,還可以對以上內(nèi)容進(jìn)行各種各樣的修改。因此本發(fā)明的范圍并不僅限 于以上的說明,而是由權(quán)利要求書的范圍來確定的。
權(quán)利要求
1.一種多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,包括步驟1,在多網(wǎng)口設(shè)備上將一個或多個組播地址映射到一個端口號,用于避免組播目的機(jī)接收相同的報文;步驟2,當(dāng)所述端口號對應(yīng)的端口狀態(tài)發(fā)生變化時,將所述一個或多個組播地址更新到相應(yīng)的端口號,用于避免因所述端口號對應(yīng)的端口狀態(tài)發(fā)生變化導(dǎo)致無法發(fā)送IGMP報文。
2. 如權(quán)利要求l所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,步驟 l中,還設(shè)置組播地址與端口號的映射關(guān)系表。
3. 如權(quán)利要求2所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,步驟 1中,組播地址為協(xié)議處理線卡加入的組播IP地址,所述映射為依據(jù)組播IP 地址及端口狀態(tài)進(jìn)行計算端口號。
4. 如權(quán)利要求3所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,步驟1中,端口號為組播地址除以協(xié)議處理線卡最大端口數(shù)的余數(shù)對應(yīng)的可用端 口的端口號。
5. 如權(quán)利要求3所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,步驟 1還包括步驟51,接收到等待加入組播組的消息時,將該消息加入組播組,并檢 查該組播組是否存在,如果存在,則執(zhí)行步驟53,否則執(zhí)行步驟52;步驟52,根據(jù)組播地址計算端口號,并將該組播地址與端口號的映射關(guān) 系加入組播地址與端口號的映射關(guān)系表,執(zhí)行步驟53;步驟53,設(shè)置IGMP報文類型為報告,加入到報文發(fā)送隊列;步驟54,檢査發(fā)送隊列,準(zhǔn)備發(fā)送IGMP報文。
6. 如權(quán)利要求3所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,步驟 1還包括步驟61,接收到等待離開組播組的消息時,并檢查該組播組是否存在, 如果存在,則執(zhí)行步驟62,否則不進(jìn)行任何處理;步驟62,根據(jù)組播組地址刪除組播地址與端口號的映射關(guān)系; 步驟63,設(shè)置IGMP報文類型為離開,加入到報文發(fā)送隊列;步驟64,檢查發(fā)送隊列,準(zhǔn)備發(fā)送IGMP報文。
7. 如權(quán)利要求4所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,端口 狀態(tài)包括端口可用和端口不可用。
8. 如權(quán)利要求7所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,步驟 2中,當(dāng)端口狀態(tài)為端口不可用時,在其余可用的端口中選擇一個端口的端 口號作為相應(yīng)的端口號。
9. 如權(quán)利要求8所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方法,其特征在于,步驟 2中,其余可用的端口通過輪詢的方式排列。
10. —種用于如權(quán)利要求l-9任意一項所述的多網(wǎng)口設(shè)備組播的實現(xiàn)方 法的系統(tǒng),其特征在于,包括組播地址與端口號映射模塊,用于在多網(wǎng)口設(shè)備上將一個或多個組播地 址映射到一個端口號,以避免組播目的機(jī)接收相同的報文;組播地址與端口號映射更新模塊,用于當(dāng)所述端口號對應(yīng)的端口狀態(tài)發(fā) 生變化時,將所述一個或多個組播地址更新到相應(yīng)的端口號,以避免因所述 端口號對應(yīng)的端口狀態(tài)發(fā)生變化導(dǎo)致無法發(fā)送IGMP報文。
全文摘要
本發(fā)明涉及一種多網(wǎng)口設(shè)備組播的實現(xiàn)方法,包括步驟1,在多網(wǎng)口設(shè)備上將一個或多個組播地址映射到一個端口號,用于避免組播目的機(jī)接收相同的報文;步驟2,當(dāng)所述端口號對應(yīng)的端口狀態(tài)發(fā)生變化時,將所述一個或多個組播地址更新到相應(yīng)的端口號,用于避免因所述端口號對應(yīng)的端口狀態(tài)發(fā)生變化導(dǎo)致無法發(fā)送工GMP報文。本發(fā)明采用固定的算法,實現(xiàn)了組播地址和有效物理端口的對應(yīng),使得某一個組播地址的IGMP Report報文始終從一個物理端口發(fā)送出去。
文檔編號H04L12/56GK101232510SQ20081010115
公開日2008年7月30日 申請日期2008年2月28日 優(yōu)先權(quán)日2008年2月28日
發(fā)明者王阿忠, 秦春華, 郭樹波 申請人:中興通訊股份有限公司