本發(fā)明涉及信息
技術(shù)領(lǐng)域:
,并且具體地,涉及處理數(shù)據(jù)報文的方法、裝置及系統(tǒng)。
背景技術(shù):
:開放流(OpenFlow)技術(shù)旨在基于現(xiàn)有TCP/IP技術(shù)條件,以創(chuàng)新的網(wǎng)絡(luò)互聯(lián)理念解決當(dāng)前網(wǎng)絡(luò)面對新業(yè)務(wù)產(chǎn)生的瓶頸。其核心思想就是將原本完全由交換機/路由器控制的數(shù)據(jù)包轉(zhuǎn)發(fā)過程,轉(zhuǎn)化為由OpenFlow交換機(OpenFlowSwitch)和Openflow控制器(Controller)分別完成的獨立過程。因此OpenFlow網(wǎng)絡(luò)中的設(shè)備能夠分布部署、集中管控,使得網(wǎng)絡(luò)變?yōu)橛脩艨啥x的形態(tài)。雖然在OpenFlow網(wǎng)絡(luò)中,用戶可以決定如何路由數(shù)據(jù)包或者如何進行訪問控制等,但是由于對分組數(shù)據(jù)報文的操作仍然是局限于現(xiàn)有具體協(xié)議格式,因此用戶只能針對規(guī)定的協(xié)議格式進行自定義操作。而目前OpenFlow規(guī)范中所能支持的協(xié)議格式是有限的,導(dǎo)致應(yīng)用場景也很有限。如果為了實現(xiàn)新增的協(xié)議需求,則需要針對具體的新增協(xié)議對OpenFlow規(guī)范繼續(xù)擴展,這樣會造成擴展項變得復(fù)雜。技術(shù)實現(xiàn)要素:本發(fā)明實施例提供處理數(shù)據(jù)報文的方法、裝置及系統(tǒng),能夠?qū)崿F(xiàn)對數(shù)據(jù)報文靈活的自定義處理。第一方面,提供了一種處理數(shù)據(jù)報文的方法,包括:將數(shù)據(jù)報文與流表項的匹配域信息進行匹配;所述流表項包括所述匹配域信息和操作域信息;其中,所述操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定所述數(shù)據(jù)報文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域;如果所述數(shù)據(jù)報文與所述匹配域信息匹配成功,則根據(jù)所述操作域信息,對所述數(shù)據(jù)報文進行操作。在第一方面的第一種可能實現(xiàn)的方式中,當(dāng)所述操作域信息包括所述操作類型和所述第一比特域指示信息時,所述根據(jù)所述操作域信息,對所述數(shù)據(jù)報文進行操作,包括:根據(jù)所述第一比特域指示信息確定所述數(shù)據(jù)報文的第一比特域;根據(jù)所述操作類型,對所述第一比特域進行操作。結(jié)合第一方面,或第一方面的第一種可能實現(xiàn)的方式,在第二種可能實現(xiàn)的方式中,當(dāng)所述匹配域信息包括所述第二比特域指示信息和所述匹配值時,所述將數(shù)據(jù)報文與流表項的匹配域信息進行匹配,包括:根據(jù)所述第二比特域指示信息,確定所述數(shù)據(jù)報文的第二比特域;根據(jù)所述匹配值,對所述第二比特域進行匹配。第二方面,提供了一種處理數(shù)據(jù)報文的裝置,包括:匹配單元,用于將數(shù)據(jù)報文與流表項的匹配域信息進行匹配;所述流表項包括所述匹配域信息和操作域信息;其中,所述操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定所述數(shù)據(jù)報文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域;操作單元,用于如果所述數(shù)據(jù)報文與所述匹配域信息匹配成功,則根據(jù)所述操作域信息,對所述數(shù)據(jù)報文進行操作。在第二方面的第一種可能實現(xiàn)的方式中,當(dāng)所述操作域信息包括所述操作類型和所述第一比特域指示信息時,所述操作單元具體用于,如果所述數(shù)據(jù)報文與所述匹配域信息匹配成功,則根據(jù)所述第一比特域指示信息確定所述數(shù)據(jù)報文的第一比特域,根據(jù)所述操作類型,對所述第一比特域進行操作。結(jié)合第二方面或者第二方面的第一種可能實現(xiàn)的方式,在第二方面的第二種可能實現(xiàn)的方式中,當(dāng)所述匹配域信息包括所述第二比特域指示信息和所述匹配值時,所述匹配單元具體用于,根據(jù)所述第二比特域指示信息,確定所述數(shù)據(jù)報文的第二比特域;根據(jù)所述匹配值,對所述第二比特域進行匹配。第三方面,提供了一種處理數(shù)據(jù)報文的方法,包括:生成流表項添加指示消息,所述流表項添加指示信息包括匹配域信息和操作域信息;其中,所述操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定數(shù)據(jù)報文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域;發(fā)送所述流表項添加指示消息至交換設(shè)備,以使所述交換設(shè)備根據(jù)所述流表項添加指示消息生成流表項,并根據(jù)所述流表項對所述數(shù)據(jù)報文進行處理。在第三方面的第一種可能實現(xiàn)的方式中,該方法還包括發(fā)送特性請求消息至所述交換設(shè)備,所述特性請求消息用于詢問是否支持所述匹配域信息或者所述操作域信息;接收所述交換設(shè)備發(fā)送的特性響應(yīng)消息,所述特性響應(yīng)消息用于指示支持所述匹配域信息或者所述操作域信息。第四方面,提供了一種處理數(shù)據(jù)報文的裝置,包括:生成單元,用于生成流表項添加指示消息,所述流表項添加指示信息包括匹配域信息和操作域信息;其中,所述操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定數(shù)據(jù)報文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域;發(fā)送單元,用于發(fā)送所述流表項添加指示消息至交換設(shè)備,以使所述交換設(shè)備根據(jù)所述流表項添加指示消息生成流表項,并根據(jù)所述流表項對所述數(shù)據(jù)報文進行處理。在第四方面的第一種可能的實現(xiàn)方式中,所述發(fā)送單元,還用于發(fā)送特性請求消息至所述交換設(shè)備,所述特性請求消息用于詢問是否支持所述匹配域信息或者所述操作域信息;所述裝置還包括接收單元,用于接收所述交換設(shè)備發(fā)送的特性響應(yīng)消息,所述特性響應(yīng)消息用于指示支持所述匹配域信息或者所述操作域信息。第五方面,提供一種處理數(shù)據(jù)報文的系統(tǒng),包括第二方面提供的處理數(shù)據(jù)報文的裝置和第四方面提供的處理數(shù)據(jù)報文的裝置。在上述方案中,通過根據(jù)偏移量和字段長度能夠靈活確定數(shù)據(jù)報文的特定比特域,并對該特定比特域進行匹配或者操作,因此能夠?qū)崿F(xiàn)對數(shù)據(jù)報文靈活的自定義處理,從而使對數(shù)據(jù)報文的處理不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。附圖說明為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對本發(fā)明實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是可應(yīng)用本發(fā)明實施例的網(wǎng)絡(luò)架構(gòu)的一個例子的示意圖;圖2是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的示意性流程圖;圖3是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的示意性流程圖;圖4是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的示意性流程圖;圖5是根據(jù)本發(fā)明實施例的對數(shù)據(jù)報文進行匹配的過程的一個例子的示意圖;圖6是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的一個例子的示意性流程圖;圖7是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的另一例子的示意圖;圖8是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的另一例子的示意圖;圖9是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的另一例子的示意圖;圖10是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的另一例子的示意圖;圖11是根據(jù)本發(fā)明實施例的流表的布置方式的一個例子的示意圖;圖12是根據(jù)本發(fā)明一個實施例的處理數(shù)據(jù)報文的裝置的示意框圖;圖13是根據(jù)本發(fā)明另一實施例的處理數(shù)據(jù)報文的裝置的示意框圖;圖14是根據(jù)本發(fā)明另一實施例的處理數(shù)據(jù)報文的系統(tǒng)的示意框圖;圖15是根據(jù)本發(fā)明另一實施例的處理數(shù)據(jù)報文的裝置的一種硬件實現(xiàn)的結(jié)構(gòu)示意圖;圖16是根據(jù)本發(fā)明另一實施例的處理數(shù)據(jù)報文的裝置的一種硬件實現(xiàn)的結(jié)構(gòu)示意圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都應(yīng)屬于本發(fā)明保護的范圍。圖1是可應(yīng)用本發(fā)明實施例的網(wǎng)絡(luò)架構(gòu)的一個例子的示意圖。應(yīng)注意,圖1的例子只是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實施例,而非限制本發(fā)明實施例的范圍。在圖1中,以O(shè)penFlow網(wǎng)絡(luò)的架構(gòu)為例進行說明。如圖1所示,一個Openflow交換機包括一個或多個實現(xiàn)分組報文匹配和轉(zhuǎn)發(fā)功能的流表(Flowtable)以及一個連接外部Openflow控制器的安全通道(Securechannel)。Openflow交換機的安全通道與Openflow控制器之間通過Openflow協(xié)議消息進行交互,實現(xiàn)對交換機內(nèi)部的流表操作。每個流表中包括一個或多個流表項(Flowentry)。Openflow控制器通過Openflow協(xié)議消息可以添加、更新或刪除流表中的流表項。每個流表項包括匹配域信息和對應(yīng)的操作域信息,其中操作域信息也可稱為動作(Actions)域信息或者指令(Instructions)域信息。交換機從輸入端口接收到數(shù)據(jù)報文后從第一個流表開始進行匹配,然后跳轉(zhuǎn)到下一個流表繼續(xù)匹配。這種順次級聯(lián)的流表稱為流管線(Pipeline)。交換機將接收到的報文與流表中各流表項的匹配域信息進行比對,如果流表中存在與接收到的報文匹配的流表項,則執(zhí)行流表項中操作域信息中對應(yīng)的操作。流表項中的操作域包括兩類信息,第一類是將匹配的報文跳轉(zhuǎn)到下一個流表實現(xiàn)進一步處理,同時還可傳遞相應(yīng)的元數(shù)據(jù);第二類是實現(xiàn)對數(shù)據(jù)報文的修改和轉(zhuǎn)發(fā)到輸出端口。OpenFlow交換設(shè)備可以是支持OpenFlow技術(shù)的具有交換功能的設(shè)備,可以是OpenFlow交換機,本發(fā)明實施例對此不作限制。以下實施例中OpenFlow交換設(shè)備可簡稱交換設(shè)備。OpenFlow控制設(shè)備可以是支持OpenFlow技術(shù)的具有控制功能的設(shè)備,可以是OpenFlow控制器,本發(fā)明實施例對此不作限制。以下實施例中OpenFlow控制設(shè)備簡稱控制設(shè)備。應(yīng)注意,本發(fā)明實施例中,雖然以O(shè)penFlow網(wǎng)絡(luò)為例進行說明,但本發(fā)明實施例還可以應(yīng)用于其它類似于OpenFlow網(wǎng)絡(luò)的控制面與轉(zhuǎn)發(fā)面分離的網(wǎng)絡(luò)架構(gòu)中。本發(fā)明實施例對此不作限定。圖2是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的示意性流程圖。圖2的方法由交換設(shè)備執(zhí)行,例如,支持OpenFlow技術(shù)的交換機。210,將數(shù)據(jù)報文與流表項的匹配域信息進行匹配。所述流表項包括所述匹配域信息和操作域信息??蛇x地,所述操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定所述數(shù)據(jù)報文的第一比特域。當(dāng)所述操作域信息包括第一比特域指示信息的時候,可以根據(jù)第一比特域指示信息的第一偏移量確定數(shù)據(jù)報文的某個特定比特域在該數(shù)據(jù)報文中的起始位置,根據(jù)第一字段長度可以確定該特定比特域的長度,從而可以獲取該特定比特域,進而可以根據(jù)操作類型,對該特定比特域進行相應(yīng)的操作。因此能夠自由獲取數(shù)據(jù)報文中的特定比特域進行相應(yīng)的操作,而不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展??蛇x地,第一比特域指示信息還包括第一掩碼,在根據(jù)第一偏移量和第一字段長度獲得該特定比特域后,還可以根據(jù)第一掩碼,獲得該比特域中一個或多個比特位,即該比特域中至少一個比特位,進而可以根據(jù)操作類型,對獲得的一個或多個比特位進行相應(yīng)的操作。因此,可以在自由獲取數(shù)據(jù)報文的特定比特域的基礎(chǔ)上,自由獲取該特定比特域中一個或多個特定的比特位進行相應(yīng)的操作,增加了對數(shù)據(jù)報文自定義處理的自由度和通用性??蛇x地,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域。如果第二比特域的取值與匹配值相等,則第二比特域與匹配值匹配成功,也就是數(shù)據(jù)報文與流表項匹配成功。匹配值與第二比特域指示信息是相對應(yīng)的。當(dāng)所述匹配域信息包括所述第二比特域指示信息的時候,可以根據(jù)第二偏移量確定數(shù)據(jù)報文的某個特定比特域在所述數(shù)據(jù)報文的起始位置,根據(jù)第二字段長度,可以確定該特定比特域的長度,從而可以獲取該特定比特域,進而根據(jù)匹配值,對該比特域進行匹配。因此能夠自由獲取數(shù)據(jù)報文中的特定比特域進行匹配,而不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展。可選地,第二比特域指示信息還包括第二掩碼,在根據(jù)第二偏移量和第二字段長度獲得該特定比特域后,還可以根據(jù)第二掩碼,獲得該比特域中一個或多個比特位,即該比特域中至少一個比特位,進而可以根據(jù)匹配值,對獲得的一個或多個比特位進行匹配。因此,可以在自由獲取數(shù)據(jù)報文的特定比特域的基礎(chǔ)上,自由獲取該特定比特域中一個或多個特定的比特位進行匹配,增加了對數(shù)據(jù)報文自定義處理的自由度和通用性。應(yīng)注意,本發(fā)明實施例中,數(shù)據(jù)報文可以是指分組數(shù)據(jù)報文。220,如果所述數(shù)據(jù)報文與所述匹配域信息匹配成功,則根據(jù)所述操作域信息,對所述數(shù)據(jù)報文進行操作??蛇x地,當(dāng)所述操作域信息包括所述操作類型和所述第一比特域指示信息時,所述根據(jù)所述操作域信息,對所述數(shù)據(jù)報文進行操作,可以包括:根據(jù)所述第一比特域指示信息確定所述數(shù)據(jù)報文的第一比特域,根據(jù)所述操作類型,對所述第一比特域進行操作。可選地,當(dāng)所述第一比特域指示信息還包括第一掩碼時,對所述數(shù)據(jù)報文進行操作,可以包括:根據(jù)所述第一比特域指示信息確定所述數(shù)據(jù)報文的第一比特域,根據(jù)所述第一掩碼,獲得所述第一比特域的至少一個比特位,根據(jù)所述操作類型,對所述第一比特域的至少一個比特位進行操作??蛇x地,當(dāng)所述操作域信息包括所述操作類型和所述第一比特域指示信息時,若所述操作域信息還包括操作數(shù)時,所述根據(jù)所述操作類型,對所述第一比特域進行操作,可以包括:根據(jù)所述操作類型,對所述第一比特域和所述操作數(shù)進行操作。類似的,所述根據(jù)所述操作類型,對所述第一比特域的至少一個比特位進行操作,可以包括:根據(jù)所述操作類型,對所述第一比特域的至少一個比特位和所述操作數(shù)進行操作。本發(fā)明實施例中,交換設(shè)備可以具有轉(zhuǎn)發(fā)面功能,不具有控制面功能??刂泼婀δ芸梢杂赏獠康目刂圃O(shè)備完成。這樣,控制設(shè)備可以解析協(xié)議格式的上下文信息以及數(shù)據(jù)報文的協(xié)議格式,并將對數(shù)據(jù)報文的處理映射為流表項中的匹配域信息和/或操作域信息,使得轉(zhuǎn)發(fā)面的處理與具體協(xié)議格式無關(guān)。本發(fā)明實施例中,由于流表項中的操作域信息包括第一比特域指示信息,而第一比特域指示信息包括第一偏移量和第一字段長度,因此交換設(shè)備根據(jù)第一比特域指示信息可以任意地確定數(shù)據(jù)報文中的第一比特域,并對第一比特域進行操作,而無需解析數(shù)據(jù)報文的具體協(xié)議格式。同理,交換設(shè)備根據(jù)第二比特域指示信息可以任意地確定數(shù)據(jù)報文中的第二比特域,并對第二比特域進行匹配,而無需解析數(shù)據(jù)報文的具體協(xié)議格式。此外,即使該數(shù)據(jù)報文的協(xié)議格式在現(xiàn)有規(guī)范中并不存在,交換設(shè)備也無需針對數(shù)據(jù)報文的具體協(xié)議格式在現(xiàn)有規(guī)范中進行擴展,因此能夠?qū)崿F(xiàn)用戶靈活的自定義的流操作,并能夠避免對于不斷出現(xiàn)的新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展。因此本發(fā)明實施例中對數(shù)據(jù)報文的處理方法更為通用,應(yīng)用場景也更為廣泛。相比較而言,由于現(xiàn)有OpenFlow規(guī)范中支持的協(xié)議格式的種類是有限的,如果需要對新增的協(xié)議格式的數(shù)據(jù)報文進行處理,則只能針對該新增的協(xié)議格式對現(xiàn)有規(guī)范繼續(xù)擴展,造成了擴展項的臃腫。本發(fā)明實施例中,通過采用偏移量和字段長度能夠?qū)崿F(xiàn)對數(shù)據(jù)報文特定比特域的靈活定位,實現(xiàn)對數(shù)據(jù)報文靈活的自定義處理,從而使對數(shù)據(jù)報文的處理不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。另外,當(dāng)匹配域信息為現(xiàn)有OpenFlow技術(shù)定義的內(nèi)容時,在步驟210中,交換設(shè)備對數(shù)據(jù)報文與流表項的匹配域信息進行匹配,還可以按照現(xiàn)有技術(shù)中交換設(shè)備對數(shù)據(jù)報文與流表項的匹配域信息進行匹配的過程執(zhí)行。本發(fā)明實施例對此不作限定。另外,當(dāng)操作域信息為現(xiàn)有OpenFlow技術(shù)定義的內(nèi)容時,在步驟220中,交換設(shè)備根據(jù)操作域信息,對數(shù)據(jù)報文進行操作,還可以按照現(xiàn)有技術(shù)中交換設(shè)備對數(shù)據(jù)報文根據(jù)操作域信息對數(shù)據(jù)報文進行操作的過程執(zhí)行。本發(fā)明實施例對此不作限定。應(yīng)注意,本發(fā)明實施例中,上述的偏移量(Offset)可以是從交換設(shè)備的輸入端口接收到的分組幀起始位置算起,單位可以是8位字節(jié)(byte)。上述的字段長度可以表示偏移量之后連續(xù)字段的字節(jié)數(shù)。偏移量和字段長度可以共同指定數(shù)據(jù)報文中一個長度確定的連續(xù)的字節(jié)段。上述的掩碼(Mask)可以表示由偏移量和字段長度共同指定的字段內(nèi)的比特掩碼。掩碼的長度可以與字段長度相同。可選地,作為另一實施例,上述操作類型可以包括彈出操作類型、壓入操作類型、設(shè)置操作類型、長度計算操作類型、校驗和計算操作類型、校驗和驗證操作類型、遞增操作類型、遞減操作類型或復(fù)制操作類型。可選地,作為另一實施例,在步驟210之前,交換設(shè)備可以接收控制設(shè)備發(fā)送的流表項添加指示消息,流表項添加指示消息可以包括匹配域信息和操作域信息。交換設(shè)備可以根據(jù)接收到的匹配域信息和操作域信息,生成流表項。本領(lǐng)域普通技術(shù)人員應(yīng)知,流表項也可以預(yù)先配置在交換設(shè)備上。可選地,作為另一實施例,在步驟210之前,交換設(shè)備可以接收控制設(shè)備發(fā)送的流表項修改指示消息,流表項修改指示消息可以包括匹配域信息和新的操作域信息。交換設(shè)備可以根據(jù)匹配域信息和新的操作域信息,對流表項進行修改??蛇x地,作為另一實施例,在步驟210之前,交換設(shè)備可以接收控制設(shè)備發(fā)送的特性請求消息,特性請求消息可以用于詢問交換設(shè)備是否支持通用流處理能力,即是否支持上述的匹配域信息或者上述的操作域信息。交換設(shè)備可以向控制設(shè)備發(fā)送特性響應(yīng)消息,特性響應(yīng)消息可以用于指示支持通用流處理能力,即支持上述的匹配域信息或者上述的操作域信息。應(yīng)注意,本發(fā)明實施例中,“通用流處理”可以是指交換設(shè)備對數(shù)據(jù)報文的處理不局限于數(shù)據(jù)報文的具體協(xié)議格式,也就是說,交換設(shè)備無需解析數(shù)據(jù)報文的具體協(xié)議相關(guān)的上下文信息和數(shù)據(jù)報文的格式,就可以完成對數(shù)據(jù)報文的處理??蛇x地,作為另一實施例,上述流表項與現(xiàn)有技術(shù)中的流表項可以共存于同一個流表中?;蛘呱鲜隽鞅眄椏梢詥为毚娣庞谝粋€流表中。作為一種可選的實現(xiàn)方式,上述流表項可以是對現(xiàn)有流表項的擴展,例如可以在現(xiàn)有的普通流表的流表項中增加上述操作域信息和/或匹配域信息。上述流表項也可以在交換設(shè)備中新增加的流表中單獨存放。本發(fā)明實施例中,為了區(qū)別于其它現(xiàn)有的普通流表,該新增加的流表可以稱為通用流表(GenericFlowTable)。通用流表可以穿插在現(xiàn)有的流管線(FlowPipeline)中,流管線中的其它普通流表可以跳轉(zhuǎn)到通用流表,通用流表也可以跳轉(zhuǎn)回流管線中的其它普通流表。圖3是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的示意性流程圖。圖3的方法由控制設(shè)備執(zhí)行,例如,支持OpenFlow技術(shù)的控制器。310,生成流表項添加指示消息其中,流表項添加指示信息包括匹配域信息和操作域信息。可選地,操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定數(shù)據(jù)報文的第一比特域。示例性的,操作域信息還可以包括操作數(shù)。示例性的,第一比特域指示信息還可以包括第一掩碼。示例性的,所述操作類型包括彈出操作類型、壓入操作類型、設(shè)置操作類型、長度計算操作類型、校驗和計算操作類型、校驗和驗證操作類型、遞增操作類型、遞減操作類型或復(fù)制操作類型??蛇x地,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域。示例性的,第二比特域指示信息還可以包括第二掩碼。320,發(fā)送該流表項添加指示消息至交換設(shè)備。當(dāng)交換設(shè)備收到該流表項添加指示信息后,可以根據(jù)該流表項添加指示消息,即根據(jù)該流表項添加指示消息攜帶的匹配域信息和操作域信息來生成流表項,并根據(jù)生成后的流表項對數(shù)據(jù)報文進行處理??蛇x地,若需要更新交換設(shè)備中的流表項,在步驟310中,控制設(shè)備可以生成流表項修改指示消息,該流表項修改指示消息也包括上述匹配域信息和操作域信息。相應(yīng)地,在步驟320中,控制設(shè)備可以發(fā)送生成的流表項修改指示消息至交換設(shè)備。交換設(shè)備在收到該流表項修改指示消息后,可以根據(jù)該流表項修改指示消息中的匹配域信息,找到對應(yīng)的流表項,然后將該對應(yīng)的流表項的操作域信息修改為攜帶在該流表項修改指示消息中的操作域信息,這樣交換設(shè)備可以根據(jù)更新后的流表項對數(shù)據(jù)報文進行處理??蛇x地,當(dāng)操作域信息包括操作類型和第一比特域指示信息,或者匹配域信息包括第二比特域指示信息和匹配值時,控制設(shè)備可以發(fā)送特性請求消息至交換設(shè)備,該特性請求消息用以詢問交換設(shè)備是否支持所述比特域指示信息或者所述匹配域信息。對應(yīng)地,在發(fā)送特性請求消息至交換設(shè)備后,控制設(shè)備接收交換設(shè)備返回的特性響應(yīng)消息,該特性響應(yīng)消息可以指示支持所述匹配域信息或者所述操作域信息,也可以指示不支持所述匹配域信息或者所述操作域信息。通過詢問交換設(shè)備是否支持所述匹配域信息或者所述操作域信息,可以避免發(fā)送所述匹配域信息或者所述操作域信息至不支持所述匹配域信息或者操作域信息的交換設(shè)備,以使所述交換設(shè)備錯誤添加或者更新流表項,從而導(dǎo)致不能正確使用流表項處理數(shù)據(jù)報文。本發(fā)明實施例中,通過將攜帶偏移量和字段長度的比特域指示信息發(fā)送至交換設(shè)備,能夠?qū)崿F(xiàn)對數(shù)據(jù)報文特定比特域的靈活定位,實現(xiàn)對數(shù)據(jù)報文靈活的自定義處理,從而使對數(shù)據(jù)報文的處理不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。下面將結(jié)合具體例子詳細(xì)描述本發(fā)明實施例。應(yīng)注意,這些例子只是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實施例,而非限制本發(fā)明實施例的范圍。本領(lǐng)域技術(shù)人員根據(jù)所給出的這些例子,顯然可以進行各種等價的修改或變化,這樣的修改或變化也落入本發(fā)明實施例的范圍內(nèi)。圖4是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的示意性流程圖。在圖4中,交換設(shè)備為交換機,控制設(shè)備為控制器。交換機和控制器之間可以進行通信,例如,交換機和控制器之間可以建立傳輸層安全通道(TransportLayerSecurity,TLS),通過TLS進行會話。此外,在圖4中,網(wǎng)絡(luò)應(yīng)用層(NetworkApplication,NetworkApp)與控制器可以集成在一個物理實體中,也可以是分開的,本發(fā)明實施例對此不作限定。401,控制器向交換機發(fā)送特性請求消息,特性請求消息用于詢問交換機是否支持通用流處理能力。402,交換機向控制器發(fā)送特性響應(yīng)消息,特性響應(yīng)消息用于指示交換機支持通用流處理能力。本發(fā)明實施例所述的是否支持通用流處理能力,是指是否支持通過偏移量和字段長度來定位特定比特域的能力。該能力具體的表現(xiàn)可以有多種形式,例如是否能夠支持如圖2所示實施例中的第一比特域指示信息或者第二比特域指示信息的處理,或者例如是否支持包含第一比特域指示信息的操作域信息或者包含第二比特域指示信息的匹配域信息,本發(fā)明實施例對此不作限定。例如,交換機可以在特性響應(yīng)消息中攜帶通用流處理能力標(biāo)志位,通過標(biāo)志位向控制器通知是否支持通用流處理能力。403,網(wǎng)絡(luò)應(yīng)用層向控制器發(fā)送流表項添加或修改指示消息,該流表項添加或修改指示消息用于指示需要對交換機中的流表項執(zhí)行的操作。例如,網(wǎng)絡(luò)應(yīng)用層可以根據(jù)業(yè)務(wù)邏輯,將對交換機的操作映射為對流表項的操作。對流表項的操作可以包括添加流表項或修改流表項等。例如,網(wǎng)絡(luò)應(yīng)用層可以向控制器發(fā)送流表項添加指示消息,也可以調(diào)用修改流表API(ApplicationProgrammingInterface,應(yīng)用程序編程接口),流表項添加指示消息中可以攜帶匹配域信息和操作域信息。網(wǎng)絡(luò)應(yīng)用層可以向控制器發(fā)送流表項修改指示消息,流表項修改指示消息中可以攜帶匹配域信息和新的操作域信息。此外,網(wǎng)絡(luò)應(yīng)用層也可以通過流表項刪除指示消息指示刪除流表項。404,控制器向交換機發(fā)送流表項添加或修改指示消息。流表項添加指示消息中可以攜帶網(wǎng)絡(luò)應(yīng)用層下發(fā)的匹配域信息和操作域信息。流表項修改指示消息中可以攜帶網(wǎng)絡(luò)應(yīng)用層下發(fā)的匹配域信息和新的操作域信息。此外,控制器也可以根據(jù)網(wǎng)絡(luò)應(yīng)用層下發(fā)的流表項刪除指示消息,向交換機發(fā)送流表項刪除指示消息。405,交換機根據(jù)控制器發(fā)送的流表項添加或修改指示消息,對流表項進行操作。例如,交換機可以根據(jù)流表項添加指示消息中攜帶的匹配域信息和操作域信息,生成流表項。交換機也可以根據(jù)流表項修改指示消息中攜帶的匹配域信息和新的操作域信息,對流表項進行操作。例如,可以將與流表項修改指示消息中攜帶的匹配域信息對應(yīng)的流表項中的操作域信息更新為新的操作域信息。406,交換機向控制器發(fā)送流表項添加或修改響應(yīng)消息。交換機通過流表項添加或修改響應(yīng)消息向控制器通知已完成對流表項的操作。407,控制器向網(wǎng)絡(luò)應(yīng)用層發(fā)送流表項添加或修改響應(yīng)消息??刂破魍ㄟ^流表項添加或修改響應(yīng)消息向網(wǎng)絡(luò)應(yīng)用層通知交換機已完成對流表項的操作。401~407示例性的介紹了控制器對于交換機上流表項的添加、更新的操作的方法。其中,控制器發(fā)送流表項添加或修改指示消息也可以由其他條件觸發(fā),本發(fā)明實施例對此不作限定。下面將介紹交換機如何根據(jù)流表項對數(shù)據(jù)報文進行處理。408,交換機從其它外部網(wǎng)元接收數(shù)據(jù)報文。409,交換機將數(shù)據(jù)報文與流表項進行匹配。上述流表項可以包括匹配域信息,匹配域信息可以包括第二比特域指示信息和匹配值,第二比特域指示信息可以包括第二偏移量和第二字段長度,第二比特域指示信息可以用于指定數(shù)據(jù)報文的第二比特域。交換機可以根據(jù)第二比特域指示信息,確定數(shù)據(jù)報文中的第二比特域。例如,交換機可以根據(jù)第二偏移量和第二字段長度,確定第二比特域。此外,第二比特域指示信息還可包括第二掩碼。那么交換機還可以根據(jù)第二偏移量、第二字段長度和第二掩碼,確定第二比特域中特定的比特位。為了表述方便,下面將第二比特域中的特定的比特位,也統(tǒng)稱為第二比特域。在確定第二比特域之后,交換機可以根據(jù)匹配值對第二比特域進行匹配。具體地,如果第二比特域的取值與匹配值相等,則第二比特域與匹配值匹配成功,也就是數(shù)據(jù)報文與流表項匹配成功。匹配域中,匹配值與第二比特域指示信息是相對應(yīng)的。在上述的匹配過程中,交換機無需解析數(shù)據(jù)報文的協(xié)議格式,就能夠執(zhí)行對數(shù)據(jù)報文與流表項的匹配。因此上述的匹配域信息也可以稱為通用匹配域(GenericMatchField)信息。圖5是根據(jù)本發(fā)明實施例的對數(shù)據(jù)報文進行匹配的過程的一個例子的示意圖。下面將結(jié)合具體的例子詳細(xì)描述匹配域信息。應(yīng)注意,這些例子只是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實施例,而非限制本發(fā)明實施例的范圍。本實施例借用現(xiàn)有OpenFlow協(xié)議中的匹配域信息格式定義本發(fā)明提出的通用匹配域信息?,F(xiàn)有OpenFlow匹配域信息的內(nèi)容可采用OXM(OpenFlowExtensibleMatch)TLV(Type-Length-Value,類型-長度-內(nèi)容)結(jié)構(gòu)體進行描述。每個OXMTLV可以是5-259字節(jié)長,頭部可以占4字節(jié)。OXMTLV結(jié)構(gòu)體的頭部格式的一個例子見表1。表1OXMTLV結(jié)構(gòu)體舉例OXM_TYPE中的OXM_CLASS和OXM_FIELD,表示流表項中的匹配域信息對應(yīng)的匹配項名稱,如以太網(wǎng)目的地址(ETH_DST)。OXM_VALUE為OXM內(nèi)容,記錄OXM_TYPE對應(yīng)的匹配值。OXM_TYPE中的OXM_HASMASK表明確定的第二比特域是否需要進一步通過掩碼匹配OXM_VALUE內(nèi)的部分比特位。如果OXM_HASMASK=0,則表明OXM_VALUE所有比特位作為匹配值使用;如果OXM_HASMASK=1,則表明OXM_VALUE中對應(yīng)掩碼部分的比特位作為匹配值使用,并且OXM_VALUE后面緊跟與其值等字節(jié)長度的掩碼的值。本發(fā)明實施例中,匹配域信息也可以采用OXM結(jié)構(gòu)體的格式,為了區(qū)別于現(xiàn)有OpenFlow規(guī)范中的OXM,將本發(fā)明實施例的匹配域信息采用的OXM結(jié)構(gòu)體稱為通用OXM結(jié)構(gòu)體。其中在OXM_CLASS中可以引入新定義的成員類,比如OFPXMC_HW_0,表明該擴展由某個ONF(OpenNetworkingFoundation,開放網(wǎng)絡(luò)基金)成員定義。在OXM_FIELD中引入新的匹配的域的類型,比如OXM_OF_GENERIC_FIELD,表明該OXM為通用匹配類型。OXM_VALUE不再是一個單純的數(shù)值,而是包括第二偏移量、第二字段長度、第二掩碼和匹配值。在下面的表2中,以O(shè)ffset、Size、Mask和Data分別表示第二偏移量、第二字段長度、第二掩碼和匹配值。這4個參數(shù)可以是按規(guī)定的順序排列,也可將每個參數(shù)定義為一個獨立的子TLV結(jié)構(gòu),其中Type為參數(shù)類型,比如為第二偏移量、第二字段長度、第二掩碼或匹配值。Length表示參數(shù)字節(jié)長度,Value表示參數(shù)具體數(shù)值。另外,如果需要匹配多個比特域,則可以在流表項中添加多個通用OXM。表2匹配域信息的格式的一個例子下面以匹配數(shù)據(jù)報文中IP(InternetProtocol,網(wǎng)絡(luò)協(xié)議)目的地址(DestinationAddress,DA)為例,說明如何使用本發(fā)明實施例定義的通用OXM來描述一個匹配的比特域。如表3的左側(cè)所示,左側(cè)為采用OpenFlow標(biāo)準(zhǔn)OXM描述的用于匹配IP目的地址的匹配域信息,OXM_CLASS表明以下OXM為OpenFlow標(biāo)準(zhǔn)協(xié)議定義,OXM_FIELD指定當(dāng)前匹配的比特域的類別為IPv4目的地址,OXM_HASMASK為1表明需要掩碼,VALUE為具體的經(jīng)過掩碼后的IPv4地址數(shù)值。表3的右側(cè)為采用本發(fā)明實施例中定義的通用OXM描述的匹配IP目的地址的方式。其中,OXM_CLASS表明OXM為ONF組織成員擴展定義,OXM_FIELD標(biāo)識為通用匹配域類別,OXM_HASMASK為0表明不需要掩碼,Value為采用第二偏移量、第二字段長度、第二掩碼和匹配值描述的IPv4目的地址在數(shù)據(jù)報文中的位置和數(shù)值大小。從表3可以看出,本發(fā)明實施例中的匹配域信息更為通用。表3OpenFlow協(xié)議中的匹配域信息與本發(fā)明實施例的匹配域信息的比較此外,交換機將數(shù)據(jù)報文與流表項進行匹配的過程,還可以按照現(xiàn)有技術(shù)中交換機對數(shù)據(jù)報文與流表項進行匹配的過程執(zhí)行。本發(fā)明實施例對此不作限定。410,如果數(shù)據(jù)報文與流表項匹配成功,則交換機根據(jù)流表項對數(shù)據(jù)報文進行操作。流表項可以包括操作域信息,操作域信息可以包括操作類型和第一比特域指示信息,第一比特域指示信息可以包括第一偏移量和第一字段長度,第一比特域指示信息可以用于指定數(shù)據(jù)報文的第一比特域。具體地,如果數(shù)據(jù)報文與流表項匹配成功,則交換機可以根據(jù)第一比特域指示信息,確定數(shù)據(jù)報文中的第一比特域。例如,交換機可以根據(jù)第一偏移量和第一字段長度,確定第一比特域。此外,第一比特域指示信息還可以包括第一掩碼。這樣,交換機還可以根據(jù)第一偏移量、第一字段長度和第一掩碼,確定第一比特域的特定比特位。為了表述方便,下面將第一比特域的特定比特位也統(tǒng)稱為第一比特域。在確定第一比特域后,交換機可以根據(jù)操作類型,對數(shù)據(jù)報文中的第一比特域進行操作。具體地,操作域中還可以包括操作類型對應(yīng)的操作數(shù)。這樣,交換機可以根據(jù)操作類型,對數(shù)據(jù)報文的第一比特域和操作數(shù)進行操作??蛇x地,操作類型可以包括彈出操作類型、壓入操作類型、設(shè)置操作類型、長度計算操作類型、校驗和計算操作類型、校驗和驗證操作類型、遞增操作類型、遞減操作類型或復(fù)制操作類型。應(yīng)注意,本發(fā)明實施例中的操作類型并不限于上述列舉的操作類型,還可以包括其它操作類型,本發(fā)明實施例對此不作限定。上述列舉的操作類型的具體表示方式和描述可以參見表4。在表4中,第一偏移量可以包括Top-offset和/或Bottom-offset。其中,Top-Offset可以是從交換機的輸入端口接收到的分組幀的起始位置算起,Bottom-Offset可以是從分組幀的末尾位置算起。Top-Offset和Bottom-Offset可以共同指定一個連續(xù)的字節(jié)段。此外,在表4中,以Size表示第一字段長度,第一字段長度可以包括Size1和Size2。以Data或Step表示操作數(shù),以Mask表示第一掩碼。表4操作域信息中操作類型與相應(yīng)的第一比特域指示信息的表示方式和描述上述的操作域信息也可以采用TLV結(jié)構(gòu)。上述的操作類型的類型(TYPE)的定義的一個例子可參照表5。表5操作域信息中操作類型的類型值的一個例子下面參照表6至表14描述上面的各個操作類型以及各操作類型對應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子。表6彈出操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子表7壓入操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子表8設(shè)置操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子表9長度計算操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子表10校驗和計算操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子表11校驗和驗證操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子表12遞增操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子表13遞減操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子表14復(fù)制操作類型與相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體的例子應(yīng)理解,上述表6至表14中,第一偏移量可以包括Top-offset和/或Bottom-offset,也可以包括Top-offset1、Top-offset2和Bottom-offset1。此外,以Size表示第一字段長度,第一字段長度可以包括Size1和Size2。Data或Step表示操作數(shù),Mask表示第一掩碼。表6至表14中,操作類型及相應(yīng)的第一比特域指示信息的結(jié)構(gòu)體中的Value部分涉及的每種參數(shù)(如Top-offset、Bottom-offset、Size、Mask、Data、Step)也可以采用單獨的TLV結(jié)構(gòu)體描述,其中Type為參數(shù)類型,比如Offset、Size、Mask、Data或Step,Length為參數(shù)字節(jié)長度,Value為參數(shù)具體數(shù)值。應(yīng)注意,上面的表4至表14的例子只是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實施例,而非限制本發(fā)明實施例的范圍。本領(lǐng)域技術(shù)人員根據(jù)所給出的這些例子,顯然可以進行各種等價的修改或變化,這樣的修改或變化也落入本發(fā)明實施例的范圍內(nèi)。在上述的操作過程中,交換機無需解析數(shù)據(jù)報文的協(xié)議格式,就能夠執(zhí)行對數(shù)據(jù)報文的操作。因此上述的操作域信息也可以稱為通用操作域(GenericActionField)信息。此外,在步驟410中,交換機對數(shù)據(jù)報文的操作也可以按照現(xiàn)有技術(shù)中的操作方式進行操作,本發(fā)明實施例對此不作限定。還應(yīng)注意,在圖4中,步驟401至402以及步驟403至407不是在每次進行數(shù)據(jù)報文處理前都需要執(zhí)行,例如,可以在開機時執(zhí)行一次,或者步驟403至407在需要對流表項配置時執(zhí)行。這樣在后續(xù)的數(shù)據(jù)報文處理過程中,就不需要執(zhí)行步驟401至402或者步驟403至407。這樣,交換機在接收到數(shù)據(jù)報文后,可以直接執(zhí)行步驟409和410。應(yīng)理解,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。本發(fā)明實施例中,通過根據(jù)操作域信息中包括第一偏移量和第一字段長度的第一比特域指示信息確定數(shù)據(jù)報文的第一比特域,并根據(jù)操作域信息中的操作類型對第一比特域進行操作,使得對數(shù)據(jù)報文的操作不再局限于特定的協(xié)議格式,從而能夠避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,因此能夠?qū)崿F(xiàn)用戶完全自定義的流操作。此外,本發(fā)明實施例中,通過根據(jù)匹配域信息中包括第二偏移量和第二字段長度的第二比特域指示信息確定數(shù)據(jù)報文的第二比特域,并根據(jù)匹配值對第二比特域進行匹配,使得對數(shù)據(jù)報文的匹配不再局限于特定的協(xié)議格式,從而能夠避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,因此能夠?qū)崿F(xiàn)用戶完全自定義的流操作?,F(xiàn)有OpenFlow規(guī)范中的協(xié)議格式的種類有限,導(dǎo)致應(yīng)用場景也有限。例如,現(xiàn)有OpenFlow規(guī)范并不支持豐富的隧道封裝和解封裝的處理。目前只能處理VLAN(VirtualLocalAreaNetwork,虛擬局域網(wǎng))、MPLS(Multi-ProtocolLabelSwitching,多協(xié)議標(biāo)簽交換)的彈出(pop)和壓入(push)操作,而對于PPPoE,L3隧道封裝和解封裝缺乏必要的處理機制。下面將以GTP(GPRS(GeneralPacketRadioService,通用分組無線服務(wù))TunnelingProtocol,GPRS隧道協(xié)議)協(xié)議為例,詳細(xì)說明基于本發(fā)明實施例的方法建立GTP隧道的過程。應(yīng)注意,圖6至圖10的例子只是為了幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實施例,而非限制本發(fā)明實施例的范圍。圖6是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的一個例子的示意性流程圖。示例性的,這里的控制設(shè)備為控制器,交換設(shè)備為交換機。601,控制器接收GTP-C(GTP-Control)請求消息。例如,控制器接收建立會話請求(CreateSessionRequest)消息。該消息可以來自其他外部網(wǎng)元,也可能來自本網(wǎng)元其他邏輯實體。本發(fā)明實施例對此不作限定。602,控制器建立GTP會話信息。例如,控制器可以建立GTP-U用戶面上下文信息,比如可以包括用戶ID)、承載TEID(TunnelEndpointIdentifier,隧道端點標(biāo)識)、QoS(QualityofService,服務(wù)質(zhì)量)參數(shù)或計費參數(shù)等。603,控制器返回GTP-C建立響應(yīng)消息。604,控制器將GTP會話上下文信息映射為交換機中流表項的匹配域信息和操作域信息。可選地,匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域。其中,第二比特域指示信息還可以包括第二掩碼??蛇x地,操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定所述數(shù)據(jù)報文的第一比特域。其中,第二比特域指示信息還可以包括第一掩碼。匹配域信息和操作域信息的舉例可以參考圖2或者圖4中的描述,此處不作贅述。605,控制器向交換機發(fā)送流表項添加指示消息,該流表項添加指示消息攜帶匹配域信息和操作域信息。606,交換機根據(jù)流表項添加指示消息攜帶的匹配域信息和操作域信息,生成流表項。607,交換機向控制器發(fā)送流表項添加響應(yīng)消息。608,交換機從其它外部網(wǎng)元接收上行GTP-U數(shù)據(jù)報文。交換機可以從其它外部網(wǎng)元接收上行GTP-U數(shù)據(jù)報文。609,交換機根據(jù)流表項的匹配域信息對步驟608中的數(shù)據(jù)報文進行匹配,在匹配成功后,根據(jù)操作域信息對數(shù)據(jù)報文執(zhí)行GTP-U解封裝操作。610,交換機將步驟609中解封裝得到的IP數(shù)據(jù)報文進行轉(zhuǎn)發(fā)。611,交換機從其它網(wǎng)元接收下行IP數(shù)據(jù)報文。612,交換機根據(jù)流表項中的匹配域信息和操作域信息,對數(shù)據(jù)報文執(zhí)行GTP-U封裝操作。613,交換機將步驟612中封裝得到的GTP-U數(shù)據(jù)報文進行操作。本實施例中,根據(jù)匹配域信息對數(shù)據(jù)報文的匹配,以及根據(jù)操作域信息對數(shù)據(jù)報文進行處理的示例,請參見圖2或者圖4中的描述,此處不作贅述。在圖6中,在GTP-C信令階段,控制器根據(jù)GTP-C請求消息建立GTP會話上下文信息,并將后續(xù)GTP-U的解封裝或封裝操作映射為流表項的匹配域信息和操作域信息。交換機根據(jù)匹配域信息和操作域信息生成流表項,就可以對后續(xù)的GTP-U數(shù)據(jù)報文通過第一比特域指示信息或者第二比特域指示信息確定對應(yīng)的比特域,直接進行處理和轉(zhuǎn)發(fā),而不必對數(shù)據(jù)報文的協(xié)議格式進行解析。本發(fā)明實施例中,通過根據(jù)控制器發(fā)送的匹配域信息和操作域信息生成流表項,使得交換機可以對GTP-U數(shù)據(jù)報文直接進行隧道封裝或解封裝處理,而無需對數(shù)據(jù)報文的協(xié)議格式進行解析,能夠?qū)崿F(xiàn)用戶靈活的自定義的流操作。圖7是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的另一例子的示意圖。示例性的,本實施例中的交換設(shè)備為交換機,控制設(shè)備為控制器。701,交換機從其它網(wǎng)元接收首個上行GTP-U數(shù)據(jù)報文。此處假設(shè)交換機之前沒有接收過上行GTP-U數(shù)據(jù)報文。702,交換機通過PKT-IN(Packet-in,數(shù)據(jù)報文輸入)消息向控制器發(fā)送步驟701中的首個上行GTP-U數(shù)據(jù)報文。由于初始時交換機中沒有建立處理該數(shù)據(jù)報文相應(yīng)的流表項,交換機可以通過PKT-IN消息將首個上行GTP-U數(shù)據(jù)報文轉(zhuǎn)發(fā)給控制器。703,控制器對首個上行GTP-U數(shù)據(jù)報文進行解析,確定需要對該數(shù)據(jù)報文進行GTP解封裝操作,則將解封裝處理映射為流表項的匹配域信息和操作域信息。704,控制器向交換機發(fā)送流表項添加指示消息,該流表項添加指示消息攜帶步驟703的匹配域信息和操作域信息??蛇x地,匹配域信息包括包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域。其中,第二比特域指示信息還可以包括第二掩碼??蛇x地,操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定所述數(shù)據(jù)報文的第一比特域。其中,第二比特域指示信息還可以包括第一掩碼。匹配域信息和操作域信息的舉例可以參考圖2或者圖4中的描述,此處不作贅述。705,交換機根據(jù)步驟704的匹配域信息和操作域信息,生成流表項。706,交換機向控制器發(fā)送流表項添加響應(yīng)消息。707,控制器通過PKT-OUT(Packet-out,數(shù)據(jù)報文輸出)消息向交換機返回首個上行GTP-U數(shù)據(jù)報文。708,交換機根據(jù)流表項的匹配域信息對首個上行GTP-U數(shù)據(jù)報文進行匹配,在匹配成功后,根據(jù)操作域信息對首個上行GTP-U數(shù)據(jù)報文進行解封裝操作。709,交換機將解封裝得到的首個上行IP數(shù)據(jù)報文進行轉(zhuǎn)發(fā)。710,交換機從其它網(wǎng)友接收后續(xù)的上行GTP-U數(shù)據(jù)報文。711,交換機根據(jù)流表項的匹配域信息對后續(xù)的上行GTP-U數(shù)據(jù)報文進行匹配,在匹配成功后,根據(jù)操作域信息對后續(xù)的上行GTP-U數(shù)據(jù)報文進行解封裝操作。712,交換機將解封裝得到的后續(xù)的IP數(shù)據(jù)報文進行轉(zhuǎn)發(fā)。713,交換機從其它外部網(wǎng)元接收首個下行IP數(shù)據(jù)報文。714,交換機通過PKT-IN(Packet-in)消息向控制器發(fā)送步驟713中的首個下行IP數(shù)據(jù)報文。由于初始時交換機中沒有建立對該數(shù)據(jù)報文處理的相應(yīng)的流表項,交換機可以通過PKT-IN消息將首個下行IP數(shù)據(jù)報文轉(zhuǎn)發(fā)給控制器。715,控制器對首個IP數(shù)據(jù)報文進行解析,確定需要對該數(shù)據(jù)報文進行GTP-U封裝處理,將封裝處理映射為流表項的匹配域信息和操作域信息。716,控制器向交換機發(fā)送流表項添加指示消息,該流表項添加指示消息攜帶匹配域信息和操作域信息。717,交換機根據(jù)流表項的匹配域信息和操作域信息,生成流表項。718,交換機向控制器發(fā)送流表項添加響應(yīng)消息。719,控制器通過PKT-OUT消息向交換機返回首個下行IP數(shù)據(jù)報文。720,交換機根據(jù)流表項的匹配域信息對首個下行IP數(shù)據(jù)報文進行匹配,在匹配成功后,根據(jù)操作域信息對首個下行IP數(shù)據(jù)報文進行封裝操作。721,交換機對封裝得到的首個GTP-U數(shù)據(jù)報文進行轉(zhuǎn)發(fā)。722,交換機從其它外部網(wǎng)元接收后續(xù)的下行IP數(shù)據(jù)報文。723,交換機根據(jù)流表項的匹配域信息對后續(xù)的下行IP數(shù)據(jù)報文進行匹配,在匹配成功后,根據(jù)操作域信息對后續(xù)的下行IP數(shù)據(jù)報文進行封裝操作。724,交換機對封裝得到的后續(xù)的下行GTP-U數(shù)據(jù)報文進行轉(zhuǎn)發(fā)。本實施例中,根據(jù)匹配域信息對數(shù)據(jù)報文的匹配,以及根據(jù)操作域信息對數(shù)據(jù)報文進行處理的示例,請參見圖2或者圖4中的描述,此處不作贅述。在圖7中,在GTP-C信令階段不進行流表項的建立。在有GTP-U數(shù)據(jù)報文到達時,首個數(shù)據(jù)報文先轉(zhuǎn)發(fā)到控制器,由控制器解析數(shù)據(jù)報文,并將GTP-U解封裝或封裝處理映射為流表項的匹配域信息和操作域信息。交換機根據(jù)匹配域信息和操作域信息生成流表項,就可以根據(jù)第一比特域指示信息或者第二比特域指示信息直接確定后續(xù)的GTP-U數(shù)據(jù)報文的特定比特域,并進行處理和轉(zhuǎn)發(fā),無需進行數(shù)據(jù)報文的協(xié)議格式的解析。本發(fā)明實施例中,通過根據(jù)控制器發(fā)送的匹配域信息和操作域信息生成流表項,使得交換機可以對GTP-U數(shù)據(jù)報文直接進行隧道封裝或解封裝處理,而無需對數(shù)據(jù)報文的協(xié)議格式進行解析,能夠?qū)崿F(xiàn)用戶靈活的自定義的對數(shù)據(jù)報文的處理。圖8是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的另一例子的示意圖。示例性的,本實施例中的交換設(shè)備為交換機,控制設(shè)備為控制器。在圖8中,以GTP協(xié)議為例,描述在交換機建立了流表項后,當(dāng)交換機收到IP數(shù)據(jù)報文后如何根據(jù)流表項進行GTP隧道封裝處理。其中,匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域。交換機可以對由匹配域信息中的第二比特域指示信息確定的、與IP源地址(SourceAddress,SA)對應(yīng)的第二比特域進行匹配,即交換機根據(jù)指示IPSA的OXM中的第二比特域指示信息,確定IP數(shù)據(jù)報文中的IPSA所在的比特域,并比較該比特域的值是否與OXM中的匹配值相等。如果該比特域的值與OXM中的匹配值相等,則匹配成功后,交換機可以執(zhí)行流表項中的操作域信息中的操作類型??刂圃O(shè)備經(jīng)過之前的GTP會話建立操作或?qū)κ讉€GTP-U數(shù)據(jù)報文的解析,可以確定需要對該數(shù)據(jù)報文進行GTP封裝。交換機已經(jīng)根據(jù)之前的控制器發(fā)送的流表項添加指示消息,建立了流表項。流表項中的操作域信息可以包括封裝處理對應(yīng)的多組操作類型及操作類型對應(yīng)的第一比特域指示信息,其中GTP封裝頭可以包括外部IP頭、UDP(UserDatagramProtocol,用戶數(shù)據(jù)報協(xié)議)頭和GTP頭,外部IP頭為隧道的源端點地址和目的端點地址,GTP封裝頭中還可以包括分配的TEID。封裝處理可以包括以下幾組操作類型和操作類型對應(yīng)的第一比特域指示信息:(1)根據(jù)遞減操作類型以及對應(yīng)的第一比特域指示信息,即Decrement(Top-offset,Size,Mask,Step),對IP數(shù)據(jù)報文中TTL(TimeToLive,生存時間)對應(yīng)的比特域進行減1操作。(2)根據(jù)校驗計算操作類型以及對應(yīng)的第一比特域指示信息,即Calculate-Checksum(Top-offset1,Bottom-offset1,Top-offset2,Size2),更新內(nèi)層IP數(shù)據(jù)報文頭的校驗和。(3)根據(jù)壓入操作類型以及對應(yīng)的第一比特域指示信息,即push(Top-offset,Size,Data),使用IP-UDP-GTP頭對IP數(shù)據(jù)報文進行封裝。(4)根據(jù)3次長度計算操作類型以及對應(yīng)的第一比特域指示信息,即3次Calculate-Length(Top-offset1,Bottom-offset1,Top-offset2,Size2),分別更新GTP、UDP和外部IP頭中對應(yīng)的Length(長度)字段的長度。(5)根據(jù)2次校驗計算操作類型以及對應(yīng)的第一比特域指示信息,即2次Calculate-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2),分別更新UDP和外部IP頭中對應(yīng)的checksum(校驗和)字段的數(shù)值。本發(fā)明實施例中,通過根據(jù)控制器發(fā)送的匹配域信息和操作域信息生成流表項,使得交換機可以對GTP-U數(shù)據(jù)報文直接確定特定的比特域并進行處理,而無需對數(shù)據(jù)報文的協(xié)議格式進行解析,能夠?qū)崿F(xiàn)用戶靈活的自定義的對數(shù)據(jù)報文的處理。圖9是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的另一例子的示意圖。本實施例中,交換設(shè)備為交換機,控制設(shè)備為控制器。圖9中,以GTP協(xié)議為例,描述在交換機建立了流表項后,當(dāng)交換機收到GTP-U數(shù)據(jù)報文后如何按照流表項進行GTP隧道解封裝處理。該流表項的匹配域中包含兩組第二比特域指示信息及匹配值。交換機可以對由匹配域中的第一組中的第二比特域指示信息確定的、與IPDA對應(yīng)的比特域進行匹配,并對由匹配域中的第二組中的第二比特域指示信息確定的、與UDP端口號2152對應(yīng)的比特域進行匹配。即交換機可以根據(jù)指示IPDA的OXM中的第一組中的第二比特域指示信息,確定GTP-U數(shù)據(jù)報文中的IPDA所在的比特域,并比較該比特域的值是否與該OXM中第一組中的匹配值相等。同時,交換機可以根據(jù)指示UDP端口的OXM中第二組的第二比特域指示信息,確定GTP-U數(shù)據(jù)報文中的UDP端口所在的比特域,并比較該比特域的值是否與該OXM中第二組的匹配值相等。如果兩個比特域都匹配成功,則交換設(shè)備可以根據(jù)流表項中的操作域信息進行GTP解封裝??刂破鹘?jīng)過之前的GTP-C會話建立操作或?qū)κ讉€GTP-U數(shù)據(jù)報文的解析處理,可以確定需要對數(shù)據(jù)報文執(zhí)行GTP解封裝。交換機已經(jīng)根據(jù)之前的控制器發(fā)送的流表項添加指示消息,建立了流表項。流表項中的操作域信息可以包括解封裝處理對應(yīng)的多組操作類型及操作類型對應(yīng)的第一比特域指示信息。其中GTP封裝頭可以包括外部IP頭、UDP頭和GTP頭。解封裝處理可以包括以下幾組操作類型以及操作類型對應(yīng)的第一比特域指示信息:(1)根據(jù)2次校驗驗證操作類型以及對應(yīng)的第一比特域指示信息,即2次Verify-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2)分別驗證外部IP頭和UDP頭的校驗和。(2)根據(jù)彈出操作類型以及對應(yīng)的第一比特域指示信息,即Pop(Top-offset,Size),彈出IP-UDP-GTP頭,從而對IP數(shù)據(jù)報文進行解封裝。(3)根據(jù)遞減操作類型以及對應(yīng)的第一比特域指示信息,即Decrement(Top-offset,Size,Mask,Step),對IP數(shù)據(jù)報文中TTL對應(yīng)的比特域進行減1操作。(4)根據(jù)校驗計算操作類型以及對應(yīng)的第一比特域指示信息,即Calculate-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2),更新內(nèi)層IP頭的校驗和。本發(fā)明實施例中,通過根據(jù)控制器發(fā)送的匹配域信息和操作域信息生成流表項,使得交換機可以根據(jù)第一比特域指示信息和第二比特域指示信息對GTP-U數(shù)據(jù)報文直接進行隧道解封裝處理,而無需對數(shù)據(jù)報文的協(xié)議格式進行解析,能夠?qū)崿F(xiàn)用戶靈活的自定義的流操作。圖10是根據(jù)本發(fā)明實施例的處理數(shù)據(jù)報文的方法的過程的另一例子的示意圖。本實施例中,交換設(shè)備為交換機,控制設(shè)備為控制器。在圖10中,以GTP協(xié)議為例,描述在交換機建立了流表項后,當(dāng)交換機接收到GTP-U數(shù)據(jù)報文后,如何根據(jù)流表項進行GTP隧道解封裝和再封裝處理。該處理過程不需要先彈出原有隧道報文頭,再壓入新的隧道報文頭,只需修改外部IP地址和隧道ID等信息。本實施例中的流表項的匹配域包括兩組第二比特域指示信息和匹配值。交換機可以對由匹配域中第一組的第二比特域指示信息確定的、與IPDA對應(yīng)的比特域進行匹配,并對由匹配域中第二組的第二比特域指示信息確定的、與UDP端口號2152對應(yīng)的比特域進行匹配。即交換機可以根據(jù)指示IPDA的OXM中第一組的第二比特域指示信息,確定GTP-U數(shù)據(jù)報文中的IPDA所在的比特域,并比較該比特域的值是否與該OXM中第一組的匹配值相等。同時,交換設(shè)備可以根據(jù)指示UDP端口的OXM中第二組的第二比特域指示,確定GTP-U數(shù)據(jù)報文中的UDP端口所在的比特域,并比較該比特域的值是否與該OXM中第二組的匹配值相等。如果兩個比特域都匹配成功,則交換設(shè)備可以根據(jù)流表項中的操作域信息對隧道頭域信息進行修改??刂破鹘?jīng)過之前的GTP-C會話建立操作或?qū)κ讉€GTP-U數(shù)據(jù)報文的解析處理,可以確定需要對數(shù)據(jù)報文進行GTP解封裝和重新再封裝。交換機已經(jīng)根據(jù)之前的控制器發(fā)送的流表項添加指示消息,建立了流表項。流表項中的操作域信息可以包括解封裝和重新再封裝處理對應(yīng)的多組操作類型及操作類型對應(yīng)的第一比特域指示信息。其中GTP封裝頭可以包括外部IP頭、UDP頭和GTP頭。解封裝和重新再封裝處理可以包括以下幾組操作類型和操作類型對應(yīng)的第一比特域指示信息:(1)根據(jù)2次校驗驗證操作類型以及對應(yīng)的第一比特域指示信息,即2次Verify-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2),分別驗證外部IP頭和UDP頭的校驗和。(2)根據(jù)設(shè)置操作類型以及對應(yīng)的第一比特域指示信息,即Set-value(Top-offset,Size,Mask,Data),將GTP頭中的原有TEID1修改為新的TEID2。(3)根據(jù)設(shè)置操作類型以及對應(yīng)的第一比特域指示信息,即Set-value(Top-offset,Size,Mask,Data),更新外部IP頭中源地址和目的地址。(4)根據(jù)2次校驗計算操作類型和對應(yīng)的第一比特域指示信息,即2此Calculate-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2),分別更新內(nèi)層UDP頭的校驗和和內(nèi)層IP頭的校驗和。本發(fā)明實施例中,通過根據(jù)控制器發(fā)送的匹配域信息和操作域信息生成流表項,使得交換機可以根據(jù)第一比特域指示信息和第二比特域指示信息對GTP-U數(shù)據(jù)報文直接進行隧道解封裝再封裝處理,而無需對數(shù)據(jù)報文的協(xié)議格式進行解析,能夠?qū)崿F(xiàn)用戶靈活的自定義的流操作。本發(fā)明實施例中,上述流表項可以是對現(xiàn)有流表項的擴展,例如可以在現(xiàn)有的普通流表的流表項中增加上述操作域信息和/匹配域信息。上述流表項也可以在交換機中新增加的流表中單獨存放。下面將結(jié)合具體例子詳細(xì)描述本發(fā)明實施例中流表的布置方式。圖11是根據(jù)本發(fā)明實施例的流表的布置方式的一個例子的示意圖。如圖11所示,本發(fā)明實施例的流表項可以在新增加的流表中單獨存放,為了區(qū)別于其它現(xiàn)有的普通流表(如圖1中所示的流表),該新增加的流表可以稱為通用流表。其它普通流表可以保持不變。通用流表可以穿插在現(xiàn)有的流管線中,流管線中的其它普通流表可以跳轉(zhuǎn)到通用流表,通用流表也可以跳轉(zhuǎn)回流管線中的其它普通流表。通用流表的流表項與普通流表中的流表項采用相同的結(jié)構(gòu),但在匹配域信息中可以包括本發(fā)明實施例中的OXM,操作域信息中可以包括本發(fā)明實施例中的操作類型以及對應(yīng)的第一比特域指示信息。因此,本發(fā)明實施例中,通過增加通用流表存放包括匹配域信息和操作域信息的流表項,無需擴展原有的普通流表中的流表項,處理更為便捷。圖12是根據(jù)本發(fā)明一個實施例的處理數(shù)據(jù)報文的裝置的示意框圖。圖12的裝置1200的一個例子是交換設(shè)備,例如OpenFlow交換機。裝置1200包括匹配單元1210和操作單元1220。匹配單元1210用于將數(shù)據(jù)報文與流表項的匹配域信息進行匹配;所述流表項包括所述匹配域信息和操作域信息;其中,所述操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定所述數(shù)據(jù)報文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域;操作單元1220,用于如果所述數(shù)據(jù)報文與所述匹配域信息匹配成功,則根據(jù)所述操作域信息,對所述數(shù)據(jù)報文進行操作??蛇x地,當(dāng)所述操作域信息包括所述操作類型和所述第一比特域指示信息時,操作單元1220具體用于,如果所述數(shù)據(jù)報文與所述匹配域信息匹配成功,則根據(jù)所述第一比特域指示信息確定所述數(shù)據(jù)報文的第一比特域,根據(jù)所述操作類型,對所述第一比特域進行操作??蛇x地,當(dāng)所述操作域信息包括所述操作類型和所述第一比特域指示信息時,所述第一比特域指示信息還包括第一掩碼,對應(yīng)地,操作單元1220具體用于,如果所述數(shù)據(jù)報文與所述匹配域信息匹配成功,則根據(jù)所述第一比特域指示信息確定所述數(shù)據(jù)報文的第一比特域,根據(jù)所述第一掩碼,獲得所述第一比特域的至少一個比特位,根據(jù)所述操作類型,對所述第一比特域的至少一個比特位進行操作??蛇x地,當(dāng)所述操作域信息包括所述操作類型和所述第一比特域指示信息時,若所述操作域信息還包括操作數(shù)時,操作單元1220具體用于,如果所述數(shù)據(jù)報文與所述匹配域信息匹配成功,則根據(jù)所述第一比特域指示信息確定所述數(shù)據(jù)報文的第一比特域,根據(jù)所述操作類型,對所述第一比特域和所述操作數(shù)進行操作??蛇x地,當(dāng)所述匹配域信息包括所述第二比特域指示信息和所述匹配值時,匹配單元1210具體用于,根據(jù)所述第二比特域指示信息,確定所述數(shù)據(jù)報文的第二比特域;根據(jù)所述匹配值,對所述第二比特域進行匹配??蛇x地,當(dāng)所述匹配域信息包括所述第二比特域指示信息和所述匹配值時,若所述第二比特域指示信息還包括第二掩碼,匹配單元1210具體用于根據(jù)所述第二比特域指示信息,確定所述數(shù)據(jù)報文的第二比特域,根據(jù)所述第二掩碼,獲得所述第二比特域的至少一個比特位,所述根據(jù)所述匹配值,對所述第二比特域的所述至少一個比特位進行匹配。示例性的,所述操作類型包括彈出操作類型、壓入操作類型、設(shè)置操作類型、長度計算操作類型、校驗和計算操作類型、校驗和驗證操作類型、遞增操作類型、遞減操作類型或復(fù)制操作類型。裝置1200的其它功能和操作可參照上面圖2至圖11的方法實施例中涉及交換設(shè)備的過程,為了避免重復(fù),此處不再贅述。本發(fā)明實施例中,通過根據(jù)操作域信息中包括第一偏移量和第一字段長度的第一比特域指示信息確定數(shù)據(jù)報文的第一比特域,并根據(jù)操作域信息中的操作類型對第一比特域進行操作,使得對數(shù)據(jù)報文的操作不再局限于特定的協(xié)議格式。同理,交換設(shè)備根據(jù)第二比特域指示信息可以任意地確定數(shù)據(jù)報文中的第二比特域,并對第二比特域進行匹配,而無需解析數(shù)據(jù)報文的具體協(xié)議格式。所以通過圖12所示的裝置能夠避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,因此能夠?qū)崿F(xiàn)用戶靈活的自定義的流操作。作為本發(fā)明另一個實施例,裝置1200還可以包括接收單元1230和生成單元1240。接收單元1230用于接收控制設(shè)備發(fā)送的流表項添加指示消息,所述流表項添加指示消息包括所述匹配域信息和所述操作域信息;生成單元用于根據(jù)所述匹配域信息和所述操作域信息,生成所述流表項??蛇x地,接收單元1230還用于接收控制設(shè)備發(fā)送的流表項修改指示消息,所述流表項修改指示消息包括所述匹配域信息和新的操作域信息;對應(yīng)地,裝置1200還包括修改單元1240,用于根據(jù)所述匹配域信息和所述新的操作域信息,對所述流表項進行修改??蛇x地,接收單元1230還用于接收控制設(shè)備發(fā)送的特性請求消息,所述特性請求消息用于詢問是否支持所述操作域信息或者所述匹配域信息;對應(yīng)地,裝置1200還包括發(fā)送單元1250,用于向所述控制設(shè)備發(fā)送特性響應(yīng)消息,所述特性響應(yīng)消息用于指示支持所述操作域信息或者所述匹配域信息。可選地,裝置1200可以為交換設(shè)備。示例性的,交換設(shè)備可以為交換機。裝置1200的其它功能和操作可參照上面圖2至圖11的方法實施例中涉及交換設(shè)備的過程,為了避免重復(fù),此處不再贅述。本發(fā)明實施例中,通過采用偏移量和字段長度能夠?qū)崿F(xiàn)對數(shù)據(jù)報文特定比特域的靈活定位,實現(xiàn)對數(shù)據(jù)報文靈活的自定義處理,從而使對數(shù)據(jù)報文的處理不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。圖13是本發(fā)明另一實施例提供的一種處理數(shù)據(jù)報文的裝置的示意框圖。如圖13所示,該裝置1300包括生成單元1310和發(fā)送單元1320。生成單元1310,用于生成流表項添加指示消息,所述流表項添加指示信息包括匹配域信息和操作域信息;其中,所述操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定數(shù)據(jù)報文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域;發(fā)送單元1320,用于發(fā)送所述流表項添加指示消息至交換設(shè)備,以使所述交換設(shè)備根據(jù)所述流表項添加指示消息生成流表項,并根據(jù)所述流表項對所述數(shù)據(jù)報文進行處理??蛇x地,生成單元1310還用于生成流表項修改指示消息,所述流表項修改指示消息包括所述匹配域信息和新的操作域信息;對應(yīng)地,發(fā)送單元1320還用于,發(fā)送所述流表項修改指示消息至所述交換設(shè)備,以使所述交換設(shè)備根據(jù)所述匹配域信息和所述新的操作域信息,對與所述匹配域信息對應(yīng)的流表項進行修改??蛇x地,發(fā)送單元1320還用于,發(fā)送特性請求消息至所述交換設(shè)備,所述特性請求消息用于詢問是否支持所述匹配域信息或者所述操作域信息;對應(yīng)地,裝置1300還包括接收單元1330,用于接收所述交換設(shè)備發(fā)送的特性響應(yīng)消息,所述特性響應(yīng)消息用于指示支持所述匹配域信息或者所述操作域信息??蛇x地,裝置1300可以為控制設(shè)備,示例性的,可以為控制器。本實施例的裝置1300工作方式可以參考圖3~圖11中控制設(shè)備的工作方式,此處不作贅述。本發(fā)明實施例中的裝置可以通過將攜帶偏移量和字段長度的比特域指示信息發(fā)送至交換設(shè)備,能夠?qū)崿F(xiàn)對數(shù)據(jù)報文特定比特域的靈活定位,實現(xiàn)對數(shù)據(jù)報文靈活的自定義處理,從而使對數(shù)據(jù)報文的處理不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。本發(fā)明另一實施例還提供一種處理數(shù)據(jù)報文的系統(tǒng),如圖14所示,該系統(tǒng)包括交換設(shè)備1410和控制設(shè)備1420。示例性的,交換設(shè)備1410可以為圖12所示的裝置,控制設(shè)備可以為圖13所示的裝置。本系統(tǒng)的工作方式可以參考圖2~圖11所示實施例中的工作方式,此處不作贅述。本發(fā)明實施例中,通過根據(jù)偏移量和字段長度能夠靈活確定數(shù)據(jù)報文的特定比特域,并對該特定比特域進行匹配或者操作,因此能夠?qū)崿F(xiàn)對數(shù)據(jù)報文靈活的自定義處理,從而使對數(shù)據(jù)報文的處理不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。本發(fā)明另一實施例還提供一種流表項,包括匹配域信息和操作域信息。其中,其中,所述操作域信息包括操作類型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段長度,所述第一比特域指示信息用于指定所述數(shù)據(jù)報文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段長度,所述第二比特域指示信息用于指定所述數(shù)據(jù)報文的第二比特域??蛇x地,所述第一比特域指示信息還包括第一掩碼。可選地,所述第二比特域指示信息還包括第二掩碼??蛇x地,所述操作域信息還包括操作數(shù)??蛇x地,所述操作類型包括彈出操作類型、壓入操作類型、設(shè)置操作類型、長度計算操作類型、校驗和計算操作類型、校驗和驗證操作類型、遞增操作類型、遞減操作類型或復(fù)制操作類型。通過本發(fā)明實施例提供的流表項,可以靈活確定數(shù)據(jù)報文的特定比特域,并對該特定比特域進行匹配或者操作,因此能夠?qū)崿F(xiàn)對數(shù)據(jù)報文靈活的自定義處理,從而使對數(shù)據(jù)報文的處理不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。本發(fā)明另一實施例還提供一種處理數(shù)據(jù)報文的計算機程序產(chǎn)品。該計算機程序產(chǎn)品包括能夠被計算機執(zhí)行的程序代碼,該程序代碼用來執(zhí)行如圖2所示的處理數(shù)據(jù)報文的方法。如圖15所示,本發(fā)明實施例提供一種處理數(shù)據(jù)報文的裝置的其中一種硬件實現(xiàn)。該裝置可以是交換設(shè)備,示例性的,可以是支持OpenFlow技術(shù)的交換機。該裝置包括處理器、存儲器、第一網(wǎng)絡(luò)接口,第二網(wǎng)絡(luò)接口和第三網(wǎng)絡(luò)接口。其中第一網(wǎng)絡(luò)接口,第二網(wǎng)絡(luò)接口,第三網(wǎng)絡(luò)接口,處理器和存儲器之間通過總線互聯(lián)。第一網(wǎng)絡(luò)接口可以與控制設(shè)備連接,進行交互,示例性的,該控制設(shè)備可以是支持OpenFlow技術(shù)的控制器。第二網(wǎng)絡(luò)接口作為該裝置的輸入端口,可以用于接收數(shù)據(jù)報文。第三網(wǎng)絡(luò)接口作為該裝置的輸出端口,可以用于發(fā)送經(jīng)過處理器處理的數(shù)據(jù)報文。示例性的,每個網(wǎng)絡(luò)接口可以包含多個輸入和輸出端口。第一、第二和第三網(wǎng)絡(luò)接口可以是相互獨立的網(wǎng)絡(luò)接口,也可相互合并為一個網(wǎng)絡(luò)接口;存儲器可以為半導(dǎo)體存儲單元,可以直接被處理器訪問。其中,存儲器用于存儲計算機可執(zhí)行的程序代碼,該程序代碼用來執(zhí)行如圖2所示的處理數(shù)據(jù)報文的方法,以及用于存儲本發(fā)明實施例提供的流表項。處理器,用于根據(jù)存儲器存儲的計算機可執(zhí)行的程序代碼,執(zhí)行如圖2所示的處理數(shù)據(jù)報文的方法,對接收到的數(shù)據(jù)報文進行處理。示例性的,通過第一網(wǎng)絡(luò)接口,可以接收控制設(shè)備發(fā)送的流表項添加指示消息,該流表項添加指示消息中可以包括生成本發(fā)明實施例提供的流表項的匹配域信息和操作域信息,處理器可以根據(jù)流表項添加指示消息中攜帶的所述匹配域信息和所述操作域信息生成本發(fā)明實施例提供的流表項,并存儲在存儲器中。示例性的,通過第一網(wǎng)絡(luò)接口,還可以接收控制設(shè)備發(fā)送的流表項修改指示消息,與流表項添加指示消息類似,流表項修改指示消息中可以包括本發(fā)明實施例提供的流表項的匹配域信息和操作域信息,處理器可以根據(jù)所述匹配域信息找到存儲器中對應(yīng)的流表項,并將該流表項中的操作域信息更新為流表項修改指示消息中攜帶的操作域信息。示例性的,通過第一網(wǎng)絡(luò)接口,還可以接收控制設(shè)備發(fā)送的特性請求消息,特性請求消息可以用于詢問交換設(shè)備是否支持通用流處理能力,即是否支持本發(fā)明實施例提供的流表項的匹配域信息或者操作域信息。對應(yīng)的,通過第一網(wǎng)絡(luò)接口可以向控制設(shè)備發(fā)送特性響應(yīng)消息,特性響應(yīng)消息可以用于指示支持通用流處理能力,即支持本發(fā)明實施例提供的流表項的匹配域信息或者操作域信息。通過本實施例提供的處理數(shù)據(jù)報文的裝置的硬件實現(xiàn),采用偏移量和字段長度實現(xiàn)對數(shù)據(jù)報文特定比特域的靈活定位,進而可以實現(xiàn)對數(shù)據(jù)報文靈活的自定義處理,從而使對數(shù)據(jù)報文的處理不再局限于特定的協(xié)議格式,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。如圖16所示,本發(fā)明實施例提供一種處理數(shù)據(jù)報文的裝置的其中一種硬件實現(xiàn)。該裝置可以是控制設(shè)備,示例性的,可以是支持OpenFlow技術(shù)的控制器。該裝置包括存儲器、處理器和控制器。存儲器、處理器和控制器通過總線進行互通。網(wǎng)絡(luò)接口可以連接交換設(shè)備,與交換設(shè)備進行交互。存儲器可以是半導(dǎo)體器件,可以直接被處理器訪問。其中,存儲器用于存儲計算機可執(zhí)行的程序代碼,該程序代碼用來執(zhí)行如圖3所示的處理數(shù)據(jù)報文的方法。處理器,用于根據(jù)存儲器存儲的計算機可執(zhí)行的程序代碼,執(zhí)行如圖3所示的處理數(shù)據(jù)報文的方法。其中流表項添加指示消息、流表項修改指示消息或者特性請求消息由處理器通過網(wǎng)絡(luò)接口向交換設(shè)備進行發(fā)送。通過將包含本發(fā)明實施例提供的流表項的匹配域信息和操作域信息發(fā)送至交換設(shè)備,可以使交換設(shè)備生成本發(fā)明實施例提供的流表項,從而實現(xiàn)對數(shù)據(jù)報文特定比特域的靈活定位,進而可以實現(xiàn)對數(shù)據(jù)報文靈活的自定義處理,避免對于新增協(xié)議需要進行的標(biāo)準(zhǔn)化擴展,使對數(shù)據(jù)報文的處理更具通用性。本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,RandomAccessMemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準(zhǔn)。當(dāng)前第1頁1 2 3