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