[0040]為了解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,本申請(qǐng)以下實(shí)施例中提供了一種RPR網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)方法,以及一種可以應(yīng)用該方法的裝置。
[0041]本申請(qǐng)實(shí)施例的RPR網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)方法中,源網(wǎng)絡(luò)設(shè)備對(duì)廣播數(shù)據(jù)報(bào)文、組播數(shù)據(jù)報(bào)文、或目的地址未知的單播數(shù)據(jù)報(bào)文這樣的泛洪數(shù)據(jù)報(bào)文進(jìn)行RPR封裝,并設(shè)置TTL值為RPR網(wǎng)絡(luò)支持的最大網(wǎng)絡(luò)設(shè)備數(shù)、或者RPR網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備總數(shù)減1,然后,將封裝得到的RPR泛洪數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)出去;除源網(wǎng)絡(luò)設(shè)備以外的其它網(wǎng)絡(luò)設(shè)備接收到該RPR泛洪數(shù)據(jù)報(bào)文后,確定該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備是否為發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備以及該RPR泛洪數(shù)據(jù)報(bào)文的TTL值是否大于1,若該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備為發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備或者該RPR泛洪數(shù)據(jù)報(bào)文的TTL值不大于1,則對(duì)該RPR泛洪數(shù)據(jù)報(bào)文進(jìn)行剝離處理,即直接丟棄該RPR泛洪數(shù)據(jù)報(bào)文,若該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備不是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,并且該RPR泛洪數(shù)據(jù)報(bào)文的TTL值大于1,則對(duì)該RPR泛洪數(shù)據(jù)報(bào)文進(jìn)行過(guò)環(huán)處理,即TTL值減1后轉(zhuǎn)發(fā)給該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備。這樣,源網(wǎng)絡(luò)設(shè)備在環(huán)上的上一跳網(wǎng)絡(luò)設(shè)備接收到RPR泛洪數(shù)據(jù)報(bào)文后,不再將該RPR泛洪數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給源網(wǎng)絡(luò)設(shè)備,從而,減輕了該上一網(wǎng)絡(luò)設(shè)備的工作負(fù)擔(dān),而且,節(jié)約了源網(wǎng)絡(luò)設(shè)備與該上一網(wǎng)絡(luò)設(shè)備之間的鏈路帶寬。
[0042]由上可以看出,源網(wǎng)絡(luò)設(shè)備在對(duì)泛洪數(shù)據(jù)報(bào)文進(jìn)行RPR封裝時(shí),可以將TTL值設(shè)置為RPR網(wǎng)絡(luò)支持的最大網(wǎng)絡(luò)設(shè)備數(shù),也可以設(shè)置為RPR網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備總數(shù)減1,下面分別對(duì)設(shè)置為不同值時(shí)的具體實(shí)施方法加以介紹。
[0043]在本申請(qǐng)的一實(shí)施例中,當(dāng)TTL值設(shè)置為RPR網(wǎng)絡(luò)支持的最大網(wǎng)絡(luò)設(shè)備數(shù)時(shí),RPR網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)方法如下:
[0044]源網(wǎng)絡(luò)設(shè)備對(duì)廣播數(shù)據(jù)報(bào)文、組播數(shù)據(jù)報(bào)文、或目的地址未知的單播數(shù)據(jù)報(bào)文這樣的泛洪數(shù)據(jù)報(bào)文進(jìn)行RPR封裝,并設(shè)置TTL值為RPR網(wǎng)絡(luò)支持的最大網(wǎng)絡(luò)設(shè)備數(shù),具體可以為255,然后,將封裝得到的RPR泛洪數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)出去,例如,通過(guò)東向端口沿著0環(huán)轉(zhuǎn)發(fā)出去,或通過(guò)西向端口沿著1環(huán)轉(zhuǎn)發(fā)出去。
[0045]在實(shí)際實(shí)施過(guò)程中,源網(wǎng)絡(luò)設(shè)備在泛洪數(shù)據(jù)報(bào)文中封裝RPR頭,得到RPR泛洪數(shù)據(jù)報(bào)文,之后沿著0環(huán)或1環(huán)轉(zhuǎn)發(fā)出去,其中,RPR頭中除了攜帶TTL值以外,還會(huì)攜帶用于指示本報(bào)文是RPR泛洪數(shù)據(jù)報(bào)文的標(biāo)志位,以及用于指示本報(bào)文是通過(guò)0環(huán)還是1環(huán)轉(zhuǎn)發(fā)的標(biāo)志位。
[0046]網(wǎng)絡(luò)設(shè)備接收到該RPR泛洪數(shù)據(jù)報(bào)文后,執(zhí)行以下操作,如圖2所示:
[0047]步驟S102,判斷本網(wǎng)絡(luò)設(shè)備是否是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,若是,則執(zhí)行步驟S104,否則,執(zhí)行步驟S106 ;
[0048]具體的,判斷該RPR泛洪數(shù)據(jù)報(bào)文的源MAC地址是否是本網(wǎng)絡(luò)設(shè)備的MAC地址,若是,則判斷出本網(wǎng)絡(luò)設(shè)備是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,否則,判斷出本網(wǎng)絡(luò)設(shè)備不是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備。
[0049]步驟S104,對(duì)該RPR泛洪數(shù)據(jù)報(bào)文進(jìn)行剝離處理,即,直接丟棄該RPR泛洪數(shù)據(jù)報(bào)文;
[0050]步驟S106,判斷該RPR泛洪數(shù)據(jù)報(bào)文的TTL值是否大于1,若不大于1,則執(zhí)行步驟S104,若大于1,則執(zhí)行步驟S108 ;
[0051]在實(shí)際實(shí)施過(guò)程中,在步驟S106中還需要對(duì)該RPR泛洪數(shù)據(jù)報(bào)文進(jìn)行下環(huán)處理,艮P,將該RPR泛洪數(shù)據(jù)報(bào)文上送給本網(wǎng)絡(luò)設(shè)備的上層進(jìn)行相應(yīng)處理。
[0052]步驟S108,判斷該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備是否為發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,若是,則執(zhí)行步驟S104,否則,執(zhí)行步驟S110 ;
[0053]在實(shí)際實(shí)施過(guò)程中,由于RPR泛洪數(shù)據(jù)報(bào)文的RPR頭中攜帶有用于指示本報(bào)文是通過(guò)0環(huán)還是1環(huán)轉(zhuǎn)發(fā)的標(biāo)志位,因此,在步驟S108中,可以根據(jù)該標(biāo)志位,在本地的環(huán)網(wǎng)拓?fù)浔碇写_定出本網(wǎng)絡(luò)設(shè)備在該標(biāo)志位所指示的環(huán)(0環(huán)或1環(huán))上的下一跳網(wǎng)絡(luò)設(shè)備,該下一跳網(wǎng)絡(luò)設(shè)備即為該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備,然后,判斷該下一跳網(wǎng)絡(luò)設(shè)備的MAC地址是否為該RPR泛洪數(shù)據(jù)報(bào)文的源MAC地址,若是,則確定該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,否則,確定該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備不是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備。
[0054]步驟S110,對(duì)該RPR泛洪數(shù)據(jù)報(bào)文進(jìn)行過(guò)環(huán)處理,S卩,將該RPR泛洪數(shù)據(jù)報(bào)文的TTL值減1后轉(zhuǎn)發(fā)給該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備。
[0055]本實(shí)施例中,源網(wǎng)絡(luò)設(shè)備發(fā)出封裝有廣播數(shù)據(jù)報(bào)文、組播數(shù)據(jù)報(bào)文、或目的地址未知的單播數(shù)據(jù)報(bào)文,且TTL值為RPR網(wǎng)絡(luò)支持的最大網(wǎng)絡(luò)設(shè)備數(shù)的RPR泛洪數(shù)據(jù)報(bào)文后,當(dāng)該RPR泛洪數(shù)據(jù)報(bào)文在0環(huán)或1環(huán)上走一圈到達(dá)源網(wǎng)絡(luò)設(shè)備的上一跳網(wǎng)絡(luò)設(shè)備時(shí),該上一跳網(wǎng)絡(luò)設(shè)備可以通過(guò)上述步驟S102至步驟S110的方法,判斷出該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,則直接丟棄該RPR泛洪數(shù)據(jù)報(bào)文,而不再執(zhí)行將該RPR泛洪數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給源網(wǎng)絡(luò)設(shè)備這一多余的轉(zhuǎn)發(fā)操作,從而,減輕了該上一網(wǎng)絡(luò)設(shè)備的工作負(fù)擔(dān),而且,節(jié)約了源網(wǎng)絡(luò)設(shè)備與該上一網(wǎng)絡(luò)設(shè)備之間的鏈路帶寬。
[0056]在本申請(qǐng)的另一實(shí)施例中,當(dāng)TTL值設(shè)置為RPR網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備總數(shù)減1時(shí),RPR網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)方法如下:
[0057]源網(wǎng)絡(luò)設(shè)備對(duì)廣播數(shù)據(jù)報(bào)文、組播數(shù)據(jù)報(bào)文、或目的地址未知的單播數(shù)據(jù)報(bào)文這樣的泛洪數(shù)據(jù)報(bào)文進(jìn)行RPR封裝,并設(shè)置TTL值為RPR網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備總數(shù)減1,然后,將封裝得到的RPR泛洪數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)出去,例如,通過(guò)東向端口沿著0環(huán)轉(zhuǎn)發(fā)出去,或通過(guò)西向端口沿著1環(huán)轉(zhuǎn)發(fā)出去。假設(shè),RPR網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備總數(shù)記為N,則該RPR泛洪數(shù)據(jù)報(bào)文的TTL值為N-1。在實(shí)際實(shí)施過(guò)程中,源網(wǎng)絡(luò)設(shè)備在泛洪數(shù)據(jù)報(bào)文中封裝RPR頭,得到RPR泛洪數(shù)據(jù)報(bào)文,之后沿著0環(huán)或1環(huán)轉(zhuǎn)發(fā)出去,其中,RPR頭中除了攜帶TTL值以外,還會(huì)攜帶用于指示本報(bào)文是RPR泛洪數(shù)據(jù)報(bào)文的標(biāo)志位,以及用于指示本報(bào)文是通過(guò)0環(huán)還是1環(huán)轉(zhuǎn)發(fā)的標(biāo)志位。
[0058]網(wǎng)絡(luò)設(shè)備接收到該RPR泛洪數(shù)據(jù)報(bào)文后,可以執(zhí)行如上述步驟S102至步驟S110的操作,還可以執(zhí)行如圖3所示的如下操作:
[0059]步驟S202,判斷本網(wǎng)絡(luò)設(shè)備是否是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,若是,則執(zhí)行步驟S204,否則,執(zhí)行步驟S206 ;
[0060]具體的,判斷該RPR泛洪數(shù)據(jù)報(bào)文的源MAC地址是否是本網(wǎng)絡(luò)設(shè)備的MAC地址,若是,則判斷出本網(wǎng)絡(luò)設(shè)備是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,否則,判斷出本網(wǎng)絡(luò)設(shè)備不是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備。
[0061 ] 步驟S204,對(duì)該RPR泛洪數(shù)據(jù)報(bào)文進(jìn)行剝離處理,即,直接丟棄該RPR泛洪數(shù)據(jù)報(bào)文;
[0062]步驟S206,判斷該RPR泛洪數(shù)據(jù)報(bào)文的TTL值是否大于1,若不大于1,則執(zhí)行步驟S204,若大于1,則執(zhí)行步驟S208 ;
[0063]在實(shí)際實(shí)施過(guò)程中,在步驟S206中還需要對(duì)該RPR泛洪數(shù)據(jù)報(bào)文進(jìn)行下環(huán)處理,艮P,將該RPR泛洪數(shù)據(jù)報(bào)文上送給本網(wǎng)絡(luò)設(shè)備的上層進(jìn)行相應(yīng)處理。
[0064]步驟S208,對(duì)該RPR泛洪數(shù)據(jù)報(bào)文進(jìn)行過(guò)環(huán)處理,S卩,將該RPR泛洪數(shù)據(jù)報(bào)文的TTL值減1后轉(zhuǎn)發(fā)給該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備。
[0065]本實(shí)施例中,源網(wǎng)絡(luò)設(shè)備發(fā)出封裝有廣播數(shù)據(jù)報(bào)文、組播數(shù)據(jù)報(bào)文、或目的地址未知的單播數(shù)據(jù)報(bào)文,且TTL值為RPR網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備總數(shù)減1的RPR泛洪數(shù)據(jù)報(bào)文后,當(dāng)該RPR泛洪數(shù)據(jù)報(bào)文在0環(huán)或1環(huán)上走一圈到達(dá)源網(wǎng)絡(luò)設(shè)備的上一跳網(wǎng)絡(luò)設(shè)備時(shí),該上一跳網(wǎng)絡(luò)設(shè)備可以通過(guò)上述步驟S102至步驟S110的方法判斷出該RPR泛洪數(shù)據(jù)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備是發(fā)送該RPR泛洪數(shù)據(jù)報(bào)文的源網(wǎng)絡(luò)設(shè)備,則直接丟棄該RPR泛洪數(shù)據(jù)報(bào)文;或者,該上一跳網(wǎng)絡(luò)設(shè)備可以通過(guò)上述步驟S202至步驟S208的方法判斷出該RPR泛洪數(shù)據(jù)報(bào)文當(dāng)前的TTL值不大