本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種報(bào)文生成方法、報(bào)文轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
在現(xiàn)有技術(shù)中,數(shù)據(jù)在進(jìn)入網(wǎng)絡(luò)時(shí)要接入大量的增值業(yè)務(wù)設(shè)備,如防病毒設(shè)備、加速設(shè)備、防火墻設(shè)備以及網(wǎng)絡(luò)地址轉(zhuǎn)換(networkaddresstranslation,簡(jiǎn)稱為nat)設(shè)備等。流量沒有差異化的區(qū)分必須一次通過這些業(yè)務(wù)設(shè)備,給這些設(shè)備造成了不必要的負(fù)擔(dān),限制了服務(wù)資源的優(yōu)化,配置復(fù)雜,很難實(shí)現(xiàn)服務(wù)配置的快速變化。
針對(duì)上述問題,相關(guān)技術(shù)中提出了業(yè)務(wù)鏈的方式:業(yè)務(wù)功能鏈(servicefunctionchain,簡(jiǎn)稱為sfc),即把所有的服務(wù)業(yè)務(wù)整合,虛擬出業(yè)務(wù)臨時(shí)層(serviceoverlay),形成自己的服務(wù)拓?fù)?,和底層網(wǎng)絡(luò)解耦合,不再受到底層網(wǎng)絡(luò)結(jié)構(gòu)的限制,架構(gòu)如圖1所示。流量所要經(jīng)過的業(yè)務(wù)由sfc決定。sfc通過增加對(duì)每條業(yè)務(wù)功能路徑(servicefunctionpath,簡(jiǎn)稱為sfp)的標(biāo)識(shí)(sfpidentifier,簡(jiǎn)稱為sfpid),并對(duì)報(bào)文進(jìn)行分級(jí),給不同級(jí)別的流量分配不同的sfp。轉(zhuǎn)發(fā)設(shè)備則依據(jù)sfp的標(biāo)識(shí)來對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)。從而實(shí)現(xiàn)針對(duì)不同的流量,可以實(shí)施不同的業(yè)務(wù)鏈處理,實(shí)現(xiàn)差異化需求。
如圖1所示,圖中示出了業(yè)務(wù)功能(servicefunction,簡(jiǎn)稱為sf),業(yè)務(wù)功能轉(zhuǎn)發(fā)器(servicefunctionfollower,簡(jiǎn)稱為sff)。其中,sff依據(jù)報(bào)文中攜帶的sfpid選擇不同的sf或者sff對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),即從分類器(classifier)或sff收到的報(bào)文,sff會(huì)依據(jù)報(bào)文的sfpid轉(zhuǎn)發(fā)到屬于這條業(yè)務(wù)鏈路徑的sf;從sf收到的報(bào)文,sff會(huì)依據(jù)報(bào)文的sfpid選擇出下一跳,然后根據(jù)下一跳的地址將報(bào)文送到下一個(gè)sff上。
目前的業(yè)務(wù)鏈都是點(diǎn)到點(diǎn)的線性結(jié)構(gòu),這種線性結(jié)構(gòu)適用于目的地址為一個(gè)的單播報(bào)文,但是對(duì)于目的地址為多個(gè)的組播報(bào)文,則無法對(duì)不同目的地址的組播報(bào)文做出差異化的業(yè)務(wù)處理。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種報(bào)文生成方法、報(bào)文轉(zhuǎn)發(fā)方法及裝置,以至少解決無法對(duì)不同目的地址的組播報(bào)文做出差異化的業(yè)務(wù)處理的問題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種報(bào)文生成方法,包括:分類器接收?qǐng)?bào)文;所述分類器在所述報(bào)文中添加預(yù)定標(biāo)識(shí),其中,所述預(yù)定標(biāo)識(shí)用于指示所述報(bào)文是否是組播報(bào)文。
可選地,所述分類器在所述報(bào)文中添加所述預(yù)定標(biāo)識(shí)包括:所述分類器在所述報(bào)文的業(yè)務(wù)功能鏈sfc頭部添加所述預(yù)定標(biāo)識(shí)。
可選地,所述分類器在所述報(bào)文中添加所述預(yù)定標(biāo)識(shí)包括:所述分類器在所述報(bào)文的業(yè)務(wù)功能鏈sfc頭部添加業(yè)務(wù)功能路徑標(biāo)識(shí)sfpid,其中,所述sfpid中攜帶有所述預(yù)定標(biāo)識(shí)。
可選地,在所述分類器在所述報(bào)文中添加預(yù)定標(biāo)識(shí)之前,所述方法還包括:所述分類器接收控制器下發(fā)的轉(zhuǎn)發(fā)策略,其中,所述轉(zhuǎn)發(fā)策略是由所述控制器根據(jù)所述報(bào)文的報(bào)文內(nèi)容生成的,所述轉(zhuǎn)發(fā)策略包括所述預(yù)定標(biāo)識(shí)。
可選地,所述報(bào)文內(nèi)容包括以下至少之一:所述報(bào)文的頭部的地址信息;應(yīng)用對(duì)所述報(bào)文的業(yè)務(wù)處理需求信息。
可選地,在所述分類器在所述報(bào)文中添加所述預(yù)定標(biāo)識(shí)之前,所述方法還包括:判斷所述報(bào)文是否為組播報(bào)文;所述分類器在所述報(bào)文中添加所述預(yù)定標(biāo)識(shí)包括:在所述報(bào)文為組播報(bào)文的情況下,將所述預(yù)定標(biāo)識(shí)置位;在所述報(bào)文不為組播報(bào)文的情況下,將所述預(yù)定標(biāo)識(shí)清零。
可選地,在所述分類器在所述報(bào)文中添加所述預(yù)定標(biāo)識(shí)之后,所述方法還包括:所述分類器依據(jù)所述預(yù)定標(biāo)識(shí)查詢與所述預(yù)定標(biāo)識(shí)對(duì)應(yīng)的轉(zhuǎn)發(fā)策略,并將所述報(bào)文發(fā)送至從該轉(zhuǎn)發(fā)策略中查詢到的下一跳地址。
可選地,在查詢到的所述下一跳地址為多個(gè)的情況下,所述分類器將所述報(bào)文發(fā)送至所述下一跳地址包括:所述分類器將所述報(bào)文復(fù)制成多份;所述分類器將復(fù)制成多份的所述報(bào)文發(fā)送至多個(gè)下一跳地址。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種報(bào)文轉(zhuǎn)發(fā)方法,包括:業(yè)務(wù)功能轉(zhuǎn)發(fā)器sff接收?qǐng)?bào)文;所述sff判斷所述報(bào)文中業(yè)務(wù)功能鏈sfc頭部的預(yù)定標(biāo)識(shí)是否置位,其中,所述預(yù)定標(biāo)識(shí)置位時(shí)用于指示所述報(bào)文為組播報(bào)文;在判斷結(jié)果為是的情況下,所述sff查詢所述報(bào)文的下一跳地址;所述sff將所述報(bào)文發(fā)送至所述下一跳地址。
可選地,所述sff判斷所述報(bào)文中sfc頭部的所述預(yù)定標(biāo)識(shí)是否置位包括:所述sff解析所述報(bào)文的業(yè)務(wù)功能鏈sfc頭部,得到業(yè)務(wù)功能路徑標(biāo)識(shí)sfpid;所述sff判斷所述sfpid中的所述預(yù)定標(biāo)識(shí)是否置位。
可選地,所述sff查詢所述報(bào)文的所述下一跳地址包括:所述sff根據(jù)所述報(bào)文的業(yè)務(wù)功能路徑標(biāo)識(shí)sfpid,查詢所述報(bào)文的所述下一跳地址。
可選地,在所述下一跳地址為多個(gè)的情況下,所述sff將所述報(bào)文發(fā)送至所述下一跳地址包括:所述sff將所述報(bào)文復(fù)制成多份;所述sff將復(fù)制成多份的所述報(bào)文發(fā)送至多個(gè)所述下一跳地址。
可選地,在所述sff查詢所述報(bào)文的所述下一跳地址之前,所述方法還包括:所述sff接收控制器下發(fā)的所述報(bào)文的所述下一跳地址和/或所述報(bào)文的業(yè)務(wù)功能路徑sfp,其中,所述下一跳地址和/或所述sfp是由所述控制器根據(jù)所述報(bào)文的目的地址和業(yè)務(wù)功能鏈sfc的拓?fù)湫畔⑸傻摹?/p>
根據(jù)本發(fā)明的一個(gè)方面,提供了一種報(bào)文生成裝置,應(yīng)用于分類器,包括:第一接收模塊,用于接收?qǐng)?bào)文;添加模塊,用于在所述報(bào)文中添加預(yù)定標(biāo)識(shí),其中,所述預(yù)定標(biāo)識(shí)用于指示所述報(bào)文是否是組播報(bào)文。
可選地,所述添加模塊用于:在所述報(bào)文的業(yè)務(wù)功能鏈sfc頭部添加所述預(yù)定標(biāo)識(shí)。
可選地,所述添加模塊用于:在所述報(bào)文的業(yè)務(wù)功能鏈sfc頭部添加業(yè)務(wù)功能路徑標(biāo)識(shí)sfpid,其中,所述sfpid中攜帶有所述預(yù)定標(biāo)識(shí)。
可選地,所述裝置還包括:第二接收模塊,用于接收控制器下發(fā)的轉(zhuǎn)發(fā)策略,其中,所述轉(zhuǎn)發(fā)策略是由所述控制器根據(jù)所述報(bào)文的報(bào)文內(nèi)容生成的,所述轉(zhuǎn)發(fā)策略包括所述預(yù)定標(biāo)識(shí)。
可選地,所述裝置還包括:第一查詢模塊,用于依據(jù)所述預(yù)定標(biāo)識(shí)查詢與所述預(yù)定標(biāo)識(shí)對(duì)應(yīng)的轉(zhuǎn)發(fā)策略;第一發(fā)送模塊,用于將所述報(bào)文發(fā)送至從該轉(zhuǎn)發(fā)策略中查詢到的下一跳地址。
可選地,所述第一發(fā)送模塊包括:第一復(fù)制單元,用于在查詢到的所述下一跳地址為多個(gè)的情況下,將所述報(bào)文復(fù)制成多份;第一發(fā)送單元,用于將復(fù)制成多份的所述報(bào)文發(fā)送至多個(gè)下一跳地址。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用于業(yè)務(wù)功能轉(zhuǎn)發(fā)器sff,包括:第三接收模塊,用于接收?qǐng)?bào)文;判斷模塊,用于判斷所述報(bào)文中業(yè)務(wù)功能鏈sfc頭部的預(yù)定標(biāo)識(shí)是否置位,其中,所述預(yù)定標(biāo)識(shí)置位時(shí)用于指示所述報(bào)文為組播報(bào)文;第二查詢模塊,用于在判斷結(jié)果為是的情況下,查詢所述報(bào)文的下一跳地址;第二發(fā)送模塊,用于將所述報(bào)文發(fā)送至所述下一跳地址。
可選地,所述判斷模塊包括:解析單元,用于解析所述報(bào)文的業(yè)務(wù)功能鏈sfc頭部,得到業(yè)務(wù)功能路徑標(biāo)識(shí)sfpid;判斷單元,用于判斷所述sfpid中的所述預(yù)定標(biāo)識(shí)是否置位。
可選地,所述第二查詢模塊用于:根據(jù)所述報(bào)文的業(yè)務(wù)功能路徑標(biāo)識(shí)sfpid,查詢所述報(bào)文的所述下一跳地址。
可選地,所述第二發(fā)送模塊包括:第二復(fù)制單元,用于在查詢到的所述下一跳地址為多個(gè)的情況下,將所述報(bào)文復(fù)制成多份;第二發(fā)送單元,用于將復(fù)制成多份的所述報(bào)文發(fā)送至多個(gè)所述下一跳地址。
可選地,所述裝置還包括:第四接收模塊,用于接收控制器下發(fā)的所述報(bào)文的所述下一跳地址和/或所述報(bào)文的業(yè)務(wù)功能路徑sfp,其中,所述下一跳地址和/或所述sfp是由所述控制器根據(jù)所述報(bào)文的目的地址和業(yè)務(wù)功能鏈sfc的拓?fù)湫畔⑸傻摹?/p>
通過本發(fā)明,采用分類器接收?qǐng)?bào)文;分類器判斷報(bào)文是否為組播報(bào)文;分類器在報(bào)文中添加預(yù)定標(biāo)識(shí),其中,預(yù)定標(biāo)識(shí)用于指示報(bào)文是否是組播報(bào)文的方式,解決了無法對(duì)不同目的地址的組播報(bào)文做出差異化的業(yè)務(wù)處理的問題,實(shí)現(xiàn)了對(duì)不同目的地址的組播報(bào)文的差異化業(yè)務(wù)處理。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)相關(guān)技術(shù)的報(bào)文轉(zhuǎn)發(fā)的示意圖;
圖2是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成方法的流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)方法的流程圖;
圖4是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成裝置的結(jié)構(gòu)框圖;
圖5是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成裝置的可選結(jié)構(gòu)框圖一;
圖6是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成裝置的可選結(jié)構(gòu)框圖二;
圖7是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成裝置的可選結(jié)構(gòu)框圖三;
圖8是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)框圖;
圖9是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置的可選結(jié)構(gòu)框圖一;
圖10是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置的可選結(jié)構(gòu)框圖二;
圖11是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置的可選結(jié)構(gòu)框圖三;
圖12是根據(jù)本發(fā)明可選實(shí)施例的報(bào)文轉(zhuǎn)發(fā)的示意圖一;
圖13是根據(jù)本發(fā)明可選實(shí)施例的報(bào)文轉(zhuǎn)發(fā)的示意圖二。
具體實(shí)施方式
下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。
在本實(shí)施例中提供了一種報(bào)文生成方法,圖2是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成方法的流程圖,如圖2所示,該流程包括如下步驟:
步驟s202,分類器接收?qǐng)?bào)文;
步驟s204,分類器在報(bào)文中添加預(yù)定標(biāo)識(shí),其中,預(yù)定標(biāo)識(shí)用于指示報(bào)文是否是組播報(bào)文。
通過上述步驟,在需要發(fā)送到至少兩個(gè)目的地的組播報(bào)文中添加了預(yù)定標(biāo)識(shí)進(jìn)行區(qū)別,使得在轉(zhuǎn)發(fā)過程中可以對(duì)該報(bào)文進(jìn)行識(shí)別,從而進(jìn)行差異化的業(yè)務(wù)處理。例如,在相關(guān)技術(shù)中,無論是目的地址是一個(gè)的報(bào)文還是目的地址是多個(gè)的報(bào)文,執(zhí)行的流程是相同的:在分類器或者業(yè)務(wù)功能轉(zhuǎn)發(fā)器中,即使查詢到報(bào)文具有兩個(gè)下一跳地址,也只會(huì)根據(jù)這兩個(gè)下一跳地址中的其中一個(gè)下一跳地址進(jìn)行轉(zhuǎn)發(fā),另外一個(gè)下一跳地址可能只是用于指示保護(hù)路徑或者其他用途。在采用上述步驟對(duì)報(bào)文進(jìn)行標(biāo)識(shí)之后,對(duì)于標(biāo)識(shí)為至少兩個(gè)目的地的報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),則可以進(jìn)行差異化的業(yè)務(wù)處理。例如,可以查詢預(yù)設(shè)的下一跳映射表(與單播報(bào)文的下一跳映射表可以相同也可以不同),在查詢到多個(gè)下一跳地址的情況下,可以同時(shí)將報(bào)文分別從這多個(gè)下一跳地址進(jìn)行轉(zhuǎn)發(fā)。
可見,通過上述步驟,解決了無法對(duì)不同目的地址的組播報(bào)文做出差異化的業(yè)務(wù)處理的問題,實(shí)現(xiàn)了對(duì)不同目的地址的組播報(bào)文的差異化業(yè)務(wù)處理。
該組播報(bào)文具有下列特征:
a.組播報(bào)文的目的主機(jī)(即目的地址)位于不同網(wǎng)絡(luò),他們的某些業(yè)務(wù)功能處理是在各自的網(wǎng)絡(luò)中(即組播報(bào)文的sfp為點(diǎn)到多點(diǎn)(ptmp)的sfp,該sfc可以是線性sfc,但是組播報(bào)文的sfp為分叉的sfp);
b.組播報(bào)文不同的目的主機(jī)需要進(jìn)行不同的業(yè)務(wù)功能處理(即該sfc為分叉的sfc)。
可選地,預(yù)定標(biāo)識(shí)可以添加在報(bào)文中規(guī)定的位置上,例如,在sfc頭部中添加預(yù)定標(biāo)識(shí)??蛇x地,分類器在報(bào)文的sfc頭部中添加sfpid,其中,sfpid中攜帶有預(yù)定標(biāo)識(shí)。sfpid用于指示報(bào)文的sfp。
可選地,一個(gè)報(bào)文是否需要發(fā)送到至少兩個(gè)目的地可以是根據(jù)報(bào)文的特征預(yù)先設(shè)置的,也可以控制器根據(jù)需要進(jìn)行分別配置的。在控制器生成并下發(fā)報(bào)文的轉(zhuǎn)發(fā)策略之后,分類器接收控制器下發(fā)的轉(zhuǎn)發(fā)策略,其中,轉(zhuǎn)發(fā)策略是由控制器根據(jù)報(bào)文的報(bào)文內(nèi)容生成的,該轉(zhuǎn)發(fā)策略包括置位或者清零的預(yù)定標(biāo)識(shí)。通過該方式,可以實(shí)現(xiàn)對(duì)特定報(bào)文的配置,從而實(shí)現(xiàn)特定報(bào)文的組播方式轉(zhuǎn)發(fā)。
上述的轉(zhuǎn)發(fā)策略是由控制器根據(jù)報(bào)文的報(bào)文內(nèi)容生成的。報(bào)文內(nèi)容包括:報(bào)文的頭部的地址信息;應(yīng)用對(duì)報(bào)文的業(yè)務(wù)處理需求信息。
可選地,在步驟s204之前,控制器可以預(yù)先將報(bào)文的下一跳地址和/或報(bào)文的sfp發(fā)送給控制器和sff。其中,分類器接收控制器下發(fā)的報(bào)文的下一跳地址和/或報(bào)文的sfp,其中,下一跳地址和/或sfp是由控制器根據(jù)報(bào)文的目的地址和sfc的拓?fù)湫畔⑸傻摹目刂破鹘邮盏南乱惶刂泛?或報(bào)文的sfp是分類器對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)的依據(jù)。
在轉(zhuǎn)發(fā)報(bào)文時(shí),可以根據(jù)報(bào)文的sfpid查詢到該報(bào)文的下一跳地址;或者根據(jù)報(bào)文的sfp查詢到該報(bào)文的sfp,并根據(jù)該sfp查詢到下一跳地址,從而實(shí)現(xiàn)報(bào)文的轉(zhuǎn)發(fā)??蛇x地,在分類器在報(bào)文中添加預(yù)定標(biāo)識(shí)之后,分類器查詢報(bào)文的下一跳地址;分類器將報(bào)文發(fā)送至下一跳地址。其中,分類器根據(jù)報(bào)文的sfpid,查詢報(bào)文的下一跳地址。
在報(bào)文中添加預(yù)定標(biāo)識(shí)之前,可以通過報(bào)文內(nèi)容或者轉(zhuǎn)發(fā)策略判斷報(bào)文是否為組播報(bào)文。在向報(bào)文中添加預(yù)定標(biāo)識(shí)時(shí),在報(bào)文為組播報(bào)文的情況下,將預(yù)定標(biāo)識(shí)置位;在報(bào)文不為組播報(bào)文的情況下,將預(yù)定標(biāo)識(shí)清零。
可選地,在查詢到的下一跳地址為多個(gè)的情況下,分類器將報(bào)文復(fù)制成多份;分類器將復(fù)制成多份的報(bào)文發(fā)送至多個(gè)下一跳地址。通過該方式,實(shí)現(xiàn)了將一份報(bào)文發(fā)送至多個(gè)下一跳地址,進(jìn)而發(fā)送至多個(gè)目的地址。
由于分類器是具有報(bào)文分級(jí)功能的業(yè)務(wù)功能,同時(shí),分類器還要實(shí)現(xiàn)報(bào)文的轉(zhuǎn)發(fā)功能,相當(dāng)于分類器也可以實(shí)現(xiàn)業(yè)務(wù)功能轉(zhuǎn)發(fā)器的全部功能。
在本實(shí)施例中還提供了一種報(bào)文轉(zhuǎn)發(fā)方法,該報(bào)文轉(zhuǎn)發(fā)方法可以應(yīng)用在sff中。圖3是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)方法的流程圖,如圖3所示,該流程包括如下步驟:
步驟s302,sff接收?qǐng)?bào)文;
步驟s304,sff判斷報(bào)文中sfc頭部的預(yù)定標(biāo)識(shí)是否置位,其中,預(yù)定標(biāo)識(shí)置位時(shí)用于指示報(bào)文為組播報(bào)文;
步驟s306,在判斷結(jié)果為是的情況下,sff查詢報(bào)文的下一跳地址;
步驟s308,sff將報(bào)文發(fā)送至下一跳地址。
通過上述步驟,由于在報(bào)文中攜帶有預(yù)定標(biāo)識(shí),從而可以根據(jù)該預(yù)定標(biāo)識(shí)對(duì)報(bào)文進(jìn)行差異化的業(yè)務(wù)處理,例如,查詢報(bào)文的下一跳地址(根據(jù)預(yù)定標(biāo)識(shí)確定的下一跳地址),并將報(bào)文從一個(gè)或者多個(gè)下一跳地址發(fā)送出去。相對(duì)于相關(guān)技術(shù)中,由于無法區(qū)分報(bào)文是否需要發(fā)送到至少兩個(gè)目的地,從而對(duì)于目的地址為一個(gè)和目的地址為多個(gè)的報(bào)文都進(jìn)行相同處理的方式,上述步驟解決了無法對(duì)不同目的地址的組播報(bào)文做出差異化的業(yè)務(wù)處理的問題,實(shí)現(xiàn)了對(duì)不同目的地址的組播報(bào)文的差異化業(yè)務(wù)處理。
可選地,在預(yù)定標(biāo)識(shí)攜帶在sfpid中的情況下,sff可以解析報(bào)文的sfc頭部,得到sfpid,并判斷sfpid中的預(yù)定標(biāo)識(shí)是否置位。
可選地,在sff查詢報(bào)文的下一跳地址之前,sff接收控制器下發(fā)的報(bào)文的下一跳 地址和/或報(bào)文的sfp,其中,下一跳地址和/或sfp是由控制器根據(jù)報(bào)文的目的地址和sfc的拓?fù)湫畔⑸傻???蛇x地,sff查詢報(bào)文的下一跳地址包括:sff根據(jù)報(bào)文的sfpid,查詢報(bào)文的下一跳地址。
可選地,在下一跳地址為多個(gè)的情況下,sff可以將報(bào)文復(fù)制成多份;sff將復(fù)制成多份的報(bào)文發(fā)送至多個(gè)下一跳地址。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例的方法。
在本實(shí)施例中還提供了一種報(bào)文生成裝置,應(yīng)用于分類器,該裝置用于實(shí)現(xiàn)上述實(shí)施例及優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。
圖4是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成裝置的結(jié)構(gòu)框圖,如圖4所示,該裝置包括:第一接收模塊42、添加模塊46,其中,第一接收模塊42,用于接收?qǐng)?bào)文;添加模塊46,耦合至第一接收模塊42,用于在報(bào)文中添加預(yù)定標(biāo)識(shí),其中,預(yù)定標(biāo)識(shí)用于指示報(bào)文是否為組播報(bào)文。
可選地,添加模塊46用于:在報(bào)文的sfc頭部中添加預(yù)定標(biāo)識(shí)。
可選地,添加模塊46用于:在報(bào)文的sfc頭部中添加sfpid,其中,sfpid中攜帶有預(yù)定標(biāo)識(shí)。
圖5是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成裝置的可選結(jié)構(gòu)框圖一,如圖5所示,可選地,裝置還包括:第二接收模塊52,耦合至添加模塊46,用于接收控制器下發(fā)的轉(zhuǎn)發(fā)策略,其中,轉(zhuǎn)發(fā)策略是由控制器根據(jù)報(bào)文的報(bào)文內(nèi)容生成的,轉(zhuǎn)發(fā)策略包括預(yù)定標(biāo)識(shí)。
圖6是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成裝置的可選結(jié)構(gòu)框圖二,如圖6所示,可選地,裝置還包括:第一查詢模塊62,耦合至添加模塊46,用于依據(jù)預(yù)定標(biāo)識(shí)查詢與預(yù)定標(biāo)識(shí)對(duì)應(yīng)的轉(zhuǎn)發(fā)策略;第一發(fā)送模塊64,耦合至第一查詢模塊62,用于將報(bào)文發(fā)送至從該轉(zhuǎn)發(fā)策略中查詢到的下一跳地址。
圖7是根據(jù)本發(fā)明實(shí)施例的報(bào)文生成裝置的可選結(jié)構(gòu)框圖三,如圖7所示,可選地,第一發(fā)送模塊64包括:第一復(fù)制單元642,用于在查詢到的下一跳地址為多個(gè)的情況下,將報(bào)文復(fù)制成多份;第一發(fā)送單元644,耦合至第一復(fù)制單元642,用于將復(fù)制成多份的報(bào)文發(fā)送至多個(gè)下一跳地址。
在本實(shí)施例中還提供了一種報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用于sff,該裝置用于實(shí)現(xiàn)上述實(shí)施例及優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。
圖8是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)框圖,如圖8所示,該裝置包括:第三接收模塊82、判斷模塊84、第二查詢模塊86和第二發(fā)送模塊88,其中,第三接收模塊82,用于接收?qǐng)?bào)文;判斷模塊84,耦合至第三接收模塊82,用于判斷報(bào)文中sfc頭部的預(yù)定標(biāo)識(shí)是否置位,其中,預(yù)定標(biāo)識(shí)置位時(shí)用于指示報(bào)文為組播報(bào)文;第二查詢模塊86,耦合至判斷模塊84,用于在判斷結(jié)果為是的情況下,查詢報(bào)文的下一跳地址;第二發(fā)送模塊88,耦合至第二查詢模塊86,用于將報(bào)文發(fā)送至下一跳地址。
圖9是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置的可選結(jié)構(gòu)示意圖一,如圖9所示,可選地,判斷模塊84包括:解析單元842,用于解析報(bào)文的sfc頭部,得到sfpid;判斷單元844,耦合至解析單元842,用于判斷sfpid中的預(yù)定標(biāo)識(shí)是否置位。
可選地,第二查詢模塊86用于:根據(jù)報(bào)文的sfpid,查詢報(bào)文的下一跳地址。
圖10是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置的可選結(jié)構(gòu)示意圖二,如圖10所示,可選地,第二發(fā)送模塊88包括:第二復(fù)制單元882,用于在查詢到的下一跳地址為多個(gè)的情況下,將報(bào)文復(fù)制成多份;第二發(fā)送單元884,耦合至第二復(fù)制單元882,用于將復(fù)制成多份的報(bào)文發(fā)送至多個(gè)下一跳地址。
圖11是根據(jù)本發(fā)明實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置的可選結(jié)構(gòu)示意圖三,如圖11所示,可選地,裝置還包括:第四接收模塊112,耦合至第二查詢模塊86,用于接收控制器下發(fā)的報(bào)文的下一跳地址和/或報(bào)文的sfp,其中,下一跳地址和/或sfp是由控制器根據(jù)報(bào)文的目的地址和sfc的拓?fù)湫畔⑸傻摹?/p>
需要說明的是,上述各個(gè)模塊是可以通過軟件或硬件來實(shí)現(xiàn)的,對(duì)于后者,可以通過以下方式實(shí)現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個(gè)處理器中。
本發(fā)明的實(shí)施例還提供了一種軟件,該軟件用于執(zhí)行上述實(shí)施例及優(yōu)選實(shí)施方式中描述的技術(shù)方案。
本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)。在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
步驟s202,分類器接收?qǐng)?bào)文;
步驟s204,分類器在報(bào)文中添加預(yù)定標(biāo)識(shí),其中,預(yù)定標(biāo)識(shí)用于指示報(bào)文是否為組播報(bào)文。
本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)。在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
步驟s302,sff接收?qǐng)?bào)文;
步驟s304,sff判斷報(bào)文中的sfc頭部的預(yù)定標(biāo)識(shí)是否置位,其中,預(yù)定標(biāo)識(shí)置位時(shí)用于指示報(bào)文為組播報(bào)文;
步驟s306,在判斷結(jié)果為是的情況下,sff查詢報(bào)文的下一跳地址;
步驟s308,sff將報(bào)文發(fā)送至下一跳地址。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:u盤、只讀存儲(chǔ)器(read-onlymemory,簡(jiǎn)稱為rom)、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,簡(jiǎn)稱為ram)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例及可選實(shí)施方式中所描述的示例,本實(shí)施例在此不再贅述。
為了使本發(fā)明實(shí)施例的描述更加清楚,下面結(jié)合可選實(shí)施例進(jìn)行描述和說明。
本發(fā)明可選實(shí)施例提供了一種實(shí)現(xiàn)點(diǎn)到多點(diǎn)(ptmp)的分叉業(yè)務(wù)鏈的方法和系統(tǒng),以實(shí)現(xiàn)對(duì)組播報(bào)文的支持,對(duì)各種組播報(bào)文實(shí)現(xiàn)差異化的業(yè)務(wù)處理。
本發(fā)明可選實(shí)施例中提供了一種點(diǎn)到多點(diǎn)的分叉結(jié)構(gòu)sfc。該分叉結(jié)構(gòu)sfc由若干業(yè)務(wù)功能節(jié)點(diǎn)組成。一般來說組播報(bào)文需要的業(yè)務(wù)功能按線性順序排列鏈接。至少在以下兩種情況下業(yè)務(wù)鏈需要分叉:
a.組播報(bào)文的目的主機(jī)位于不同網(wǎng)絡(luò),他們的某些業(yè)務(wù)功能處理在各自的網(wǎng)絡(luò)中(線性sfc、但是是分叉的sfp);
b.組播報(bào)文不同的目的主機(jī)需要進(jìn)行不同的業(yè)務(wù)功能處理(分叉的sfc)。
分級(jí)設(shè)備(即分類器,classifier)在對(duì)組播報(bào)文進(jìn)行分級(jí)時(shí),如果該報(bào)文是組播報(bào)文,則給該組播報(bào)文分配一個(gè)分叉sfc頭部;如果是單播報(bào)文,則給該單播報(bào)文分配一個(gè)線性sfc頭部。
報(bào)文的sfc頭部設(shè)置一個(gè)分叉標(biāo)志位(相當(dāng)于上述的預(yù)定標(biāo)識(shí)),用于表示這條sfc是一條用于組播的分叉sfc。
分級(jí)設(shè)備或者sff在對(duì)sfc報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),對(duì)sfc頭部解析尋址時(shí),也會(huì)查詢分叉標(biāo)志位,如果分叉標(biāo)志位置位,且查詢有多個(gè)下一跳(即有多個(gè)出端口),則sff將報(bào)文復(fù)制相應(yīng)的多份,分別從多個(gè)出端口,發(fā)給多個(gè)下一跳。否則,直接將報(bào)文轉(zhuǎn)發(fā)給查詢到的一個(gè)下一跳。
從控制面來說,控制器根據(jù)組播地址的成員的情況(例如,位置信息、業(yè)務(wù)處理需求信息等),根據(jù)收集到的業(yè)務(wù)功能實(shí)體的拓?fù)涞刃畔?,按?例如,符合a、b的情況)定義該組播流量對(duì)應(yīng)的一個(gè)分叉業(yè)務(wù)功能鏈的策略以及相應(yīng)的sfp。策略下發(fā)給分級(jí)設(shè)備,分級(jí)設(shè)備依據(jù)該策略為報(bào)文分配sfc頭部;路徑的轉(zhuǎn)發(fā)信息下發(fā)到對(duì)應(yīng)的sff或者分級(jí)設(shè)備。其中,對(duì)于分叉點(diǎn)的sff,控制器下發(fā)的轉(zhuǎn)發(fā)信息含有多個(gè)下一跳信息。sff依據(jù)轉(zhuǎn)發(fā)表項(xiàng)(可以設(shè)置為在報(bào)文中攜帶有交叉標(biāo)志位的情況下才查詢?cè)撧D(zhuǎn)發(fā)表項(xiàng))對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
通過上述方案,引入了一種適用于組播的分叉式的sfc解決方案,可以實(shí)現(xiàn)一條業(yè)務(wù)功能鏈在處理組播報(bào)文時(shí)實(shí)現(xiàn)一種差異化的處理方式,提高了業(yè)務(wù)功能鏈的靈活性和可擴(kuò)展性。
下面結(jié)合附圖對(duì)本發(fā)明可選實(shí)施例進(jìn)行描述和說明。
如圖12所示,源設(shè)備s發(fā)送組播流量到目的設(shè)備d1和設(shè)備d2,該組播流量需要經(jīng)過業(yè)務(wù)功能鏈?zhǔn)菓?yīng)用網(wǎng)關(guān)(appfw)→邊緣網(wǎng)關(guān)(edgefw)→基于有線電視系統(tǒng)的局域網(wǎng)(wlanovercatvsystem,簡(jiǎn)稱為woc),但由于兩個(gè)目的地d1和d2相隔較遠(yuǎn),或者屬于不同的網(wǎng)絡(luò),需要用到不同的woc(分別標(biāo)記為woc1和woc2),因此控制器將該條sfc設(shè)置為一條點(diǎn)到多點(diǎn)的業(yè)務(wù)功能路徑sfp,即:
appfw→edgefw→woc1
|→woc2
控制器依據(jù)策略建立這樣一條業(yè)務(wù)功能路徑并分配spfid,給這些業(yè)務(wù)功能實(shí)體所連接的sff下發(fā)分叉sfp對(duì)應(yīng)的sfpid,該sfpid攜帶有分叉標(biāo)識(shí),以及該sfpid對(duì)應(yīng)的下一跳等信息。其中,根據(jù)業(yè)務(wù)功能實(shí)體拓?fù)?,?duì)于該分叉sfp的分叉點(diǎn)edgefw連接的sff,需要給該sff下發(fā)的下一跳信息是多個(gè)下一跳,即后面所連接的兩個(gè)woc的地址。
流量從s站點(diǎn)發(fā)出后,分級(jí)設(shè)備classifier依據(jù)之前的策略給該流量分配包含了sfpid的sfc頭部,該spfid攜帶有分叉標(biāo)識(shí)。
后面的一系列sff依據(jù)攜帶有分叉標(biāo)識(shí)的sfpid查找下一跳,在appfw連接的sff上,由于控制器下發(fā)的表項(xiàng)只有一個(gè)下一跳,所以該sff轉(zhuǎn)發(fā)給edgefw連接的sff。
edgefw連接的sff在將報(bào)文轉(zhuǎn)發(fā)給edgefw處理之后,也會(huì)依據(jù)sfpid查詢下一跳。該sff查詢出來的下一跳是兩個(gè),因此需要將復(fù)制多份報(bào)文,給每個(gè)下一跳轉(zhuǎn)發(fā)一份。
如圖13所示,該場(chǎng)景下不同的目的主機(jī),需要的業(yè)務(wù)功能實(shí)體是不一樣的,即業(yè)務(wù)功能鏈?zhǔn)欠植娴模鄳?yīng)的其對(duì)應(yīng)的業(yè)務(wù)功能路徑必然分叉。在圖13中,源設(shè)備s到 目的地d1和目的地d2的組播流量所經(jīng)過的業(yè)務(wù)功能實(shí)體有不同,s到d1需要經(jīng)過處理的業(yè)務(wù)有appfw→edgefw→woc,而s到d2需要經(jīng)過處理的業(yè)務(wù)有appfw→edgefw→adc→mon,而s到d1和d2的流量是同一個(gè)組播流量。
控制器依據(jù)策略建立為這類組播流量建立這樣一條業(yè)務(wù)功能鏈并分配spfid,給這些業(yè)務(wù)功能實(shí)體所連接的sff下發(fā)分叉sfp對(duì)應(yīng)的sfpid,該sfpid攜帶有分叉標(biāo)識(shí),以及該sfpid對(duì)應(yīng)的下一跳等信息。其中,根據(jù)業(yè)務(wù)功能實(shí)體拓?fù)?,?duì)于該分叉sfp的分叉點(diǎn)edgefw連接的sff,需要給該sff下發(fā)的下一跳信息是多個(gè)下一跳,即一個(gè)下一跳是woc的地址,另一個(gè)是adc的地址。
流量從s站點(diǎn)發(fā)出后,分級(jí)設(shè)備classifier依據(jù)之前的策略給該流量分配包含了sfpid的sfc頭部,該spfid攜帶有分叉標(biāo)識(shí)。
后面的一系列sff依據(jù)攜帶有分叉標(biāo)識(shí)的sfpid查找下一跳,在appfw連接的sff上,由于控制器下發(fā)的表項(xiàng)只有一個(gè)下一跳,所以該sff轉(zhuǎn)發(fā)給edgefw連接的sff。
edgefw連接的sff在將報(bào)文轉(zhuǎn)發(fā)給edgefw處理之后,也會(huì)依據(jù)sfpid查詢下一跳。該sff查詢出來的下一跳是兩個(gè),因此需要將復(fù)制兩份報(bào)文,一份發(fā)給woc連接的sff,另一份發(fā)送給adc連接的sff。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。