本發(fā)明涉及通信技術(shù)領(lǐng)域。更具體地,涉及一種報(bào)文處理方法、流分類(lèi)器和業(yè)務(wù)功能實(shí)例。
背景技術(shù):
業(yè)務(wù)功能鏈(servicefunctionchaining,sfc)是一種部署增值業(yè)務(wù)的機(jī)制。
在現(xiàn)有技術(shù)中,業(yè)務(wù)功能鏈中的一個(gè)業(yè)務(wù)功能可能對(duì)應(yīng)多個(gè)業(yè)務(wù)功能實(shí)例。所述多個(gè)業(yè)務(wù)功能實(shí)例能夠?qū)α髁窟M(jìn)行負(fù)載分擔(dān)。如,對(duì)于防火墻這一業(yè)務(wù)功能,可能對(duì)應(yīng)防火墻1、防火墻2和防火墻3三個(gè)業(yè)務(wù)功能實(shí)例。
多個(gè)業(yè)務(wù)功能實(shí)例進(jìn)行流量負(fù)載分擔(dān)的過(guò)程中,轉(zhuǎn)發(fā)裝置僅使用報(bào)文中的字段(例如五元組)來(lái)區(qū)分不同會(huì)話,從而實(shí)現(xiàn)對(duì)流量的負(fù)載分擔(dān)。
現(xiàn)有技術(shù)中轉(zhuǎn)發(fā)裝置僅使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,不夠靈活。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供一種報(bào)文處理方法、流分類(lèi)器和業(yè)務(wù)功能實(shí)例,以解決現(xiàn)有技術(shù)中轉(zhuǎn)發(fā)裝置對(duì)報(bào)文進(jìn)行處理不夠靈活的問(wèn)題。
為解決上述問(wèn)題,本申請(qǐng)實(shí)施例提供了如下技術(shù)方案:
本申請(qǐng)實(shí)施例第一方面公開(kāi)了一種報(bào)文處理方法,所述方法由流分類(lèi)器執(zhí)行,所述方法包括:
接收網(wǎng)絡(luò)控制裝置發(fā)送的流表,所述流表包含流的規(guī)則,所述流被綁定到的業(yè)務(wù)功能鏈的信息,以及所述網(wǎng)絡(luò)控制裝置分配的所述流的標(biāo)識(shí),所述業(yè)務(wù)功能鏈的信息包括業(yè)務(wù)索引,所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述 多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息,或者所述業(yè)務(wù)功能鏈的信息包括業(yè)務(wù)索引,所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息,所述業(yè)務(wù)索引是所述業(yè)務(wù)功能鏈的生存時(shí)間值,所述生存時(shí)間值等于所述業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
獲取第一報(bào)文;
確定所述第一報(bào)文與所述流表匹配;
將所述第一報(bào)文封裝為第二報(bào)文,所述第二報(bào)文包括業(yè)務(wù)頭以及隧道頭,所述業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第一值,所述第一值等于所述業(yè)務(wù)索引減1,所述隧道頭是基于所述隧道信息生成的,所述隧道頭中包括第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第一業(yè)務(wù)功能實(shí)例是所述多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例,所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定;
向所述第一業(yè)務(wù)功能實(shí)例發(fā)送所述第二報(bào)文;
其中,所述流分類(lèi)器是能夠與所述業(yè)務(wù)功能鏈中的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例通信的網(wǎng)絡(luò)裝置,或者,所述流分類(lèi)器是所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能。
在本申請(qǐng)實(shí)施例第一方面的第一種實(shí)現(xiàn)方式中,在所述接收網(wǎng)絡(luò)控制裝置發(fā)送的流表之前,還包括:
向所述網(wǎng)絡(luò)控制裝置發(fā)送為所述流分配所述流的標(biāo)識(shí)的請(qǐng)求,所述請(qǐng)求中包含所述流的信息;
接收所述網(wǎng)絡(luò)控制裝置為所述流分配的所述流的標(biāo)識(shí)的響應(yīng),所述響應(yīng)中包含所述流的標(biāo)識(shí),所述流的標(biāo)識(shí)與所述流的信息不同。
在本申請(qǐng)實(shí)施例第一方面的第二種實(shí)現(xiàn)方式中,由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,包括:
所述流分類(lèi)器以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述第一值為查找關(guān)鍵字在流分發(fā)表中查找與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第一值匹配的表項(xiàng),所述流分發(fā)表中與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第一值匹配的表項(xiàng)包含所述首個(gè)業(yè)務(wù)功能以及所述首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,或者 所述流分發(fā)表中與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第一值匹配的表項(xiàng)包含所述下一個(gè)業(yè)務(wù)功能及所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述流的標(biāo)識(shí)為查找關(guān)鍵字,從所述流分發(fā)表中與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第一值匹配的表項(xiàng)包含的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
或者,
所述流分類(lèi)器以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述第一值確定所述首個(gè)業(yè)務(wù)功能以及所述首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,或所述下一個(gè)業(yè)務(wù)功能及所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述流的標(biāo)識(shí)為哈希鍵,從所述首個(gè)業(yè)務(wù)功能或所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
在本申請(qǐng)實(shí)施例第一方面的第三種實(shí)現(xiàn)方式中,所述業(yè)務(wù)頭是nsh網(wǎng)絡(luò)服務(wù)頭,所述流的標(biāo)識(shí)在所述業(yè)務(wù)頭中的位置包括:
當(dāng)所述業(yè)務(wù)頭中的md-type字段的值等于0x2時(shí),所述業(yè)務(wù)頭包含tlv-class,所述tlv-class包含typecode和所述流的標(biāo)識(shí),所述typecode用于表示所述tlv-class攜帶所述流的標(biāo)識(shí);
或者,
當(dāng)所述業(yè)務(wù)頭中的md-type字段的值等于0x1時(shí),所述業(yè)務(wù)頭中的mandatorycontextheader攜帶所述流的標(biāo)識(shí)。
本申請(qǐng)實(shí)施例第二方面公開(kāi)了一種流分類(lèi)器,所述流分類(lèi)器是能夠與業(yè)務(wù)功能鏈中的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例通信的網(wǎng)絡(luò)裝置,或者所述流分類(lèi)器是所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能,所述流分類(lèi)器包括:
接收單元,用于接收網(wǎng)絡(luò)控制裝置發(fā)送的流表,以及獲取第一報(bào)文,所述流表包含流的規(guī)則,所述流被綁定到的業(yè)務(wù)功能鏈的信息,以及所述網(wǎng)絡(luò)控制裝置分配的所述流的標(biāo)識(shí),所述業(yè)務(wù)功能鏈的信息包括業(yè)務(wù)索引,所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息,或 者所述業(yè)務(wù)功能鏈的信息包括業(yè)務(wù)索引,所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息,所述業(yè)務(wù)索引是所業(yè)務(wù)功能鏈的生存時(shí)間值,所述生存時(shí)間值等于業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
處理單元,用于確定所述接收單元獲取的第一報(bào)文與所述流表匹配,并將所述第一報(bào)文封裝為第二報(bào)文,所述第二報(bào)文包括業(yè)務(wù)頭以及隧道頭,所述業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第一值,所述第一值等于所述業(yè)務(wù)索引減1,所述隧道頭是基于所述隧道信息生成的,所述隧道頭中包括第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第一業(yè)務(wù)功能實(shí)例是所述多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例,所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定;
發(fā)送單元,用于向所述處理單元確定的第一業(yè)務(wù)功能實(shí)例發(fā)送所述第二報(bào)文。
在本申請(qǐng)實(shí)施例第二方面的第一種實(shí)現(xiàn)方式中,所述處理單元還用于:
向所述網(wǎng)絡(luò)控制裝置發(fā)送為所述流分配所述流的標(biāo)識(shí)的請(qǐng)求,所述請(qǐng)求中包含所述流的信息,以及接收所述網(wǎng)絡(luò)控制裝置為所述流分配的所述流的標(biāo)識(shí)的響應(yīng),所述響應(yīng)中包含所述流的標(biāo)識(shí),所述流的標(biāo)識(shí)與所述流的信息不同。
在本申請(qǐng)實(shí)施例第二方面的第二種實(shí)現(xiàn)方式中,所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定的所述處理單元,包括:
所述處理單元,用于以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述第一值為查找關(guān)鍵字在流分發(fā)表中查找與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第一值匹配的表項(xiàng),所述流分發(fā)表中與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第一值匹配的表項(xiàng)包含所述首個(gè)業(yè)務(wù)功能以及所述首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,或者所述流分發(fā)表中與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第一值匹配的表項(xiàng)包含所述下一個(gè)業(yè)務(wù)功能及所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述流的標(biāo)識(shí)為查找關(guān)鍵字,從所 述流分發(fā)表中與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第一值匹配的表項(xiàng)包含的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
或者,
所述處理單元,用于以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述第一值確定所述首個(gè)業(yè)務(wù)功能以及所述首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,或所述下一個(gè)業(yè)務(wù)功能及所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述流的標(biāo)識(shí)為哈希鍵,從所述首個(gè)業(yè)務(wù)功能或下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
在本申請(qǐng)實(shí)施例第二方面的第三種實(shí)現(xiàn)方式中,所述處理單元還用于:
在所述業(yè)務(wù)頭是nsh網(wǎng)絡(luò)服務(wù)頭的情況下,當(dāng)所述業(yè)務(wù)頭中的md-type字段的值等于0x2時(shí),所述業(yè)務(wù)頭包含tlv-class,所述tlv-class包含typecode和所述流的標(biāo)識(shí),所述typecode用于表示所述tlv-class攜帶所述流的標(biāo)識(shí);
或者,
在所述業(yè)務(wù)頭是nsh網(wǎng)絡(luò)服務(wù)頭的情況下,當(dāng)所述業(yè)務(wù)頭中的md-type字段的值等于0x1時(shí),所述業(yè)務(wù)頭中的mandatorycontextheader攜帶所述流的標(biāo)識(shí)。
本申請(qǐng)實(shí)施例第三方面公開(kāi)了一種流分類(lèi)器,包括:所述流分類(lèi)器可以是能夠與業(yè)務(wù)功能鏈中的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例通信的網(wǎng)絡(luò)裝置,或者所述流分類(lèi)器可以是所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能,所述流分類(lèi)器包括:
接收器,用于接收網(wǎng)絡(luò)控制裝置發(fā)送的流表,以及獲取第一報(bào)文,所述流表包含流的規(guī)則,所述流被綁定到的業(yè)務(wù)功能鏈的信息,以及所述網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),所述業(yè)務(wù)功能鏈的信息包括業(yè)務(wù)索引,所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息,或者所述業(yè)務(wù)功能鏈的信息包括業(yè)務(wù)索引,所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息,所述業(yè)務(wù)索引是所業(yè)務(wù) 功能鏈的生存時(shí)間值,所述生存時(shí)間值等于業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
處理器,用于確定所述接收器獲取的第一報(bào)文與所述流表匹配,并將所述第一報(bào)文封裝為第二報(bào)文,所述第二報(bào)文包括業(yè)務(wù)頭以及隧道頭,所述業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第一值,所述第一值等于所述業(yè)務(wù)索引減1,所述隧道頭是基于所述隧道信息生成的,所述隧道頭中包括第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第一業(yè)務(wù)功能實(shí)例是所述多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例,所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)際協(xié)議或多媒體接入控制地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定;
發(fā)送器,用于向所述處理器確定的第一業(yè)務(wù)功能實(shí)例發(fā)送所述第二報(bào)文。
本申請(qǐng)實(shí)施例第四方面公開(kāi)了一種存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備適用于流分類(lèi)器,所述流分類(lèi)器可以是能夠與業(yè)務(wù)功能鏈中的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例通信的網(wǎng)絡(luò)裝置,或者所述流分類(lèi)器可以是所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能,所述存儲(chǔ)設(shè)備包括存儲(chǔ)器和通過(guò)總線與所述存儲(chǔ)器連接的處理器;
所述存儲(chǔ)器存儲(chǔ)有用于進(jìn)行報(bào)文處理的程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令,所述處理器用于運(yùn)行上述程序代碼;
所述用于進(jìn)行報(bào)文處理的程序代碼包括:接收網(wǎng)絡(luò)控制裝置發(fā)送的流表,所述流表包含流的規(guī)則,所述流被綁定到的業(yè)務(wù)功能鏈的信息,以及所述網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),所述業(yè)務(wù)功能鏈的信息包括業(yè)務(wù)索引,所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息,或者所述業(yè)務(wù)功能鏈的信息包括業(yè)務(wù)索引,所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),所述業(yè)務(wù)功能鏈的首個(gè)業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息,所述業(yè)務(wù)索引是所述業(yè)務(wù)功能鏈的生存時(shí)間值,所述生存時(shí)間值等于所述業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
獲取第一報(bào)文;
確定所述第一報(bào)文與所述流表匹配;
將所述第一報(bào)文封裝為第二報(bào)文,所述第二報(bào)文包括業(yè)務(wù)頭以及隧道頭,所述業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第一值,所述第一值等于所述業(yè)務(wù)索引減1,所述隧道頭是基于所述隧道信息生成的,所述隧道頭中包括第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第一業(yè)務(wù)功能實(shí)例是所述多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例,所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定;
向所述第一業(yè)務(wù)功能實(shí)例發(fā)送所述第二報(bào)文。
本申請(qǐng)實(shí)施例第五方面公開(kāi)了一種報(bào)文處理方法,所述報(bào)文處理方法由業(yè)務(wù)功能鏈的第一業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例執(zhí)行,所述報(bào)文處理方法包括:
接收流分類(lèi)器或所述業(yè)務(wù)功能鏈中所述第一業(yè)務(wù)功能的前一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例轉(zhuǎn)發(fā)的第二報(bào)文,所述第二報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)以及第一值,所述第一值等于業(yè)務(wù)索引減1,所述第二報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能對(duì)應(yīng)的所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第二報(bào)文包含第一報(bào)文,所述業(yè)務(wù)索引是業(yè)務(wù)功能鏈的生存時(shí)間值,所述生存時(shí)間值等于業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
根據(jù)所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
依據(jù)所述第二報(bào)文中的業(yè)務(wù)頭對(duì)所述第一報(bào)文進(jìn)行業(yè)務(wù)處理;
將所述第一報(bào)文封裝為第三報(bào)文,所述第三報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第二值,所述第二值等于所述第一值減1,所述第三報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定;
向所述第二業(yè)務(wù)功能實(shí)例發(fā)送所述第三報(bào)文。
在本申請(qǐng)第五方面的第一種實(shí)現(xiàn)方式中,還包括:
接收包括所述流應(yīng)用的所述業(yè)務(wù)功能路徑標(biāo)識(shí)、所述業(yè)務(wù)索引和為所述流的標(biāo)識(shí)選定的所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息的信息表。
在本申請(qǐng)第五方面的第二種實(shí)現(xiàn)方式中,由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,包括:
以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述第二值為查找關(guān)鍵字在流分發(fā)表中查找與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第二值匹配的表項(xiàng)包含所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能,以及所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述流的標(biāo)識(shí)為查找關(guān)鍵字,從所述流分發(fā)表中與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第二值匹配的表項(xiàng)包含的所述多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
或者,
以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述第二值確定所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能,以及所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述流的標(biāo)識(shí)為哈希鍵,從所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
本申請(qǐng)實(shí)施例第六方面公開(kāi)了一種業(yè)務(wù)功能實(shí)例,所述業(yè)務(wù)功能實(shí)例為業(yè)務(wù)功能鏈的第一業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例,包括:
接收單元,用于接收流分類(lèi)器或所述業(yè)務(wù)功能鏈中所述第一業(yè)功能的前一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例轉(zhuǎn)發(fā)的第二報(bào)文,所述第二報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)以及第一值,所述第一值等于業(yè)務(wù)索引減1,所述第二報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第二報(bào)文包含第一報(bào)文,所述業(yè)務(wù)索引是業(yè)務(wù)功能鏈的生存時(shí)間值,所述生存時(shí)間值等于業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
處理單元,用于根據(jù)所述接收單元接收到的所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,依據(jù)所述接收單元接收到的所述第二報(bào)文中的業(yè)務(wù)頭對(duì)所述第一報(bào)文進(jìn)行業(yè)務(wù)處理,將所述第一報(bào)文封裝為第三報(bào)文,所述第三報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第二值,所述第二值等于所述第一值減1,所述第三報(bào)文中的隧道頭包括所述第一 業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定;
發(fā)送單元,用于向所述處理單元確定的所述第二業(yè)務(wù)功能實(shí)例發(fā)送所述第三報(bào)文。
在本申請(qǐng)實(shí)施例第六方面的第一種實(shí)現(xiàn)方式中,還包括:
所述接收單元,還用于接收包括所述流應(yīng)用的所述業(yè)務(wù)功能路徑標(biāo)識(shí)、所述業(yè)務(wù)索引和為所述流的標(biāo)識(shí)選定的所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息的信息表。
在本申請(qǐng)實(shí)施例第六方面的第二種實(shí)現(xiàn)方式中,由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址的處理單元,還包括:
所述處理單元,還用于以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述第二值為查找關(guān)鍵字在流分發(fā)表中查找與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第二值匹配的表項(xiàng)包含所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能,以及所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述流的標(biāo)識(shí)為查找關(guān)鍵字,從所述流分發(fā)表中與所述業(yè)務(wù)功能路徑標(biāo)識(shí)以及所述第二值匹配的表項(xiàng)包含的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
或者,
所述處理單元,還用于以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述第二值確定所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能,以及所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,以所述業(yè)務(wù)功能路徑標(biāo)識(shí)和所述流的標(biāo)識(shí)為哈希鍵,從所述下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
本申請(qǐng)實(shí)施例第七方面公開(kāi)了一種業(yè)務(wù)功能實(shí)例,所述業(yè)務(wù)功能實(shí)例為業(yè)務(wù)功能鏈的第一業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例,包括:
接收器,用于接收流分類(lèi)器或所述業(yè)務(wù)功能鏈中所述第一業(yè)功能的前一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例轉(zhuǎn)發(fā)的第二報(bào)文,所述第二報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),網(wǎng)絡(luò)控制裝置分配的流 的標(biāo)識(shí)以及第一值,所述第一值等于業(yè)務(wù)索引減1,所述第二報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第二報(bào)文包含第一報(bào)文,所述業(yè)務(wù)索引是業(yè)務(wù)功能鏈的生存時(shí)間值,所述生存時(shí)間值等于業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
處理器,用于根據(jù)所述接收器接收到的所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,依據(jù)所述接收單元接收到的所述第二報(bào)文中的業(yè)務(wù)頭對(duì)所述第一報(bào)文進(jìn)行業(yè)務(wù)處理,將所述第一報(bào)文封裝為第三報(bào)文,所述第三報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第二值,所述第二值等于所述第一值減1,所述第三報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定;
發(fā)送器,用于向所述處理器確定的所述第二業(yè)務(wù)功能實(shí)例發(fā)送所述第三報(bào)文。
本申請(qǐng)實(shí)施例第八方面公開(kāi)了一種存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備適用于業(yè)務(wù)功能鏈的第一業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例,所述存儲(chǔ)設(shè)備包括存儲(chǔ)器和通過(guò)總線與所述存儲(chǔ)器連接的處理器;
所述存儲(chǔ)器存儲(chǔ)有用于進(jìn)行報(bào)文處理的程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令,所述處理器用于運(yùn)行上述程序代碼;
所述用于進(jìn)行報(bào)文處理的程序代碼包括:
接收流分類(lèi)器或所述業(yè)務(wù)功能鏈中所述第一業(yè)務(wù)功能的前一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例轉(zhuǎn)發(fā)的第二報(bào)文,所述第二報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)以及第一值,所述第一值等于業(yè)務(wù)索引減1,所述第二報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能對(duì)應(yīng)的所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第二報(bào)文包含第一報(bào)文,所述業(yè)務(wù)索引是業(yè)務(wù)功能鏈的生存時(shí)間值,所述生存時(shí)間值等于業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
根據(jù)所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
依據(jù)所述第二報(bào)文中的業(yè)務(wù)頭對(duì)所述第一報(bào)文進(jìn)行業(yè)務(wù)處理;
將所述第一報(bào)文封裝為第三報(bào)文,所述第三報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第二值,所述第二值等于所述第一值減1,所述第三報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定;
向所述第二業(yè)務(wù)功能實(shí)例發(fā)送所述第三報(bào)文。
本申請(qǐng)實(shí)施例第九方面公開(kāi)了一種報(bào)文處理系統(tǒng),包括流分類(lèi)器、業(yè)務(wù)功能實(shí)例和網(wǎng)絡(luò)控制裝置;
所述流分類(lèi)器包括本申請(qǐng)實(shí)施例第二方面或本申請(qǐng)實(shí)施例第三方面公開(kāi)的流分類(lèi)器,或者,所述流分類(lèi)器中包括本申請(qǐng)實(shí)施例第四方面公開(kāi)的存儲(chǔ)設(shè)備;
所述業(yè)務(wù)功能實(shí)例包括本申請(qǐng)實(shí)施例第六方面或本申請(qǐng)實(shí)施例第七方面公開(kāi)的業(yè)務(wù)功能實(shí)例,或者,所述業(yè)務(wù)功能實(shí)例中包括本申請(qǐng)實(shí)施例第八方面公開(kāi)的存儲(chǔ)設(shè)備;
所述網(wǎng)絡(luò)控制裝置是網(wǎng)絡(luò)控制器或aaa服務(wù)器,用于接收所述流分類(lèi)器發(fā)送的為流分配所述流的標(biāo)識(shí)的請(qǐng)求,所述請(qǐng)求中包含所述流的信息,并為所述流分配所述流的標(biāo)識(shí)的響應(yīng),所述響應(yīng)中包含所述流的標(biāo)識(shí),所述流的標(biāo)識(shí)與所述流的信息不同。
通過(guò)以上本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案可知,本申請(qǐng)實(shí)施例提供的一種報(bào)文處理方法、流分類(lèi)器及業(yè)務(wù)功能實(shí)例。在報(bào)文處理過(guò)程中,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),結(jié)合業(yè)務(wù)功能鏈的業(yè)務(wù)功能路徑標(biāo)識(shí),及業(yè)務(wù)索引確定具體的業(yè)務(wù)功能實(shí)例,并向該確定的具體的業(yè)務(wù)功能實(shí)例發(fā)送封裝后的報(bào)文。本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案,相較于現(xiàn)有技術(shù)中僅限于使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,本申請(qǐng)?zhí)峁┑膶?duì)報(bào)文進(jìn)行處理的方式更加靈活。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(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為本申請(qǐng)實(shí)施例一公開(kāi)的一種報(bào)文處理方法的流程示意圖;
圖2為本申請(qǐng)實(shí)施例二示出的業(yè)務(wù)頭的格式示意圖;
圖3為本申請(qǐng)實(shí)施例二示出的另一種業(yè)務(wù)頭的格式示意圖;
圖4為本申請(qǐng)實(shí)施例三公開(kāi)的一種報(bào)文處理方法的流程示意圖;
圖5為本申請(qǐng)實(shí)施例三公開(kāi)的一種云化cpe的方案在流轉(zhuǎn)發(fā)的流程示意圖;
圖6為本申請(qǐng)實(shí)施例五公開(kāi)的對(duì)應(yīng)實(shí)施例一和實(shí)施例二公開(kāi)的一種流分類(lèi)器的結(jié)構(gòu)示意圖;
圖7為本申請(qǐng)實(shí)施例五公開(kāi)的一種流分類(lèi)器的實(shí)體結(jié)構(gòu)示意圖;
圖8為本申請(qǐng)實(shí)施例五公開(kāi)的對(duì)應(yīng)實(shí)施例三公開(kāi)的一種業(yè)務(wù)功能實(shí)例的結(jié)構(gòu)示意圖;
圖9為本申請(qǐng)實(shí)施例五公開(kāi)的一種業(yè)務(wù)功能實(shí)例的實(shí)體結(jié)構(gòu)示意圖;
圖10為本申請(qǐng)實(shí)施例五公開(kāi)的一種報(bào)文處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下為本申請(qǐng)實(shí)施例中所使用到的英文縮寫(xiě)的全稱和相關(guān)解釋?zhuān)?/p>
ip:internetprotocol,網(wǎng)際協(xié)議;
mac:mediaaccesscontrol,媒體訪問(wèn)控制;
nsh:networkserviceheader,網(wǎng)絡(luò)業(yè)務(wù)頭;
sfc:servicefunctionchaining,業(yè)務(wù)功能鏈;
sf:servicefunction,業(yè)務(wù)功能;
sff:servicefunctionforwarder,業(yè)務(wù)功能轉(zhuǎn)發(fā)器;
sfp:servicefunctionpath,業(yè)務(wù)功能路徑;
fc:flowclassifier,流分類(lèi)器;
nat:networkaddresstranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換;
fw:firewall,防火墻;
ttl:timetolive,生存時(shí)間值。
下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述。顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
現(xiàn)有技術(shù)的轉(zhuǎn)發(fā)裝置僅使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,不夠靈活。本申請(qǐng)實(shí)施例公開(kāi)了一種報(bào)文處理的技術(shù)方案,通過(guò)在在報(bào)文處理過(guò)程中,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),結(jié)合業(yè)務(wù)功能鏈的業(yè)務(wù)功能路徑標(biāo)識(shí),及業(yè)務(wù)索引確定具體的業(yè)務(wù)功能實(shí)例,并向該確定的具體的業(yè)務(wù)功能實(shí)例發(fā)送封裝后的報(bào)文。相較于現(xiàn)有技術(shù)中僅限于使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)對(duì)報(bào)文進(jìn)行處理,處理的方式更加靈活。具體實(shí)現(xiàn)過(guò)程通過(guò)以下實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
實(shí)施例一
如圖1所示,為本申請(qǐng)實(shí)施例一公開(kāi)的一種報(bào)文處理方法的流程示意圖。該報(bào)文處理方法由流分類(lèi)器(fc)執(zhí)行。所述fc可以是能夠與業(yè)務(wù)功能鏈(sfc)中的首個(gè)業(yè)務(wù)功能(sf)對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例通信的網(wǎng)絡(luò)裝置,或者,所述sf可以是所述sfc的首個(gè)sf。該報(bào)文處理方法包括以下步驟:
s101,接收網(wǎng)絡(luò)控制裝置發(fā)送的流表;
在s101中,該流表用于指示所述fc識(shí)別流的報(bào)文。所述流表包含流的規(guī)則,所述流被綁定到的sfc的信息和所述網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)(流的id)。
舉例來(lái)說(shuō),所述流被綁定到的sfc是指流需要被sfc處理。流的id是所述網(wǎng)絡(luò)控制裝置為流分配的。流的id用于流被該sfc處理的過(guò)程內(nèi)標(biāo)識(shí)流。該流的id可以是一個(gè)字段,這個(gè)字段具體可以為一個(gè)數(shù)字。所述網(wǎng)絡(luò)控制裝置可以基于轉(zhuǎn)發(fā)裝置的申請(qǐng),為流分配流的id。所述網(wǎng)絡(luò)控制裝置在流的規(guī)則撤銷(xiāo)或者流會(huì)話終結(jié)時(shí)釋放該流的id??蛇x地,所述網(wǎng)絡(luò)控制裝置可以為多個(gè)流分配所述多個(gè)流的id。所述多個(gè)流和所述多個(gè)流的id一一對(duì)應(yīng)。
所述sfc的信息包括業(yè)務(wù)索引,所述sfc對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí)(sfpid),所述sfc的首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息;
或者,所述sfc的信息包括業(yè)務(wù)索引,所述sfc對(duì)應(yīng)的sfpid,所述sfc的首個(gè)sf的下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息。
上述提到的業(yè)務(wù)索引(serviceindex)用于提供業(yè)務(wù)路徑中的位置。所述業(yè)務(wù)索引是業(yè)務(wù)路徑頭(servicepathheader)中的字段。業(yè)務(wù)路徑頭還可以包括業(yè)務(wù)路徑標(biāo)識(shí)(servicepathid)字段。關(guān)于業(yè)務(wù)索引、業(yè)務(wù)路徑標(biāo)識(shí)以及業(yè)務(wù)路徑頭,請(qǐng)參考標(biāo)準(zhǔn)文檔draft-quinn-sfc-nsh-07的第11頁(yè)第3.3節(jié)。
在本申請(qǐng)實(shí)施例中該業(yè)務(wù)索引是所述業(yè)務(wù)功能鏈的生存時(shí)間值(ttl)。該ttl等于所述業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量。需要說(shuō)明的是,業(yè)務(wù)功能鏈上至少包含n個(gè)業(yè)務(wù)功能,n為大于1的正整數(shù);
上述提到的隧道信息中包括:隧道端點(diǎn)標(biāo)識(shí)(例如ip地址)、隧道類(lèi)型(例如nshoverudp)、ttl(例如nsh的業(yè)務(wù)索引)。
需要說(shuō)明的是,一個(gè)所述sf至少由一個(gè)或多個(gè)數(shù)據(jù)鏈路層或網(wǎng)絡(luò)層可達(dá)的相同業(yè)務(wù)類(lèi)型的業(yè)務(wù)功能實(shí)例組成。該業(yè)務(wù)功能實(shí)例為sf和sff的組合,例如:nshawarevas。該業(yè)務(wù)功能實(shí)例上具有轉(zhuǎn)發(fā)信息。該轉(zhuǎn)發(fā)信息包括路由信息或接口信息。在業(yè)務(wù)功能實(shí)例執(zhí)行轉(zhuǎn)發(fā)時(shí),基于該路由信息查找路由表,或基于該接口信息查找媒體訪問(wèn)控制(mac)表。
s102,獲取第一報(bào)文;
s103,確定所述第一報(bào)文與所述流表匹配;
s104,將所述第一報(bào)文封裝為第二報(bào)文;
在s104中,所述第二報(bào)文包括業(yè)務(wù)頭及隧道頭。所述業(yè)務(wù)頭包括所述sfpid,所述流的id以及第一值。所述第一值等于所述ttl減1。
其中,關(guān)于sfpid(sfpidentifier,sfp-id),可以參考ietf在2016年1月21日發(fā)布的標(biāo)準(zhǔn)文檔“draft-ietf-sfc-control-plane-03”。該標(biāo)準(zhǔn)文檔的名稱為“servicefunctionchaining(sfc)controlplanecomponents&requirements”。本申請(qǐng)實(shí)施例引用標(biāo)準(zhǔn)文檔draft-ietf-sfc-control-plane-03,并 且將標(biāo)準(zhǔn)文檔draft-ietf-sfc-control-plane-03作為本申請(qǐng)公開(kāi)的內(nèi)容的組成部分;
所述隧道頭是基于執(zhí)行步驟s101獲得的所述隧道信息生成的。所述隧道頭中包括第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第一業(yè)務(wù)功能實(shí)例是所述多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例。所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述sfpid,所述流的id和所述第一值確定;
其中,所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址包括ip地址或mac協(xié)議地址。
需要說(shuō)明的是,當(dāng)業(yè)務(wù)頭為nsh頭時(shí),所述nsh頭可以基于udp報(bào)文的payload(凈負(fù)荷)生成,也可以基于太網(wǎng)幀的payload生成。
其中,nsh可以包括基礎(chǔ)頭(baseheader)、業(yè)務(wù)路徑頭(servicepathheader)以及上下文頭(contextheaders)。關(guān)于網(wǎng)絡(luò)業(yè)務(wù)頭、基礎(chǔ)頭、業(yè)務(wù)路徑頭以及上下文頭,請(qǐng)參考標(biāo)準(zhǔn)文檔draft-quinn-sfc-nsh-07的第9-15頁(yè)第3節(jié)。
標(biāo)準(zhǔn)文檔“draft-quinn-sfc-nsh-07”的名稱為“networkserviceheader”。該標(biāo)準(zhǔn)文檔的發(fā)布日期為2015年2月24日。標(biāo)準(zhǔn)文檔的發(fā)布者是ietf。本申請(qǐng)實(shí)施例中引用標(biāo)準(zhǔn)文檔“draft-quinn-sfc-nsh-07”,并且將標(biāo)準(zhǔn)文檔“draft-quinn-sfc-nsh-07”作為本申請(qǐng)實(shí)施例公開(kāi)的內(nèi)容的組成部分。
s105,向所述第一業(yè)務(wù)功能實(shí)例發(fā)送所述第二報(bào)文。
需要說(shuō)明的是,當(dāng)執(zhí)行上述s101至s105的fc是能夠與所述業(yè)務(wù)功能鏈中的首個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例通信的網(wǎng)絡(luò)裝置時(shí),所述第一業(yè)務(wù)功能實(shí)例是所述sfc的首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)。當(dāng)執(zhí)行上述s101至s105的fc是所述sfc的首個(gè)sf時(shí),所述第一業(yè)務(wù)功能實(shí)例是sfc上的下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例。
需要說(shuō)明的是,s101-s105對(duì)一個(gè)流的處理過(guò)程進(jìn)行了描述。當(dāng)網(wǎng)絡(luò)中存在多個(gè)流時(shí),可以參照上述步驟對(duì)多個(gè)流進(jìn)行處理,并實(shí)現(xiàn)負(fù)載分擔(dān)。下面結(jié)合s101-s105對(duì)多個(gè)流的場(chǎng)景如何實(shí)現(xiàn)進(jìn)行說(shuō)明。下文中沒(méi)有提及的技術(shù)內(nèi)容可以參見(jiàn)上文中對(duì)s101-s105的描述。
對(duì)于s101,所述流表包含所述多個(gè)流的規(guī)則,所述多個(gè)流被綁定到的業(yè)務(wù)功能鏈的信息以及所述網(wǎng)絡(luò)控制裝置為所述多個(gè)流分配的所述多個(gè)流的標(biāo) 識(shí)。所述多個(gè)流被綁定到同一個(gè)業(yè)務(wù)功能鏈。所述fc可以根據(jù)所述多個(gè)流的規(guī)則對(duì)所述多個(gè)流進(jìn)行識(shí)別。例如,所述fc可以使用流的規(guī)則對(duì)報(bào)文進(jìn)行解析,從而確定報(bào)文的特征。所述多個(gè)流的標(biāo)識(shí)與所述多個(gè)流一一對(duì)應(yīng)。本申請(qǐng)中的流是指具有相同特征的報(bào)文的集合。特征可以是用于接收?qǐng)?bào)文的端口,也可以是報(bào)文頭中的字段?;蛘?,特征可以是用于接收?qǐng)?bào)文的端口,以及報(bào)文頭中的字段。報(bào)文頭中的字段可以是一個(gè)字段或者多個(gè)字段。例如,可以認(rèn)為被同一個(gè)入接口接收的報(bào)文的集合屬于同一個(gè)流。也可以認(rèn)為五元組(源ip地址、目的ip地址、源端口、目的端口以及協(xié)議號(hào))相同的報(bào)文的集合屬于同一個(gè)流。也可以認(rèn)為二元組(源ip地址和目的ip地址)相同的報(bào)文的集合屬于同一個(gè)流。
對(duì)于s102,所述fc獲取多個(gè)報(bào)文。例如,所述fc獲取報(bào)文1以及報(bào)文2。具體地,所述fc可以通過(guò)入端口接收?qǐng)?bào)文1以及報(bào)文2。所述fc也可以生成報(bào)文1以及報(bào)文2。報(bào)文1和報(bào)文2分別屬于流1和流2。
對(duì)于s103,所述fc確定所述多個(gè)報(bào)文與所述流表匹配。例如,所述fc根據(jù)所述多個(gè)流的規(guī)則確定報(bào)文1與流1匹配。所述fc根據(jù)所述多個(gè)流的規(guī)則確定報(bào)文2與流2匹配。具體地,所述多個(gè)流的規(guī)則包括流1的規(guī)則以及流2的規(guī)則。所述fc以報(bào)文1的五元組為查找關(guān)鍵字確定報(bào)文1與流1的規(guī)則匹配。所述fc以報(bào)文2的五元組為查找關(guān)鍵字確定報(bào)文2與流2的規(guī)則匹配。流1的規(guī)則的匹配域中包含報(bào)文1的五元組。流2的規(guī)則的匹配域中包含報(bào)文2的五元組。
對(duì)于s104,所述fc將多個(gè)報(bào)文分別進(jìn)行封裝,得到多個(gè)經(jīng)封裝的報(bào)文。所述多個(gè)報(bào)文與所述多個(gè)經(jīng)封裝的報(bào)文一一對(duì)于。例如,所述fc將報(bào)文1封裝為報(bào)文3,將報(bào)文2封裝為報(bào)文4。報(bào)文3包含的隧道頭中包含業(yè)務(wù)功能實(shí)例1的ip地址。報(bào)文4包含的隧道頭中包含業(yè)務(wù)功能實(shí)例2的ip地址。具體地,所述fc根據(jù)所述業(yè)務(wù)功能路徑標(biāo)識(shí),流1的標(biāo)識(shí)和所述第一值確定業(yè)務(wù)功能實(shí)例1的ip地址。所述fc根據(jù)所述業(yè)務(wù)功能路徑標(biāo)識(shí),流2的標(biāo)識(shí)和所述第一值確定業(yè)務(wù)功能實(shí)例2的ip地址。業(yè)務(wù)功能實(shí)例1和業(yè)務(wù)功能實(shí)例2對(duì)應(yīng)同一個(gè)業(yè)務(wù)功能。因此,業(yè)務(wù)功能實(shí)例1和業(yè)務(wù)功能實(shí)例2能夠?qū)α髁窟M(jìn)行負(fù)載分擔(dān)。
本申請(qǐng)中,業(yè)務(wù)功能實(shí)例能夠執(zhí)行對(duì)應(yīng)的業(yè)務(wù)功能。業(yè)務(wù)功能實(shí)例可以包含處理器以及與處理器耦合的存儲(chǔ)器。存儲(chǔ)器中包含計(jì)算機(jī)程序。所述處理器通過(guò)執(zhí)行所述計(jì)算機(jī)程序執(zhí)行業(yè)務(wù)功能。例如,業(yè)務(wù)功能實(shí)例可以是路由器、網(wǎng)絡(luò)交換機(jī)或者硬件防火墻。
對(duì)于s105所述fc分別向業(yè)務(wù)功能實(shí)例1發(fā)送報(bào)文1,向業(yè)務(wù)功能實(shí)例2發(fā)送報(bào)文2。也就是說(shuō),不同的流被發(fā)送至不同的業(yè)務(wù)功能實(shí)例,實(shí)現(xiàn)了對(duì)流量的負(fù)載分擔(dān)。
從上述描述可以看出,在多個(gè)流的場(chǎng)景中使用圖1所示的方法,能實(shí)現(xiàn)對(duì)流量的負(fù)載分擔(dān)。
本申請(qǐng)實(shí)施例一公開(kāi)的技術(shù)方案,通過(guò)接收網(wǎng)絡(luò)控制裝置發(fā)送的流表,該流表中包含流的規(guī)則,所述流被綁定到的sfc的信息,以及所述網(wǎng)絡(luò)控制裝置分配的流的id。在報(bào)文處理過(guò)程中,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),結(jié)合業(yè)務(wù)功能鏈的業(yè)務(wù)功能路徑標(biāo)識(shí),及業(yè)務(wù)索引確定具體的業(yè)務(wù)功能實(shí)例,并向該確定的具體的業(yè)務(wù)功能實(shí)例發(fā)送封裝后的報(bào)文。本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案,相較于僅限于使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)對(duì)報(bào)文進(jìn)行處理,處理的方式更加靈活。
需要說(shuō)明的是,關(guān)于本申請(qǐng)實(shí)施例中涉及的sfc、sf、sff以及sfp,請(qǐng)參考ietf在2015年10月發(fā)布的標(biāo)準(zhǔn)文檔rfc7665。該標(biāo)準(zhǔn)文檔的名稱為“servicefunctionchaining(sfc)architecture”。
本申請(qǐng)實(shí)施例引用標(biāo)準(zhǔn)文檔rfc7665,并且將標(biāo)準(zhǔn)文檔rfc7665作為本申請(qǐng)公開(kāi)的內(nèi)容的組成部分。
實(shí)施例二
基于上述本申請(qǐng)實(shí)施例一公開(kāi)的一種報(bào)文處理方法,在執(zhí)行步驟s101接收網(wǎng)絡(luò)控制裝置下發(fā)的流表之前,還包括:
fc首先向所述網(wǎng)絡(luò)控制裝置發(fā)送為所述流分配所述流的id的請(qǐng)求,所述請(qǐng)求中包含所述流的信息;
然后接收所述網(wǎng)絡(luò)控制裝置為所述流分配的所述流的id的響應(yīng),所述響應(yīng)中包含所述流的標(biāo)識(shí),所述流的標(biāo)識(shí)與所述流的信息不同。
在本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案中,能夠?qū)崿F(xiàn)網(wǎng)絡(luò)控制裝置基于fc的請(qǐng)求分配流的id,是基于所述網(wǎng)絡(luò)控制裝置可以預(yù)先保存所述流的id與所述流的信息的映射表;
當(dāng)所述fc接收到屬于所述流的報(bào)文時(shí),可以獲取所述流的信息。所述流的信息可以是所述fc接收所述屬于所述流的報(bào)文的端口。所述流的信息也可以是所述屬于所述流的報(bào)文中的字段。例如,目的ip地址。也可以是上述信息的組合,例如端口和目的ip地址。
在所述fc獲取所述流的信息后,可以向所述網(wǎng)絡(luò)控制裝置發(fā)送所述請(qǐng)求。例如,所述請(qǐng)求中包含端口和目的ip地址。
在所述網(wǎng)絡(luò)控制裝置接收到所述請(qǐng)求后,以端口和目的ip地址為查找關(guān)鍵字,在預(yù)先保存的映射表中查找與端口和目的ip地址匹配的表項(xiàng),從而獲得所述流的id;
在所述網(wǎng)絡(luò)控制裝置獲得所述流的標(biāo)識(shí)后,向所述fc發(fā)送包含所述流的id的響應(yīng)。
在所述fc收到所述響應(yīng)后,從所述響應(yīng)中獲得所述流的標(biāo)識(shí)。從而,根據(jù)所述流的id,生成所述流表。
在本申請(qǐng)實(shí)施例中,將所述網(wǎng)絡(luò)控制裝置向fc或者fc后續(xù)的網(wǎng)絡(luò)裝置(對(duì)應(yīng)sf)發(fā)送流的標(biāo)識(shí)的行為稱為為流分配流的標(biāo)識(shí)。
網(wǎng)絡(luò)控制裝置可以采用靜態(tài)分配流的id的方式為所述流分配流的id,也可以采用動(dòng)態(tài)分配流的id的方式為所述流分配流的id。
其中,靜態(tài)分配流的id的過(guò)程為:
網(wǎng)絡(luò)控制裝置預(yù)先確定用戶標(biāo)識(shí)與流的id的映射關(guān)系,并保存;
當(dāng)fc接收到報(bào)文后,fc獲得用戶信息,并將用戶信息上送,然后網(wǎng)絡(luò)控制裝置查找映射關(guān)系,并下發(fā)包含流的id的轉(zhuǎn)發(fā)表(為流分配了流的id)。
動(dòng)態(tài)分配流的id的過(guò)程為:
網(wǎng)絡(luò)控制裝置沒(méi)有預(yù)先確定并保存用戶標(biāo)識(shí)與流的id的映射關(guān)系;
當(dāng)fc接收到報(bào)文后,fc獲得用戶信息,并將用戶信息上送,然后網(wǎng)絡(luò)控制裝置從資源池查找映射關(guān)系,并下發(fā)包含流的id的轉(zhuǎn)發(fā)表(為流分配了流的id)。
本申請(qǐng)實(shí)施例一公開(kāi)了一種報(bào)文處理方法。其中,在執(zhí)行步驟s104中得到的第二報(bào)文的隧道頭中包含的第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,該第一業(yè)務(wù)功能實(shí)施例的網(wǎng)絡(luò)地址由所述sfpid,所述流的id和所述第一值確定。確定的過(guò)程具體包括以下兩種方式:
第一種方式,所述fc接收到所述網(wǎng)絡(luò)控制裝置發(fā)送的流分發(fā)表:
所述fc以所述sfpid和所述第一值為查找關(guān)鍵字在流分發(fā)表中查找與所述sfpid以及所述第一值匹配的表項(xiàng)。所述流分發(fā)表中與所述sfpid以及所述第一值匹配的表項(xiàng)包含所述首個(gè)sf以及所述首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;或者,所述流分發(fā)表中與所述sfpid以及所述第一值匹配的表項(xiàng)包含所述下一個(gè)sf及所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
以所述sfpid和所述流的id為查找關(guān)鍵字,從所述流分發(fā)表中與所述sfpid以及所述第一值匹配的表項(xiàng)包含的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
第二種方式,所述fc未接收到所述網(wǎng)絡(luò)控制裝置下發(fā)的流分發(fā)表:
所述fc以所述sfpid和所述第一值確定所述首個(gè)sf以及所述首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址?;?,所述fc以所述sfpid和所述第一值確定所述下一個(gè)sf及所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
以所述sfpid和所述流的id為哈希鍵,從所述首個(gè)sf或所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
由上述可知,fc可以根據(jù)網(wǎng)絡(luò)控制裝置發(fā)送的內(nèi)容,采用不同的方式確定sfc首個(gè)sf或下一個(gè)sf的業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。即,若fc接收到網(wǎng)絡(luò)控制設(shè)備發(fā)送的流分發(fā)表。所述fc按照流分發(fā)表確定sfc的首個(gè)或下一個(gè)sf的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中的第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,并將封裝后的第二報(bào)文發(fā)送給該第一業(yè)務(wù)功能實(shí)例;
若fc未接收到網(wǎng)絡(luò)控制裝置發(fā)送的流分發(fā)表。則所述fc可以以所述sfpid和所述流的id為哈希鍵(hashkey),從所述首個(gè)sf或所述下一個(gè)sf對(duì) 應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,并將封裝后的第二報(bào)文發(fā)送給該第一業(yè)務(wù)功能實(shí)例。
基于上述本申請(qǐng)實(shí)施例公開(kāi)的內(nèi)容,當(dāng)sfc轉(zhuǎn)發(fā)采用的所述業(yè)務(wù)頭是nsh時(shí),需要對(duì)nsh進(jìn)行擴(kuò)展。具體的所述業(yè)務(wù)流id在所述業(yè)務(wù)頭中的位置包括:
如圖2示出的業(yè)務(wù)頭的格式示意圖。當(dāng)所述業(yè)務(wù)頭中的md-type字段的值等于0x2(在16進(jìn)制中表示2)時(shí),對(duì)所述業(yè)務(wù)頭進(jìn)行擴(kuò)展。即擴(kuò)展一個(gè)新的tlv-class。所述tlv-class包含typecode和所述流的id。所述typecode用于表示所述tlv-class攜帶所述流的id。即在該tlv中攜帶流的id;
如圖3示出的業(yè)務(wù)頭的格式示意圖。當(dāng)所述業(yè)務(wù)頭中的md-type字段的值等于0x1(在16進(jìn)制中表示1)時(shí),所述業(yè)務(wù)頭中的mandatorycontextheader攜帶所述流的id。
本申請(qǐng)實(shí)施例通過(guò)上述公開(kāi)的技術(shù)方案,在報(bào)文處理過(guò)程中,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),結(jié)合業(yè)務(wù)功能鏈的業(yè)務(wù)功能路徑標(biāo)識(shí),及業(yè)務(wù)索引確定具體的業(yè)務(wù)功能實(shí)例,并向該確定的具體的業(yè)務(wù)功能實(shí)例發(fā)送封裝后的報(bào)文。本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案,相較于僅使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)對(duì)報(bào)文進(jìn)行處理,處理的方式更加靈活。
實(shí)施例三
針對(duì)上述本申請(qǐng)實(shí)施例一和實(shí)施例二公開(kāi)的一種由fc執(zhí)行的報(bào)文處理方法,圖4示出了另一種報(bào)文處理方法。該報(bào)文處理方法由sfc的第一sf對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例執(zhí)行。該第一sf非sfc上的最后一個(gè)sf。如圖4所示,包括以下步驟:
s201,接收f(shuō)c或所述sfc中所述第一sf的前一個(gè)sf對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例轉(zhuǎn)發(fā)的第二報(bào)文;
在s201中,所述第二報(bào)文中的業(yè)務(wù)頭包括所述sfc對(duì)應(yīng)的sfpid,網(wǎng)絡(luò)控制裝置分配的流的id以及第一值。所述第一值等于業(yè)務(wù)索引減1。所述第二報(bào)文中的隧道頭包括所述第一sf對(duì)應(yīng)的所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第二報(bào)文包含第一報(bào)文。舉例來(lái)說(shuō),s201中涉及的第二報(bào)文可以是s104中涉及的第二報(bào)文。舉例來(lái)說(shuō),圖4所述的方法的執(zhí)行主體第一業(yè)務(wù)功 能實(shí)例可以是s105涉及的第一業(yè)務(wù)功能實(shí)例。s201中涉及的第一報(bào)文可以是s101涉及的第一報(bào)文。因此,關(guān)于第一報(bào)文、第二報(bào)文以及第一業(yè)務(wù)功能實(shí)例,可以參考實(shí)施例一對(duì)圖1所示的方法的描述,此處不再贅述。
上述提到的業(yè)務(wù)索引(serviceindex)用于提供業(yè)務(wù)路徑中的位置。所述業(yè)務(wù)索引是業(yè)務(wù)路徑頭(servicepathheader)中的字段。業(yè)務(wù)路徑頭還可以包括業(yè)務(wù)路徑標(biāo)識(shí)(servicepathid)字段。關(guān)于業(yè)務(wù)索引、業(yè)務(wù)路徑標(biāo)識(shí)以及業(yè)務(wù)路徑頭,請(qǐng)參考標(biāo)準(zhǔn)文檔draft-quinn-sfc-nsh-07的第11頁(yè)第3.3節(jié)。
在本申請(qǐng)實(shí)施例中該業(yè)務(wù)索引是所述業(yè)務(wù)功能鏈的生存時(shí)間值(ttl)。該ttl等于所述業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量。需要說(shuō)明的是,業(yè)務(wù)功能鏈上至少包含n個(gè)業(yè)務(wù)功能,n為大于1的正整數(shù)。
上述提到的隧道信息中包括:隧道端點(diǎn)標(biāo)識(shí)(例如ip地址)、隧道類(lèi)型(例如nshoverudp)、ttl(例如nsh的業(yè)務(wù)索引)。
s202,根據(jù)所述sfpid,所述流的id和所述第一值確定所述第一sf的下一個(gè)sf對(duì)應(yīng)的第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
s203,依據(jù)所述第二報(bào)文中的業(yè)務(wù)頭對(duì)所述第一報(bào)文進(jìn)行業(yè)務(wù)處理;
s204,將所述第一報(bào)文封裝為第三報(bào)文;
在s204中,所述第三報(bào)文中的業(yè)務(wù)頭包括所述sfpid,所述流的id以及第二值。所述第二值等于所述第一值減1。所述第三報(bào)文中的隧道頭包括所述第一sf的下一個(gè)sf對(duì)應(yīng)的所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述sfpid,所述流的id和所述第二值確定。
s205,向所述第二業(yè)務(wù)功能實(shí)例發(fā)送所述第三報(bào)文。
基于上述本申請(qǐng)實(shí)施例三公開(kāi)的一種報(bào)文處理方法。其中,在執(zhí)行s204中得到的第三報(bào)文的隧道頭中包含的第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。該第二業(yè)務(wù)功能實(shí)施例的網(wǎng)絡(luò)地址由所述sfpid,所述流的id和所述第二值確定。確定的過(guò)程具體包括以下三種方式:
第一種方式,該第一業(yè)務(wù)功能實(shí)例可以接收包括所述流應(yīng)用的所述sfpid、所述業(yè)務(wù)索引和為所述流的id選定的所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息的信息表。
在本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案中,所述第一業(yè)務(wù)實(shí)例可以基于所述信息表中所包含的信息確定待轉(zhuǎn)發(fā)給sfc的下一個(gè)sf的一個(gè)業(yè)務(wù)功能實(shí)例,并在進(jìn)行業(yè)務(wù)處理和轉(zhuǎn)發(fā)第三報(bào)文后,更新所述第三報(bào)文的業(yè)務(wù)頭和隧道頭。
第二種方式,第一業(yè)務(wù)功能實(shí)例接收網(wǎng)絡(luò)控制裝置發(fā)送的流分發(fā)表:
以所述sfpid和所述第二值為查找關(guān)鍵字在流分發(fā)表中查找與所述sfpid以及所述第二值匹配的表項(xiàng)。與所述sfpid以及所述第二值匹配的表項(xiàng)包含所述第一sf的下一個(gè)sf,以及所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
以所述sfpid和所述流的id為查找關(guān)鍵字,從所述流分發(fā)表中與所述sfpid以及所述第二值匹配的表項(xiàng)包含的所述多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
第三種方式,第一業(yè)務(wù)功能實(shí)例未接收到網(wǎng)絡(luò)控制裝置發(fā)送的流分發(fā)表:
以所述sfpid和所述第二值確定所述第一sf的下一個(gè)sf,以及所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
以所述sfpid和所述流的id為哈希鍵,從所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
基于上述公開(kāi)的接收到流分發(fā)表或者沒(méi)有接收流分發(fā)表的方式執(zhí)行轉(zhuǎn)發(fā)的過(guò)程中,當(dāng)接收所述第二報(bào)文的第一業(yè)務(wù)功能實(shí)例為所述sfc上的最后一個(gè)sf的業(yè)務(wù)功能實(shí)例時(shí):去掉所述第二報(bào)文的業(yè)務(wù)頭,依據(jù)l2/l3路由方式進(jìn)行轉(zhuǎn)發(fā)。
通過(guò)上述本申請(qǐng)實(shí)施例公開(kāi)的報(bào)文處理方法,該方法由流應(yīng)用的sfc上非最后一個(gè)sf的第一業(yè)務(wù)功能實(shí)例執(zhí)行。同樣的,第二報(bào)文中包含網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)。在報(bào)文處理過(guò)程中,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),結(jié)合業(yè)務(wù)功能鏈的業(yè)務(wù)功能路徑標(biāo)識(shí),及業(yè)務(wù)索引確定具體的業(yè)務(wù)功能實(shí)例,并向該確定的具體的業(yè)務(wù)功能實(shí)例發(fā)送封裝后的報(bào)文。本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案,相較于僅使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)對(duì)報(bào)文進(jìn)行處理,處理的方式更加靈活。
實(shí)施例四
關(guān)于上述本申請(qǐng)實(shí)施例一公開(kāi)的由fc執(zhí)行報(bào)文處理方法、實(shí)施例二公開(kāi)的由fc執(zhí)行報(bào)文處理方法,以及實(shí)施例三公開(kāi)的由sfc上非最后一個(gè)sf的 第一業(yè)務(wù)功能實(shí)例執(zhí)行的報(bào)文處理方法,本申請(qǐng)實(shí)施例四對(duì)上述報(bào)文處理方法進(jìn)行舉例說(shuō)明。
針對(duì)一種云化用戶駐地設(shè)備(customerpremisesequipment,cpe)的方案。該云化cpe僅保留基礎(chǔ)的層2(layer2,l2)、設(shè)備管理等功能,使傳統(tǒng)cpe的nat和fw功能形成cpe流量的業(yè)務(wù)鏈。如圖5所示,為該云化cpe方案的結(jié)構(gòu)示意框圖。利用本申請(qǐng)實(shí)施例公開(kāi)的負(fù)載均衡方法,該方案執(zhí)行流轉(zhuǎn)發(fā)的過(guò)程包括:
首先,需要進(jìn)行兩個(gè)預(yù)先的設(shè)置:
station1:網(wǎng)絡(luò)運(yùn)維人員為開(kāi)通的l2cpe在遠(yuǎn)端(例如城域網(wǎng)dc內(nèi)的服務(wù)器上)拉起一組對(duì)應(yīng)的nat、fw業(yè)務(wù)實(shí)例,并進(jìn)行預(yù)配置,提供網(wǎng)絡(luò)連通性。
station2:在認(rèn)證授權(quán)計(jì)費(fèi)數(shù)據(jù)庫(kù)(authentication,authorizationandaccountingdatabase,aaadb)中添加認(rèn)證授權(quán)信息。例如配置認(rèn)證方式,域信息,精綁定電路信息,授權(quán)的業(yè)務(wù)鏈id。該aaadb相當(dāng)于網(wǎng)絡(luò)控制設(shè)備。
在l2cpe上電后,開(kāi)始執(zhí)行下述步驟:
s1:寬帶遠(yuǎn)程接入服務(wù)器(broadbandremoteaccessserver,bras)根據(jù)來(lái)自l2cpe任何上行報(bào)文的電路信息(接入接口+qinq,例如圖5中示出的l2cpe和olt各為該報(bào)文打一層vlantag)觸發(fā)認(rèn)證。認(rèn)證請(qǐng)求消息中攜帶接入域、用戶信息、網(wǎng)絡(luò)接入標(biāo)識(shí)等信息到認(rèn)證授權(quán)計(jì)費(fèi)服務(wù)器(authentication,authorizationandaccountingserver,aaaserver)認(rèn)證。bras可以用于實(shí)現(xiàn)fc。bras也可以作為業(yè)務(wù)鏈上的首個(gè)業(yè)務(wù)節(jié)點(diǎn)。
s2:aaaserver(相當(dāng)于網(wǎng)絡(luò)控制設(shè)備)認(rèn)證通過(guò)后,發(fā)送認(rèn)證應(yīng)答消息給bras,并告知認(rèn)證是否通過(guò)的結(jié)果,同時(shí)攜帶該l2cpe(表示家庭用戶或企業(yè)用戶)相關(guān)的授權(quán)信息和分配的流的id。
s3:bras收到認(rèn)證授權(quán)結(jié)果后,生成對(duì)應(yīng)的用戶表。上行流量的用戶表中體現(xiàn)l2cpe上行流量標(biāo)識(shí)(接入接口+qinq)到sfcid、流的id映射的流規(guī)則表信息(這里的流規(guī)則表用于實(shí)現(xiàn)s101中的流表)。
可選的,s4:vcpe的控制和管理設(shè)備(例如sfc控制器,相當(dāng)于網(wǎng)絡(luò)控制設(shè)備)可以根據(jù)nat、fw(nat和fw相當(dāng)于業(yè)務(wù)鏈的業(yè)務(wù)節(jié)點(diǎn))各 個(gè)業(yè)務(wù)功能實(shí)例的負(fù)荷情況和預(yù)置負(fù)載均衡策略,生成流分發(fā)表下發(fā)給bras、nat、fw的具體業(yè)務(wù)功能實(shí)例,用于引導(dǎo)新上線的l2cpe流量到業(yè)務(wù)功能鏈上各個(gè)合適的業(yè)務(wù)功能實(shí)例,或調(diào)整遷移已有的部分業(yè)務(wù)功能實(shí)例的l2cpe流量(存在需要業(yè)務(wù)流量遷移的新舊業(yè)務(wù)功能實(shí)例間配合同步業(yè)務(wù)會(huì)話數(shù)據(jù)的情況)。
其中,同時(shí)sfc控制器可以設(shè)置下發(fā)默認(rèn)流分發(fā)表。在bras或nat、fw的業(yè)務(wù)實(shí)例查流分發(fā)表沒(méi)有命中時(shí)可以按默認(rèn)流分發(fā)表進(jìn)行分發(fā)。
s5:bras為l2cpe上行流量封裝業(yè)務(wù)報(bào)文的nsh(業(yè)務(wù)頭),并攜帶對(duì)應(yīng)的sfcid、業(yè)務(wù)索引和流的id,根據(jù)業(yè)務(wù)功能鏈的流分發(fā)表轉(zhuǎn)發(fā)給對(duì)應(yīng)的下一個(gè)業(yè)務(wù)功能的具體業(yè)務(wù)功能實(shí)例(例如圖5中的cgn1,或cgn2,……,或cgnn);
s6:由具體業(yè)務(wù)功能實(shí)例(cgn1,或cgn2、……,或cgnn)依據(jù)接收到的流分發(fā)表和業(yè)務(wù)報(bào)文繼續(xù)執(zhí)行轉(zhuǎn)發(fā)至下一個(gè)業(yè)務(wù)功能的具體業(yè)務(wù)功能實(shí)例(例如圖5中的fw1,或fw2,……或fwn)。
如下表1所示,為業(yè)務(wù)鏈bras→cgn→fw上,bras的流規(guī)則表,及如下表2所示,為bras的流分發(fā)表。
表1:
表2:
如下表3所示,為業(yè)務(wù)鏈bras→cgn→fw上,cgn的流分發(fā)表。
表3:
由上述流表和流分發(fā)表可知,如電路信息為(p+v+v:1/100/200)的l2cpe的業(yè)務(wù)流從bras接入,分配的流的id(flowid)是1,指定的應(yīng)用業(yè)務(wù)鏈業(yè)務(wù)鏈bras→cgn→fw,對(duì)應(yīng)的sfcid是2。在執(zhí)行上述過(guò)程時(shí),bras根據(jù)流分發(fā)表將該l2cpe的上行流量轉(zhuǎn)發(fā)給cgn業(yè)務(wù)實(shí)例cgn1,cgn1根據(jù)流分發(fā)表將給l2cpe的上行流量轉(zhuǎn)發(fā)給fw業(yè)務(wù)實(shí)例fw1。
通過(guò)上述具體應(yīng)用距離,本申請(qǐng)實(shí)施例公開(kāi)的報(bào)文處理方法,在報(bào)文處理過(guò)程中,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),結(jié)合業(yè)務(wù)功能鏈的業(yè)務(wù)功能路徑標(biāo)識(shí),及業(yè)務(wù)索引確定具體的業(yè)務(wù)功能實(shí)例,并向該確定的具體的業(yè)務(wù)功能實(shí)例發(fā)送封裝后的報(bào)文。本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案,相較于僅使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)對(duì)報(bào)文進(jìn)行處理,處理的方式更加靈活。
實(shí)施例五
基于上述本申請(qǐng)實(shí)施例一和實(shí)施例二公開(kāi)的一種報(bào)文處理方法,對(duì)應(yīng)的本申請(qǐng)實(shí)施例五還對(duì)應(yīng)公開(kāi)了執(zhí)行上述報(bào)文處理方法的fc。所述fc可以是能夠與sfc中的首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例通信的網(wǎng)絡(luò)裝置?;蛘?,所述fc可以是所述sfc的首個(gè)sf。如圖6所示,該fc主要包括:接收單元11,處理單元12和發(fā)送單元13。
接收單元11,用于接收網(wǎng)絡(luò)控制裝置發(fā)送的流表,以及獲取第一報(bào)文;
其中,所述流表包含流的規(guī)則,所述流被綁定到的sfc的信息,以及所述網(wǎng)絡(luò)控制裝置分配的流的id。所述sfc的信息包括業(yè)務(wù)索引,所述sfc對(duì)應(yīng)的sfpid,所述sfc的首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息?;蛘?,所述sfc的信息包括業(yè)務(wù)索引,所述sfc對(duì)應(yīng)的sfpid,所述sfc的首個(gè)sf的下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息。
所述業(yè)務(wù)索引是所sfc的生存時(shí)間值。所述生存時(shí)間值等于sfc上所包含的sf的數(shù)量;
處理單元12,用于確定所述接收單元11獲取的第一報(bào)文與所述流表匹配,并將所述第一報(bào)文封裝為第二報(bào)文;
其中,所述第二報(bào)文包括業(yè)務(wù)頭以及隧道頭。所述業(yè)務(wù)頭包括所述sfpid,所述流的id以及第一值。所述第一值等于所述業(yè)務(wù)索引減1。
所述隧道頭是基于所述隧道信息生成的。所述隧道頭中包括第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第一業(yè)務(wù)功能實(shí)例是所述多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例。所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述sfpid,所述流的id和所述第一值確定。
發(fā)送單元13,用于向所述處理單元12確定的第一業(yè)務(wù)功能實(shí)例發(fā)送所述第二報(bào)文。
在本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案中,優(yōu)選的,所述處理單元還用于:向所述網(wǎng)絡(luò)控制裝置發(fā)送為所述流分配所述流的標(biāo)識(shí)的請(qǐng)求,所述請(qǐng)求中包含所述流的信息;接收所述網(wǎng)絡(luò)控制裝置為所述流分配的所述流的標(biāo)識(shí)的響應(yīng),所述響應(yīng)中包含所述流的標(biāo)識(shí),所述流的標(biāo)識(shí)與所述流的信息不同。
需要說(shuō)明的是,所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定的所述處理單元12針對(duì)是否接收到網(wǎng)絡(luò)控制裝置發(fā)送的流分發(fā)表,對(duì)于第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址的確定具有兩種不同的執(zhí)行方式:
第一種方式,所述fc接收到所述網(wǎng)絡(luò)控制裝置發(fā)送的流分發(fā)表:
所述處理單元12,用于以所述sfpid和所述第一值為查找關(guān)鍵字在流分發(fā)表中查找與所述sfpid以及所述第一值匹配的表項(xiàng)。所述流分發(fā)表中與所述sfpid以及所述第一值匹配的表項(xiàng)包含所述首個(gè)sf以及所述首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址?;蛘?,所述流分發(fā)表中與所述sfpid以及所述第一值匹配的表項(xiàng)包含所述下一個(gè)sf及所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。以所述sfpid和所述流的id為查找關(guān)鍵字,從所述流分發(fā)表中與所述sfpid以及所述第一值匹配的表項(xiàng)包含的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
第二種方式,所述fc未接收到所述網(wǎng)絡(luò)控制裝置發(fā)送的流分發(fā)表:
所述處理單元12,用于以所述sfpid和所述第一值確定所述首個(gè)sf以及所述首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址?;颍运鰏fpid和 所述第一值確定所述下一個(gè)sf及所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。以所述sfpid和所述流的id為哈希鍵,從所述首個(gè)sf或下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
在本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案中,針對(duì)上述進(jìn)行封裝時(shí)得到的業(yè)務(wù)頭,所述處理單元12還用于,在所述業(yè)務(wù)頭是nsh網(wǎng)絡(luò)服務(wù)頭的情況下,當(dāng)所述業(yè)務(wù)頭中的md-type字段的值等于0x2時(shí),所述業(yè)務(wù)頭包含tlv-class。所述tlv-class包含typecode和所述流的標(biāo)識(shí)。所述typecode用于表示所述tlv-class攜帶所述流的標(biāo)識(shí);
或者,
在所述業(yè)務(wù)頭是nsh網(wǎng)絡(luò)服務(wù)頭的情況下,當(dāng)所述業(yè)務(wù)頭中的md-type字段的值等于0x1時(shí),所述業(yè)務(wù)頭中的mandatorycontextheader攜帶所述流的標(biāo)識(shí)。
基于上述本申請(qǐng)實(shí)施例公開(kāi)的一種fc,在實(shí)際應(yīng)用中可以將上述公開(kāi)的fc中的各個(gè)單元集成至實(shí)體中,如圖7所示,包括接收器101、處理器102和發(fā)送器103。具體的,上述接收單元11可以是接收器101,上述發(fā)送單元13可以是發(fā)送器103,上述處理單元12可以是處理器102。由處理器102控制接收器101和發(fā)送器103執(zhí)行相應(yīng)的操作,該處理器2具體可以是一個(gè)中央處理器cpu,或者是特定集成電路asic,或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路。
基于上述本申請(qǐng)實(shí)施例公開(kāi)的一種fc,本申請(qǐng)實(shí)施例還對(duì)應(yīng)公開(kāi)了一種存儲(chǔ)設(shè)備,該存儲(chǔ)設(shè)備適用于該fc,所述存儲(chǔ)設(shè)備包括存儲(chǔ)器和通過(guò)總線與所述存儲(chǔ)器連接的處理器;
所述存儲(chǔ)器存儲(chǔ)有用于進(jìn)行報(bào)文處理的程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令,所述處理器用于運(yùn)行上述程序代碼;
所述用于進(jìn)行報(bào)文處理的程序代碼包括:
接收網(wǎng)絡(luò)控制裝置發(fā)送的流表。所述流表包含流的規(guī)則,所述流被綁定到的sfc的信息,以及所述網(wǎng)絡(luò)控制裝置分配的流的id。所述sfc的信息包括業(yè)務(wù)索引,所述sfc對(duì)應(yīng)的sfpid,所述sfc的首個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息?;蛘?,所述sfc 的信息包括業(yè)務(wù)索引,所述sfc對(duì)應(yīng)的sfpid,所述sfc的首個(gè)sf的下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址,及所述多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息。所述業(yè)務(wù)索引是所述sfc的生存時(shí)間值。所述生存時(shí)間值等于所述sfc上所包含的sf的數(shù)量;
獲取第一報(bào)文;
確定所述第一報(bào)文與所述流表匹配;
將所述第一報(bào)文封裝為第二報(bào)文。所述第二報(bào)文包括業(yè)務(wù)頭以及隧道頭。所述業(yè)務(wù)頭包括所述sfpid,所述流的id以及第一值。所述第一值等于所述業(yè)務(wù)索引減1。所述隧道頭是基于所述隧道信息生成的。所述隧道頭中包括第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第一業(yè)務(wù)功能實(shí)例是所述多個(gè)業(yè)務(wù)功能實(shí)例中的一個(gè)業(yè)務(wù)功能實(shí)例。所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述sfpid,所述流的id和所述第一值確定。
向所述第一業(yè)務(wù)功能實(shí)例發(fā)送所述第二報(bào)文。
上述提到的存儲(chǔ)器可能包含高速ram存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤(pán)存儲(chǔ)器;
處理器可能是一個(gè)中央處理器cpu,或者是特定集成電路asic,或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路。
基于上述本申請(qǐng)實(shí)施例三公開(kāi)的一種報(bào)文處理方法,對(duì)應(yīng)的本申請(qǐng)實(shí)施例五還對(duì)應(yīng)公開(kāi)了執(zhí)行該報(bào)文處理方法的sfc的第一sf對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例,該第一sf非所述sfc上最后一個(gè)sf,如圖8所示,該第一業(yè)務(wù)功能實(shí)例20主要包括:接收單元21、處理單元22和發(fā)送單元23。
接收單元21,用于接收f(shuō)c或所述sfc中所述第一業(yè)功能的前一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例轉(zhuǎn)發(fā)的第二報(bào)文。所述第二報(bào)文中的業(yè)務(wù)頭包括所述sfc對(duì)應(yīng)的sfpid,網(wǎng)絡(luò)控制裝置分配的流的id以及第一值。所述第一值等于業(yè)務(wù)索引減1。所述第二報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第二報(bào)文包含第一報(bào)文。所述業(yè)務(wù)索引是sfc的生存時(shí)間值。所述生存時(shí)間值等于sfc上所包含的業(yè)務(wù)功能的數(shù)量;
處理單元22,用于根據(jù)所述接收單元21接收到的所述sfpid,所述流的id和所述第二值確定所述第一sf的下一個(gè)sf對(duì)應(yīng)的第二業(yè)務(wù)功能實(shí)例的 網(wǎng)絡(luò)地址。依據(jù)所述接收單元接收到的所述第二報(bào)文中的業(yè)務(wù)頭對(duì)所述第一報(bào)文進(jìn)行業(yè)務(wù)處理,將所述第一報(bào)文封裝為第三報(bào)文。所述第三報(bào)文中的業(yè)務(wù)頭包括所述sfpid,所述流的id以及第二值。所述第二值等于所述第一值減1。所述第三報(bào)文中的隧道頭包括所述第一sf的下一個(gè)sf對(duì)應(yīng)的所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述sfpid,所述流的id和所述第二值確定。
發(fā)送單元23,用于向所述處理單元22確定的所述第二業(yè)務(wù)功能實(shí)例發(fā)送所述第三報(bào)文。
在本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案中,優(yōu)選的,該接收單元21,還用于接收包括所述流應(yīng)用的所述sfpid、所述業(yè)務(wù)索引和為所述流的id選定的所述第一sf的下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的隧道信息的信息表。
在本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案中,由所述sfpid,所述流的id和所述第二值確定所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址的處理單元22,還包括:
所述處理單元22,還用于以所述sfpid和所述第二值為查找關(guān)鍵字在流分發(fā)表中查找與所述sfpid以及所述第二值匹配的表項(xiàng)。在流分發(fā)表中與所述sfpid以及所述第二值匹配的表項(xiàng)包含所述第一sf的下一個(gè)sf,以及所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。以所述sfpid和所述流的id為查找關(guān)鍵字,從所述流分發(fā)表中與所述sfpid以及所述第二值匹配的表項(xiàng)包含的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
或者,
所述處理單元22,還用于以所述sfpid和所述第二值確定所述第一sf的下一個(gè)sf,以及所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。以所述sfpid和所述流的id為哈希鍵,從所述下一個(gè)sf對(duì)應(yīng)的多個(gè)業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址中確定第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。
基于上述本申請(qǐng)實(shí)施例公開(kāi)的一種業(yè)務(wù)功能實(shí)例,在實(shí)際應(yīng)用中可以將上述公開(kāi)的業(yè)務(wù)功能實(shí)例中的各個(gè)模塊集成至實(shí)體中,如圖9所示,包括接收器201、處理器202和發(fā)送器203。具體的,上述接收單元21可以是接收器201,上述處理單元22可以是處理器202,上述發(fā)送單元23可以是發(fā)送器203。由處理器202控制接收器201和發(fā)送器203執(zhí)行相應(yīng)的操作,該處理器 202具體可以是一個(gè)中央處理器cpu,或者是特定集成電路asic,或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路。
基于上述本申請(qǐng)實(shí)施例公開(kāi)的一種業(yè)務(wù)功能實(shí)例,本申請(qǐng)實(shí)施例還對(duì)應(yīng)公開(kāi)了一種存儲(chǔ)設(shè)備,該存儲(chǔ)設(shè)備適用于該業(yè)務(wù)功能實(shí)例,所述存儲(chǔ)設(shè)備包括存儲(chǔ)器和通過(guò)總線與所述存儲(chǔ)器連接的處理器;
所述存儲(chǔ)器存儲(chǔ)有用于進(jìn)行報(bào)文處理的程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令,所述處理器用于運(yùn)行上述程序代碼;
所述用于進(jìn)行報(bào)文處理的程序代碼包括:
接收流分類(lèi)器或所述業(yè)務(wù)功能鏈中所述第一業(yè)務(wù)功能的前一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第一業(yè)務(wù)功能實(shí)例轉(zhuǎn)發(fā)的第二報(bào)文。所述第二報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能鏈對(duì)應(yīng)的業(yè)務(wù)功能路徑標(biāo)識(shí),網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)以及第一值。所述第一值等于業(yè)務(wù)索引減1。所述第二報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能對(duì)應(yīng)的所述第一業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第二報(bào)文包含第一報(bào)文。所述業(yè)務(wù)索引是業(yè)務(wù)功能鏈的生存時(shí)間值。所述生存時(shí)間值等于業(yè)務(wù)功能鏈上所包含的業(yè)務(wù)功能的數(shù)量;
根據(jù)所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第一值確定所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址;
依據(jù)所述第二報(bào)文中的業(yè)務(wù)頭對(duì)所述第一報(bào)文進(jìn)行業(yè)務(wù)處理;
將所述第一報(bào)文封裝為第三報(bào)文。所述第三報(bào)文中的業(yè)務(wù)頭包括所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)以及第二值。所述第二值等于所述第一值減1。所述第三報(bào)文中的隧道頭包括所述第一業(yè)務(wù)功能的下一個(gè)業(yè)務(wù)功能對(duì)應(yīng)的所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址。所述第二業(yè)務(wù)功能實(shí)例的網(wǎng)絡(luò)地址由所述業(yè)務(wù)功能路徑標(biāo)識(shí),所述流的標(biāo)識(shí)和所述第二值確定;
向所述第二業(yè)務(wù)功能實(shí)例發(fā)送所述第三報(bào)文。
此外,本申請(qǐng)實(shí)施例還公開(kāi)了一種報(bào)文處理系統(tǒng)40,如圖10所示,包括上述如圖6或圖7公開(kāi)的fc,或適用于本申請(qǐng)實(shí)施例公開(kāi)的存儲(chǔ)設(shè)備的fc,上述圖8或圖9公開(kāi)的業(yè)務(wù)功能實(shí)例20,或適用于本申請(qǐng)實(shí)施例公開(kāi)的存儲(chǔ)設(shè)備的業(yè)務(wù)功能實(shí)例20,以及,用于發(fā)送流表的網(wǎng)絡(luò)控制裝置30;
其中,所述網(wǎng)絡(luò)控制裝置30為網(wǎng)絡(luò)控制器或aaa服務(wù)器,在所述網(wǎng)絡(luò)控制裝置30中設(shè)置有流的id管理單元31。
綜上所述,本申請(qǐng)實(shí)施例公開(kāi)的一種報(bào)文處理系統(tǒng),在報(bào)文處理過(guò)程中,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí),結(jié)合業(yè)務(wù)功能鏈的業(yè)務(wù)功能路徑標(biāo)識(shí),及業(yè)務(wù)索引確定具體的業(yè)務(wù)功能實(shí)例,并向該確定的具體的業(yè)務(wù)功能實(shí)例發(fā)送封裝后的報(bào)文。本申請(qǐng)實(shí)施例公開(kāi)的技術(shù)方案,相較于現(xiàn)有技術(shù)中僅限于使用報(bào)文中的字段來(lái)對(duì)報(bào)文進(jìn)行識(shí)別以及處理,根據(jù)網(wǎng)絡(luò)控制裝置分配的流的標(biāo)識(shí)對(duì)報(bào)文進(jìn)行處理,處理的方式更加靈活。
本申請(qǐng)說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專(zhuān)業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)。