处理数据报文的方法、装置及系统与流程

文档序号:11664290阅读:324来源:国知局
本发明涉及信息
技术领域
,并且具体地,涉及处理数据报文的方法、装置及系统。
背景技术
:开放流(OpenFlow)技术旨在基于现有TCP/IP技术条件,以创新的网络互联理念解决当前网络面对新业务产生的瓶颈。其核心思想就是将原本完全由交换机/路由器控制的数据包转发过程,转化为由OpenFlow交换机(OpenFlowSwitch)和Openflow控制器(Controller)分别完成的独立过程。因此OpenFlow网络中的设备能够分布部署、集中管控,使得网络变为用户可定义的形态。虽然在OpenFlow网络中,用户可以决定如何路由数据包或者如何进行访问控制等,但是由于对分组数据报文的操作仍然是局限于现有具体协议格式,因此用户只能针对规定的协议格式进行自定义操作。而目前OpenFlow规范中所能支持的协议格式是有限的,导致应用场景也很有限。如果为了实现新增的协议需求,则需要针对具体的新增协议对OpenFlow规范继续扩展,这样会造成扩展项变得复杂。技术实现要素:本发明实施例提供处理数据报文的方法、装置及系统,能够实现对数据报文灵活的自定义处理。第一方面,提供了一种处理数据报文的方法,包括:将数据报文与流表项的匹配域信息进行匹配;所述流表项包括所述匹配域信息和操作域信息;其中,所述操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定所述数据报文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域;如果所述数据报文与所述匹配域信息匹配成功,则根据所述操作域信息,对所述数据报文进行操作。在第一方面的第一种可能实现的方式中,当所述操作域信息包括所述操作类型和所述第一比特域指示信息时,所述根据所述操作域信息,对所述数据报文进行操作,包括:根据所述第一比特域指示信息确定所述数据报文的第一比特域;根据所述操作类型,对所述第一比特域进行操作。结合第一方面,或第一方面的第一种可能实现的方式,在第二种可能实现的方式中,当所述匹配域信息包括所述第二比特域指示信息和所述匹配值时,所述将数据报文与流表项的匹配域信息进行匹配,包括:根据所述第二比特域指示信息,确定所述数据报文的第二比特域;根据所述匹配值,对所述第二比特域进行匹配。第二方面,提供了一种处理数据报文的装置,包括:匹配单元,用于将数据报文与流表项的匹配域信息进行匹配;所述流表项包括所述匹配域信息和操作域信息;其中,所述操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定所述数据报文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域;操作单元,用于如果所述数据报文与所述匹配域信息匹配成功,则根据所述操作域信息,对所述数据报文进行操作。在第二方面的第一种可能实现的方式中,当所述操作域信息包括所述操作类型和所述第一比特域指示信息时,所述操作单元具体用于,如果所述数据报文与所述匹配域信息匹配成功,则根据所述第一比特域指示信息确定所述数据报文的第一比特域,根据所述操作类型,对所述第一比特域进行操作。结合第二方面或者第二方面的第一种可能实现的方式,在第二方面的第二种可能实现的方式中,当所述匹配域信息包括所述第二比特域指示信息和所述匹配值时,所述匹配单元具体用于,根据所述第二比特域指示信息,确定所述数据报文的第二比特域;根据所述匹配值,对所述第二比特域进行匹配。第三方面,提供了一种处理数据报文的方法,包括:生成流表项添加指示消息,所述流表项添加指示信息包括匹配域信息和操作域信息;其中,所述操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定数据报文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域;发送所述流表项添加指示消息至交换设备,以使所述交换设备根据所述流表项添加指示消息生成流表项,并根据所述流表项对所述数据报文进行处理。在第三方面的第一种可能实现的方式中,该方法还包括发送特性请求消息至所述交换设备,所述特性请求消息用于询问是否支持所述匹配域信息或者所述操作域信息;接收所述交换设备发送的特性响应消息,所述特性响应消息用于指示支持所述匹配域信息或者所述操作域信息。第四方面,提供了一种处理数据报文的装置,包括:生成单元,用于生成流表项添加指示消息,所述流表项添加指示信息包括匹配域信息和操作域信息;其中,所述操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定数据报文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域;发送单元,用于发送所述流表项添加指示消息至交换设备,以使所述交换设备根据所述流表项添加指示消息生成流表项,并根据所述流表项对所述数据报文进行处理。在第四方面的第一种可能的实现方式中,所述发送单元,还用于发送特性请求消息至所述交换设备,所述特性请求消息用于询问是否支持所述匹配域信息或者所述操作域信息;所述装置还包括接收单元,用于接收所述交换设备发送的特性响应消息,所述特性响应消息用于指示支持所述匹配域信息或者所述操作域信息。第五方面,提供一种处理数据报文的系统,包括第二方面提供的处理数据报文的装置和第四方面提供的处理数据报文的装置。在上述方案中,通过根据偏移量和字段长度能够灵活确定数据报文的特定比特域,并对该特定比特域进行匹配或者操作,因此能够实现对数据报文灵活的自定义处理,从而使对数据报文的处理不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是可应用本发明实施例的网络架构的一个例子的示意图;图2是根据本发明实施例的处理数据报文的方法的示意性流程图;图3是根据本发明实施例的处理数据报文的方法的示意性流程图;图4是根据本发明实施例的处理数据报文的方法的过程的示意性流程图;图5是根据本发明实施例的对数据报文进行匹配的过程的一个例子的示意图;图6是根据本发明实施例的处理数据报文的方法的过程的一个例子的示意性流程图;图7是根据本发明实施例的处理数据报文的方法的过程的另一例子的示意图;图8是根据本发明实施例的处理数据报文的方法的过程的另一例子的示意图;图9是根据本发明实施例的处理数据报文的方法的过程的另一例子的示意图;图10是根据本发明实施例的处理数据报文的方法的过程的另一例子的示意图;图11是根据本发明实施例的流表的布置方式的一个例子的示意图;图12是根据本发明一个实施例的处理数据报文的装置的示意框图;图13是根据本发明另一实施例的处理数据报文的装置的示意框图;图14是根据本发明另一实施例的处理数据报文的系统的示意框图;图15是根据本发明另一实施例的处理数据报文的装置的一种硬件实现的结构示意图;图16是根据本发明另一实施例的处理数据报文的装置的一种硬件实现的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。图1是可应用本发明实施例的网络架构的一个例子的示意图。应注意,图1的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。在图1中,以OpenFlow网络的架构为例进行说明。如图1所示,一个Openflow交换机包括一个或多个实现分组报文匹配和转发功能的流表(Flowtable)以及一个连接外部Openflow控制器的安全通道(Securechannel)。Openflow交换机的安全通道与Openflow控制器之间通过Openflow协议消息进行交互,实现对交换机内部的流表操作。每个流表中包括一个或多个流表项(Flowentry)。Openflow控制器通过Openflow协议消息可以添加、更新或删除流表中的流表项。每个流表项包括匹配域信息和对应的操作域信息,其中操作域信息也可称为动作(Actions)域信息或者指令(Instructions)域信息。交换机从输入端口接收到数据报文后从第一个流表开始进行匹配,然后跳转到下一个流表继续匹配。这种顺次级联的流表称为流管线(Pipeline)。交换机将接收到的报文与流表中各流表项的匹配域信息进行比对,如果流表中存在与接收到的报文匹配的流表项,则执行流表项中操作域信息中对应的操作。流表项中的操作域包括两类信息,第一类是将匹配的报文跳转到下一个流表实现进一步处理,同时还可传递相应的元数据;第二类是实现对数据报文的修改和转发到输出端口。OpenFlow交换设备可以是支持OpenFlow技术的具有交换功能的设备,可以是OpenFlow交换机,本发明实施例对此不作限制。以下实施例中OpenFlow交换设备可简称交换设备。OpenFlow控制设备可以是支持OpenFlow技术的具有控制功能的设备,可以是OpenFlow控制器,本发明实施例对此不作限制。以下实施例中OpenFlow控制设备简称控制设备。应注意,本发明实施例中,虽然以OpenFlow网络为例进行说明,但本发明实施例还可以应用于其它类似于OpenFlow网络的控制面与转发面分离的网络架构中。本发明实施例对此不作限定。图2是根据本发明实施例的处理数据报文的方法的示意性流程图。图2的方法由交换设备执行,例如,支持OpenFlow技术的交换机。210,将数据报文与流表项的匹配域信息进行匹配。所述流表项包括所述匹配域信息和操作域信息。可选地,所述操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定所述数据报文的第一比特域。当所述操作域信息包括第一比特域指示信息的时候,可以根据第一比特域指示信息的第一偏移量确定数据报文的某个特定比特域在该数据报文中的起始位置,根据第一字段长度可以确定该特定比特域的长度,从而可以获取该特定比特域,进而可以根据操作类型,对该特定比特域进行相应的操作。因此能够自由获取数据报文中的特定比特域进行相应的操作,而不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展。可选地,第一比特域指示信息还包括第一掩码,在根据第一偏移量和第一字段长度获得该特定比特域后,还可以根据第一掩码,获得该比特域中一个或多个比特位,即该比特域中至少一个比特位,进而可以根据操作类型,对获得的一个或多个比特位进行相应的操作。因此,可以在自由获取数据报文的特定比特域的基础上,自由获取该特定比特域中一个或多个特定的比特位进行相应的操作,增加了对数据报文自定义处理的自由度和通用性。可选地,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域。如果第二比特域的取值与匹配值相等,则第二比特域与匹配值匹配成功,也就是数据报文与流表项匹配成功。匹配值与第二比特域指示信息是相对应的。当所述匹配域信息包括所述第二比特域指示信息的时候,可以根据第二偏移量确定数据报文的某个特定比特域在所述数据报文的起始位置,根据第二字段长度,可以确定该特定比特域的长度,从而可以获取该特定比特域,进而根据匹配值,对该比特域进行匹配。因此能够自由获取数据报文中的特定比特域进行匹配,而不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展。可选地,第二比特域指示信息还包括第二掩码,在根据第二偏移量和第二字段长度获得该特定比特域后,还可以根据第二掩码,获得该比特域中一个或多个比特位,即该比特域中至少一个比特位,进而可以根据匹配值,对获得的一个或多个比特位进行匹配。因此,可以在自由获取数据报文的特定比特域的基础上,自由获取该特定比特域中一个或多个特定的比特位进行匹配,增加了对数据报文自定义处理的自由度和通用性。应注意,本发明实施例中,数据报文可以是指分组数据报文。220,如果所述数据报文与所述匹配域信息匹配成功,则根据所述操作域信息,对所述数据报文进行操作。可选地,当所述操作域信息包括所述操作类型和所述第一比特域指示信息时,所述根据所述操作域信息,对所述数据报文进行操作,可以包括:根据所述第一比特域指示信息确定所述数据报文的第一比特域,根据所述操作类型,对所述第一比特域进行操作。可选地,当所述第一比特域指示信息还包括第一掩码时,对所述数据报文进行操作,可以包括:根据所述第一比特域指示信息确定所述数据报文的第一比特域,根据所述第一掩码,获得所述第一比特域的至少一个比特位,根据所述操作类型,对所述第一比特域的至少一个比特位进行操作。可选地,当所述操作域信息包括所述操作类型和所述第一比特域指示信息时,若所述操作域信息还包括操作数时,所述根据所述操作类型,对所述第一比特域进行操作,可以包括:根据所述操作类型,对所述第一比特域和所述操作数进行操作。类似的,所述根据所述操作类型,对所述第一比特域的至少一个比特位进行操作,可以包括:根据所述操作类型,对所述第一比特域的至少一个比特位和所述操作数进行操作。本发明实施例中,交换设备可以具有转发面功能,不具有控制面功能。控制面功能可以由外部的控制设备完成。这样,控制设备可以解析协议格式的上下文信息以及数据报文的协议格式,并将对数据报文的处理映射为流表项中的匹配域信息和/或操作域信息,使得转发面的处理与具体协议格式无关。本发明实施例中,由于流表项中的操作域信息包括第一比特域指示信息,而第一比特域指示信息包括第一偏移量和第一字段长度,因此交换设备根据第一比特域指示信息可以任意地确定数据报文中的第一比特域,并对第一比特域进行操作,而无需解析数据报文的具体协议格式。同理,交换设备根据第二比特域指示信息可以任意地确定数据报文中的第二比特域,并对第二比特域进行匹配,而无需解析数据报文的具体协议格式。此外,即使该数据报文的协议格式在现有规范中并不存在,交换设备也无需针对数据报文的具体协议格式在现有规范中进行扩展,因此能够实现用户灵活的自定义的流操作,并能够避免对于不断出现的新增协议需要进行的标准化扩展。因此本发明实施例中对数据报文的处理方法更为通用,应用场景也更为广泛。相比较而言,由于现有OpenFlow规范中支持的协议格式的种类是有限的,如果需要对新增的协议格式的数据报文进行处理,则只能针对该新增的协议格式对现有规范继续扩展,造成了扩展项的臃肿。本发明实施例中,通过采用偏移量和字段长度能够实现对数据报文特定比特域的灵活定位,实现对数据报文灵活的自定义处理,从而使对数据报文的处理不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。另外,当匹配域信息为现有OpenFlow技术定义的内容时,在步骤210中,交换设备对数据报文与流表项的匹配域信息进行匹配,还可以按照现有技术中交换设备对数据报文与流表项的匹配域信息进行匹配的过程执行。本发明实施例对此不作限定。另外,当操作域信息为现有OpenFlow技术定义的内容时,在步骤220中,交换设备根据操作域信息,对数据报文进行操作,还可以按照现有技术中交换设备对数据报文根据操作域信息对数据报文进行操作的过程执行。本发明实施例对此不作限定。应注意,本发明实施例中,上述的偏移量(Offset)可以是从交换设备的输入端口接收到的分组帧起始位置算起,单位可以是8位字节(byte)。上述的字段长度可以表示偏移量之后连续字段的字节数。偏移量和字段长度可以共同指定数据报文中一个长度确定的连续的字节段。上述的掩码(Mask)可以表示由偏移量和字段长度共同指定的字段内的比特掩码。掩码的长度可以与字段长度相同。可选地,作为另一实施例,上述操作类型可以包括弹出操作类型、压入操作类型、设置操作类型、长度计算操作类型、校验和计算操作类型、校验和验证操作类型、递增操作类型、递减操作类型或复制操作类型。可选地,作为另一实施例,在步骤210之前,交换设备可以接收控制设备发送的流表项添加指示消息,流表项添加指示消息可以包括匹配域信息和操作域信息。交换设备可以根据接收到的匹配域信息和操作域信息,生成流表项。本领域普通技术人员应知,流表项也可以预先配置在交换设备上。可选地,作为另一实施例,在步骤210之前,交换设备可以接收控制设备发送的流表项修改指示消息,流表项修改指示消息可以包括匹配域信息和新的操作域信息。交换设备可以根据匹配域信息和新的操作域信息,对流表项进行修改。可选地,作为另一实施例,在步骤210之前,交换设备可以接收控制设备发送的特性请求消息,特性请求消息可以用于询问交换设备是否支持通用流处理能力,即是否支持上述的匹配域信息或者上述的操作域信息。交换设备可以向控制设备发送特性响应消息,特性响应消息可以用于指示支持通用流处理能力,即支持上述的匹配域信息或者上述的操作域信息。应注意,本发明实施例中,“通用流处理”可以是指交换设备对数据报文的处理不局限于数据报文的具体协议格式,也就是说,交换设备无需解析数据报文的具体协议相关的上下文信息和数据报文的格式,就可以完成对数据报文的处理。可选地,作为另一实施例,上述流表项与现有技术中的流表项可以共存于同一个流表中。或者上述流表项可以单独存放于一个流表中。作为一种可选的实现方式,上述流表项可以是对现有流表项的扩展,例如可以在现有的普通流表的流表项中增加上述操作域信息和/或匹配域信息。上述流表项也可以在交换设备中新增加的流表中单独存放。本发明实施例中,为了区别于其它现有的普通流表,该新增加的流表可以称为通用流表(GenericFlowTable)。通用流表可以穿插在现有的流管线(FlowPipeline)中,流管线中的其它普通流表可以跳转到通用流表,通用流表也可以跳转回流管线中的其它普通流表。图3是根据本发明实施例的处理数据报文的方法的示意性流程图。图3的方法由控制设备执行,例如,支持OpenFlow技术的控制器。310,生成流表项添加指示消息其中,流表项添加指示信息包括匹配域信息和操作域信息。可选地,操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定数据报文的第一比特域。示例性的,操作域信息还可以包括操作数。示例性的,第一比特域指示信息还可以包括第一掩码。示例性的,所述操作类型包括弹出操作类型、压入操作类型、设置操作类型、长度计算操作类型、校验和计算操作类型、校验和验证操作类型、递增操作类型、递减操作类型或复制操作类型。可选地,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域。示例性的,第二比特域指示信息还可以包括第二掩码。320,发送该流表项添加指示消息至交换设备。当交换设备收到该流表项添加指示信息后,可以根据该流表项添加指示消息,即根据该流表项添加指示消息携带的匹配域信息和操作域信息来生成流表项,并根据生成后的流表项对数据报文进行处理。可选地,若需要更新交换设备中的流表项,在步骤310中,控制设备可以生成流表项修改指示消息,该流表项修改指示消息也包括上述匹配域信息和操作域信息。相应地,在步骤320中,控制设备可以发送生成的流表项修改指示消息至交换设备。交换设备在收到该流表项修改指示消息后,可以根据该流表项修改指示消息中的匹配域信息,找到对应的流表项,然后将该对应的流表项的操作域信息修改为携带在该流表项修改指示消息中的操作域信息,这样交换设备可以根据更新后的流表项对数据报文进行处理。可选地,当操作域信息包括操作类型和第一比特域指示信息,或者匹配域信息包括第二比特域指示信息和匹配值时,控制设备可以发送特性请求消息至交换设备,该特性请求消息用以询问交换设备是否支持所述比特域指示信息或者所述匹配域信息。对应地,在发送特性请求消息至交换设备后,控制设备接收交换设备返回的特性响应消息,该特性响应消息可以指示支持所述匹配域信息或者所述操作域信息,也可以指示不支持所述匹配域信息或者所述操作域信息。通过询问交换设备是否支持所述匹配域信息或者所述操作域信息,可以避免发送所述匹配域信息或者所述操作域信息至不支持所述匹配域信息或者操作域信息的交换设备,以使所述交换设备错误添加或者更新流表项,从而导致不能正确使用流表项处理数据报文。本发明实施例中,通过将携带偏移量和字段长度的比特域指示信息发送至交换设备,能够实现对数据报文特定比特域的灵活定位,实现对数据报文灵活的自定义处理,从而使对数据报文的处理不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。下面将结合具体例子详细描述本发明实施例。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。本领域技术人员根据所给出的这些例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。图4是根据本发明实施例的处理数据报文的方法的过程的示意性流程图。在图4中,交换设备为交换机,控制设备为控制器。交换机和控制器之间可以进行通信,例如,交换机和控制器之间可以建立传输层安全通道(TransportLayerSecurity,TLS),通过TLS进行会话。此外,在图4中,网络应用层(NetworkApplication,NetworkApp)与控制器可以集成在一个物理实体中,也可以是分开的,本发明实施例对此不作限定。401,控制器向交换机发送特性请求消息,特性请求消息用于询问交换机是否支持通用流处理能力。402,交换机向控制器发送特性响应消息,特性响应消息用于指示交换机支持通用流处理能力。本发明实施例所述的是否支持通用流处理能力,是指是否支持通过偏移量和字段长度来定位特定比特域的能力。该能力具体的表现可以有多种形式,例如是否能够支持如图2所示实施例中的第一比特域指示信息或者第二比特域指示信息的处理,或者例如是否支持包含第一比特域指示信息的操作域信息或者包含第二比特域指示信息的匹配域信息,本发明实施例对此不作限定。例如,交换机可以在特性响应消息中携带通用流处理能力标志位,通过标志位向控制器通知是否支持通用流处理能力。403,网络应用层向控制器发送流表项添加或修改指示消息,该流表项添加或修改指示消息用于指示需要对交换机中的流表项执行的操作。例如,网络应用层可以根据业务逻辑,将对交换机的操作映射为对流表项的操作。对流表项的操作可以包括添加流表项或修改流表项等。例如,网络应用层可以向控制器发送流表项添加指示消息,也可以调用修改流表API(ApplicationProgrammingInterface,应用程序编程接口),流表项添加指示消息中可以携带匹配域信息和操作域信息。网络应用层可以向控制器发送流表项修改指示消息,流表项修改指示消息中可以携带匹配域信息和新的操作域信息。此外,网络应用层也可以通过流表项删除指示消息指示删除流表项。404,控制器向交换机发送流表项添加或修改指示消息。流表项添加指示消息中可以携带网络应用层下发的匹配域信息和操作域信息。流表项修改指示消息中可以携带网络应用层下发的匹配域信息和新的操作域信息。此外,控制器也可以根据网络应用层下发的流表项删除指示消息,向交换机发送流表项删除指示消息。405,交换机根据控制器发送的流表项添加或修改指示消息,对流表项进行操作。例如,交换机可以根据流表项添加指示消息中携带的匹配域信息和操作域信息,生成流表项。交换机也可以根据流表项修改指示消息中携带的匹配域信息和新的操作域信息,对流表项进行操作。例如,可以将与流表项修改指示消息中携带的匹配域信息对应的流表项中的操作域信息更新为新的操作域信息。406,交换机向控制器发送流表项添加或修改响应消息。交换机通过流表项添加或修改响应消息向控制器通知已完成对流表项的操作。407,控制器向网络应用层发送流表项添加或修改响应消息。控制器通过流表项添加或修改响应消息向网络应用层通知交换机已完成对流表项的操作。401~407示例性的介绍了控制器对于交换机上流表项的添加、更新的操作的方法。其中,控制器发送流表项添加或修改指示消息也可以由其他条件触发,本发明实施例对此不作限定。下面将介绍交换机如何根据流表项对数据报文进行处理。408,交换机从其它外部网元接收数据报文。409,交换机将数据报文与流表项进行匹配。上述流表项可以包括匹配域信息,匹配域信息可以包括第二比特域指示信息和匹配值,第二比特域指示信息可以包括第二偏移量和第二字段长度,第二比特域指示信息可以用于指定数据报文的第二比特域。交换机可以根据第二比特域指示信息,确定数据报文中的第二比特域。例如,交换机可以根据第二偏移量和第二字段长度,确定第二比特域。此外,第二比特域指示信息还可包括第二掩码。那么交换机还可以根据第二偏移量、第二字段长度和第二掩码,确定第二比特域中特定的比特位。为了表述方便,下面将第二比特域中的特定的比特位,也统称为第二比特域。在确定第二比特域之后,交换机可以根据匹配值对第二比特域进行匹配。具体地,如果第二比特域的取值与匹配值相等,则第二比特域与匹配值匹配成功,也就是数据报文与流表项匹配成功。匹配域中,匹配值与第二比特域指示信息是相对应的。在上述的匹配过程中,交换机无需解析数据报文的协议格式,就能够执行对数据报文与流表项的匹配。因此上述的匹配域信息也可以称为通用匹配域(GenericMatchField)信息。图5是根据本发明实施例的对数据报文进行匹配的过程的一个例子的示意图。下面将结合具体的例子详细描述匹配域信息。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。本实施例借用现有OpenFlow协议中的匹配域信息格式定义本发明提出的通用匹配域信息。现有OpenFlow匹配域信息的内容可采用OXM(OpenFlowExtensibleMatch)TLV(Type-Length-Value,类型-长度-内容)结构体进行描述。每个OXMTLV可以是5-259字节长,头部可以占4字节。OXMTLV结构体的头部格式的一个例子见表1。表1OXMTLV结构体举例OXM_TYPE中的OXM_CLASS和OXM_FIELD,表示流表项中的匹配域信息对应的匹配项名称,如以太网目的地址(ETH_DST)。OXM_VALUE为OXM内容,记录OXM_TYPE对应的匹配值。OXM_TYPE中的OXM_HASMASK表明确定的第二比特域是否需要进一步通过掩码匹配OXM_VALUE内的部分比特位。如果OXM_HASMASK=0,则表明OXM_VALUE所有比特位作为匹配值使用;如果OXM_HASMASK=1,则表明OXM_VALUE中对应掩码部分的比特位作为匹配值使用,并且OXM_VALUE后面紧跟与其值等字节长度的掩码的值。本发明实施例中,匹配域信息也可以采用OXM结构体的格式,为了区别于现有OpenFlow规范中的OXM,将本发明实施例的匹配域信息采用的OXM结构体称为通用OXM结构体。其中在OXM_CLASS中可以引入新定义的成员类,比如OFPXMC_HW_0,表明该扩展由某个ONF(OpenNetworkingFoundation,开放网络基金)成员定义。在OXM_FIELD中引入新的匹配的域的类型,比如OXM_OF_GENERIC_FIELD,表明该OXM为通用匹配类型。OXM_VALUE不再是一个单纯的数值,而是包括第二偏移量、第二字段长度、第二掩码和匹配值。在下面的表2中,以Offset、Size、Mask和Data分别表示第二偏移量、第二字段长度、第二掩码和匹配值。这4个参数可以是按规定的顺序排列,也可将每个参数定义为一个独立的子TLV结构,其中Type为参数类型,比如为第二偏移量、第二字段长度、第二掩码或匹配值。Length表示参数字节长度,Value表示参数具体数值。另外,如果需要匹配多个比特域,则可以在流表项中添加多个通用OXM。表2匹配域信息的格式的一个例子下面以匹配数据报文中IP(InternetProtocol,网络协议)目的地址(DestinationAddress,DA)为例,说明如何使用本发明实施例定义的通用OXM来描述一个匹配的比特域。如表3的左侧所示,左侧为采用OpenFlow标准OXM描述的用于匹配IP目的地址的匹配域信息,OXM_CLASS表明以下OXM为OpenFlow标准协议定义,OXM_FIELD指定当前匹配的比特域的类别为IPv4目的地址,OXM_HASMASK为1表明需要掩码,VALUE为具体的经过掩码后的IPv4地址数值。表3的右侧为采用本发明实施例中定义的通用OXM描述的匹配IP目的地址的方式。其中,OXM_CLASS表明OXM为ONF组织成员扩展定义,OXM_FIELD标识为通用匹配域类别,OXM_HASMASK为0表明不需要掩码,Value为采用第二偏移量、第二字段长度、第二掩码和匹配值描述的IPv4目的地址在数据报文中的位置和数值大小。从表3可以看出,本发明实施例中的匹配域信息更为通用。表3OpenFlow协议中的匹配域信息与本发明实施例的匹配域信息的比较此外,交换机将数据报文与流表项进行匹配的过程,还可以按照现有技术中交换机对数据报文与流表项进行匹配的过程执行。本发明实施例对此不作限定。410,如果数据报文与流表项匹配成功,则交换机根据流表项对数据报文进行操作。流表项可以包括操作域信息,操作域信息可以包括操作类型和第一比特域指示信息,第一比特域指示信息可以包括第一偏移量和第一字段长度,第一比特域指示信息可以用于指定数据报文的第一比特域。具体地,如果数据报文与流表项匹配成功,则交换机可以根据第一比特域指示信息,确定数据报文中的第一比特域。例如,交换机可以根据第一偏移量和第一字段长度,确定第一比特域。此外,第一比特域指示信息还可以包括第一掩码。这样,交换机还可以根据第一偏移量、第一字段长度和第一掩码,确定第一比特域的特定比特位。为了表述方便,下面将第一比特域的特定比特位也统称为第一比特域。在确定第一比特域后,交换机可以根据操作类型,对数据报文中的第一比特域进行操作。具体地,操作域中还可以包括操作类型对应的操作数。这样,交换机可以根据操作类型,对数据报文的第一比特域和操作数进行操作。可选地,操作类型可以包括弹出操作类型、压入操作类型、设置操作类型、长度计算操作类型、校验和计算操作类型、校验和验证操作类型、递增操作类型、递减操作类型或复制操作类型。应注意,本发明实施例中的操作类型并不限于上述列举的操作类型,还可以包括其它操作类型,本发明实施例对此不作限定。上述列举的操作类型的具体表示方式和描述可以参见表4。在表4中,第一偏移量可以包括Top-offset和/或Bottom-offset。其中,Top-Offset可以是从交换机的输入端口接收到的分组帧的起始位置算起,Bottom-Offset可以是从分组帧的末尾位置算起。Top-Offset和Bottom-Offset可以共同指定一个连续的字节段。此外,在表4中,以Size表示第一字段长度,第一字段长度可以包括Size1和Size2。以Data或Step表示操作数,以Mask表示第一掩码。表4操作域信息中操作类型与相应的第一比特域指示信息的表示方式和描述上述的操作域信息也可以采用TLV结构。上述的操作类型的类型(TYPE)的定义的一个例子可参照表5。表5操作域信息中操作类型的类型值的一个例子下面参照表6至表14描述上面的各个操作类型以及各操作类型对应的第一比特域指示信息的结构体的例子。表6弹出操作类型与相应的第一比特域指示信息的结构体的例子表7压入操作类型与相应的第一比特域指示信息的结构体的例子表8设置操作类型与相应的第一比特域指示信息的结构体的例子表9长度计算操作类型与相应的第一比特域指示信息的结构体的例子表10校验和计算操作类型与相应的第一比特域指示信息的结构体的例子表11校验和验证操作类型与相应的第一比特域指示信息的结构体的例子表12递增操作类型与相应的第一比特域指示信息的结构体的例子表13递减操作类型与相应的第一比特域指示信息的结构体的例子表14复制操作类型与相应的第一比特域指示信息的结构体的例子应理解,上述表6至表14中,第一偏移量可以包括Top-offset和/或Bottom-offset,也可以包括Top-offset1、Top-offset2和Bottom-offset1。此外,以Size表示第一字段长度,第一字段长度可以包括Size1和Size2。Data或Step表示操作数,Mask表示第一掩码。表6至表14中,操作类型及相应的第一比特域指示信息的结构体中的Value部分涉及的每种参数(如Top-offset、Bottom-offset、Size、Mask、Data、Step)也可以采用单独的TLV结构体描述,其中Type为参数类型,比如Offset、Size、Mask、Data或Step,Length为参数字节长度,Value为参数具体数值。应注意,上面的表4至表14的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。本领域技术人员根据所给出的这些例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。在上述的操作过程中,交换机无需解析数据报文的协议格式,就能够执行对数据报文的操作。因此上述的操作域信息也可以称为通用操作域(GenericActionField)信息。此外,在步骤410中,交换机对数据报文的操作也可以按照现有技术中的操作方式进行操作,本发明实施例对此不作限定。还应注意,在图4中,步骤401至402以及步骤403至407不是在每次进行数据报文处理前都需要执行,例如,可以在开机时执行一次,或者步骤403至407在需要对流表项配置时执行。这样在后续的数据报文处理过程中,就不需要执行步骤401至402或者步骤403至407。这样,交换机在接收到数据报文后,可以直接执行步骤409和410。应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。本发明实施例中,通过根据操作域信息中包括第一偏移量和第一字段长度的第一比特域指示信息确定数据报文的第一比特域,并根据操作域信息中的操作类型对第一比特域进行操作,使得对数据报文的操作不再局限于特定的协议格式,从而能够避免对于新增协议需要进行的标准化扩展,因此能够实现用户完全自定义的流操作。此外,本发明实施例中,通过根据匹配域信息中包括第二偏移量和第二字段长度的第二比特域指示信息确定数据报文的第二比特域,并根据匹配值对第二比特域进行匹配,使得对数据报文的匹配不再局限于特定的协议格式,从而能够避免对于新增协议需要进行的标准化扩展,因此能够实现用户完全自定义的流操作。现有OpenFlow规范中的协议格式的种类有限,导致应用场景也有限。例如,现有OpenFlow规范并不支持丰富的隧道封装和解封装的处理。目前只能处理VLAN(VirtualLocalAreaNetwork,虚拟局域网)、MPLS(Multi-ProtocolLabelSwitching,多协议标签交换)的弹出(pop)和压入(push)操作,而对于PPPoE,L3隧道封装和解封装缺乏必要的处理机制。下面将以GTP(GPRS(GeneralPacketRadioService,通用分组无线服务)TunnelingProtocol,GPRS隧道协议)协议为例,详细说明基于本发明实施例的方法建立GTP隧道的过程。应注意,图6至图10的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。图6是根据本发明实施例的处理数据报文的方法的过程的一个例子的示意性流程图。示例性的,这里的控制设备为控制器,交换设备为交换机。601,控制器接收GTP-C(GTP-Control)请求消息。例如,控制器接收建立会话请求(CreateSessionRequest)消息。该消息可以来自其他外部网元,也可能来自本网元其他逻辑实体。本发明实施例对此不作限定。602,控制器建立GTP会话信息。例如,控制器可以建立GTP-U用户面上下文信息,比如可以包括用户ID)、承载TEID(TunnelEndpointIdentifier,隧道端点标识)、QoS(QualityofService,服务质量)参数或计费参数等。603,控制器返回GTP-C建立响应消息。604,控制器将GTP会话上下文信息映射为交换机中流表项的匹配域信息和操作域信息。可选地,匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域。其中,第二比特域指示信息还可以包括第二掩码。可选地,操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定所述数据报文的第一比特域。其中,第二比特域指示信息还可以包括第一掩码。匹配域信息和操作域信息的举例可以参考图2或者图4中的描述,此处不作赘述。605,控制器向交换机发送流表项添加指示消息,该流表项添加指示消息携带匹配域信息和操作域信息。606,交换机根据流表项添加指示消息携带的匹配域信息和操作域信息,生成流表项。607,交换机向控制器发送流表项添加响应消息。608,交换机从其它外部网元接收上行GTP-U数据报文。交换机可以从其它外部网元接收上行GTP-U数据报文。609,交换机根据流表项的匹配域信息对步骤608中的数据报文进行匹配,在匹配成功后,根据操作域信息对数据报文执行GTP-U解封装操作。610,交换机将步骤609中解封装得到的IP数据报文进行转发。611,交换机从其它网元接收下行IP数据报文。612,交换机根据流表项中的匹配域信息和操作域信息,对数据报文执行GTP-U封装操作。613,交换机将步骤612中封装得到的GTP-U数据报文进行操作。本实施例中,根据匹配域信息对数据报文的匹配,以及根据操作域信息对数据报文进行处理的示例,请参见图2或者图4中的描述,此处不作赘述。在图6中,在GTP-C信令阶段,控制器根据GTP-C请求消息建立GTP会话上下文信息,并将后续GTP-U的解封装或封装操作映射为流表项的匹配域信息和操作域信息。交换机根据匹配域信息和操作域信息生成流表项,就可以对后续的GTP-U数据报文通过第一比特域指示信息或者第二比特域指示信息确定对应的比特域,直接进行处理和转发,而不必对数据报文的协议格式进行解析。本发明实施例中,通过根据控制器发送的匹配域信息和操作域信息生成流表项,使得交换机可以对GTP-U数据报文直接进行隧道封装或解封装处理,而无需对数据报文的协议格式进行解析,能够实现用户灵活的自定义的流操作。图7是根据本发明实施例的处理数据报文的方法的过程的另一例子的示意图。示例性的,本实施例中的交换设备为交换机,控制设备为控制器。701,交换机从其它网元接收首个上行GTP-U数据报文。此处假设交换机之前没有接收过上行GTP-U数据报文。702,交换机通过PKT-IN(Packet-in,数据报文输入)消息向控制器发送步骤701中的首个上行GTP-U数据报文。由于初始时交换机中没有建立处理该数据报文相应的流表项,交换机可以通过PKT-IN消息将首个上行GTP-U数据报文转发给控制器。703,控制器对首个上行GTP-U数据报文进行解析,确定需要对该数据报文进行GTP解封装操作,则将解封装处理映射为流表项的匹配域信息和操作域信息。704,控制器向交换机发送流表项添加指示消息,该流表项添加指示消息携带步骤703的匹配域信息和操作域信息。可选地,匹配域信息包括包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域。其中,第二比特域指示信息还可以包括第二掩码。可选地,操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定所述数据报文的第一比特域。其中,第二比特域指示信息还可以包括第一掩码。匹配域信息和操作域信息的举例可以参考图2或者图4中的描述,此处不作赘述。705,交换机根据步骤704的匹配域信息和操作域信息,生成流表项。706,交换机向控制器发送流表项添加响应消息。707,控制器通过PKT-OUT(Packet-out,数据报文输出)消息向交换机返回首个上行GTP-U数据报文。708,交换机根据流表项的匹配域信息对首个上行GTP-U数据报文进行匹配,在匹配成功后,根据操作域信息对首个上行GTP-U数据报文进行解封装操作。709,交换机将解封装得到的首个上行IP数据报文进行转发。710,交换机从其它网友接收后续的上行GTP-U数据报文。711,交换机根据流表项的匹配域信息对后续的上行GTP-U数据报文进行匹配,在匹配成功后,根据操作域信息对后续的上行GTP-U数据报文进行解封装操作。712,交换机将解封装得到的后续的IP数据报文进行转发。713,交换机从其它外部网元接收首个下行IP数据报文。714,交换机通过PKT-IN(Packet-in)消息向控制器发送步骤713中的首个下行IP数据报文。由于初始时交换机中没有建立对该数据报文处理的相应的流表项,交换机可以通过PKT-IN消息将首个下行IP数据报文转发给控制器。715,控制器对首个IP数据报文进行解析,确定需要对该数据报文进行GTP-U封装处理,将封装处理映射为流表项的匹配域信息和操作域信息。716,控制器向交换机发送流表项添加指示消息,该流表项添加指示消息携带匹配域信息和操作域信息。717,交换机根据流表项的匹配域信息和操作域信息,生成流表项。718,交换机向控制器发送流表项添加响应消息。719,控制器通过PKT-OUT消息向交换机返回首个下行IP数据报文。720,交换机根据流表项的匹配域信息对首个下行IP数据报文进行匹配,在匹配成功后,根据操作域信息对首个下行IP数据报文进行封装操作。721,交换机对封装得到的首个GTP-U数据报文进行转发。722,交换机从其它外部网元接收后续的下行IP数据报文。723,交换机根据流表项的匹配域信息对后续的下行IP数据报文进行匹配,在匹配成功后,根据操作域信息对后续的下行IP数据报文进行封装操作。724,交换机对封装得到的后续的下行GTP-U数据报文进行转发。本实施例中,根据匹配域信息对数据报文的匹配,以及根据操作域信息对数据报文进行处理的示例,请参见图2或者图4中的描述,此处不作赘述。在图7中,在GTP-C信令阶段不进行流表项的建立。在有GTP-U数据报文到达时,首个数据报文先转发到控制器,由控制器解析数据报文,并将GTP-U解封装或封装处理映射为流表项的匹配域信息和操作域信息。交换机根据匹配域信息和操作域信息生成流表项,就可以根据第一比特域指示信息或者第二比特域指示信息直接确定后续的GTP-U数据报文的特定比特域,并进行处理和转发,无需进行数据报文的协议格式的解析。本发明实施例中,通过根据控制器发送的匹配域信息和操作域信息生成流表项,使得交换机可以对GTP-U数据报文直接进行隧道封装或解封装处理,而无需对数据报文的协议格式进行解析,能够实现用户灵活的自定义的对数据报文的处理。图8是根据本发明实施例的处理数据报文的方法的过程的另一例子的示意图。示例性的,本实施例中的交换设备为交换机,控制设备为控制器。在图8中,以GTP协议为例,描述在交换机建立了流表项后,当交换机收到IP数据报文后如何根据流表项进行GTP隧道封装处理。其中,匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域。交换机可以对由匹配域信息中的第二比特域指示信息确定的、与IP源地址(SourceAddress,SA)对应的第二比特域进行匹配,即交换机根据指示IPSA的OXM中的第二比特域指示信息,确定IP数据报文中的IPSA所在的比特域,并比较该比特域的值是否与OXM中的匹配值相等。如果该比特域的值与OXM中的匹配值相等,则匹配成功后,交换机可以执行流表项中的操作域信息中的操作类型。控制设备经过之前的GTP会话建立操作或对首个GTP-U数据报文的解析,可以确定需要对该数据报文进行GTP封装。交换机已经根据之前的控制器发送的流表项添加指示消息,建立了流表项。流表项中的操作域信息可以包括封装处理对应的多组操作类型及操作类型对应的第一比特域指示信息,其中GTP封装头可以包括外部IP头、UDP(UserDatagramProtocol,用户数据报协议)头和GTP头,外部IP头为隧道的源端点地址和目的端点地址,GTP封装头中还可以包括分配的TEID。封装处理可以包括以下几组操作类型和操作类型对应的第一比特域指示信息:(1)根据递减操作类型以及对应的第一比特域指示信息,即Decrement(Top-offset,Size,Mask,Step),对IP数据报文中TTL(TimeToLive,生存时间)对应的比特域进行减1操作。(2)根据校验计算操作类型以及对应的第一比特域指示信息,即Calculate-Checksum(Top-offset1,Bottom-offset1,Top-offset2,Size2),更新内层IP数据报文头的校验和。(3)根据压入操作类型以及对应的第一比特域指示信息,即push(Top-offset,Size,Data),使用IP-UDP-GTP头对IP数据报文进行封装。(4)根据3次长度计算操作类型以及对应的第一比特域指示信息,即3次Calculate-Length(Top-offset1,Bottom-offset1,Top-offset2,Size2),分别更新GTP、UDP和外部IP头中对应的Length(长度)字段的长度。(5)根据2次校验计算操作类型以及对应的第一比特域指示信息,即2次Calculate-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2),分别更新UDP和外部IP头中对应的checksum(校验和)字段的数值。本发明实施例中,通过根据控制器发送的匹配域信息和操作域信息生成流表项,使得交换机可以对GTP-U数据报文直接确定特定的比特域并进行处理,而无需对数据报文的协议格式进行解析,能够实现用户灵活的自定义的对数据报文的处理。图9是根据本发明实施例的处理数据报文的方法的过程的另一例子的示意图。本实施例中,交换设备为交换机,控制设备为控制器。图9中,以GTP协议为例,描述在交换机建立了流表项后,当交换机收到GTP-U数据报文后如何按照流表项进行GTP隧道解封装处理。该流表项的匹配域中包含两组第二比特域指示信息及匹配值。交换机可以对由匹配域中的第一组中的第二比特域指示信息确定的、与IPDA对应的比特域进行匹配,并对由匹配域中的第二组中的第二比特域指示信息确定的、与UDP端口号2152对应的比特域进行匹配。即交换机可以根据指示IPDA的OXM中的第一组中的第二比特域指示信息,确定GTP-U数据报文中的IPDA所在的比特域,并比较该比特域的值是否与该OXM中第一组中的匹配值相等。同时,交换机可以根据指示UDP端口的OXM中第二组的第二比特域指示信息,确定GTP-U数据报文中的UDP端口所在的比特域,并比较该比特域的值是否与该OXM中第二组的匹配值相等。如果两个比特域都匹配成功,则交换设备可以根据流表项中的操作域信息进行GTP解封装。控制器经过之前的GTP-C会话建立操作或对首个GTP-U数据报文的解析处理,可以确定需要对数据报文执行GTP解封装。交换机已经根据之前的控制器发送的流表项添加指示消息,建立了流表项。流表项中的操作域信息可以包括解封装处理对应的多组操作类型及操作类型对应的第一比特域指示信息。其中GTP封装头可以包括外部IP头、UDP头和GTP头。解封装处理可以包括以下几组操作类型以及操作类型对应的第一比特域指示信息:(1)根据2次校验验证操作类型以及对应的第一比特域指示信息,即2次Verify-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2)分别验证外部IP头和UDP头的校验和。(2)根据弹出操作类型以及对应的第一比特域指示信息,即Pop(Top-offset,Size),弹出IP-UDP-GTP头,从而对IP数据报文进行解封装。(3)根据递减操作类型以及对应的第一比特域指示信息,即Decrement(Top-offset,Size,Mask,Step),对IP数据报文中TTL对应的比特域进行减1操作。(4)根据校验计算操作类型以及对应的第一比特域指示信息,即Calculate-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2),更新内层IP头的校验和。本发明实施例中,通过根据控制器发送的匹配域信息和操作域信息生成流表项,使得交换机可以根据第一比特域指示信息和第二比特域指示信息对GTP-U数据报文直接进行隧道解封装处理,而无需对数据报文的协议格式进行解析,能够实现用户灵活的自定义的流操作。图10是根据本发明实施例的处理数据报文的方法的过程的另一例子的示意图。本实施例中,交换设备为交换机,控制设备为控制器。在图10中,以GTP协议为例,描述在交换机建立了流表项后,当交换机接收到GTP-U数据报文后,如何根据流表项进行GTP隧道解封装和再封装处理。该处理过程不需要先弹出原有隧道报文头,再压入新的隧道报文头,只需修改外部IP地址和隧道ID等信息。本实施例中的流表项的匹配域包括两组第二比特域指示信息和匹配值。交换机可以对由匹配域中第一组的第二比特域指示信息确定的、与IPDA对应的比特域进行匹配,并对由匹配域中第二组的第二比特域指示信息确定的、与UDP端口号2152对应的比特域进行匹配。即交换机可以根据指示IPDA的OXM中第一组的第二比特域指示信息,确定GTP-U数据报文中的IPDA所在的比特域,并比较该比特域的值是否与该OXM中第一组的匹配值相等。同时,交换设备可以根据指示UDP端口的OXM中第二组的第二比特域指示,确定GTP-U数据报文中的UDP端口所在的比特域,并比较该比特域的值是否与该OXM中第二组的匹配值相等。如果两个比特域都匹配成功,则交换设备可以根据流表项中的操作域信息对隧道头域信息进行修改。控制器经过之前的GTP-C会话建立操作或对首个GTP-U数据报文的解析处理,可以确定需要对数据报文进行GTP解封装和重新再封装。交换机已经根据之前的控制器发送的流表项添加指示消息,建立了流表项。流表项中的操作域信息可以包括解封装和重新再封装处理对应的多组操作类型及操作类型对应的第一比特域指示信息。其中GTP封装头可以包括外部IP头、UDP头和GTP头。解封装和重新再封装处理可以包括以下几组操作类型和操作类型对应的第一比特域指示信息:(1)根据2次校验验证操作类型以及对应的第一比特域指示信息,即2次Verify-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2),分别验证外部IP头和UDP头的校验和。(2)根据设置操作类型以及对应的第一比特域指示信息,即Set-value(Top-offset,Size,Mask,Data),将GTP头中的原有TEID1修改为新的TEID2。(3)根据设置操作类型以及对应的第一比特域指示信息,即Set-value(Top-offset,Size,Mask,Data),更新外部IP头中源地址和目的地址。(4)根据2次校验计算操作类型和对应的第一比特域指示信息,即2此Calculate-Checksum(Top-offset1,Size1/Bottom-offset1,Top-offset2,Size2),分别更新内层UDP头的校验和和内层IP头的校验和。本发明实施例中,通过根据控制器发送的匹配域信息和操作域信息生成流表项,使得交换机可以根据第一比特域指示信息和第二比特域指示信息对GTP-U数据报文直接进行隧道解封装再封装处理,而无需对数据报文的协议格式进行解析,能够实现用户灵活的自定义的流操作。本发明实施例中,上述流表项可以是对现有流表项的扩展,例如可以在现有的普通流表的流表项中增加上述操作域信息和/匹配域信息。上述流表项也可以在交换机中新增加的流表中单独存放。下面将结合具体例子详细描述本发明实施例中流表的布置方式。图11是根据本发明实施例的流表的布置方式的一个例子的示意图。如图11所示,本发明实施例的流表项可以在新增加的流表中单独存放,为了区别于其它现有的普通流表(如图1中所示的流表),该新增加的流表可以称为通用流表。其它普通流表可以保持不变。通用流表可以穿插在现有的流管线中,流管线中的其它普通流表可以跳转到通用流表,通用流表也可以跳转回流管线中的其它普通流表。通用流表的流表项与普通流表中的流表项采用相同的结构,但在匹配域信息中可以包括本发明实施例中的OXM,操作域信息中可以包括本发明实施例中的操作类型以及对应的第一比特域指示信息。因此,本发明实施例中,通过增加通用流表存放包括匹配域信息和操作域信息的流表项,无需扩展原有的普通流表中的流表项,处理更为便捷。图12是根据本发明一个实施例的处理数据报文的装置的示意框图。图12的装置1200的一个例子是交换设备,例如OpenFlow交换机。装置1200包括匹配单元1210和操作单元1220。匹配单元1210用于将数据报文与流表项的匹配域信息进行匹配;所述流表项包括所述匹配域信息和操作域信息;其中,所述操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定所述数据报文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域;操作单元1220,用于如果所述数据报文与所述匹配域信息匹配成功,则根据所述操作域信息,对所述数据报文进行操作。可选地,当所述操作域信息包括所述操作类型和所述第一比特域指示信息时,操作单元1220具体用于,如果所述数据报文与所述匹配域信息匹配成功,则根据所述第一比特域指示信息确定所述数据报文的第一比特域,根据所述操作类型,对所述第一比特域进行操作。可选地,当所述操作域信息包括所述操作类型和所述第一比特域指示信息时,所述第一比特域指示信息还包括第一掩码,对应地,操作单元1220具体用于,如果所述数据报文与所述匹配域信息匹配成功,则根据所述第一比特域指示信息确定所述数据报文的第一比特域,根据所述第一掩码,获得所述第一比特域的至少一个比特位,根据所述操作类型,对所述第一比特域的至少一个比特位进行操作。可选地,当所述操作域信息包括所述操作类型和所述第一比特域指示信息时,若所述操作域信息还包括操作数时,操作单元1220具体用于,如果所述数据报文与所述匹配域信息匹配成功,则根据所述第一比特域指示信息确定所述数据报文的第一比特域,根据所述操作类型,对所述第一比特域和所述操作数进行操作。可选地,当所述匹配域信息包括所述第二比特域指示信息和所述匹配值时,匹配单元1210具体用于,根据所述第二比特域指示信息,确定所述数据报文的第二比特域;根据所述匹配值,对所述第二比特域进行匹配。可选地,当所述匹配域信息包括所述第二比特域指示信息和所述匹配值时,若所述第二比特域指示信息还包括第二掩码,匹配单元1210具体用于根据所述第二比特域指示信息,确定所述数据报文的第二比特域,根据所述第二掩码,获得所述第二比特域的至少一个比特位,所述根据所述匹配值,对所述第二比特域的所述至少一个比特位进行匹配。示例性的,所述操作类型包括弹出操作类型、压入操作类型、设置操作类型、长度计算操作类型、校验和计算操作类型、校验和验证操作类型、递增操作类型、递减操作类型或复制操作类型。装置1200的其它功能和操作可参照上面图2至图11的方法实施例中涉及交换设备的过程,为了避免重复,此处不再赘述。本发明实施例中,通过根据操作域信息中包括第一偏移量和第一字段长度的第一比特域指示信息确定数据报文的第一比特域,并根据操作域信息中的操作类型对第一比特域进行操作,使得对数据报文的操作不再局限于特定的协议格式。同理,交换设备根据第二比特域指示信息可以任意地确定数据报文中的第二比特域,并对第二比特域进行匹配,而无需解析数据报文的具体协议格式。所以通过图12所示的装置能够避免对于新增协议需要进行的标准化扩展,因此能够实现用户灵活的自定义的流操作。作为本发明另一个实施例,装置1200还可以包括接收单元1230和生成单元1240。接收单元1230用于接收控制设备发送的流表项添加指示消息,所述流表项添加指示消息包括所述匹配域信息和所述操作域信息;生成单元用于根据所述匹配域信息和所述操作域信息,生成所述流表项。可选地,接收单元1230还用于接收控制设备发送的流表项修改指示消息,所述流表项修改指示消息包括所述匹配域信息和新的操作域信息;对应地,装置1200还包括修改单元1240,用于根据所述匹配域信息和所述新的操作域信息,对所述流表项进行修改。可选地,接收单元1230还用于接收控制设备发送的特性请求消息,所述特性请求消息用于询问是否支持所述操作域信息或者所述匹配域信息;对应地,装置1200还包括发送单元1250,用于向所述控制设备发送特性响应消息,所述特性响应消息用于指示支持所述操作域信息或者所述匹配域信息。可选地,装置1200可以为交换设备。示例性的,交换设备可以为交换机。装置1200的其它功能和操作可参照上面图2至图11的方法实施例中涉及交换设备的过程,为了避免重复,此处不再赘述。本发明实施例中,通过采用偏移量和字段长度能够实现对数据报文特定比特域的灵活定位,实现对数据报文灵活的自定义处理,从而使对数据报文的处理不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。图13是本发明另一实施例提供的一种处理数据报文的装置的示意框图。如图13所示,该装置1300包括生成单元1310和发送单元1320。生成单元1310,用于生成流表项添加指示消息,所述流表项添加指示信息包括匹配域信息和操作域信息;其中,所述操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定数据报文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域;发送单元1320,用于发送所述流表项添加指示消息至交换设备,以使所述交换设备根据所述流表项添加指示消息生成流表项,并根据所述流表项对所述数据报文进行处理。可选地,生成单元1310还用于生成流表项修改指示消息,所述流表项修改指示消息包括所述匹配域信息和新的操作域信息;对应地,发送单元1320还用于,发送所述流表项修改指示消息至所述交换设备,以使所述交换设备根据所述匹配域信息和所述新的操作域信息,对与所述匹配域信息对应的流表项进行修改。可选地,发送单元1320还用于,发送特性请求消息至所述交换设备,所述特性请求消息用于询问是否支持所述匹配域信息或者所述操作域信息;对应地,装置1300还包括接收单元1330,用于接收所述交换设备发送的特性响应消息,所述特性响应消息用于指示支持所述匹配域信息或者所述操作域信息。可选地,装置1300可以为控制设备,示例性的,可以为控制器。本实施例的装置1300工作方式可以参考图3~图11中控制设备的工作方式,此处不作赘述。本发明实施例中的装置可以通过将携带偏移量和字段长度的比特域指示信息发送至交换设备,能够实现对数据报文特定比特域的灵活定位,实现对数据报文灵活的自定义处理,从而使对数据报文的处理不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。本发明另一实施例还提供一种处理数据报文的系统,如图14所示,该系统包括交换设备1410和控制设备1420。示例性的,交换设备1410可以为图12所示的装置,控制设备可以为图13所示的装置。本系统的工作方式可以参考图2~图11所示实施例中的工作方式,此处不作赘述。本发明实施例中,通过根据偏移量和字段长度能够灵活确定数据报文的特定比特域,并对该特定比特域进行匹配或者操作,因此能够实现对数据报文灵活的自定义处理,从而使对数据报文的处理不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。本发明另一实施例还提供一种流表项,包括匹配域信息和操作域信息。其中,其中,所述操作域信息包括操作类型和第一比特域指示信息,所述第一比特域指示信息包括第一偏移量和第一字段长度,所述第一比特域指示信息用于指定所述数据报文的第一比特域,或者,所述匹配域信息包括第二比特域指示信息和匹配值,所述第二比特域指示信息包括第二偏移量和第二字段长度,所述第二比特域指示信息用于指定所述数据报文的第二比特域。可选地,所述第一比特域指示信息还包括第一掩码。可选地,所述第二比特域指示信息还包括第二掩码。可选地,所述操作域信息还包括操作数。可选地,所述操作类型包括弹出操作类型、压入操作类型、设置操作类型、长度计算操作类型、校验和计算操作类型、校验和验证操作类型、递增操作类型、递减操作类型或复制操作类型。通过本发明实施例提供的流表项,可以灵活确定数据报文的特定比特域,并对该特定比特域进行匹配或者操作,因此能够实现对数据报文灵活的自定义处理,从而使对数据报文的处理不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。本发明另一实施例还提供一种处理数据报文的计算机程序产品。该计算机程序产品包括能够被计算机执行的程序代码,该程序代码用来执行如图2所示的处理数据报文的方法。如图15所示,本发明实施例提供一种处理数据报文的装置的其中一种硬件实现。该装置可以是交换设备,示例性的,可以是支持OpenFlow技术的交换机。该装置包括处理器、存储器、第一网络接口,第二网络接口和第三网络接口。其中第一网络接口,第二网络接口,第三网络接口,处理器和存储器之间通过总线互联。第一网络接口可以与控制设备连接,进行交互,示例性的,该控制设备可以是支持OpenFlow技术的控制器。第二网络接口作为该装置的输入端口,可以用于接收数据报文。第三网络接口作为该装置的输出端口,可以用于发送经过处理器处理的数据报文。示例性的,每个网络接口可以包含多个输入和输出端口。第一、第二和第三网络接口可以是相互独立的网络接口,也可相互合并为一个网络接口;存储器可以为半导体存储单元,可以直接被处理器访问。其中,存储器用于存储计算机可执行的程序代码,该程序代码用来执行如图2所示的处理数据报文的方法,以及用于存储本发明实施例提供的流表项。处理器,用于根据存储器存储的计算机可执行的程序代码,执行如图2所示的处理数据报文的方法,对接收到的数据报文进行处理。示例性的,通过第一网络接口,可以接收控制设备发送的流表项添加指示消息,该流表项添加指示消息中可以包括生成本发明实施例提供的流表项的匹配域信息和操作域信息,处理器可以根据流表项添加指示消息中携带的所述匹配域信息和所述操作域信息生成本发明实施例提供的流表项,并存储在存储器中。示例性的,通过第一网络接口,还可以接收控制设备发送的流表项修改指示消息,与流表项添加指示消息类似,流表项修改指示消息中可以包括本发明实施例提供的流表项的匹配域信息和操作域信息,处理器可以根据所述匹配域信息找到存储器中对应的流表项,并将该流表项中的操作域信息更新为流表项修改指示消息中携带的操作域信息。示例性的,通过第一网络接口,还可以接收控制设备发送的特性请求消息,特性请求消息可以用于询问交换设备是否支持通用流处理能力,即是否支持本发明实施例提供的流表项的匹配域信息或者操作域信息。对应的,通过第一网络接口可以向控制设备发送特性响应消息,特性响应消息可以用于指示支持通用流处理能力,即支持本发明实施例提供的流表项的匹配域信息或者操作域信息。通过本实施例提供的处理数据报文的装置的硬件实现,采用偏移量和字段长度实现对数据报文特定比特域的灵活定位,进而可以实现对数据报文灵活的自定义处理,从而使对数据报文的处理不再局限于特定的协议格式,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。如图16所示,本发明实施例提供一种处理数据报文的装置的其中一种硬件实现。该装置可以是控制设备,示例性的,可以是支持OpenFlow技术的控制器。该装置包括存储器、处理器和控制器。存储器、处理器和控制器通过总线进行互通。网络接口可以连接交换设备,与交换设备进行交互。存储器可以是半导体器件,可以直接被处理器访问。其中,存储器用于存储计算机可执行的程序代码,该程序代码用来执行如图3所示的处理数据报文的方法。处理器,用于根据存储器存储的计算机可执行的程序代码,执行如图3所示的处理数据报文的方法。其中流表项添加指示消息、流表项修改指示消息或者特性请求消息由处理器通过网络接口向交换设备进行发送。通过将包含本发明实施例提供的流表项的匹配域信息和操作域信息发送至交换设备,可以使交换设备生成本发明实施例提供的流表项,从而实现对数据报文特定比特域的灵活定位,进而可以实现对数据报文灵活的自定义处理,避免对于新增协议需要进行的标准化扩展,使对数据报文的处理更具通用性。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1