專利名稱:一種處理igmp報(bào)文的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別涉及 一 種處理因特網(wǎng)群組管理協(xié)議 (IGMP, Internet Group Management Protocol)才艮文的方法禾口裝置。
背景技術(shù):
在現(xiàn)有的二層組播環(huán)境下,通常會(huì)采用環(huán)網(wǎng)方式來(lái)提供冗余鏈路,并且 采用生成樹(shù)協(xié)議(STP, Spanning Tree Protocol)來(lái)阻塞某條鏈路上的端口 , 使組播流能夠根據(jù)實(shí)際需要的端口來(lái)進(jìn)行轉(zhuǎn)發(fā),從而避免環(huán)路。另外,會(huì)采 用IGMP技術(shù)來(lái)管理組播成員,實(shí)現(xiàn)對(duì)組播成員加入組播組或離開(kāi)組播組的控制。
圖l為一種二層組播環(huán)境下的組網(wǎng)結(jié)構(gòu),如圖1所示,該二層組播環(huán)境 為三層交換才幾l、三層交換才幾2和二層交換才幾組成的環(huán)網(wǎng),在該環(huán)網(wǎng)中運(yùn)行 STP和IGMP偵聽(tīng)(snooping)技術(shù)。其中,設(shè)置三層交換機(jī)1為根橋,負(fù) 責(zé)從三層組播環(huán)境中接收組播流,并轉(zhuǎn)發(fā)至二層組播環(huán)境中的設(shè)備;三層交 換2為IGMP查詢器,負(fù)責(zé)在該二層組播環(huán)境中的各虛擬局域網(wǎng)(VLAN) 中發(fā)送IGMP查詢(query)報(bào)文來(lái)獲取組播成員的狀態(tài);二層交換機(jī)連接 用戶端。各交換機(jī)接收到IGMP query報(bào)文后,通過(guò)處于轉(zhuǎn)發(fā)(forwarding ) 狀態(tài)的端口進(jìn)行轉(zhuǎn)發(fā),通過(guò)處于forwarding狀態(tài)的端口接收IGMP report報(bào) 文,并生成轉(zhuǎn)發(fā)表項(xiàng);交換機(jī)中處于阻塞(discarding)狀態(tài)的端口僅處理 STP協(xié)議報(bào)文和點(diǎn)對(duì)點(diǎn)協(xié)議報(bào)文,而不接收和處理IGMP報(bào)文。圖1中作為 根橋的三層交換機(jī)1的所有端口均為forwarding狀態(tài),為了避免環(huán)路運(yùn)行 STP后,假設(shè)二層交換機(jī)的端口 P2被處于discarding狀態(tài),則鏈路3不轉(zhuǎn) 發(fā)流量。作為IGMP查詢器的三層交換機(jī)2周期性發(fā)送的IGMP query報(bào)文通過(guò)鏈路2和鏈路1轉(zhuǎn)發(fā)至二層交換機(jī),再由二層交換機(jī)發(fā)送至用戶端,接 收到用戶端返回的IGMP加入(report)才艮文后,各交換才幾利用IGMP report 報(bào)文建立轉(zhuǎn)發(fā)表項(xiàng),使得組播流通過(guò)鏈路1進(jìn)行轉(zhuǎn)發(fā)。
然而,如果鏈路1發(fā)生故障,運(yùn)行的STP會(huì)迅速啟用鏈路3,將端口 P2轉(zhuǎn)換為forwarding狀態(tài),但是,由于二層交換機(jī)需要等待IGMP查詢器 發(fā)送IGMP query報(bào)文后通過(guò)端口 P2接收并轉(zhuǎn)發(fā)給用戶端,并利用用戶端返 回的IGMP report報(bào)文來(lái)建立基于端口 P2的轉(zhuǎn)發(fā)表項(xiàng),三層交換機(jī)2和三 層交換機(jī)1也需要利用而二層交換機(jī)通過(guò)端口 P2轉(zhuǎn)發(fā)來(lái)的report報(bào)文來(lái)分 別建立以P6和P4為出接口的轉(zhuǎn)發(fā)表項(xiàng)之后,才能夠進(jìn)行組播流的轉(zhuǎn)發(fā)。由 于IGMP查詢器發(fā)送IGMP query報(bào)文的時(shí)間間隔較長(zhǎng),因此,從鏈路1發(fā) 生故障到通過(guò)鏈路2和鏈路3進(jìn)行組播流的恢復(fù)可能需要等待近1分鐘的時(shí) 間,這顯然給組播業(yè)務(wù)造成較長(zhǎng)的中斷時(shí)間。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種處理IGMP報(bào)文的方法和裝置,以便于縮 短鏈路切換后組播流的恢復(fù)時(shí)間。
一種處理IGMP報(bào)文的方法,預(yù)先使能處于阻塞狀態(tài)的端口處理IGMP 才艮文,該方法包4舌
交換機(jī)通過(guò)處于阻塞狀態(tài)的端口接收到或者要發(fā)送IGMP報(bào)文時(shí),判斷
項(xiàng),如果否,則在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP報(bào)文 信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP報(bào)文,并在該IGMP報(bào)文為IGMP加入報(bào)文時(shí), 利用該IGMP報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng);如果是,則丟棄該IGMP報(bào)文。
一種處理IGMP報(bào)文的裝置,該裝置預(yù)先使能處于阻塞狀態(tài)的端口處理 IGMP報(bào)文,該裝置包括判斷單元、報(bào)文表存儲(chǔ)單元、報(bào)文處理單元和報(bào)文 丟棄單元;
所述判斷單元,用于在處于阻塞狀態(tài)的端口接收到或者要發(fā)送IGMP報(bào)文時(shí),判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否已經(jīng)存在包含該IGMP報(bào)文信 息的表項(xiàng);
所述報(bào)文表存儲(chǔ)單元,用于存儲(chǔ)針對(duì)所述處于阻塞狀態(tài)的端口設(shè)置的IGMP 報(bào)文表;
所述報(bào)文處理單元,用于在所述判斷單元的判斷結(jié)果為否時(shí),在針對(duì)所述 端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP 報(bào)文,并在該IGMP報(bào)文為IGMP加入報(bào)文時(shí),利用該IGMP沖艮文創(chuàng)建轉(zhuǎn)發(fā)表
項(xiàng);
所述報(bào)文丟棄單元,用于在所述判斷單元的判斷結(jié)果為是時(shí),丟棄該IGMP報(bào)文。
由以上技術(shù)方案可以看出,在本發(fā)明提供的方法和裝置中,預(yù)先使能處于 阻塞狀態(tài)的端口處理IGMP報(bào)文,交換機(jī)通過(guò)處于阻塞狀態(tài)的端口接收到或者 要發(fā)送IGMP報(bào)文時(shí),判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否已經(jīng)存在包 含該IGMP報(bào)文信息的表項(xiàng),如果否,則在針對(duì)該端口設(shè)置的IGMP報(bào)文表中 創(chuàng)建包含該IGMP報(bào) 文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP報(bào)文,并在該IGMP報(bào)文為 IGMP加入報(bào)文時(shí),利用該IGMP報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng);如果是,則丟棄該IGMP 報(bào)文。也就是說(shuō),預(yù)先在端口處于阻塞狀態(tài)時(shí)創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng),由于該端口處于 阻塞狀態(tài)不會(huì)轉(zhuǎn)發(fā)組播流,用戶端不會(huì)收到2份組播流, 一旦環(huán)網(wǎng)中正在使用 的鏈路發(fā)生故障,運(yùn)行的STP迅速將處于阻塞狀態(tài)的端口切換為轉(zhuǎn)發(fā)狀態(tài),則 該端口可以利用已經(jīng)創(chuàng)建的轉(zhuǎn)發(fā)表項(xiàng)立即轉(zhuǎn)發(fā)組播流,從而縮短鏈路切換后組 播流中斷的時(shí)間。并且,通過(guò)針對(duì)該處于阻塞狀態(tài)的端口設(shè)置IGMP報(bào)文表存 儲(chǔ)IGMP報(bào)文信息來(lái)避免IGMP報(bào)文環(huán)路引起的廣播。
,
圖1為一種二層組播環(huán)境下的組網(wǎng)結(jié)構(gòu);
圖2為本發(fā)明實(shí)施例提供的具體方法流程圖3為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體 實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明提供的方法主要包括預(yù)先使能處于discarding狀態(tài)的端口處理 IGMP報(bào)文;交換機(jī)通過(guò)處于discarding狀態(tài)的端口接收到或者要發(fā)送IGMP 報(bào)文時(shí),判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否已經(jīng)存在包含該IGMP 報(bào)文信息的表項(xiàng),如果否,則在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含 該IGMP報(bào)文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP報(bào)文,并在該IGMP報(bào)文為IGMP report報(bào)文時(shí),利用該IGMP report報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng);如果是,則丟棄該 IGMP l艮文。
現(xiàn)有技術(shù)中,處于discarding狀態(tài)的端口只能處理STP協(xié)議報(bào)文和二層 的點(diǎn)對(duì)點(diǎn)協(xié)議報(bào)文,在本發(fā)明中預(yù)先對(duì)處于discarding狀態(tài)的端口進(jìn)行配置, 例如,為交才吳才幾中的STP才莫塊增力口命令stp igmp ignore, 1吏3尋處于discarding 狀態(tài)的端口也能處理IGMP報(bào)文,其中,IGMP報(bào)文包括IGMP query報(bào)文、 IGMP report報(bào)文或IGMP離開(kāi)(leave)報(bào)文。但是,處于discarding狀態(tài) 的端口仍不能轉(zhuǎn)發(fā)組播流。
由于STP為了避免二層環(huán)路,會(huì)在二層環(huán)路中計(jì)算出一個(gè)處于 discarding狀態(tài)的端口 ,該處于discarding狀態(tài)的端口可能在二層交換沖兒上, 也可能在三層交換機(jī)上,由具體的STP計(jì)算策略來(lái)決定,因此,本發(fā)明提 供方法中的交換機(jī)可以是二層交換機(jī),也可以是三層交換機(jī)。
下面結(jié)合具體實(shí)施例對(duì)上述方法進(jìn)行詳細(xì)描述。圖2為本發(fā)明實(shí)施例提 供的具體方法流程圖,如圖2所示,在交換機(jī)上配置使能處于discarding狀 態(tài)的端口處理IGMP報(bào)文后,該交換機(jī)對(duì)IGMP報(bào)文的處理過(guò)程可以包括以 下步驟
步驟201:交換機(jī)通過(guò)處于discarding狀態(tài)的端口接收到或要發(fā)送IGMP 報(bào)文時(shí),如果該IGMP報(bào)文為IGMP query報(bào)文,則執(zhí)行步驟202;如果該IGMP報(bào)文為IGMP report報(bào)文,則執(zhí)行步驟205;如果該IGMP報(bào)文為IGMP leave報(bào)丈,則執(zhí)行步驟210。
步驟202:判斷針對(duì)該處于discarding狀態(tài)的端口設(shè)置的IGMP報(bào)文表 中是否已經(jīng)存在包含該IGMP query報(bào)文信息的表項(xiàng),如果否,執(zhí)行步驟203, 如果是,則執(zhí)行步驟204。
由于本發(fā)明中配置處于discarding狀態(tài)的端口能夠處理IGMP報(bào)文,為 了避免由于處于discarding狀態(tài)的端口能夠接收和發(fā)送IGMP報(bào)文而引起 IGMP報(bào)文的環(huán)路,因此,可以針對(duì)該處于discarding狀態(tài)的端口設(shè)置IGMP 報(bào)文表,對(duì)該端口的IGMP報(bào)文進(jìn)行監(jiān)視,接收到或要發(fā)送IGMP報(bào)文時(shí), 將該IGMP報(bào)文信息存儲(chǔ)在該IGMP報(bào)文表的表項(xiàng)中,如果再次接收到或要 發(fā)送該IGMP報(bào)文,則IGMP報(bào)文表中已經(jīng)存在包含該IGMP報(bào)文信息的表 項(xiàng),則不再轉(zhuǎn)發(fā)該IGMP報(bào)文,以避免環(huán)路。
步驟203:則在針對(duì)該處于discarding狀態(tài)的端口設(shè)置的IGMP報(bào)文表 中創(chuàng)建包含該IGMP query報(bào)文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP query才艮文,結(jié)束 流程
針對(duì)該處于discarding狀態(tài)的端口設(shè)置的IGMP報(bào)文表中尚未存在包含 該IGMP query報(bào)文信息的表項(xiàng),則說(shuō)明不會(huì)引起IGMP query報(bào)文環(huán)路,則 創(chuàng)建包含該IGMP query報(bào)文信息的表項(xiàng)。該表項(xiàng)中可以包含IGMP query報(bào) 文中攜帶的VLAN標(biāo)識(shí)、目的IP地址信息和有效時(shí)間信息,還可以包含查 詢組信息,例如是特定組查詢報(bào)文還是通用組查詢報(bào)文。其中,有效時(shí)間信 息是表明該IGMP query報(bào)文的有效時(shí)間,以其作為該表項(xiàng)的老化時(shí)間,該 表項(xiàng)中的有效時(shí)間隨著時(shí)間推移遞減。需要說(shuō)明的是,對(duì)于MSTP, 一個(gè)端 口對(duì)于不同的實(shí)例可能具有不同的狀態(tài),即對(duì)應(yīng)不同的VLAN可能處于不 同的狀態(tài),因此,在確定是否為相同的IGMP報(bào)文時(shí),需要區(qū)分具體的VLAN, 需要在表項(xiàng)中對(duì)VLAN標(biāo)識(shí)進(jìn)行記錄。
另外,交換機(jī)在創(chuàng)建了包含該IGMP query報(bào)文信息的表項(xiàng)后,如果該 表項(xiàng)達(dá)到了記錄的IGMP query才艮文的有效日寸間,即該有,文日寸間遞減為0 ,或者,該端口從discarding轉(zhuǎn)變?yōu)閒orwarding,則將該表項(xiàng)刪除。 步驟204:丟棄該IGMP query報(bào)文,結(jié)束流程。
步驟205:判斷針對(duì)該處于discarding狀態(tài)的端口設(shè)置的IGMP報(bào)文表 項(xiàng)中是否存在包含該IGMP report報(bào)文信息的表項(xiàng),如果是,執(zhí)行步驟206, 否則才丸行步驟207。
步驟206:丟棄該IGMP report報(bào)文,結(jié)束流程。
步驟207:判斷針對(duì)該處于discarding狀態(tài)的端口設(shè)置的IGMP報(bào)文表 項(xiàng)中是否存在該IGMP report報(bào)文所對(duì)應(yīng)的IGMP query報(bào)文信息,如果是, 執(zhí)行步驟208,否則,執(zhí)行步驟209。
步驟208:在IGMP報(bào)文表中創(chuàng)建包含該IGMP report報(bào)文信息的表項(xiàng), 將包含對(duì)應(yīng)的IGMP query報(bào)文信息的表項(xiàng)中的有效時(shí)間,作為包含該IGMP i-eport報(bào)文信息的表項(xiàng)的有效時(shí)間,轉(zhuǎn)發(fā)該IGMP r印ort報(bào)文,并利用該IGMP report報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng),結(jié)束流程。
其中,表項(xiàng)中記錄的IGMP report 4艮文信息可以包含IGMP report報(bào)文 中攜帶的VLAN標(biāo)識(shí)、加入的組地址信息,如果是IGMP版本3 ( IGMPv3 ) 情況下,由于各IGMP report報(bào)文存在加入模式的區(qū)別,因此表項(xiàng)中記錄的 IGMP report ^艮文信息還可以包含加入模式信息。
包含該IGMP report報(bào)文信息的表項(xiàng)的有效時(shí)間也會(huì)隨著時(shí)間的推移遞 減,當(dāng)該表項(xiàng)達(dá)到有效時(shí)間時(shí),即遞減為0時(shí),該表項(xiàng)被刪除。
步驟209:在IGMP報(bào)文表中創(chuàng)建包含該IGMP report報(bào)文信息的表項(xiàng), 該表項(xiàng)中的有效時(shí)間采用默認(rèn)的有效時(shí)間,轉(zhuǎn)發(fā)該IGMP report報(bào)文,并利 用該IGMP report 4艮文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng),結(jié)束流程。
本步驟中,當(dāng)先接收到IGMP report報(bào)文時(shí),可以使該表項(xiàng)中的有效時(shí) 間采用默認(rèn)的有效時(shí)間,可以在下次接收到IGMP report對(duì)應(yīng)的IGMP query 報(bào)文時(shí),利用IGMP query報(bào)文中包含的有效時(shí)間進(jìn)行修改。
步驟210:判斷針對(duì)該處于discarding狀態(tài)的端口設(shè)置的IGMP報(bào)文表 項(xiàng)中是否存在包含該IGMP leave報(bào)文信息的表項(xiàng),如果是,則執(zhí)行步驟211,否則執(zhí)行步驟212。
步驟211:丟棄該IGMP leave報(bào)文,結(jié)束流程。
步驟212:判斷針對(duì)該處于discarding狀態(tài)的端口設(shè)置的IGMP報(bào)文表 項(xiàng)中是否存在該IGMP leave報(bào)文所對(duì)應(yīng)的IGMP query報(bào)文信息,如果是, 執(zhí)行步驟213,否則執(zhí)行步驟214。
步驟213:在IGMP報(bào)文表中創(chuàng)建包含該IGMP leave報(bào)文信息的表項(xiàng), 將包含對(duì)應(yīng)的IGMP query報(bào)文信息的表項(xiàng)中的有效時(shí)間作為包含該IGMP leave報(bào)文信息的表項(xiàng)的有效時(shí)間,轉(zhuǎn)發(fā)該IGMP leave報(bào)文,并利用該IGMP leave報(bào)文刪除相應(yīng)的表項(xiàng),結(jié)束流程。
本步驟中創(chuàng)建的表項(xiàng)中包含的IGMP leave報(bào)文信息可以包括VLAN 標(biāo)識(shí)和離開(kāi)組地址信息,另外,該表項(xiàng)的有效時(shí)間也會(huì)隨著時(shí)間的推移遞減, 當(dāng)該表項(xiàng)達(dá)到有效時(shí)間時(shí),即遞減為0時(shí),該表項(xiàng)被刪除。
步驟214:在IGMP報(bào)文表中創(chuàng)建包含該IGMP leave報(bào)文信息的表項(xiàng), 該表項(xiàng)中的有效時(shí)間采用默認(rèn)的有效時(shí)間,轉(zhuǎn)發(fā)該IGMP leave報(bào)文,并利 用該IGMP leave報(bào)文刪除相應(yīng)的轉(zhuǎn)發(fā)表項(xiàng),結(jié)束流程。
另外,由于交換機(jī)可能自身具有IGMP報(bào)文的MAC地址學(xué)習(xí)功能,為 了防止處于discarding狀態(tài)的端口轉(zhuǎn)發(fā)IGMP報(bào)文后,對(duì)端的交換機(jī)學(xué)習(xí)到 MAC地址而導(dǎo)致轉(zhuǎn)發(fā)錯(cuò)誤,可以進(jìn)一步取消交換機(jī)具有的IGMP報(bào)文的 MAC地址學(xué)習(xí)功能。
下面仍以圖1所示組網(wǎng)為例,假設(shè)三層交換機(jī)2的MAC地址小于二層 交換機(jī),各鏈路正常的情況下,通過(guò)運(yùn)行STP計(jì)算出二層交換機(jī)的端口 P2 處于discarding狀態(tài),由于預(yù)先使能了處于discarding狀態(tài)的端口處理IGMP 報(bào)文,因此,端口 P2能夠?qū)ψ鳛镮GMP查詢器的三層交換機(jī)發(fā)送來(lái)的IGMP query報(bào)文進(jìn)行處理,但不轉(zhuǎn)發(fā)組播流。
當(dāng)三層交換機(jī)2發(fā)送IGMP query報(bào)文到端口 P2后,二層交換機(jī)確定針 對(duì)P2設(shè)置的IGMP報(bào)文表中尚不存在包含該IGMP query報(bào)文信息的表項(xiàng), 則在IGMP報(bào)文表中創(chuàng)建包含該IGMP query報(bào)文信息的表項(xiàng),例如,將該IGMP報(bào)文中攜帶的VLAN標(biāo)識(shí)、目的IP地址信息和有效時(shí)間存儲(chǔ)在表項(xiàng) 中,其中,有效時(shí)間會(huì)隨著時(shí)間遞減,當(dāng)有效時(shí)間遞減為0時(shí)刪除該表項(xiàng), 然后轉(zhuǎn)發(fā)該IGMP query報(bào)文。由于該IGMP query報(bào)文除了轉(zhuǎn)發(fā)給用戶端之 外,還會(huì)通過(guò)端口 PI轉(zhuǎn)發(fā)給三層交換機(jī)1,經(jīng)由三層交換機(jī)2再回到二層 交換才幾的端口P2。當(dāng)端口 P2再次4婁收到該IGMP query凈艮文后,由于針對(duì) 端口 P2設(shè)置的IGMP報(bào)文表中已經(jīng)存在包含該IGMP query報(bào)文信息的表 項(xiàng),因此會(huì)丟棄該IGMP query報(bào)文,從而避免IGMP query報(bào)文環(huán)路造成廣 播。
如果有用戶端在接收到IGMP query凈艮文后要加入組播組,則會(huì)回復(fù) IGMP report報(bào)文。二層交換機(jī)通過(guò)端口 P2要發(fā)送該IGMP report寺艮文曰寸, 確定針對(duì)端口 P2設(shè)置的IGMP報(bào)文表中不存在包含該IGMP report報(bào)文信息 的表項(xiàng),進(jìn) 一 步確定該IGMP報(bào)文表中是否存在該IGMP report報(bào)文所對(duì)應(yīng) 的IGMP query報(bào)文信息。由于已經(jīng)存在該IGMP report報(bào)文所對(duì)應(yīng)的IGMP query報(bào)文信息,則二層交換沖幾在IGMP報(bào)文表中創(chuàng)建包含該IGMP report 報(bào)文信息的表項(xiàng),將包含IGMP query報(bào)文的表項(xiàng)中剩余的有效時(shí)間作為創(chuàng) 建的包含IGMP report凈艮文訐l息的表項(xiàng)的有-欠時(shí)間,it匕日于創(chuàng)建的該表項(xiàng)可以 包含VLAN標(biāo)識(shí)、加入的組地址信息和有效時(shí)間;如果是IGMPv3,還可 以進(jìn)一步包含加入才莫式信息。然后,二層交換才幾利用該IGMP report凈艮文創(chuàng) 建轉(zhuǎn)發(fā)表項(xiàng)并轉(zhuǎn)發(fā)該IGMP report報(bào)文。
IGMP report報(bào)文通過(guò)端口 P2轉(zhuǎn)發(fā)給三層路由設(shè)備2和三層路由設(shè)備1 時(shí),三層路由設(shè)備2和三層路由設(shè)備1也會(huì)利用IGMP report報(bào)文創(chuàng)建轉(zhuǎn)發(fā) 表項(xiàng),利用創(chuàng)建的轉(zhuǎn)發(fā)表項(xiàng)組播流能夠被轉(zhuǎn)發(fā)到二層交換機(jī)的端口 P2,但 由于端口 P2仍處于discarding狀態(tài),因此并不會(huì)轉(zhuǎn)發(fā)組播流,用戶端不會(huì) 收到2份流量。
另外,IGMP report報(bào)文經(jīng)由三層路由設(shè)備2和三層路由設(shè)備1會(huì)重新 發(fā)送至二層交換機(jī),二層交換機(jī)的端口 P2在確定IGMP報(bào)文表中已經(jīng)存在 包含該IGMP report報(bào)文信息的表項(xiàng),因此會(huì)丟棄該IGMP report報(bào)文,從而避免IGMP query報(bào)文環(huán)路造成廣播。
在執(zhí)行上述過(guò)程之后,如果鏈路1發(fā)生故障,運(yùn)行的STP會(huì)通過(guò)計(jì)算 迅速將端口 P2轉(zhuǎn)換為forwarding狀態(tài),由于此時(shí)在二層交換機(jī)、三層交換 機(jī)2和三層交換機(jī)1中已經(jīng)在端口 P2處于discarding狀態(tài)時(shí)預(yù)先創(chuàng)建了相 應(yīng)的轉(zhuǎn)發(fā)表項(xiàng),因此,可以立即轉(zhuǎn)發(fā)組播流量而不會(huì)造成長(zhǎng)時(shí)間的中斷。
當(dāng)用戶端要離開(kāi)組播組時(shí)會(huì)發(fā)送IGMP leave報(bào)文,其處理過(guò)程與IGMP report報(bào)文的處理過(guò)程基本相同只是,在IGMP報(bào)文表中創(chuàng)建相應(yīng)表項(xiàng)后, 不是創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng),而是刪除對(duì)應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)。具體過(guò)程不再贅述。
還有其他情況,例如,在運(yùn)行不同的STP時(shí),可能將二層交換機(jī)的端 口 P5設(shè)置為discarding,由于二層交換機(jī)為IGMP查詢器,因此,預(yù)先使能 處于discarding狀態(tài)的端口處理IGMP報(bào)文后,其通過(guò)端口 P5要發(fā)送IGMP query報(bào)文時(shí),也會(huì)在針對(duì)P5設(shè)置的IGMP報(bào)文表中創(chuàng)建包含IGMP query 報(bào)文信息的表項(xiàng),并轉(zhuǎn)發(fā)該IGMP query報(bào)文給二層交換機(jī),并通過(guò)本發(fā)明 的方法在接收到返回的IGMP report報(bào)文后,創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng),但由于端口 P5 處于discarding狀態(tài),因此,不會(huì)轉(zhuǎn)發(fā)組播流。 一旦鏈^各1發(fā)生故障,運(yùn)行 的STP迅速將端口 P5切換為forwarding狀態(tài)時(shí),能夠立即轉(zhuǎn)發(fā)組播流,從 而避免流量中斷。
以上是對(duì)本發(fā)明所提供的方法進(jìn)行的描述,下面對(duì)本發(fā)明所提供的裝置進(jìn) 行詳細(xì)描述。圖3為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)圖,該裝置預(yù)先使能處于阻 塞狀態(tài)的端口處理IGMP報(bào)文,如圖3所示,該裝置可以包括判斷單元301、 報(bào)文表存儲(chǔ)單元302、報(bào)文處理單元303和報(bào)文丟棄單元304。
判斷單元301,用于在處于阻塞狀態(tài)的端口接收到或者要發(fā)送IGMP報(bào)文 時(shí),判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否已經(jīng)存在包含該IGMP報(bào)文信 息的表項(xiàng)。
報(bào)文表存儲(chǔ)單元302,用于存儲(chǔ)針對(duì)處于阻塞狀態(tài)的端口設(shè)置的IGMP報(bào)文表。
報(bào)文處理單元303,用于在判斷單元301的判斷結(jié)果為否時(shí),在針對(duì)端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP報(bào)文, 并在該IGMP報(bào)文為IGMP REPORT報(bào)文時(shí),利用該IGMP報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng)。 報(bào)文丟棄單元304,用于在判斷單元301的判斷結(jié)果為是時(shí),丟棄該IGMP報(bào)文。
其中,上述IGMP報(bào)文可以為IGMP query報(bào)文、IGMP report報(bào)文或IGMP leave報(bào)文。當(dāng)IGMP報(bào)文為IGMP query報(bào)文時(shí),報(bào)文處理單元303創(chuàng)建的包 含IGMP報(bào)文信息的表項(xiàng)中包括該IGMP query報(bào)文中攜帶的有效時(shí)間。
報(bào)丈表存儲(chǔ)單元302存儲(chǔ)的各表項(xiàng)中的有效時(shí)間隨著時(shí)間遞減,遞減為0
時(shí)刪除該表項(xiàng)。
當(dāng)IGMP報(bào)文為IGMP report報(bào)文時(shí),報(bào)文處理單元303在判斷單元301 的判斷單元301為否時(shí),還用于判斷針對(duì)端口設(shè)置的IGMP報(bào)文表中是否存在 包含與該IGMP report推—文對(duì)應(yīng)的IGMP query推-文j言息的.表項(xiàng),如果.是,則扭, 行創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng)操作,并將包含與該IGMP report報(bào)文對(duì) 應(yīng)的IGMP query報(bào)文信息的表項(xiàng)中的有效時(shí)間作為創(chuàng)建的包含該IGMP repoit 報(bào)文信息的表項(xiàng)的有效時(shí)間;如果否,則執(zhí)行創(chuàng)建包含該IGMP報(bào)文信息的表 項(xiàng)操作,并將預(yù)設(shè)的默認(rèn)有效時(shí)間作為該表項(xiàng)的有效時(shí)間。
當(dāng)IGMP報(bào)文為IGMP leave報(bào)文時(shí),報(bào)文處理單元303在判斷單元301 的判斷單元301為否時(shí),還用于判斷針對(duì)端口設(shè)置的IGMP報(bào)文表中是否存 在包含與該IGMP leave報(bào)文對(duì)應(yīng)的IGMP query報(bào)文信息的表項(xiàng),如果是, 則執(zhí)行創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng)纟喿作,并將包含與該IGMP leave 報(bào)文對(duì)應(yīng)的IGMP query報(bào)文信息的表項(xiàng)中的有效時(shí)間作為創(chuàng)建的包含該 IGMP leave報(bào)文信息的表項(xiàng)的有效時(shí)間,利用該IGMP leave報(bào)文刪除對(duì)應(yīng) 的轉(zhuǎn)發(fā)表項(xiàng);如果否,則執(zhí)行創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng)操作,并將 預(yù)設(shè)的默認(rèn)有效時(shí)間作為該表項(xiàng)的有效時(shí)間,利用該IGMP leave報(bào)文刪除 對(duì)應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)。
上述裝置可以設(shè)置在二層交換機(jī)中,也可以設(shè)置在三層交換機(jī)中。
由以上描述可以看出,在本發(fā)明提供的方法和裝置中,預(yù)先使能處于阻塞狀態(tài)的端口處理IGMP報(bào)文,交換機(jī)通過(guò)處于阻塞狀態(tài)的端口接收到或者要發(fā)
送IGMP報(bào)文時(shí),判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否已經(jīng)存在包含該 IGMP報(bào)文信息的表項(xiàng),如果否,則在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建 包含該IGMP報(bào)文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP才艮文,并在該IGMP報(bào)文為IGMP 加入報(bào)文時(shí),利用該IGMP報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng);如果是,則丟棄該IGMP報(bào)文。 也就是說(shuō),預(yù)先在端口處于阻塞狀態(tài)時(shí)創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng),由于該端口處于阻塞狀 態(tài)不會(huì)轉(zhuǎn)發(fā)組播流,用戶端不會(huì)收到2份組播流, 一旦環(huán)網(wǎng)中正在使用的鏈路 發(fā)生故障,運(yùn)行的STP迅速將處于阻塞狀態(tài)的端口切換為轉(zhuǎn)發(fā)狀態(tài),則該端口 可以利用已經(jīng)創(chuàng)建的轉(zhuǎn)發(fā)表項(xiàng)立即轉(zhuǎn)發(fā)組播流,從而縮短組播流中斷的時(shí)間。 并且,通過(guò)針對(duì)該處于阻塞狀態(tài)的端口設(shè)置IGMP報(bào)文表存儲(chǔ)IGMP報(bào)文信息 來(lái)避免IGMP報(bào)文環(huán)路引起的廣播。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本 發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在 本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1、一種處理因特網(wǎng)群組管理協(xié)議IGMP報(bào)文的方法,其特征在于,預(yù)先使能處于阻塞狀態(tài)的端口處理IGMP報(bào)文,該方法包括交換機(jī)通過(guò)處于阻塞狀態(tài)的端口接收到或者要發(fā)送IGMP報(bào)文時(shí),判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否已經(jīng)存在包含該IGMP報(bào)文信息的表項(xiàng),如果否,則在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP報(bào)文,并在該IGMP報(bào)文為IGMP加入報(bào)文時(shí),利用該IGMP報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng);如果是,則丟棄該IGMP報(bào)文。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)所述IGMP報(bào)文為IGMP 查詢報(bào)文時(shí),所述IGMP報(bào)文信息包括VLAN標(biāo)識(shí)、目的IP地址信息和有效 時(shí)間;當(dāng)所述IGMP報(bào)文為IGMP加入報(bào)文時(shí),所述IGMP報(bào)文信息包括VLAN 標(biāo)識(shí)和加入的組地址信息,或者,VLAN標(biāo)識(shí)、加入的組地址信息和加入模式 信息;當(dāng)所述IGMP報(bào)文IGMP離開(kāi)報(bào)文時(shí),所述IGMP報(bào)文信息包括VLAN 標(biāo)識(shí)和離開(kāi)的組地址信息。
3、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,當(dāng)所述IGMP報(bào)文為IGMP 查詢報(bào)文時(shí),所述包含該IGMP報(bào)文信息的表項(xiàng)中包括所述IGMP查詢寺艮文中 攜帶的有效時(shí)間;IGMP報(bào)文表的各表項(xiàng)中的有效時(shí)間隨著時(shí)間遞減,遞減為0 時(shí)刪除該表項(xiàng),或者所述端口從阻塞狀態(tài)切換為轉(zhuǎn)發(fā)狀態(tài)時(shí)刪除該表項(xiàng)。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述IGMP報(bào)文為IGMP 加入報(bào)文時(shí),在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP報(bào)文信息 的表項(xiàng)之前還包括判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否存在包含與該 IGMP加入報(bào)文對(duì)應(yīng)的IGMP查詢報(bào)文信息的表項(xiàng),如果是,繼續(xù)執(zhí)行在針對(duì) 該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP加入報(bào)文信息的表項(xiàng),并將包 含與該IGMP加入報(bào)文對(duì)應(yīng)的IGMP查詢報(bào)文信息的表項(xiàng)中的有效時(shí)間作為創(chuàng)建的包含該IGMP加入報(bào)文信息的表項(xiàng)的有效時(shí)間;如果否,繼續(xù)執(zhí)行在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP加入報(bào)文信息的表項(xiàng),并將預(yù) 設(shè)的默認(rèn)有效時(shí)間作為該表項(xiàng)的有效時(shí)間。
5、 根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述IGMP報(bào)文為IGMP 離開(kāi)報(bào)文時(shí),在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP報(bào)文信息 的表項(xiàng)之前還包括判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否存在包含與該 IGMP離開(kāi)報(bào)文對(duì)應(yīng)的IGMP查詢報(bào)文信息的表項(xiàng),如果是,繼續(xù)執(zhí)行在針對(duì) 該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP離開(kāi)報(bào)文信息的表項(xiàng),并將包 含與該IGMP離開(kāi)報(bào)文對(duì)應(yīng)的IGMP查詢報(bào)文信息的表項(xiàng)中的有效時(shí)間作為創(chuàng) 建的包含該IGMP離開(kāi)報(bào)文信息的表項(xiàng)的有效時(shí)間,利用該IGMP離開(kāi)報(bào)文刪 除對(duì)應(yīng)的轉(zhuǎn)發(fā)表項(xiàng);如果否,繼續(xù)執(zhí)行在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng) 建包含該IGMP離開(kāi)報(bào)文信息的表項(xiàng),.并將預(yù)設(shè)的默認(rèn)有效時(shí)間作為該表項(xiàng)的 有效時(shí)間,利用該IGMP離開(kāi)報(bào)文刪除對(duì)應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)。
6、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,該方法還包括取消交 換機(jī)利用IGMP報(bào)文學(xué)習(xí)MAC地址的功能。
7、 一種處理IGMP報(bào)文的裝置,其特征在于,該裝置預(yù)先使能處于阻塞狀 態(tài)的端口處理IGMP報(bào)文,該裝置包括判斷單元、報(bào)文表存儲(chǔ)單元、報(bào)文處 理單元和報(bào)文丟棄單元;所述判斷單元,用于在處于阻塞狀態(tài)的端口接收到或者要發(fā)送IGMP報(bào)文 時(shí),判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否已經(jīng)存在包含該IGMP報(bào)文信 息的表項(xiàng);所述報(bào)文表存儲(chǔ)單元,用于存儲(chǔ)針對(duì)所述處于阻塞狀態(tài)的端口設(shè)置的IGMP 報(bào)文表;所述報(bào)文處理單元,用于在所述判斷單元的判斷結(jié)果為否時(shí),在針對(duì)所述 端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP 報(bào)文,并在該IGMP報(bào)文為IGMP加入纟艮文時(shí),利用該IGMP報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表 項(xiàng);所述報(bào)文丟棄單元,用于在所述判斷單元的判斷結(jié)果為是時(shí),丟棄該IGMP 報(bào)文。
8、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,當(dāng)所述IGMP報(bào)文為IGMP 查詢報(bào)文時(shí),所述報(bào)文處理單元?jiǎng)?chuàng)建的包含IGMP報(bào)文信息的表項(xiàng)中包括該 IGMP查詢才艮文中攜帶的有效時(shí)間;所述報(bào)文表存儲(chǔ)單元存儲(chǔ)的各表項(xiàng)中的有效時(shí)間隨著時(shí)間遞減,遞減為0 時(shí)刪除該表項(xiàng)。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,當(dāng)所述IGMP報(bào)文為IGMP 加入報(bào)文時(shí),所述報(bào)文處理單元在所述判斷單元的判斷單元為否時(shí),還用于判 斷針對(duì)所述端口設(shè)置的IGMP報(bào)文表中是否存在包含與該IGMP加入報(bào)文對(duì)應(yīng) 的IGMP查詢報(bào)文信息的表項(xiàng),如果是,則執(zhí)行所述創(chuàng)建包含該IGMP報(bào)文信 息的表項(xiàng)操作,并將包含與該IGMP加入報(bào)文對(duì)應(yīng)的1GMP查詢報(bào)文信息的表 項(xiàng)中的有效時(shí)間作為創(chuàng)建的包含該IGMP加入報(bào)文信息的表項(xiàng)的有效時(shí)間;如 果否,則執(zhí)行所述創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng)操作,并將預(yù)設(shè)的默認(rèn)有 效時(shí)間作為該表項(xiàng)的有效時(shí)間。
10、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,當(dāng)所述IGMP報(bào)文為IGMP 離開(kāi)報(bào)文時(shí),所述報(bào)文處理單元在所述判斷單元的判斷單元為否時(shí),還用于判 斷針對(duì)所述端口設(shè)置的IGMP報(bào)文表中是否存在包含與該IGMP離開(kāi)報(bào)文對(duì)應(yīng) 的IGMP查詢報(bào)文信息的表項(xiàng),如果是,則執(zhí)行所述創(chuàng)建包含該IGMP報(bào)文信 息的表項(xiàng)操作,并將包含與該IGMP離開(kāi)報(bào)文對(duì)應(yīng)的IGMP查詢報(bào)文信息的表 項(xiàng)中的有效時(shí)間作為創(chuàng)建的包含該IGMP離開(kāi)報(bào)文信息的表項(xiàng)的有效時(shí)間,利 用該IGMP離開(kāi)報(bào)文刪除對(duì)應(yīng)的轉(zhuǎn)發(fā)表項(xiàng);如果否,則執(zhí)行所述創(chuàng)建包含該 IGMP報(bào)文信息的表項(xiàng)操作,并將預(yù)設(shè)的默認(rèn)有效時(shí)間作為該表項(xiàng)的有效時(shí)間, 利用該IGMP離開(kāi)報(bào)文刪除對(duì)應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)。
全文摘要
本發(fā)明提供了一種處理因特網(wǎng)組管理協(xié)議(IGMP)報(bào)文的方法和裝置,預(yù)先使能處于阻塞狀態(tài)的端口處理IGMP報(bào)文,其中,方法包括交換機(jī)通過(guò)處于阻塞狀態(tài)的端口接收到或者要發(fā)送IGMP報(bào)文時(shí),判斷針對(duì)該端口設(shè)置的IGMP報(bào)文表中是否已經(jīng)存在包含該IGMP報(bào)文信息的表項(xiàng),如果否,則在針對(duì)該端口設(shè)置的IGMP報(bào)文表中創(chuàng)建包含該IGMP報(bào)文信息的表項(xiàng),轉(zhuǎn)發(fā)該IGMP報(bào)文,并在該IGMP報(bào)文為IGMP加入報(bào)文時(shí),利用該IGMP報(bào)文創(chuàng)建轉(zhuǎn)發(fā)表項(xiàng);如果是,則丟棄該IGMP報(bào)文。本發(fā)明能夠縮短鏈路切換后組播流中斷的時(shí)間,并避免IGMP報(bào)文環(huán)路引起的廣播。
文檔編號(hào)H04L29/06GK101448003SQ20081024072
公開(kāi)日2009年6月3日 申請(qǐng)日期2008年12月23日 優(yōu)先權(quán)日2008年12月23日
發(fā)明者嶺 沈 申請(qǐng)人:杭州華三通信技術(shù)有限公司