專(zhuān)利名稱(chēng):以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法及裝置。
背景技術(shù):
以太環(huán)網(wǎng)(Ethernet ring)保護(hù)技術(shù)是一種在環(huán)網(wǎng)拓?fù)湎碌囊蕴珮I(yè)務(wù)高性能保護(hù)倒換的技術(shù)。圖1示出了一個(gè)通常的以太環(huán)網(wǎng),其中,交換機(jī)S1 S5通過(guò)端口間的連接構(gòu)成環(huán)路,如交換機(jī)Sl的Pl 1端口與交換機(jī)S5的P52端口連接,交換機(jī)Sl的P12端口與交換機(jī) S2的P21端口連接等。一臺(tái)主機(jī)Hl與交換機(jī)Sl上的一個(gè)端口連接,另一臺(tái)主機(jī)H2與交換機(jī)S3上的一個(gè)端口連接,以使得兩臺(tái)主機(jī)能通過(guò)由交換機(jī)Si、S5、S4、S3連成的路徑,例如圖1中箭頭所指的路徑,進(jìn)行數(shù)據(jù)交互。當(dāng)該以太環(huán)網(wǎng)正常運(yùn)行時(shí),其中一個(gè)交換機(jī)的某一個(gè)端口,如交換機(jī)S2的端口 P22,被阻塞,阻止除環(huán)路探測(cè)報(bào)文,如HEALTH報(bào)文,以外的其它報(bào)文通過(guò)該端口,以防止報(bào)文在環(huán)路中轉(zhuǎn)發(fā)而導(dǎo)致的廣播風(fēng)暴,因此,主機(jī)Hl與主機(jī)H2之間只能通過(guò)圖1中箭頭所指的路徑進(jìn)行數(shù)據(jù)交互。其中,環(huán)路探測(cè)報(bào)文由負(fù)責(zé)阻塞端口的交換機(jī)發(fā)送,用于探測(cè)環(huán)網(wǎng)拓?fù)涫欠裢暾?。?dāng)環(huán)路上某兩個(gè)相鄰的交換機(jī)間的鏈路,如S4和S5間的鏈路,即圖1中叉號(hào)表示的位置,發(fā)生故障,則以太環(huán)網(wǎng)上運(yùn)行的協(xié)議,例如以太環(huán)網(wǎng)保護(hù)倒換(Ethernet Ring Protection Switching,簡(jiǎn)稱(chēng)為 ERPS)或快速環(huán)保護(hù)協(xié)議(Rapid Ring Protection Protocol,簡(jiǎn)稱(chēng)為RRPP),會(huì)觸發(fā)故障倒換(failover),即與故障鏈路相連的交換機(jī),如交換機(jī)S4和交換機(jī)S5,在環(huán)路上廣播鏈路失效通知報(bào)文,而負(fù)責(zé)阻塞端口的交換機(jī)S2收到該鏈路失效通知報(bào)文后,會(huì)放開(kāi)被阻塞的端口 P22,然后該負(fù)責(zé)阻塞端口的交換機(jī)S2刷新本地的介質(zhì)訪問(wèn)控制(Media Access Control,MAC)地址表并在環(huán)路上廣播刷新指示報(bào)文,例如RING-D0WN-FLUSH-FDB報(bào)文,以指示環(huán)路上的其它交換機(jī)各自刷新(flush) MAC地址表。單播(Unicast)報(bào)文的目的地址為單播地址,交換機(jī)對(duì)單播報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí)需先查找本地MAC地址表中該目的地址所對(duì)應(yīng)的端口,當(dāng)查找到對(duì)應(yīng)的端口時(shí),交換機(jī)將該報(bào)文從該端口轉(zhuǎn)發(fā),從而實(shí)現(xiàn)單播報(bào)文的單播轉(zhuǎn)發(fā)。當(dāng)以太環(huán)網(wǎng)故障倒換時(shí),MAC地址表刷新需要花費(fèi)一定的時(shí)間,尤其是MAC地址表中表項(xiàng)較多的情況下,可能會(huì)花費(fèi)數(shù)十至數(shù)百毫秒,因此,在MAC地址表刷新完成前,單播報(bào)文依舊會(huì)通過(guò)鏈路故障前MAC地址表所對(duì)應(yīng)的端口轉(zhuǎn)發(fā)。例如,主機(jī)Hl向主機(jī)H2發(fā)送的單播報(bào)文在交換機(jī)Sl上按鏈路故障前MAC地址表所對(duì)應(yīng)的端口 P21將該報(bào)文轉(zhuǎn)發(fā)至交換機(jī)S5,由于S4和S5間的鏈路故障,使得該單播報(bào)文無(wú)法到達(dá)主機(jī)H2,從而,導(dǎo)致以太環(huán)網(wǎng)故障倒換時(shí),且在MAC地址表刷新完成之前單播轉(zhuǎn)發(fā)的業(yè)務(wù)流,即順序發(fā)送的多個(gè)單播報(bào)文,中斷。直到MAC地址表刷新完成后,已中斷的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流才能恢復(fù)
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法及裝置,可使以太環(huán)網(wǎng)在故障倒換時(shí)不需要等待MAC地址表刷新完成就能恢復(fù)已中斷的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流,使業(yè)務(wù)流能到達(dá)目的主機(jī)。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下 技術(shù)方案一種以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法,包括所述以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)接收?qǐng)?bào)文;如果所述報(bào)文中的目的地址為單播地址,且所述目的地址包含于本地的MAC地址表中,則所述交換機(jī)查找本地的MAC地址表中對(duì)應(yīng)于所述目的地址的目的端口 ;如果所述目的端口的廣播標(biāo)記位為置位狀態(tài),則所述交換機(jī)廣播所述報(bào)文;所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位由所述交換機(jī)在本地的MAC地址表刷新完成前設(shè)置成置位狀態(tài),在本地的MAC地址表刷新完成后設(shè)置成復(fù)位狀態(tài)。一種以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的裝置,包括接收模塊,用于接收?qǐng)?bào)文;查找模塊,用于當(dāng)所述報(bào)文中的目的地址為單播地址,且所述目的地址包含于本地的MAC地址表中時(shí),查找本地的MAC地址表中對(duì)應(yīng)于所述目的地址的目的端口 ;轉(zhuǎn)發(fā)模塊, 用于當(dāng)所述目的端口的廣播標(biāo)記位為置位狀態(tài)時(shí),廣播所述報(bào)文;設(shè)置模塊,用于在本地的 MAC地址表刷新完成前,將所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位設(shè)置成置位狀態(tài),在本地的MAC地址表刷新完成后,將所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位設(shè)置成復(fù)位狀態(tài)。本發(fā)明實(shí)施例提供的以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法及裝置中, 由于在MAC地址表刷新完成前,交換機(jī)將該以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置為置位狀態(tài),如果交換機(jī)接收到的單播報(bào)文中的目的地址存在于本地的MAC地址表中,且該目的地址對(duì)應(yīng)的目的端口的廣播標(biāo)志位為置位狀態(tài)時(shí),會(huì)廣播該單播報(bào)文。因此,可在以太環(huán)網(wǎng)故障倒換時(shí),減少鏈路故障導(dǎo)致的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流中斷的時(shí)間,即使得以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)不需要等待MAC地址表刷新完成,在MAC地址表刷新完成前自廣播標(biāo)記位設(shè)置為置位狀態(tài)起,就能恢復(fù)已中斷的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流,實(shí)現(xiàn)了以太環(huán)網(wǎng)故障倒換時(shí)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的快速恢復(fù)。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為采用現(xiàn)有協(xié)議實(shí)現(xiàn)的以太環(huán)網(wǎng)故障倒換示意圖;圖2為本發(fā)明實(shí)施例1提供的以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法流程圖;圖3為采用本發(fā)明實(shí)施例1提供的方法實(shí)現(xiàn)的以太環(huán)網(wǎng)故障倒換示意圖;圖4為本發(fā)明實(shí)施例2提供的交換機(jī)的方框圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例1本發(fā)明實(shí)施例提供一種以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)二層單播業(yè)務(wù)流的方法,如圖2 所示,該方法包括如下步驟。
201、以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)接收?qǐng)?bào)文。具體地,當(dāng)以太環(huán)網(wǎng)上出現(xiàn)故障,觸發(fā)了以太環(huán)網(wǎng)故障倒換時(shí),負(fù)責(zé)阻塞端口的交換機(jī)放開(kāi)被阻塞的端口,接下來(lái),該以太環(huán)網(wǎng)的環(huán)路上的所有交換機(jī)會(huì)刷新各自的本地的 MAC地址表。交換機(jī)本地的MAC地址表是指設(shè)置于該交換機(jī)中的MAC地址表。在環(huán)路上各交換機(jī)完成本地的MAC地址表刷新前,環(huán)路上的各交換機(jī)會(huì)不斷地收到各種類(lèi)型的報(bào)文, 交換機(jī)對(duì)接收到的報(bào)文進(jìn)行下述步驟202的處理。202、如果所述接收到的報(bào)文中的目的地址為單播地址,且所述目的地址包含于本地的MAC地址表中,則所述交換機(jī)查找本地的MAC地址表中對(duì)應(yīng)于所述目的地址的目的端具體地,交換機(jī)對(duì)接收到的報(bào)文進(jìn)行分析時(shí),先提取出該報(bào)文中的目的地址,再判斷該目的地址為單播地址還是廣播地址,如果是單播地址,則該報(bào)文為單播報(bào)文,如果是廣播地址,則該報(bào)文為廣播報(bào)文。如果收到的報(bào)文為單播報(bào)文,則交換機(jī)在本地的MAC地址表中查找該目的地址對(duì)應(yīng)的表項(xiàng),如果查到有該目的地址對(duì)應(yīng)的表項(xiàng),說(shuō)明該目的地址包含于本地的MAC地址表中,然后,交換機(jī)提取查找到的該表項(xiàng)中目的地址對(duì)應(yīng)的目的端口,該目的端口用于指示交換機(jī)將該報(bào)文從哪個(gè)端口轉(zhuǎn)發(fā)出去。203、如果所述目的端口的廣播標(biāo)記位為置位狀態(tài),則所述交換機(jī)廣播所述報(bào)文; 所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位由所述交換機(jī)在本地的MAC地址表刷新完成前設(shè)置成置位狀態(tài),在本地的MAC地址表刷新完成后設(shè)置成復(fù)位狀態(tài)。具體的,本實(shí)施例中以太環(huán)網(wǎng)的環(huán)路上的端口設(shè)置有廣播標(biāo)記位,以太環(huán)網(wǎng)的環(huán)路上的端口是指以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)與相鄰的、構(gòu)成該環(huán)路的其它交換機(jī)之間連接的端口。該廣播標(biāo)記位可以是一個(gè)二進(jìn)制位,有至少兩個(gè)狀態(tài),舉例來(lái)說(shuō),“0”表示復(fù)位狀態(tài);“1”表示置位狀態(tài)。交換機(jī)中以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位的初始狀態(tài)為復(fù)位狀態(tài)。當(dāng)環(huán)路上負(fù)責(zé)阻塞端口的交換機(jī)放開(kāi)被阻塞的端口后,會(huì)開(kāi)始刷新本地的MAC地址表并向以太環(huán)網(wǎng)的環(huán)路上其它的交換機(jī)發(fā)送刷新指示報(bào)文,例如RING-DOWN-FLUSH-FDB 報(bào)文。負(fù)責(zé)阻塞端口的交換機(jī)可在放開(kāi)被阻塞的端口后將以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置為置位狀態(tài)。如果刷新指示報(bào)文在本地的MAC地址表刷新前發(fā)送,負(fù)責(zé)阻塞端口的交換機(jī)也可以在發(fā)送刷新指示報(bào)文后將以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置為置位狀態(tài)。當(dāng)然,對(duì)環(huán)路上端口的廣播標(biāo)記位置位的時(shí)機(jī)并不限于上述兩種,可以是以太環(huán)網(wǎng)發(fā)生鏈路故障至交換機(jī)本地的MAC地址表刷新完成之間的其它任何一個(gè)時(shí)機(jī),例如開(kāi)始刷新本地的MAC地址表時(shí),或收到環(huán)路上的鏈路失效通知報(bào)文時(shí)。環(huán)路上除負(fù)責(zé)阻塞端口的交換機(jī)外的其它交換機(jī)可在收到該刷新指示報(bào)文后,將以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置成置位狀態(tài)??蛇x的,環(huán)路上除負(fù)責(zé)阻塞端口的交換機(jī)外的其它交換機(jī)也可以在收到環(huán)路的鏈路失效通知報(bào)文后,將該環(huán)路上端口的廣播標(biāo)記位設(shè)置成置位狀態(tài)。環(huán)路上除負(fù)責(zé)阻塞端口的交換機(jī)也可以在以太環(huán)網(wǎng)發(fā)生鏈路故障至交換機(jī)本地的MAC地址表刷新完成之間的其它任何一個(gè)時(shí)機(jī)對(duì)該環(huán)路上端口的廣播標(biāo)記位置位。當(dāng)交換機(jī)完成本 地的MAC地址表的刷新后,將已設(shè)置成置位狀態(tài)的以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置成復(fù)位狀態(tài)。MAC地址表刷新(flush)是指刪除目的端口為環(huán)路上端口的MAC地址表項(xiàng)。交換機(jī)中以太環(huán)網(wǎng)的環(huán)路上端口是在建立環(huán)路時(shí)人工通過(guò)配置軟件對(duì)交換機(jī)上的端口進(jìn)行配置后獲得的。一臺(tái)交換機(jī)上的多個(gè)端口可分別屬于不同的環(huán)路,在對(duì)交換機(jī)上的端口配置完成后,交換機(jī)在運(yùn)行過(guò)程中就能識(shí)別哪些端口屬于哪個(gè)環(huán)路。如果查找到的報(bào)文的目的地址對(duì)應(yīng)的目的端口的廣播標(biāo)記位為置位狀態(tài),交換機(jī)廣播該報(bào)文。上述廣播包括將報(bào)文從除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā),以及在本環(huán)路中除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā)。交換機(jī)上的各端口可能屬于不同的環(huán)路,如果將報(bào)文從除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā),可能會(huì)使在某一環(huán)路中單播轉(zhuǎn)發(fā)的單播報(bào)文在該環(huán)路發(fā)生鏈路故障時(shí)轉(zhuǎn)發(fā)至其它環(huán)路中。因此也可以選擇僅在本環(huán)路中廣播。本實(shí)施例提供的以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法中,由于在MAC 地址表刷新完成前,交換機(jī)將該以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置為置位狀態(tài),如果交換機(jī)接收到的單播報(bào)文中的目的地址存在于本地的MAC地址表中,且該目的地址對(duì)應(yīng)的目的端口的廣播標(biāo)志位為置位狀態(tài)時(shí),會(huì)廣播該單播報(bào)文。因此,可在以太環(huán)網(wǎng)故障倒換時(shí),減少鏈路故障導(dǎo)致的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流中斷的時(shí)間,即使得以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)不需要等待MAC地址表刷新完成,在MAC地址表刷新完成前自廣播標(biāo)記位設(shè)置為置位狀態(tài)起,就能恢復(fù)已中斷的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流,實(shí)現(xiàn)了以太環(huán)網(wǎng)故障倒換時(shí)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的快速恢復(fù)。上述方法還可包括如果所述接收到的報(bào)文中的目的地址為廣播地址,則所述交換機(jī)對(duì)所述接收到的報(bào)文進(jìn)行廣播轉(zhuǎn)發(fā),即將報(bào)文從除了接收該報(bào)文的端口以外的其它所
有端口轉(zhuǎn)發(fā)。具體地,目的地址為廣播地址的報(bào)文為廣播(Broadcast)報(bào)文,交換機(jī)不需要查找本地的MAC地址表就可以在環(huán)路上廣播轉(zhuǎn)發(fā)該報(bào)文。如果所述接收到的報(bào)文中的目的地址為單播地址,并且該目的地址不在本地的 MAC地址表中,則對(duì)所述接收到的報(bào)文進(jìn)行廣播轉(zhuǎn)發(fā),即將報(bào)文從除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā)。另外,上述步驟202之后還可包括如果所述目的端口的廣播標(biāo)記位為復(fù)位狀態(tài), 則所述交換機(jī)通過(guò)所述目的端口單播轉(zhuǎn)發(fā)所述報(bào)文。上述目的端口的廣播標(biāo)記位可設(shè)置于交換機(jī)中的具有存儲(chǔ)數(shù)據(jù)功能的組件內(nèi), 該組件可以是現(xiàn)場(chǎng)可編程門(mén)陣列(Field-Programmable Gate Array, FPGA)內(nèi),或者是復(fù)雜可編程邏輯器件(Complex Programmable Logic Device,CPLD),或者是專(zhuān)用集成電路(Application Specific Integrated Circuit,ASIC),或者是網(wǎng)絡(luò)處理器(Network Processor, NP)0 下面參照?qǐng)D3對(duì)本實(shí)施例提供的以太環(huán)網(wǎng)在故障倒換時(shí)單播報(bào)文轉(zhuǎn)發(fā)方法的一個(gè)應(yīng)用場(chǎng)景進(jìn)行舉例說(shuō)明。 圖3示出的以太環(huán)網(wǎng)與圖1所示的以太環(huán)網(wǎng)結(jié)構(gòu)相同,其中,交換機(jī)Sl S5通過(guò)端口間的連接構(gòu)成環(huán)路,交換機(jī)Sl的Pll端口和P12端口、交換機(jī)S2的P21端口和P22端口、交換機(jī)S3的P31端口和P32端口、交換機(jī)S4的P41端口和P42端口,以及交換機(jī)S5的 P51端口和P52端口是該以太環(huán)網(wǎng)的環(huán)路上的端口。一臺(tái)主機(jī)Hl通過(guò)非環(huán)路端口連接在交換機(jī)Sl上,另一臺(tái)主機(jī)H2也通過(guò)非環(huán)路端口連接在交換機(jī)S3上。當(dāng)該以太環(huán)網(wǎng)正常運(yùn)行時(shí),交換機(jī)S2的端口 P22被阻塞。主機(jī)Hl發(fā)向主機(jī)H2的報(bào)文依次經(jīng)過(guò)交換機(jī)Si、交換機(jī) S5、交換機(jī)S4、交換機(jī)S3。 當(dāng)交換機(jī)S4與S5之間的鏈路發(fā)生故障(圖3中叉號(hào)所示的位置)時(shí),觸發(fā)以太環(huán)網(wǎng)故障倒換,交換機(jī)S2放開(kāi)被阻塞的端口 P22,然后,交換機(jī)S2刷新本地的MAC地址表并在環(huán)路上廣播刷新指示報(bào)文,例如RING-DOWN-FLUSH-FDB報(bào)文,交換機(jī)S2在放開(kāi)被阻塞的端口 P22后立刻將以太環(huán)網(wǎng)的環(huán)路上的端口設(shè)置為置位狀態(tài)。環(huán)路上的除交換機(jī)S2以外的交換機(jī)在收到該刷新指示報(bào)文后,將該以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置成置位狀態(tài)。交換機(jī)Sl接收到主機(jī)Hl發(fā)送至主機(jī)H2的單播報(bào)文后,如果查找到該報(bào)文中的目的地址對(duì)應(yīng)的目的端口 Pll的廣播標(biāo)記位為置位狀態(tài),則交換機(jī)Sl不僅在端口 Pll對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā),在端口 P12上也轉(zhuǎn)發(fā)該報(bào)文,報(bào)文到達(dá)交換機(jī)S2時(shí),由于交換機(jī)S2中MAC地址表中不存在對(duì)應(yīng)該報(bào)文中目的地址的表項(xiàng),因此交換機(jī)S2對(duì)該報(bào)文進(jìn)行廣播轉(zhuǎn)發(fā),使得該報(bào)文到達(dá)交換機(jī)S3,交換機(jī)S3所做的操作與交換機(jī)S2相同,從而使得該報(bào)文最終到達(dá)目的地——主機(jī)H2,圖中箭頭指出了的報(bào)文從主機(jī)Hl到主機(jī)H2轉(zhuǎn)發(fā)的路徑。報(bào)文從主機(jī)Hl到主機(jī)H2轉(zhuǎn)發(fā)的路徑中的各交換機(jī)在收到主機(jī)Hl發(fā)給主機(jī)H2的上述報(bào)文時(shí),除了進(jìn)行上述轉(zhuǎn)發(fā)過(guò)程外,還會(huì)進(jìn)行MAC地址的學(xué)習(xí)過(guò)程,即判斷收到的報(bào)文中的源地址未包含于本地的MAC地址表中時(shí),將接收該報(bào)文的端口及該報(bào)文中的源地址的對(duì)應(yīng)關(guān)系保存在本地的MAC地址表中。例如,交換機(jī)S2收到來(lái)自端口 P21的第一報(bào)文后,查找本地MAC地址表中沒(méi)有與該第一報(bào)文的目的地址相關(guān)的表項(xiàng),因此,將該第一報(bào)文進(jìn)行廣播轉(zhuǎn)發(fā)。如果第一報(bào)文的源地址未包含于本地的MAC地址表中,則將端口 P21及該第一報(bào)文中的源地址的對(duì)應(yīng)關(guān)系保存在本地的MAC地址表中。此后,當(dāng)交換機(jī)S2從端口 P21以外的端口收到第二報(bào)文,且該第二報(bào)文中的目的地址與上述已保存的第一報(bào)文中的源地址相同時(shí),則交換機(jī)將該第二報(bào)文在端口 P21轉(zhuǎn)發(fā)。實(shí)施例2本實(shí)施例提供一種以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的裝置,該裝置主要由交換機(jī)實(shí)現(xiàn),所述交換機(jī)包括背板及以太網(wǎng)接口,背板上可以設(shè)置有中央處理器 (Central Processing Unit,CPU)、交換芯片、數(shù)據(jù)緩存芯片、物理層(Physical Layer, PHY)芯片等。如圖4所示,所述裝置包括接收模塊41,用于接收?qǐng)?bào)文;
查找模塊42,用于當(dāng)所述報(bào)文中的目的地址為單播地址,且所述目的地址包含于本地的MAC地址表中時(shí),查找本地的MAC地址表中對(duì)應(yīng)于所述目的地址的目的端口 ;
本地的MAC地址表是指設(shè)置于實(shí)現(xiàn)該裝置的交換機(jī)中的MAC地址表。轉(zhuǎn)發(fā)模塊43,用于當(dāng)所述目的端口的廣播標(biāo)記位為置位狀態(tài)時(shí),廣播所述報(bào)文;設(shè)置模塊44,用于在本地的MAC地址表刷新完成前,將所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位設(shè)置成置位狀態(tài),在本地的MAC地址表刷新完成后,將所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位設(shè)置成復(fù)位狀態(tài)。下面以交換機(jī)替代本實(shí)施例提供的以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的裝置,詳細(xì)說(shuō)明該裝置各模塊所執(zhí)行的方法。在交換機(jī)所屬的以太環(huán)網(wǎng)故障倒換時(shí),以太環(huán)網(wǎng)的環(huán)路上負(fù)責(zé)阻塞端口的交換機(jī)放開(kāi)被阻塞的端口,接下來(lái),該以太環(huán)網(wǎng)的環(huán)路上的所有交換機(jī)會(huì)刷新各自的本地的MAC 地址表。交換機(jī)本地的MAC地址表是指設(shè)置于該交換機(jī)中的MAC地址表。在環(huán)路上各交換機(jī)完成本地的MAC地址表刷新前,環(huán)路上的各交換機(jī)會(huì)通過(guò)接收模塊41不斷地收到各種類(lèi)型的報(bào)文,交換機(jī)會(huì)對(duì)接收到的報(bào)文進(jìn)行下述處理。如果所述接收到的報(bào)文中的目的地址為單播地址,且所述目的地址包含于本地的 MAC地址表中,則所述交換機(jī)通過(guò)查找模塊42查找本地的中對(duì)應(yīng)于所述目的地址的目的端具體地,交換機(jī)對(duì)接收到的報(bào)文進(jìn)行分析時(shí),先提取出該報(bào)文中的目的地址,再判斷該目的地址為單播地址還是廣播地址,如果是單播地址,則該報(bào)文為單播報(bào)文,如果是廣播地址,則該報(bào)文為廣播報(bào)文。如果收到的報(bào)文為單播報(bào)文,則交換機(jī)在本地的MAC地址表中查找該目的地址對(duì)應(yīng)的表項(xiàng),如果查到有該目的地址對(duì)應(yīng)的表項(xiàng),說(shuō)明該目的地址包含于本地的MAC地址表中,然后,交換機(jī)通過(guò)查找模塊42提取查找到的該表項(xiàng)中目的地址對(duì)應(yīng)的目的端口,該目的端口用于指示交換機(jī)將該報(bào)文從哪個(gè)端口轉(zhuǎn)發(fā)出去。如果所述目的端口的廣播標(biāo)記位為置位狀態(tài),則所述交換機(jī)通過(guò)轉(zhuǎn)發(fā)模塊43廣播所述報(bào)文;所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位由所述交換機(jī)在刷新本地的MAC 地址表前通過(guò)設(shè)置模塊44設(shè)置成置位狀態(tài),在本地的MAC地址表刷新完成后通過(guò)設(shè)置模塊 44設(shè)置成復(fù)位狀態(tài)。具體的,本實(shí)施例中以太環(huán)網(wǎng)的環(huán)路上的端口設(shè)置有廣播標(biāo)記位,以太環(huán)網(wǎng)的環(huán)路上的端口是指以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)與相鄰的、構(gòu)成該環(huán)路的其它交換機(jī)之間連接的端口。該廣播標(biāo)記位可以是一個(gè)二進(jìn)制位,有至少兩個(gè)狀態(tài),舉例來(lái)說(shuō),“0”表示復(fù)位狀態(tài);“1”表示置位狀態(tài)。交換機(jī)中以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位的初始狀態(tài)為復(fù)位狀態(tài)。
當(dāng)環(huán)路上負(fù)責(zé)阻塞端口的交換機(jī)放開(kāi)被阻塞的端口后,會(huì)開(kāi)始刷新本地的MAC地址表并向以太環(huán)網(wǎng)的環(huán)路上其它的交換機(jī)發(fā)送刷新指示報(bào)文,例如RING-DOWN-FLUSH-FDB 報(bào)文。負(fù)責(zé)阻塞端口的交換機(jī)可在放開(kāi)被阻塞的端口后通過(guò)設(shè)置模塊44將以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置為置位狀態(tài)。如果刷新指示報(bào)文在本地的MAC地址表刷新前發(fā)送,負(fù)責(zé)阻塞端口的交換機(jī)也可以在發(fā)送刷新指示報(bào)文后通過(guò)設(shè)置模塊44將以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置為置位狀態(tài)。當(dāng)然,對(duì)環(huán)路上端口的廣播標(biāo)記位置位的時(shí)機(jī)并不限于上述兩種,可以是以太環(huán)網(wǎng)發(fā)生鏈路故障至交換機(jī)本地的MAC地址表刷新完成之間的其它任何一個(gè)時(shí)機(jī),例如開(kāi)始刷新本地的MAC地址表時(shí),或收到環(huán)路上的鏈路失效通知報(bào)文時(shí)。環(huán)路上除負(fù)責(zé)阻塞端口的交換機(jī)外的其它交換機(jī)可在收到該刷新指示報(bào)文后,通過(guò)設(shè)置模塊44將以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置成置位狀態(tài)??蛇x的,環(huán)路上除負(fù)責(zé)阻塞端口的交換機(jī) 外的其它交換機(jī)也可以在收到環(huán)路的鏈路失效通知報(bào)文后,通過(guò)設(shè)置模塊44將該環(huán)路上端口的廣播標(biāo)記位設(shè)置成置位狀態(tài)。環(huán)路上除負(fù)責(zé)阻塞端口的交換機(jī)也可以在以太環(huán)網(wǎng)發(fā)生鏈路故障至交換機(jī)本地的MAC地址表刷新完成之間的其它任何一個(gè)時(shí)機(jī)通過(guò)設(shè)置模塊44對(duì)該環(huán)路上端口的廣播標(biāo)記位置位。當(dāng)交換機(jī)完成本地的MAC地址表的刷新后,通過(guò)設(shè)置模塊44將已設(shè)置成置位狀態(tài)的以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置成復(fù)位狀態(tài)。MAC地址表刷新(flush)是指刪除目的端口為環(huán)路上端口的MAC地址表項(xiàng)。交換機(jī)中以太環(huán)網(wǎng)的環(huán)路上端口是在建立環(huán)路時(shí)人工通過(guò)配置軟件對(duì)交換機(jī)上的端口進(jìn)行配置后獲得的。一臺(tái)交換機(jī)上的多個(gè)端口可分別屬于不同的環(huán)路,在對(duì)交換機(jī)上的端口配置完成后,交換機(jī)在運(yùn)行過(guò)程中就能識(shí)別哪些端口屬于哪個(gè)環(huán)路。如果查找到的報(bào)文的目的地址對(duì)應(yīng)的目的端口的廣播標(biāo)記位為置位狀態(tài),交換機(jī)通過(guò)轉(zhuǎn)發(fā)模塊43廣播該報(bào)文。上述廣播包括將報(bào)文從除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā),以及在本環(huán)路中除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā)。交換機(jī)上的各端口可能屬于不同的環(huán)路,如果將報(bào)文從除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā),可能會(huì)使在某一環(huán)路中單播轉(zhuǎn)發(fā)的單播報(bào)文在該環(huán)路發(fā)生鏈路故障時(shí)轉(zhuǎn)發(fā)至其它環(huán)路中。因此也可以選擇僅在本環(huán)路中廣播。如果所述接收到的報(bào)文中的目的地址為廣播地址,則所述交換機(jī)通過(guò)轉(zhuǎn)發(fā)模塊43 對(duì)所述接收到的報(bào)文進(jìn)行廣播轉(zhuǎn)發(fā),即將報(bào)文從除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā)。具體地,目的地址為廣播地址的報(bào)文為廣播(Broadcast)報(bào)文,交換機(jī)不需要查找本地的MAC地址表就可以通過(guò)轉(zhuǎn)發(fā)模塊43在環(huán)路上廣播轉(zhuǎn)發(fā)該報(bào)文。如果所述接收到的報(bào)文中的目的地址為單播地址,并且該目的地址不在本地的 MAC地址表中,則對(duì)所述接收到的報(bào)文通過(guò)轉(zhuǎn)發(fā)模塊43進(jìn)行廣播轉(zhuǎn)發(fā),即將報(bào)文從除了接收該報(bào)文的端口以外的其它所有端口轉(zhuǎn)發(fā)。另外,如果所述目的端口的廣播標(biāo)記位為復(fù)位狀態(tài),則所述交換機(jī)通過(guò)轉(zhuǎn)發(fā)模塊 43將所述報(bào)文從所述目的端口單播轉(zhuǎn)發(fā)。上述目的端口的廣播標(biāo)記位可設(shè)置于交換機(jī)中的具有存儲(chǔ)數(shù)據(jù)功能的組件內(nèi), 該組件可以是現(xiàn)場(chǎng)可編程門(mén)陣列(Field-Programmable Gate Array, FPGA)內(nèi),或者是復(fù)雜可編程邏輯器件(Complex Programmable Logic Device,CPLD),或者是專(zhuān)用集成電路(Application Specific Integrated Circuit,ASIC),或者是網(wǎng)絡(luò)處理器(Network Processor, NP)。本實(shí)施例提供的以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的裝置中,由于在MAC 地址表刷新完成前,交換機(jī)將該以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置為置位狀態(tài),如果交換機(jī)接收到的單播報(bào)文中 的目的地址存在于本地的MAC地址表中,且該目的地址對(duì)應(yīng)的目的端口的廣播標(biāo)志位為置位狀態(tài)時(shí),會(huì)廣播該單播報(bào)文。因此,可在以太環(huán)網(wǎng)故障倒換時(shí),減少鏈路故障導(dǎo)致的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流中斷的時(shí)間,即使得以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)不需要等待MAC地址表刷新完成,在MAC地址表刷新完成前自廣播標(biāo)記位設(shè)置為置位狀態(tài)起,就能恢復(fù)已中斷的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流,實(shí)現(xiàn)了以太環(huán)網(wǎng)故障倒換時(shí)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的快速恢復(fù)。本發(fā)明實(shí)施例主要用于支持各種環(huán)網(wǎng)協(xié)議的以太環(huán)網(wǎng)中。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法,其特征在于,包括 所述以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)接收?qǐng)?bào)文;如果所述報(bào)文中的目的地址為單播地址,且所述目的地址包含于本地的MAC地址表中,則所述交換機(jī)查找本地的MAC地址表中對(duì)應(yīng)于所述目的地址的目的端口 ; 如果所述目的端口的廣播標(biāo)記位為置位狀態(tài),則所述交換機(jī)廣播所述報(bào)文; 所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位由所述交換機(jī)在本地的MAC地址表刷新完成前設(shè)置成置位狀態(tài),在本地的MAC地址表刷新完成后設(shè)置成復(fù)位狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目的端口的廣播標(biāo)記位設(shè)置在所述交換機(jī)中的具有存儲(chǔ)數(shù)據(jù)功能的組件內(nèi)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述交換機(jī)查找本地的中對(duì)應(yīng)于所述目的地址的目的端口之后,還包括如果所述目的端口的廣播標(biāo)記位為復(fù)位狀態(tài),則所述交換機(jī)對(duì)所述報(bào)文進(jìn)行單播轉(zhuǎn)發(fā)。
4.一種以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的裝置,其特征在于,包括 接收模塊,用于接收?qǐng)?bào)文;查找模塊,用于當(dāng)所述報(bào)文中的目的地址為單播地址,且所述目的地址包含于本地的 MAC地址表中時(shí),查找本地的MAC地址表中對(duì)應(yīng)于所述目的地址的目的端口 ; 轉(zhuǎn)發(fā)模塊,用于當(dāng)所述目的端口的廣播標(biāo)記位為置位狀態(tài)時(shí),廣播所述報(bào)文; 設(shè)置模塊,用于在本地的MAC地址表刷新完成前,將所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位設(shè)置成置位狀態(tài),在本地的MAC地址表刷新完成后,將所述以太環(huán)網(wǎng)的環(huán)路上的端口的廣播標(biāo)記位設(shè)置成復(fù)位狀態(tài)。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述目的端口的廣播標(biāo)記位設(shè)置在所述裝置中的具有存儲(chǔ)數(shù)據(jù)功能的組件內(nèi)。
6.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述轉(zhuǎn)發(fā)模塊還用于當(dāng)所述目的端口的廣播標(biāo)記位為復(fù)位狀態(tài)時(shí),對(duì)所述報(bào)文進(jìn)行單播轉(zhuǎn)發(fā)。
全文摘要
本發(fā)明公開(kāi)了一種以太環(huán)網(wǎng)故障倒換時(shí)恢復(fù)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的方法及裝置,涉及通信技術(shù)領(lǐng)域,解決了以太環(huán)網(wǎng)故障倒換時(shí),且在MAC地址表刷新完成之前由于鏈路故障導(dǎo)致的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流中斷的問(wèn)題。本發(fā)明實(shí)施例中,由于在MAC地址表刷新完成前,交換機(jī)將該以太環(huán)網(wǎng)的環(huán)路上端口的廣播標(biāo)記位設(shè)置為置位狀態(tài),如果交換機(jī)接收到的單播報(bào)文中的目的地址對(duì)應(yīng)的目的端口的廣播標(biāo)志位為置位狀態(tài)時(shí),交換機(jī)會(huì)廣播該單播報(bào)文。因此,可使得以太環(huán)網(wǎng)的環(huán)路上的交換機(jī)不需要等待MAC地址表刷新完成就能恢復(fù)已中斷的單播轉(zhuǎn)發(fā)的業(yè)務(wù)流,實(shí)現(xiàn)了以太環(huán)網(wǎng)故障倒換時(shí)單播轉(zhuǎn)發(fā)業(yè)務(wù)流的快速恢復(fù)。
文檔編號(hào)H04L12/437GK102347881SQ20111029791
公開(kāi)日2012年2月8日 申請(qǐng)日期2011年9月30日 優(yōu)先權(quán)日2011年9月30日
發(fā)明者謝瑩 申請(qǐng)人:華為技術(shù)有限公司