一种报文转发的方法、装置及系统的制作方法

文档序号:7773965阅读:397来源:国知局
一种报文转发的方法、装置及系统的制作方法
【专利摘要】本发明实施例提供了一种报文转发的方法、装置,涉及通信领域,用以提高系统的性能。所述方法,包括:获取业务报文的第一ID,确定所述第一ID标识出的查询阶段是否高于在第一ID标识出的查询阶段之前,获取的第二ID标识出的查询阶段;若确定出第一ID标识出的查询阶段高于在第一ID标识出的查询阶段之前,获取的第二ID标识出的查询阶段,则根据第一ID,确定第一转发流表;根据第一ID标识出的查询方式,获取第一key;根据第一key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一key相匹配的匹配表项;若确定第一转发流表中有匹配表项,则在匹配表项中获取第一处理数据,并根据第一处理数据,处理业务报文。
【专利说明】一种报文转发的方法、装置及系统
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种报文转发的方法、装置及系统。
【背景技术】
[0002]随着移动互联网的发展,用户对业务的需求越来越多。为了满足用户的需求,软件定义网络(Software Defined Networking, SDN)被提出。SDN的核心技术是利用OpenFlow(开放流)通过将网络设备控制面与转发面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。而在转发平面上,通过硬件的标准化与转发能力抽象,为控制面提供开放的控制接口,运营商或第三方可以方便的控制转发设备,即为用户可编程,从而可以快速开发新的业务。
[0003]OpenFlow是提供SDN的控制面与转发面接口的一种协议,为控制SDN中的转发设备提供了一种标准的方式。OpenFlow基于流表实现转发设备的转发。
[0004]在现有技术中,由于每个流表中可以记录下一个需查询的流表的标识,根据此标识可以查找到下一个流表。但是流表的标识只用来标识流表的类型,不标识查询阶段,为了满足OpenFlow协议中只能向后查找的规定,必须使用额外的机制保证查找的顺序,从而增加了转发业务报文的复杂度。

【发明内容】

[0005]本发明的实施例提供一种报文转发的方法、装置及系统,用以在进行业务报文转发时,保障业务报文的正常转发,并降低转发业务报文的复杂度。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]第一方面,本发明实施例提供了一种报文转发的方法,包括:获取业务报文的第一标识ID,其中,所述ID用于标识出所述业务报文的查询阶段及查询方式;确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表;根据所述第一 ID标识出的查询方式,获取第一关键字key ;根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项;若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0008]在第一方面的第一种可能的实现方式中,所述第一处理数据包括:所述业务报文的第三ID ;其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID ;所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括:在所述匹配表项中获取所述业务报文的第三ID ;确定所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段;若确定出所述第三ID标识出的查询阶段高于第一ID标识出的查询阶段,则根据所述业务报文的第三ID,确定第二转发流表;根据所述第三ID标识出的查询方式,获取第二 key ;根据所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项;若确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0009]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0010]结合第一方面,在第一方面的第三种可能的实现方式中,所述第一处理数据包括:处理指令;所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括:在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0011]结合第一方面,或第一方面的第一至第三任一种可能的实现方式,在第一方面的第四种可能的实现方式中,还包括:若确定所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则将所述业务报文发送至控制器,以使得所述控制器确定所述业务报文的转发流程;接收所述控制器发送的所述第一转发流表的新表项的相关信息。
[0012]结合第一方面,或第一方面的第一至第四任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0013]第二方面,本发明实施例提供了一种报文的转发的方法,包括:获取所述业务报文的第一标识ID,其中,所述ID用于标识出所述业务报文的查询阶段及查询方式;确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表;根据所述第一 ID标识出的所述第一转发流表的查询方式,获取第一关键字key ;根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项;若确定出所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项;所述新表项中记录有第一处理数据;将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。
[0014]在第二方面的第一种可能的实现方式中,在所述第一转发流表不是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:所述业务报文的第三ID ;所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0015]结合第二方面,在第二方面的第二种可能的实现方式中,在所述第一转发流表是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:处理指令。
[0016]结合第二方面,或第二方面的第一或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,在所述获取业务报文的第一标识ID之前,还包括:接收转发设备发送的业务报文;解析所述业务报文,获取所述业务报文的配置信息;所述配置信息中标识出转发所述业务报文的转发过程。
[0017]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述获取业务报文的第一标识ID包括:根据所述业务报文的配置信息,获取所述业务报文的第一标识ID。
[0018]结合第二方面,或第二方面的第一至第四任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述获取业务报文的第一标识ID包括:在第三转发流表的表项记录的信息中获取第一 ID。
[0019]结合第二方面,或第二方面的第一至第五任一种可能的实现方式,在第二方面的第六种可能的实现方式中,还包括:若确定出所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0020]结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述第一处理数据包括:所述业务报文的第三ID ;所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括:在所述匹配表项中获取所述业务报文的第三ID ;确定所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段;若确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段,则根据所述业务报文的第三ID,确定第二转发流表;根据所述第三ID标识出的查询方式,获取第二 key ;根据所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项;若查找到匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0021]结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0022]结合第二方面的第六种可能的实现方式,在第二方面的第九种可能的实现方式中,所述第一处理数据包括:处理指令;所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括:在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0023]结合第二方面,或第二方面的第一至第九任一种可能的实现方式,在第二方面的第十种可能的实现方式中,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0024]第三方面,本发明实施例提供了一种转发设备,包括:获取单元,用于获取业务报文的第一标识ID,其中,所述ID用于标识出所述业务报文的查询阶段及查询方式;确定单元,用于确定所述获取单元获取的所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;所述确定单元,还用于若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表;所述获取单元,还用于根据所述第一 ID标识出的查询方式,获取第一关键字key ;所述确定单元,还用于根据所述获取单元获取的所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一key相匹配的匹配表项;处理单元,用于在所述确定单元确定所述第一转发流表中有与所述第一 key相匹配的匹配表项的情况下,在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0025]在第三方面的第一种可能的实现方式中,所述第一处理数据包括:所述业务报文的第三ID ;其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID ;所述处理单元,具体用于触发所述获取单元在所述匹配表项中获取所述业务报文的第三ID ;触发所述确定单元确定所述获取单元获取的所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段;触发所述确定单元在确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段的情况下,根据所述业务报文的第三ID,确定第二转发流表;触发所述获取单元根据所述第三ID标识出的查询方式,获取第二 key ;触发所述确定单元根据所述获取单元获取的所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项;并在所述确定单元确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0026]结合第三方面,在第三方面的第二种可能的实现方式中,所述第一处理数据包括:处理指令;所述处理单元,具体用于在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0027]结合第三方面,或第三方面的第一或第二种可能的实现方式,在第三方面的第三种可能的实现方式中,还包括:接收单元;所述处理单元,还用于在所述确定单元确定所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则将所述业务报文发送至控制器,以使得所述控制器确定所述业务报文的转发流程;所述接收单元,用于接收所述控制器发送的所述第一转发流表的新表项的相关信息。
[0028]结合第三方面,或第三方面的第一至第三任一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0029]第四方面,本发明实施例提供了一种控制器,包括:获取单元,用于获取所述业务报文的第一标识ID,其中,所述ID用于标识出所述业务报文的查询阶段及查询方式;确定单元,用于确定所述获取单元获取的所述第一 ID标识出的查询阶段是否高于在所述第一ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;所述确定单元,还用于若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表;所述获取单元,还用于根据所述第一 ID标识出的所述第一转发流表的查询方式,获取第一关键字key ;所述确定单元,还用于根据所述获取单元获取的所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项;处理单元,用于在所述确定单元确定出所述第一转发流表中没有与所述第一 key相匹配的匹配表项时,根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项;所述新表项中记录有第一处理数据;发送单元,用于将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。
[0030]在第四方面的第一种可能的实现方式中,在所述第一转发流表不是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:所述业务报文的第三ID ;所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0031]结合第四方面,在第四方面的第二种可能的实现方式中,在所述第一转发流表是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:处理指令。
[0032]结合第四方面,或第四方面的第一或第二种可能的实现方式,在第四方面的第三种可能的实现方式中,还包括:接收单元,用于接收转发设备发送的业务报文;所述获取单元,还用于解析所述接收单元接收的所述业务报文,获取所述业务报文的配置信息;所述配置信息中标识出转发所述业务报文的转发过程。
[0033]结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,所述获取单元,具体用于根据所述业务报文的配置信息,获取所述业务报文的第一标识ID0
[0034]结合第四方面,或第四方面的第一至第三任一种可能的实现方式,在第四方面的第五种可能的实现方式中,所述获取单元,具体用于在第三转发流表的表项记录的信息中获取第一 ID。
[0035]结合第四方面,或第四方面的第一至第五任一种可能的实现方式,在第四方面的第六种可能的实现方式中,所述处理单元,还用于在所述确定单元确定出所述第一转发流表中有与所述第一 key相匹配的匹配表项时,在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0036]结合第四方面的第六种可能的实现方式,在第四方面的第七种可能的实现方式中,所述第一处理数据包括:所述业务报文的第三ID ;所述处理单元,具体用于触发所述获取单元在所述匹配表项中获取所述业务报文的第三ID ;触发所述确定单元确定所述获取单元获取的所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段;触发所述确定单元在确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段时,根据所述业务报文的第三ID,确定第二转发流表;触发所述获取单元根据所述第三ID标识出的查询方式,获取第二 key ;触发所述确定单元根据所述获取单元获取的所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项;并在所述确定单元确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0037]结合第四方面的第六种可能的实现方式,在第四方面的第八种可能的实现方式中,所述第一处理数据包括:处理指令;所述处理单元,具体用于在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0038]结合第四方面,或第四方面的第一至第八任一种可能的实现方式,在第四方面的第九种可能的实现方式中,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0039]第五方面,本发明实施例中提供了一种报文转发的系统,包括:转发设备及控制器;所述转发设备为上述实施例所述的转发设备;所述控制器为上述实施例所述的控制器。
[0040]本发明实施例提供了一种报文转发的方法、装置及系统,获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。这样,转发设备在接收到业务报文时,可以获取此业务报文的第一 ID,从而可以确定第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,在确定了第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,并根据第一转发流表进行转发。从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。
【专利附图】

【附图说明】
[0041]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]图1为本发明实施例提供的一种报文转发的方法的流程示意图;
[0043]图2为本发明实施例提供的另一种报文转发的方法的流程示意图;
[0044]图3为本发明实施例提供的另一种报文转发的方法的流程示意图。
[0045]图4为本发明实施例提供的一种转发设备的功能的示意图;
[0046]图5为本发明实施例提供的另一种转发设备的功能的示意图;
[0047]图6为本发明实施例提供的一种控制器的功能的示意图;
[0048]图7为本发明实施例提供的另一种控制器的功能的示意图;
[0049]图8为本发明实施例提供的一种转发设备的结构的示意图;
[0050]图9为本发明实施例提供的一种控制器的结构的示意图;
[0051]图10为本发明实施例提供的一种报文转发的系统的示意图。
【具体实施方式】
[0052]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0053]本发明实施例提供了一种报文转发的方法,如图1所示,包括:
[0054]101、获取业务报文的第一标识ID。
[0055]其中,所述ID用于标识出所述业务报文的查询阶段及查询方式。
[0056]具体的,转发设备获取业务报文的第一 ID有两种情况,具体如下:[0057]若转发设备通过入接口接收到业务报文,此时转发设备需要接解析业务报文,从而获取业务报文的第一 ID。此时,转发设备获取的第一 ID是业务报文进行转发过程中,与需要查找的第一个转发流表相关的ID。
[0058]若转发设备在获取第一 ID之前,已经通过转发流表进行了部分转发,此时,转发设备可以通过上一个查询阶段的转发流表获取第一 ID。
[0059]进一步的,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0060]其中,任意匹配查找包括:IPv4 (Internet Protocol Version4,第四版互联网协议)业务报文的任意匹配查找和IPv6 (Internet Protocol Version6,第六版互联网协议)业务报文的任意匹配查找。
[0061]最长匹配查找包括:IPv4业务报文的最长匹配查找和IPv6业务报文的最长匹配查找。
[0062]精确匹配查找包括:IPv4业务报文的精确匹配查找和IPv6业务报文的精确匹配查找。
[0063]需要说明的是,第一 ID标出的查询方式,还可是其他方式,本发明对此不做限制。
[0064]进一步的,ID标识出所述业务报文的查询阶段及查询方式的方法可以是将ID的第一标识位指示业务报报文的查询阶段,将ID的第二标识位指示查询方式。
[0065]例如,第一 ID的第一标识位为I时,指示出查询阶段为第一查询阶段,第二标识位为O时,指示查询方式为IPv4业务报文的任意匹配查找。第二标识位为I时,指示查询方式为IPv6业务报文的任意匹配查找.第二标识位为2时,指示查询方式为IPv4业务报文的最长匹配查找。第二标识位为3时,指示查询方式为IPv6业务报文的最长匹配查找。第二标识位为4时,指示查询方式为IPv4业务报文的精确匹配查找。第二标识位为5时,指示查询方式为IPv6业务报文的精确匹配查找。第二标识位为6时,指示查询方式为业务报文为线性表查找。
[0066]102、确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。
[0067]具体的,转发设备在获取了第一 ID后,可以获知此第一 ID标识出的查询阶段,并将第一 ID标识出的查询阶段与在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段进行比较,以确定转发设备当前需要进行的查询阶段不是已经查询了的查询阶段。
[0068]需要说明的是,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,即为确定第一 ID标识出的查询阶段是否为在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段之后的查询阶段。
[0069]进一步的,若转发设备通过解析业务报文,获取业务报文的第一 ID时,此时转发设备并没有对业务报文进行转发,则设置第二 ID标识出的查询阶段为空,此时转发设备将第一 ID标识出的查询阶段一定高于第二 ID标识出的查询阶段。
[0070]若转发设备通过转发流表获取第一 ID,则记录第一 ID的转发流表对应的ID为第二 ID。此时,转发设备需要确定第一 ID标识出的查询阶段是否为第二 ID标识出的查询阶段之后的查询阶段。
[0071]若第一 ID标识出的查询阶段是第二 ID标识出的查询阶段之后的查询阶段,则转发设备可以确定第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。若第一 ID标识出的查询阶段不是第二 ID标识出的查询阶段之后的查询阶段,则转发设备可以确定第一 ID标识出的查询阶段不高于第二 ID标识出的查询阶段。
[0072]示例性的,假设业务报文需要通过的转发过程是,流分类,三层转发,二层转发。流分类为第一查询阶段,三层转发为第二查询阶段,二层转发为第三查询阶段。若转发设备通过解析业务报文,获取业务报文的第一 ID时,第一 ID标识出的查询阶段为流分类,即为第一查询阶段。由于转发设备通过解析业务报文,获取业务报文的第一 ID,此时转发设备获取的第二 ID标识出的查询阶段为空,则转发设备可以检测第一 ID标识出的查询阶段是否高于第二 ID标识出的查询阶段。
[0073]假设第二 ID标识出的查询阶段为流分类,即为第一查询阶段,若转发设备获取的第一 ID标识出的查询阶段为三层转发,即为第二查询阶段,则转发设备可以确定第一 ID标识出的查询阶段是否高于在第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,即为确定第一 ID标识出的第二查询阶段是否高于在第一 ID标识出的查询阶段之前,获取的第二 ID标识出的第一查询阶段。
[0074]103、若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表。
[0075]具体的,转发设备在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段后,可以根据第一 ID,确定出与此
第一 ID相对应的第一转发流表。
[0076]需要说明的是,由于ID可以标识出业务转发报文的查询阶段和查询方式,则第一ID可以标识出业务报文的第一查询阶段和第一查询方式。在每个查询阶段中每个查询方式只对应一个转发流表,所以,可以通过第一 ID唯一确定出第一转发流表。
[0077]104、根据所述第一 ID标识出的查询方式,获取第一关键字key。
[0078]具体的,转发设备在确定出第一 ID后,根据第一 ID标识出的查询方式,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key。
[0079]示例性的,若此业务报文为IPv4业务报文,且第一 ID标识出的查询方式为任意匹配查找,任意匹配查找所需的第一 key为五元组,包括:源IP地址(SrcIP)、目的IP地址(DstIP)、源端口号(SrcPort)、目的端口号(DstPort)和协议号(Protocol)。转发设备确定出第一 ID标识出的查询方式为任意匹配查找时,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key,即为从业务报文中获取作为第一 key的五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号。
[0080]105、根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有匹配表项。
[0081]具体的,转发设备在获取了第一 key后,可以根据此key查找第一转发流表,从而可以确定第一转发流表中是否有匹配表项。
[0082]如上例所述,转发设备获取的第一 key为五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号,则可以根据五元组查询第一转发流表,从而确定第一转发流表中是否有与从业务报文中获取的第一 key相匹配的匹配表项。即为确定第一转发流表中是否有与从业务报文中获取的五元组相匹配的匹配表项。
[0083]进一步的,根据第一 key查找第一转发流表,若在第一转发流表中查找到与第一key相匹配的表项,则说明第一转发流表中有匹配表项。若在第一转发流表中没有查找到与第一 key相匹配的表项,则说明第一转发流表中没有匹配表项。
[0084]106、若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0085]具体的,转发设备在确定出第一转发流表中有与第一 key相匹配的匹配表项时,可以从匹配表项中获取第一处理数据。其中,若第一转发流表不是转发业务报文的最后一个转发流表,则第一处理数据中包括转发业务报文时,需要查找的下一个转发流表对应的第三ID。也就是说,第一处理数据中包括:标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID,即为第三ID。
[0086]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0087]若第一转发流表是转发业务报文的最后一个转发流表,则第一处理数据包括:处理指令。
[0088]转发设备根据获取的第一处理数据的内容不同,处理业务报文的方法不同。
[0089]若转发设备中获取的第一处理数据包括:所述业务报文的第三ID,则所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括:在所述匹配表项中获取所述业务报文的第三ID ;确定所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段;若确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段,则根据所述业务报文的第三ID,确定第二转发流表;根据所述第三ID标识出的查询方式,获取第二 key ;根据所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项;若查找到匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0090]也就是说,转发设备在获取的第一处理数据包括:所述业务报文的第三ID时,说明转发设备需要根据第三ID进行转发业务报文,则转发设备根据第三ID进行转发业务报文的流程,具体的可以参考转发设备根据第一 ID转发业务报文的过程,在此不再赘述。
[0091]进一步的,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0092]其中,第三ID标识出的查询方式可以与第一 ID标识出的查询方式相同。由于第一 ID标识出的查询阶段与第三ID标识出的查询阶段不同,所以与第一 ID相对应的第一转发流表与第三ID相对应的第二转发流表为不同的转发流表。若第三ID标识出的查询方式与第一 ID标识出的查询方式相同,则说明第一转发流表与第二转发流表是在不同查询阶段的具有相同查询方式的转发流表。
[0093]进一步的,若ID的第一标识位标识出业务报文的查询阶段,第二标识位标识出业务报文的查询方式,则在第三ID标识出的查询方式与第一 ID标识出的查询方式相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位相同。在第三ID标识出的查询方式与第一 ID标识出的查询方式不相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位不相同。[0094]若转发设备中获取的第一处理数据包括:处理指令,则所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括:在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0095]也就是说,在转发设备获取的第一处理数据包括:处理指令时,第一转发流表为转发业务报文的最后一个转发流表,此时,转发设备可以根据获取的第一处理数据包括的处理指令,处理业务报文,从而完成业务报文的转发。
[0096]本发明实施例提供了一种报文转发的方法,获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。这样,转发设备在接收到业务报文时,可以获取此业务报文的第一 ID,从而可以确定第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,在确定了第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,并根据第一转发流表进行转发。从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。
[0097]本发明实施例提供了一种报文转发的方法,如图2所示,包括:
[0098]201、获取所述业务报文的第一标识ID。
[0099]其中,所述ID用于标识出所述业务报文的查询阶段及查询方式。
[0100]具体的,控制器获取业务报文的第一 ID有两种情况,具体如下:
[0101]控制器可以接收转发设备发送的业务报文,并解析业务报文,从而可以获取此业务报文的第一 ID,此时,控制器获取的第一 ID是业务报文进行转发过程中,与需要查找的第一个转发流表相关的ID。
[0102]若控制器在获取第一 ID之前,已经通过转发流表进行了部分转发,此时,控制器可以通过上一个查询阶段的转发流表获取第一 ID。
[0103]需要说明的是,控制设备中存储有转发流表,且与转发设备中存储的转发流表相同。
[0104]进一步的,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0105]其中,任意匹配查找包括:IPv4 (Internet Protocol Version4,第四版互联网协议)业务报文的任意匹配查找和IPv6 (Internet Protocol Version6,第六版互联网协议)业务报文的任意匹配查找。
[0106]最长匹配查找包括:IPv4业务报文的最长匹配查找和IPv6业务报文的最长匹配查找。
[0107]精确匹配查找包括:IPv4业务报文的精确匹配查找和IPv6业务报文的精确匹配查找。
[0108]需要说明的是,第一 ID标出的查询方式,还可是其他方式,本发明对此不做限制。
[0109]进一步的,ID标识出所述业务报文的查询阶段及查询方式的方法可以是将ID的第一标识位指示业务报报文的查询阶段,将ID的第二标识位指示查询方式。
[0110]202、确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。
[0111]具体的,控制器在获取了第一 ID后,可以获知此第一 ID标识出的查询阶段,并将第一 ID标识出的查询阶段与在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段进行比较,以确定控制器当前需要进行的查询阶段不是已经查询了的查询阶段。
[0112]需要说明的是,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,即为确定第一 ID标识出的查询阶段是否为在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段之后的查询阶段。
[0113]进一步的,若控制器通过解析业务报文,获取业务报文的第一 ID时,此时控制器并没有对业务报文进行转发,则设置第二 ID标识出的查询阶段为空,此时控制器将第一 ID标识出的查询阶段一定高于第二 ID标识出的查询阶段。
[0114]若控制器通过转发流表获取第一 ID,则记录第一 ID的转发流表对应的ID为第二ID。此时,控制器需要确定第一 ID标识出的查询阶段是否为第二 ID标识出的查询阶段之后的查询阶段。
[0115]若第一 ID标识出的查询阶段是第二 ID标识出的查询阶段之后的查询阶段,则控制器可以确定第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。若第一 ID标识出的查询阶段不是第二 ID标识出的查询阶段之后的查询阶段,则控制器可以确定第一 ID标识出的查询阶段不高于第二 ID标识出的查询阶段。
[0116]203、若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表。
[0117]具体的,控制器在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段后,可以根据第一 ID,确定出与此第
一ID相对应的第一转发流表。
[0118]需要说明的是,由于ID可以标识出业务转发报文的查询阶段和查询方式,则第一ID可以标识出业务报文的第一查询阶段和第一查询方式。在每个查询阶段中每个查询方式只对应一个转发流表,所以,可以通过第一 ID唯一确定出第一转发流表。
[0119]204、根据所述第一 ID标识出的所述第一转发流表的查询方式,获取第一关键字key。
[0120]具体的,控制器在确定出第一 ID后,根据第一 ID标识出的查询方式,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key。
[0121]示例性的,若此业务报文为IPv4业务报文,且第一 ID标识出的查询方式为任意匹配查找,任意匹配查找所需的第一 key为五元组,包括:源IP地址(SrcIP)、目的IP地址(DstIP)、源端口号(SrcPort)、目的端口号(DstPort)和协议号(Protocol)。控制器确定出第一 ID标识出的查询方式为任意匹配查找时,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key,即为从业务报文中获取作为第一 key的五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号。
[0122]205、根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项。
[0123]具体的,控制器在获取了第一 key后,可以根据此key查找第一转发流表,从而可以确定第一转发流表中是否有匹配表项。
[0124]如上例所述,控制器获取的第一 key为五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号,则可以根据五元组查询第一转发流表,从而确定第一转发流表中是否有与从业务报文中获取的第一 key相匹配的匹配表项。即为确定第一转发流表中是否有与从业务报文中获取的五元组相匹配的匹配表项。
[0125]进一步的,根据第一 key查找第一转发流表,若在第一转发流表中查找到与第一key相匹配的表项,则说明第一转发流表中有匹配表项。若在第一转发流表中没有查找到与第一 key相匹配的表项,则说明第一转发流表中没有匹配表项。
[0126]206、若确定出所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项。
[0127]其中,所述新表项中记录有第一处理数据。
[0128]具体的,控制器确定出第一转发流表中没有与所述第一 key相匹配的匹配表项时,可以在第一转发流表中建立与第一 key相匹配的新表项,以便后续接收的业务报文可以根据第一转发流表中的与第一 key相匹配的匹配表项进行转发。
[0129]进一步的,控制器根据第一转发流表是否为转发业务报文的最后一个转发流表不同,建立新表项的过程不同。具体的,
[0130]在所述第一转发流表不是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:所述业务报文的第三ID。
[0131]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0132]具体的,控制器在确定出第一转发流表的表项中没有与第一 key相匹配的表项,则说明现有的转发流表不支持此业务报文的转发。此时,控制器通过解析业务报文,获知业务报文的配置信息,从而可以根据业务报文的配置信息,获知在查找第一转发流表后,需要进行的下一个查询阶段的ID,即为获知第三ID。控制器在第一转发流表中建立与第一 key相匹配的匹配表项,并将第三ID作为匹配表项的第一处理数据,记录在匹配表项中。
[0133]进一步的,第三ID标识出的查询阶段高于第一 ID标识出的查询阶段。
[0134]在所述第一转发流表是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:处理指令。
[0135]具体的,控制器在确定出第一转发流表的表项中没有与第一 key相匹配的表项,则说明现有的转发流表不支持此业务报文的转发。此时,控制器根据业务报文,获知业务报文的配置信息,从而可以根据业务报文的配置信息,获知第一转发流表是业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表,并获知处理业务报文的处理指令。此时,控制器在第一转发流表中建立与第一 key相匹配的匹配表项,并将处理指令作为匹配表项的第一处理数据,记录在匹配表项中。[0136]207、将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。
[0137]具体的,控制器在第一转发流表中建立了新表项后,将建立的新表项的相关信息发送给转发设备,以便转发设备可以根据此新表项,对业务报文实现相应的转发处理。
[0138]本发明实施例提供了一种报文转发的方法,控制器获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第
二ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项;所述新表项中记录有第一处理数据;将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。这样,控制器在建立与第一 key相匹配的匹配表项之前,需要先确定获取的第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,只有在第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,才在检测出第一转发流表中没有与第一 key相匹配的匹配项,建立与第一 key相匹配的匹配表项,并将新建立的匹配表项的相关信息发送至转发设备,从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。
[0139]本发明实施例提供了一种报文转发的方法,如图3所示,包括:
[0140]301、转发设备获取业务报文的第一标识ID。
[0141]其中,所述ID用于标识出所述业务报文的查询阶段及查询方式。
[0142]具体的,可参考步骤101,在此不再赘述。
[0143]302、转发设备确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。
[0144]具体的,可参考步骤102,在此不再赘述。
[0145]进一步的,若转发设备确定出第一 ID标识出的查询阶段没有高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,即为转发设备确定出第一 ID标识出的查询阶段是在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段之前的查询阶段,则为了保证每个查询阶段只查找一次转发流表,此时转发设备可以不再处理此业务报文,并向控制器返回错误信息。
[0146]303、若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则转发设备根据所述第一 ID,确定第一转发流表。
[0147]具体的,可参考步骤103,在此不再赘述。
[0148]304、转发设备根据所述第一 ID标识出的查询方式,获取第一关键字key。
[0149]具体的,可参考步骤104,在此不再赘述。
[0150]305、转发设备根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项。
[0151]具体的,可参考步骤105,在此不再赘述。
[0152]需要说明的是,转发设备根据确定的结构不同,执行的步骤不同。若转发设备确定出第一转发流表中有与第一 key相匹配的匹配表项,则执行步骤306a。若转发设备确定出第一转发流表中没有与第一 key相匹配的匹配表项,则执行步骤306b,307_313b,或执行步骤 306b,307-314a。
[0153]306a、若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则转发设备在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0154]具体的,可参考步骤106,在此不再赘述。
[0155]306b、若没有查找到与所述第一 key相匹配的匹配表项,则转发设备将所述业务报文发送至控制器,以使得所述控制器确定所述业务报文的转发流程,控制器接收所述转发设备发送的业务报文。
[0156]具体的,转发设备在第一转发流表中没有查找到与第一 key相匹配的匹配项时,说明转发设备没有通过第一转发流表转发业务报文,此时转发设备可以将此业务报文转发至控制器,由控制器确定业务报文的转发过程。控制器可以接收转发设备发送的业务报文。
[0157]307、控制器解析所述业务报文,获取所述业务报文的配置信息。
[0158]其中,所述配置信息中标识出转发所述业务报文的转发过程。
[0159]需要说明的是,配置信息中标识出转发所述业务报文的转发过程,是指配置信息中标识出用户配置的转发业务报文的各个查询阶段,及每个查询阶段中的查询方式。
[0160]例如,用户配置出转发业务报文的查询阶段包括三阶段:流分类,三层转发及二层转发,并且配置了流分类阶段时的查询方式为任意匹配查询;三层转发的查询阶段时的查询方式为最长匹配查询;二层转发的查询阶段时的查询方式为精确匹配查询。此时,配置信息中标识出业务报文的转发过程中的查询阶段及查询方式,即为配置信息中标识出业务报文的至少一个转发流表对应的至少一个的ID。
[0161]需要说明的是,配置信息是控制器在业务报文中获取的。控制器可以通过配置信息获知转发此业务报文所需的转发流表,即为将各个转发处理与转发流表关联起来。
[0162]具体的,控制器在接收到业务报文后,解析此业务报文,可以获取到业务报文的配置信息,从而可以获知此业务报文需要进行的查询阶段及各个查询阶段的查询方式,即为获知转发此业务报文需要查找的各个转发流表。
[0163]308、控制器获取所述业务报文的第一标识ID。
[0164]其中,所述ID用于标识出所述业务报文的查询阶段及查询方式。
[0165]具体的,控制器可以接收转发设备发送的业务报文,并解析业务报文,从而可以获取此业务报文的第一 ID,此时,控制器获取的第一 ID是业务报文进行转发过程中,与需要查找的第一个转发流表相关的ID。即为,所述控制器获取业务报文的第一标识ID包括:控制器根据所述业务报文的配置信息,获取所述业务报文的第一标识ID。
[0166]若控制器在获取第一 ID之前,已经通过转发流表进行了部分转发,此时,控制器可以通过上一个查询阶段的转发流表获取第一 ID。即为,所述控制器获取业务报文的第一标识ID包括:控制器在第三转发流表的表项记录的信息中获取第一 ID。
[0167]其中,第三转发流表是上一个查询阶段的转发流表,此时第三转发流表的表项中记录有第一 ID,控制器可以在第三流表的表项中,获取第一 ID。可参考步骤201。
[0168]需要说明的是,控制设备中存储有转发流表,且与转发设备中存储的转发流表相同。
[0169]309、控制器确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。
[0170]具体的,可参考步骤202,在此不再赘述。
[0171]310、若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则控制器根据所述第一 ID,确定第一转发流表。
[0172]具体的,可参考步骤203,在此不再赘述。
[0173]311、控制器根据所述第一 ID标识出的所述第一转发流表的查询方式,获取第一关键字key。
[0174]具体的,可参考步骤204,在此不再赘述。
[0175]312、控制器根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项。
[0176]具体的,可参考步骤205,在此不再赘述。
[0177]需要说明的是,控制器根据确定的匹配结果不同,执行的步骤不同。若控制器确定出第一转发流表中没有与所述第一 key相匹配的匹配表项,则执行步骤313a_314a。若控制器确定出第一转发流表中有与所述第一 key相匹配的匹配表项,则执行步骤313b。
[0178]313a、若确定出所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则控制器根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项。
[0179]其中,所述新表项中记录有第一处理数据。
[0180]具体的,可参考步骤206,在此不再赘述。
[0181]313b、若确定出所述第一转发流表中有与所述第一 key相匹配的匹配表项,则控制器在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0182]具体的,控制器在确定出第一转发流表中有与第一 key相匹配的匹配表项时,可以从匹配表项中获取第一处理数据。其中,若第一转发流表不是转发业务报文的最后一个转发流表,则第一处理数据中包括转发业务报文时,需要查找的下一个转发流表对应的第三ID。也就是说,第一处理数据中包括:标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID,即为第三ID。
[0183]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0184]若第一转发流表是转发业务报文的最后一个转发流表,则第一处理数据包括:处理指令。
[0185]控制器根据获取的第一处理数据的内容不同,处理业务报文的方法不同。
[0186]若控制器中获取的第一处理数据包括:所述业务报文的第三ID,则所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括:在所述匹配表项中获取所述业务报文的第三ID ;确定所述第三ID标识出的查询阶段是否高于第一ID标识出的查询阶段;若确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段,则根据所述业务报文的第三ID,确定第二转发流表;根据所述第三ID标识出的查询方式,获取第二 key ;根据所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项;若查找到匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0187]也就是说,控制器在获取的第一处理数据包括:所述业务报文的第三ID时,说明转发设备需要根据第三ID进行转发业务报文,则控制器根据第三ID进行转发业务报文的流程,具体的可以参考控制器根据第一 ID转发业务报文的过程,在此不再赘述。
[0188]进一步的,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0189]其中,第三ID标识出的查询方式可以与第一 ID标识出的查询方式相同。由于第一 ID标识出的查询阶段与第三ID标识出的查询阶段不同,所以与第一 ID相对应的第一转发流表与第三ID相对应的第二转发流表为不同的转发流表。若第三ID标识出的查询方式与第一 ID标识出的查询方式相同,则说明第一转发流表与第二转发流表是在不同查询阶段的具有相同查询方式的转发流表。
[0190]进一步的,若ID的第一标识位标识出业务报文的查询阶段,第二标识位标识出业务报文的查询方式,则在第三ID标识出的查询方式与第一 ID标识出的查询方式相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位相同。在第三ID标识出的查询方式与第一 ID标识出的查询方式不相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位不相同。
[0191]若控制器中获取的第一处理数据包括:处理指令,则所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括:在所述匹配表项中获取所述处理指令,并根据所述处理指令,预处理所述业务报文。
[0192]也就是说,在控制器获取的第一处理数据包括:处理指令时,第一转发流表为转发业务报文的最后一个转发流表,此时,控制器可以根据获取的第一处理数据包括的处理指令,处理业务报文,从而完成业务报文的转发,这样,在控制器侧将业务报文进行了 一次转发过程,但是控制器并不真正将业务报文进行转发,只是对业务报文进行一次预转发,确定是否可以将业务报文转发出去。只有转发设备可以将业务报文转发出去。
[0193]314a、控制器将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。转发设备接收所述控制器发送的所述第一转发流表的新表项的相关信息。
[0194]具体的,控制器在第一转发流表中建立了新表项后,将建立的新表项的相关信息发送给转发设备,以便转发设备可以根据此新表项,对业务报文实现相应的转发处理。转发设备接收控制器发送的所述第一转发流表的新表项的相关信息,并根据接收的第一转发流表的新表项的相关信息,更新第一转发流表。
[0195]示例性的,控制器接收到业务报文后,解析业务报文后,可以获取此业务报文的配置信息,从而获知业务报文的转发过程。若用户配置出转发业务报文的查询阶段包括三阶段:流分类,三层转发及二层转发,并且配置了流分类阶段时的查询方式为任意匹配查询;三层转发的查询阶段时的查询方式为最长匹配查询;二层转发的查询阶段时的查询方式为精确匹配查询。此时,配置信息中标识出业务报文的转发过程中的查询阶段及查询方式,即为配置信息中标识出业务报文的至少一个转发流表对应的至少一个的ID。控制器可以根据配置信息,可以获取业务报文的第一 ID,假设为ID1,且获取的IDl标识的查询阶段为流分类,查询方式为任意匹配查询。
[0196]控制器首先确定IDl标识出的查询阶段是否高于在所述IDl标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。由于此时第二 ID标识出的查询阶段为空,所以控制器确定出IDl标识出的查询阶段一定高于第二 ID标识出的查询阶段。控制器根据IDl确定第一转发流表,即为控制器在流分类查询阶段中,确定出查询方式为任意匹配查询对应的转发流表,假设为转发了流表I。控制器并根据IDl标识出的查询方式即为任意匹配查询,获取第一 key。控制器可以根据第一 key,查询转发流表I,确定转发流表I中是否有匹配表项。若确定出转发流表I中有匹配的表项,则可以根据此匹配表项中记录的信息,且下一个需要查找的转发流表为三层转发对应的转发流表2,则获知的下一个需要查找的转发流表的ID为转发流表2对应的ID,假设为ID2。
[0197]控制器根据转发流表2对应的ID2可以获知ID2标识出的查询阶段为三层转发。控制器需要先确定ID2标识出的查询阶段是否高于IDl标识出的查询阶段。由于ID2标识出的查询阶段为三层转发,IDl标识出的查询阶段为流分类,三层转发是流分类之后的查询阶段,则控制器确定出ID2标识出的查询阶段高于IDl标识出的查询阶段,控制器根据ID2,确定出第二转发流表,即为控制器在三层转发查询阶段中,确定出查询方式为最长匹配查询对应的转发流表,假设为转发了流表2。控制器并根据ID2标识出的查询方式即为最长匹配查询,获取第二 key。控制器可以根据第二 key,查询转发流表2,确定转发流表2中是否有匹配表项。假设,确定出转发流表2中没有相匹配的表项,则控制设备在转发流表2中建立与第二 key相匹配的新的表项,其中,将下一个查询阶段对应的ID,即为ID3作为新表项的第一处理数据,添加至新表项中。并将转发流表2中建立的新表项的相关信息发送至转发设备,以使得转发设备根据此表项的相关信息,转发业务报文。
[0198]控制设备在建立完转发流表2中与第二 key相对应的表项后,根据ID3获知ID3标识出的查询阶段为二层转发。控制器需要先确定ID3标识出的查询阶段是否高于ID2标识出的查询阶段。由于ID3标识出的查询阶段为二层转发,ID2标识出的查询阶段为三层转发,二层转发是三层转发之后的查询阶段,则控制器确定出ID3标识出的查询阶段高于ID2标识出的查询阶段,控制器根据ID3,确定出第三转发流表,即为控制器在二层转发查询阶段中,确定出查询方式为精确匹配查询对应的转发流表,假设为转发了流表3。控制器并根据ID3标识出的查询方式即为精确匹配查询,获取第三key。控制器根据第三key,查找转发流表3,确定转发流表3中是否有与第三key相匹配的表项。假设确定出转发流表3中有匹配表项,则转发流表3中的匹配表项记录的第一处理数据为处理指令,则控制器可以根据此处理指令,对业务报文进行处理,这样在控制器中可以预先进行业务报文的转发过程。由于控制器中无法将业务报文进行转发,则控制器可以在此业务报文可以正常转发的消息发送至转发设备,以使得转发设备在接收到业务报文时,根据已存储的转发流表,转发业务报文。
[0199]本发明实施例提供了 一种报文转发的方法,转发设备获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。若确定第一转发流表中没有与第一 key相匹配的匹配表项,则将业务报文发送至控制器,由控制器获取此业务报文相关转发信息。这样,转发设备在接收到业务报文时,可以获取此业务报文的第一 ID,从而可以确定第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,在确定了第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,并根据第一转发流表进行转发。从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。并在接收到新的业务报文时,可以发送至控制器,控制器可以根据新的业务报文,在转发流表中建立相应的新表项,并将新建立的转发流表的表项的相关信息发送至转发设备,使得转发设备根据此表项中记录的信息处理此新业务报文,无需重新编写转发设备的转发流程,进一步降低了转发业务报文的复杂度,从而提高了系统的性能。
[0200]如图4所示,其为本发明提供的一种转发设备的功能示意图,参考图4所示,所述转发设备,包括:
[0201]获取单元401,用于获取业务报文的第一标识ID。
[0202]其中,所述ID用于标识出所述业务报文的查询阶段及查询方式。
[0203]具体的,获取单元401,具体用于通过入接口接收到业务报文,并解析业务报文,获取业务报文的第一 ID。此时,获取的第一 ID是业务报文进行转发过程中,与需要查找的第一个转发流表相关的ID。
[0204]或者,可以通过上一个查询阶段的转发流表获取第一 ID。
[0205]进一步的,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0206]其中,任意匹配查找包括:IPv4 (Internet Protocol Version4,第四版互联网协议)业务报文的任意匹配查找和IPv6 (Internet Protocol Version6,第六版互联网协议)业务报文的任意匹配查找。
[0207]最长匹配查找包括:IPv4业务报文的最长匹配查找和IPv6业务报文的最长匹配查找。
[0208]精确匹配查找包括:IPv4业务报文的精确匹配查找和IPv6业务报文的精确匹配查找。
[0209]需要说明的是,第一 ID标出的查询方式,还可是其他方式,本发明对此不做限制。
[0210]进一步的,ID标识出所述业务报文的查询阶段及查询方式的方法可以是将ID的第一标识位指示业务报报文的查询阶段,将ID的第二标识位指示查询方式。
[0211]确定单元402,用于确定所述获取单元401获取的所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。
[0212]需要说明的是,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,即为确定第一 ID标识出的查询阶段是否为在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段之后的查询阶段。
[0213]具体的,所述确定单元402,具体用于在获取单元401通过解析业务报文,获取业务报文的第一 ID时,第二 ID标识出的查询阶段为空,确定出第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。
[0214]在获取单元401通过转发流表获取第一 ID,则记录第一 ID的转发流表对应的ID为第二 ID,则需要确定第一 ID标识出的查询阶段是否为第二 ID标识出的查询阶段之后的查询阶段。
[0215]其中,若第一 ID标识出的查询阶段是第二 ID标识出的查询阶段之后的查询阶段,则可以确定第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。若第一 ID标识出的查询阶段不是第二 ID标识出的查询阶段之后的查询阶段,则可以确定第一 ID标识出的查询阶段不高于第二 ID标识出的查询阶段。
[0216]所述确定单元402,还用于若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定
第一转发流表。
[0217]需要说明的是,由于ID可以标识出业务转发报文的查询阶段和查询方式,则第一ID可以标识出业务报文的第一查询阶段和第一查询方式。在每个查询阶段中每个查询方式只对应一个转发流表,所以,可以通过第一 ID唯一确定出第一转发流表。
[0218]所述获取单元401,还用于根据所述第一 ID标识出的查询方式,获取第一关键字key。
[0219]具体的,所述获取单元401,具体用于在获取第一 ID后,根据第一 ID标识出的查询方式,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key。
[0220]示例性的,若此业务报文为IPv4业务报文,且第一 ID标识出的查询方式为任意匹配查找,任意匹配查找所需的第一 key为五元组,包括:源IP地址(SrcIP)、目的IP地址(DstIP)、源端口号(SrcPort)、目的端口号(DstPort)和协议号(Protocol)。获取单元401确定出第一 ID标识出的查询方式为任意匹配查找时,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key,即为从业务报文中获取作为第一 key的五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号。
[0221]所述确定单元402,还用于根据所述获取单元401获取的所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项。
[0222]如上例所述,确定单元402获取的第一 key为五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号,则可以根据五元组查询第一转发流表,从而确定第一转发流表中是否有与从业务报文中获取的第一 key相匹配的匹配表项。即为确定第一转发流表中是否有与从业务报文中获取的五元组相匹配的匹配表项。
[0223]进一步的,根据第一 key查找第一转发流表,若在第一转发流表中查找到与第一key相匹配的表项,则说明第一转发流表中有匹配表项。若在第一转发流表中没有查找到与第一 key相匹配的表项,则说明第一转发流表中没有匹配表项。
[0224]处理单元403,用于在所述确定单元402确定所述第一转发流表中有与所述第一key相匹配的匹配表项的情况下,在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。[0225]具体的,若第一转发流表不是转发业务报文的最后一个转发流表,则第一处理数据中包括转发业务报文时,需要查找的下一个转发流表对应的第三ID。也就是说,第一处理数据中包括:标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID,即为第三ID。
[0226]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0227]若第一转发流表是转发业务报文的最后一个转发流表,则第一处理数据包括:处理指令。
[0228]处理单元403根据获取的第一处理数据的不同,对业务报文的处理动作也不同。
[0229]所述处理单元403,具体用于若获取的第一处理数据包括:所述业务报文的第三ID,则触发所述获取单元401在所述匹配表项中获取所述业务报文的第三ID。触发所述确定单元402确定所述获取单元401获取的所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段。触发所述确定单元402在确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段的情况下,根据所述业务报文的第三ID,确定第二转发流表。触发所述获取单元401根据所述第三ID标识出的查询方式,获取第二 key。触发所述确定单元402根据所述获取单元401获取的所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项。并在所述确定单元402确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0230]也就是说,处理单元403在获取的第一处理数据包括:所述业务报文的第三ID时,说明需要根据第三ID进行转发业务报文,则处理单元403触发根据第三ID进行转发业务报文的流程,具体的可以参考根据第一 ID转发业务报文的过程,在此不再赘述。
[0231]进一步的,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0232]其中,第三ID标识出的查询方式可以与第一 ID标识出的查询方式相同。由于第一 ID标识出的查询阶段与第三ID标识出的查询阶段不同,所以与第一 ID相对应的第一转发流表与第三ID相对应的第二转发流表为不同的转发流表。若第三ID标识出的查询方式与第一 ID标识出的查询方式相同,则说明第一转发流表与第二转发流表是在不同查询阶段的具有相同查询方式的转发流表。
[0233]进一步的,若ID的第一标识位标识出业务报文的查询阶段,第二标识位标识出业务报文的查询方式,则在第三ID标识出的查询方式与第一 ID标识出的查询方式相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位相同。在第三ID标识出的查询方式与第一 ID标识出的查询方式不相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位不相同。
[0234]若获取的第一处理数据包括:处理指令,则在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0235]也就是说,处理单元403在获取的第一处理数据包括:处理指令时,第一转发流表为转发业务报文的最后一个转发流表,此时,处理单元403可以根据获取的第一处理数据包括的处理指令,处理业务报文,从而完成业务报文的转发。
[0236]进一步的,所述转发设备,如图5所示,还包括:接收单元404。
[0237]其中,所述处理单元404,还用于在所述确定单元402确定所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则将所述业务报文发送至控制器,以使得所述控制器确定所述业务报文的转发流程。
[0238]所述接收单元404,用于接收所述控制器发送的所述第一转发流表的新表项的相
关信息。
[0239]本发明实施例提供了一种转发设备,获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。这样,转发设备在接收到业务报文时,可以获取此业务报文的第一 ID,从而可以确定第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,在确定了第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,并根据第一转发流表进行转发。从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。
[0240]如图6所示,其为本发明提供的一种控制器的功能示意图,参考图6所示,所述控制器,包括:
[0241]获取单元601,用于获取所述业务报文的第一标识ID。
[0242]其中,所述ID用于标识出所述业务报文的查询阶段及查询方式。
[0243]具体的,获取单元601,具体用于通过入接口接收到业务报文,并解析业务报文,获取业务报文的第一 ID。此时,获取的第一 ID是业务报文进行转发过程中,与需要查找的第一个转发流表相关的ID。
[0244]或者,可以通过上一个查询阶段的转发流表获取第一 ID。
[0245]进一步的,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0246]其中,任意匹配查找包括:IPv4 (Internet Protocol Version4,第四版互联网协议)业务报文的任意匹配查找和IPv6 (Internet Protocol Version6,第六版互联网协议)业务报文的任意匹配查找。
[0247]最长匹配查找包括:IPv4业务报文的最长匹配查找和IPv6业务报文的最长匹配查找。
[0248]精确匹配查找包括:IPv4业务报文的精确匹配查找和IPv6业务报文的精确匹配查找。
[0249]需要说明的是,第一 ID标出的查询方式,还可是其他方式,本发明对此不做限制。
[0250]进一步的,ID标识出所述业务报文的查询阶段及查询方式的方法可以是将ID的第一标识位指示业务报报文的查询阶段,将ID的第二标识位指示查询方式。
[0251]确定单元602,用于确定所述获取单元601获取的所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。[0252]需要说明的是,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,即为确定第一 ID标识出的查询阶段是否为在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段之后的查询阶段。
[0253]具体的,所述确定单元602,具体用于在获取单元601通过解析业务报文,获取业务报文的第一 ID时,第二 ID标识出的查询阶段为空,确定出第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。
[0254]在获取单元601通过转发流表获取第一 ID,则记录第一 ID的转发流表对应的ID为第二 ID,则需要确定第一 ID标识出的查询阶段是否为第二 ID标识出的查询阶段之后的查询阶段。
[0255]其中,若第一 ID标识出的查询阶段是第二 ID标识出的查询阶段之后的查询阶段,则可以确定第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。若第一 ID标识出的查询阶段不是第二 ID标识出的查询阶段之后的查询阶段,则可以确定第一 ID标识出的查询阶段不高于第二 ID标识出的查询阶段。
[0256]所述确定单元602,还用于若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定
第一转发流表。
[0257]需要说明的是,由于ID可以标识出业务转发报文的查询阶段和查询方式,则第一ID可以标识出业务报文的第一查询阶段和第一查询方式。在每个查询阶段中每个查询方式只对应一个转发流表,所以,可以通过第一 ID唯一确定出第一转发流表。
[0258]所述获取单元601,还用于根据所述第一 ID标识出的查询方式,获取第一关键字key。
[0259]具体的,所述获取单元601,具体用于在获取第一 ID后,根据第一 ID标识出的查询方式,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key。
[0260]示例性的,若此业务报文为IPv4业务报文,且第一 ID标识出的查询方式为任意匹配查找,任意匹配查找所需的第一 key为五元组,包括:源IP地址(SrcIP)、目的IP地址(DstIP)、源端口号(SrcPort)、目的端口号(DstPort)和协议号(Protocol)。获取单元401确定出第一 ID标识出的查询方式为任意匹配查找时,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key,即为从业务报文中获取作为第一 key的五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号。
[0261]所述确定单元602,还用于根据所述获取单元601获取的所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项。
[0262]如上例所述,确定单元602获取的第一 key为五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号,则可以根据五元组查询第一转发流表,从而确定第一转发流表中是否有与从业务报文中获取的第一 key相匹配的匹配表项。即为确定第一转发流表中是否有与从业务报文中获取的五元组相匹配的匹配表项。
[0263]进一步的,根据第一 key查找第一转发流表,若在第一转发流表中查找到与第一key相匹配的表项,则说明第一转发流表中有匹配表项。若在第一转发流表中没有查找到与第一 key相匹配的表项,则说明第一转发流表中没有匹配表项。[0264]处理单元603,用于在所述确定单元602确定出所述第一转发流表中没有与所述第一 key相匹配的匹配表项时,根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项。
[0265]其中,所述新表项中记录有第一处理数据。
[0266]具体的,处理单元603根据第一转发流表是否为转发业务报文的最后一个转发流表不同,建立新表项的过程不同。其中,
[0267]在所述第一转发流表不是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:所述业务报文的第三ID。
[0268]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0269]具体的,处理单元603在确定出第一转发流表的表项中没有与第一 key相匹配的表项,则说明现有的转发流表不支持此业务报文的转发。此时,获取单元601通过解析业务报文,获知业务报文的配置信息,从而可以根据业务报文的配置信息,获知在查找第一转发流表后,需要进行的下一个查询阶段的ID,即为获知第三ID。处理单元603在第一转发流表中建立与第一 key相匹配的匹配表项,并将第三ID作为匹配表项的第一处理数据,记录在匹配表项中。
[0270]进一步的,第三ID标识出的查询阶段高于第一 ID标识出的查询阶段。
[0271]在所述第一转发流表是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:处理指令。
[0272]具体的处理单元603在确定出第一转发流表的表项中没有与第一 key相匹配的表项,则说明现有的转发流表不支持此业务报文的转发。此时,获取单元601根据业务报文,获知业务报文的配置信息,从而可以根据业务报文的配置信息,获知第一转发流表是业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表,并获知处理业务报文的处理指令。此时,处理单元603在第一转发流表中建立与第一 key相匹配的匹配表项,并将处理指令作为匹配表项的第一处理数据,记录在匹配表项中。
[0273]发送单元604,用于将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。
[0274]进一步的,所述控制器,如图7所示,还包括:
[0275]接收单元604,用于接收转发设备发送的业务报文。
[0276]所述获取单元601,还用于解析所述接收单元604接收的所述业务报文,获取所述业务报文的配置信息。
[0277]其中,所述配置信息中标识出转发所述业务报文的转发过程。
[0278]此时,获取单元601,用于获取所述业务报文的第一标识ID具体为:所述获取单元601,具体用于根据所述业务报文的配置信息,获取所述业务报文的第一标识ID。或者,所述获取单元601,具体用于在第三转发流表的表项记录的信息中获取第一 ID。
[0279]进一步的,处理单元603,还用于在所述确定单元602确定所述第一转发流表中有与所述第一 key相匹配的匹配表项的情况下,在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0280]具体的,若第一转发流表不是转发业务报文的最后一个转发流表,则第一处理数据中包括转发业务报文时,需要查找的下一个转发流表对应的第三ID。也就是说,第一处理数据中包括:标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID,即为第三ID。
[0281]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0282]若第一转发流表是转发业务报文的最后一个转发流表,则第一处理数据包括:处理指令。
[0283]处理单元603根据获取的第一处理数据的不同,对业务报文的处理动作也不同。
[0284]所述处理单元603,具体用于若获取的第一处理数据包括:所述业务报文的第三ID,则触发所述获取单元601在所述匹配表项中获取所述业务报文的第三ID。触发所述确定单元602确定所述获取单元601获取的所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段。触发所述确定单元602在确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段的情况下,根据所述业务报文的第三ID,确定第二转发流表。触发所述获取单元601根据所述第三ID标识出的查询方式,获取第二 key。触发所述确定单元602根据所述获取单元601获取的所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项。并在所述确定单元602确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0285]也就是说,处理单元603在获取的第一处理数据包括:所述业务报文的第三ID时,说明需要根据第三ID进行转发业务报文,则处理单元603触发根据第三ID进行转发业务报文的流程,具体的可以参考根据第一 ID转发业务报文的过程,在此不再赘述。
[0286]进一步的,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0287]其中,第三ID标识出的查询方式可以与第一 ID标识出的查询方式相同。由于第一 ID标识出的查询阶段与第三ID标识出的查询阶段不同,所以与第一 ID相对应的第一转发流表与第三ID相对应的第二转发流表为不同的转发流表。若第三ID标识出的查询方式与第一 ID标识出的查询方式相同,则说明第一转发流表与第二转发流表是在不同查询阶段的具有相同查询方式的转发流表。
[0288]进一步的,若ID的第一标识位标识出业务报文的查询阶段,第二标识位标识出业务报文的查询方式,则在第三ID标识出的查询方式与第一 ID标识出的查询方式相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位相同。在第三ID标识出的查询方式与第一 ID标识出的查询方式不相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位不相同。
[0289]若获取的第一处理数据包括:处理指令,则在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0290]也就是说,处理单元603在获取的第一处理数据包括:处理指令时,第一转发流表为转发业务报文的最后一个转发流表,此时,处理单元603可以根据获取的第一处理数据包括的处理指令,处理业务报文,从而完成业务报文的转发。
[0291]本发明实施例提供了一种控制器,获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项;所述新表项中记录有第一处理数据;将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。这样,控制器在建立与第一 key相匹配的匹配表项之前,需要先确定获取的第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,只有在第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,才在检测出第一转发流表中没有与第一 key相匹配的匹配项,建立与第一 key相匹配的匹配表项,并将新建立的匹配表项的相关信息发送至转发设备,从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。
[0292]如图8所示,其为本发明提供的一种转发设备的结构示意图,参考图8所示,该转发设备包括:处理器(processor) 801、通信接口(Communications Interface) 802、存储器(memory) 803、通信总线804及接收器805 ;其中,所述处理器801、所述通信接口 802、所述接收器805和所述存储器803通过所述通信总线804完成相互间的通信。
[0293]处理器801可以是一个中央处理器CPU,或者是特定集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0294]存储器803用于存放程序代码,所述程序代码包括计算机操作指令。存储器803可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。处理器801用于调用存储器803中的程序代码。具体为:
[0295]处理器801,用于获取业务报文的第一标识ID。
[0296]其中,所述ID用于标识出所述业务报文的查询阶段及查询方式。
[0297]具体的,处理器801,具体用于通过入接口接收到业务报文,并解析业务报文,获取业务报文的第一 ID。此时,获取的第一 ID是业务报文进行转发过程中,与需要查找的第一个转发流表相关的ID。
[0298]或者,可以通过上一个查询阶段的转发流表获取第一 ID。
[0299]进一步的,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0300]其中,任意匹配查找包括:IPv4 (Internet Protocol Version4,第四版互联网协议)业务报文的任意匹配查找和IPv6 (Internet Protocol Version6,第六版互联网协议)业务报文的任意匹配查找。
[0301]最长匹配查找包括:IPv4业务报文的最长匹配查找和IPv6业务报文的最长匹配查找。
[0302]精确匹配查找包括:IPv4业务报文的精确匹配查找和IPv6业务报文的精确匹配查找。
[0303]需要说明的是,第一 ID标出的查询方式,还可是其他方式,本发明对此不做限制。
[0304]进一步的,ID标识出所述业务报文的查询阶段及查询方式的方法可以是将ID的第一标识位指示业务报报文的查询阶段,将ID的第二标识位指示查询方式。
[0305]处理器801,还用于确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。
[0306]需要说明的是,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,即为确定第一 ID标识出的查询阶段是否为在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段之后的查询阶段。
[0307]具体的,所述处理器801,具体用于在通过解析业务报文,获取业务报文的第一 ID时,第二 ID标识出的查询阶段为空,确定出第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。
[0308]在处理器801通过转发流表获取第一 ID,则记录第一 ID的转发流表对应的ID为第二 ID,则需要确定第一 ID标识出的查询阶段是否为第二 ID标识出的查询阶段之后的查询阶段。
[0309]其中,若第一 ID标识出的查询阶段是第二 ID标识出的查询阶段之后的查询阶段,则可以确定第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。若第一 ID标识出的查询阶段不是第二 ID标识出的查询阶段之后的查询阶段,则可以确定第一 ID标识出的查询阶段不高于第二 ID标识出的查询阶段。
[0310]所述处理器801,还用于若确定出所述第一 ID标识出的查询阶段高于在所述第一ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第
一转发流表。
[0311]需要说明的是,由于ID可以标识出业务转发报文的查询阶段和查询方式,则第一ID可以标识出业务报文的第一查询阶段和第一查询方式。在每个查询阶段中每个查询方式只对应一个转发流表,所以,可以通过第一 ID唯一确定出第一转发流表。
[0312]所述处理器801,还用于根据所述第一 ID标识出的查询方式,获取第一关键字key。
[0313]具体的,所述处理器801,具体用于在获取第一 ID后,根据第一 ID标识出的查询方式,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key。
[0314]示例性的,若此业务报文为IPv4业务报文,且第一 ID标识出的查询方式为任意匹配查找,任意匹配查找所需的第一 key为五元组,包括:源IP地址(SrcIP)、目的IP地址(DstIP)、源端口号(SrcPort)、目的端口号(DstPort)和协议号(Protocol)。获取单元401确定出第一 ID标识出的查询方式为任意匹配查找时,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key,即为从业务报文中获取作为第一 key的五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号。
[0315]所述处理器801,还用于根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项。
[0316]如上例所述,处理器801获取的第一 key为五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号,则可以根据五元组查询第一转发流表,从而确定第一转发流表中是否有与从业务报文中获取的第一 key相匹配的匹配表项。即为确定第一转发流表中是否有与从业务报文中获取的五元组相匹配的匹配表项。[0317]进一步的,根据第一 key查找第一转发流表,若在第一转发流表中查找到与第一key相匹配的表项,则说明第一转发流表中有匹配表项。若在第一转发流表中没有查找到与第一 key相匹配的表项,则说明第一转发流表中没有匹配表项。
[0318]处理器801,还用于在所述第一转发流表中有与所述第一 key相匹配的匹配表项的情况下,在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0319]具体的,若第一转发流表不是转发业务报文的最后一个转发流表,则第一处理数据中包括转发业务报文时,需要查找的下一个转发流表对应的第三ID。也就是说,第一处理数据中包括:标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID,即为第三ID。
[0320]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0321]若第一转发流表是转发业务报文的最后一个转发流表,则第一处理数据包括:处理指令。
[0322]处理器801根据获取的第一处理数据的不同,对业务报文的处理动作也不同。
[0323]所述处理器801,具体用于若获取的第一处理数据包括:所述业务报文的第三ID,则在所述匹配表项中获取所述业务报文的第三ID。确定所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段。在确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段的情况下,根据所述业务报文的第三ID,确定第二转发流表。根据所述第三ID标识出的查询方式,获取第二 key。根据获取的所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项。并在确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0324]也就是说,处理器801在获取的第一处理数据包括:所述业务报文的第三ID时,说明需要根据第三ID进行转发业务报文,则根据第三ID进行转发业务报文的流程,具体的可以参考根据第一 ID转发业务报文的过程,在此不再赘述。
[0325]进一步的,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0326]其中,第三ID标识出的查询方式可以与第一 ID标识出的查询方式相同。由于第一 ID标识出的查询阶段与第三ID标识出的查询阶段不同,所以与第一 ID相对应的第一转发流表与第三ID相对应的第二转发流表为不同的转发流表。若第三ID标识出的查询方式与第一 ID标识出的查询方式相同,则说明第一转发流表与第二转发流表是在不同查询阶段的具有相同查询方式的转发流表。
[0327]进一步的,若ID的第一标识位标识出业务报文的查询阶段,第二标识位标识出业务报文的查询方式,则在第三ID标识出的查询方式与第一 ID标识出的查询方式相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位相同。在第三ID标识出的查询方式与第一 ID标识出的查询方式不相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位不相同。
[0328]若获取的第一处理数据包括:处理指令,则在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0329]也就是说,处理器801在获取的第一处理数据包括:处理指令时,第一转发流表为转发业务报文的最后一个转发流表,此时,处理器801可以根据获取的第一处理数据包括的处理指令,处理业务报文,从而完成业务报文的转发。
[0330]进一步的,所述处理器801,还用于在确定所述第一转发流表中没有与所述第一key相匹配的匹配表项,则将所述业务报文发送至控制器,以使得所述控制器确定所述业务报文的转发流程。
[0331]所述接收器805,用于接收所述控制器发送的所述第一转发流表的新表项的相关信息。
[0332]本发明实施例提供了一种转发设备,获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。这样,转发设备在接收到业务报文时,可以获取此业务报文的第一 ID,从而可以确定第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,在确定了第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,并根据第一转发流表进行转发。从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。
[0333]如图9所示,其为本发明提供的一种控制器的结构示意图,参考图9所示,该控制器包括:处理器(processor) 901、通信接口(Communications Interface) 902、存储器(memory) 903、通信总线904、发射器905及接收器906 ;其中,所述处理器901、所述通信接口 902、所述接收器906、所述发射器905和所述存储器903通过所述通信总线904完成相互间的通信。
[0334]处理器901可以是一个中央处理器CPU,或者是特定集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0335]存储器903用于存放程序代码,所述程序代码包括计算机操作指令。存储器903可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。处理器901用于调用存储器903中的程序代码。具体为:
[0336]处理器901,用于获取所述业务报文的第一标识ID。
[0337]其中,所述ID用于标识出所述业务报文的查询阶段及查询方式。
[0338]具体的,处理器901,具体用于通过入接口接收到业务报文,并解析业务报文,获取业务报文的第一 ID。此时,获取的第一 ID是业务报文进行转发过程中,与需要查找的第一个转发流表相关的ID。
[0339]或者,可以通过上一个查询阶段的转发流表获取第一 ID。
[0340]进一步的,所述第一 ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。[0341]其中,任意匹配查找包括:IPv4 (Internet Protocol Version4,第四版互联网协议)业务报文的任意匹配查找和IPv6 (Internet Protocol Version6,第六版互联网协议)业务报文的任意匹配查找。
[0342]最长匹配查找包括:IPv4业务报文的最长匹配查找和IPv6业务报文的最长匹配查找。
[0343]精确匹配查找包括:IPv4业务报文的精确匹配查找和IPv6业务报文的精确匹配查找。
[0344]需要说明的是,第一 ID标出的查询方式,还可是其他方式,本发明对此不做限制。
[0345]进一步的,ID标识出所述业务报文的查询阶段及查询方式的方法可以是将ID的第一标识位指示业务报报文的查询阶段,将ID的第二标识位指示查询方式。
[0346]处理器901,还用于确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段。
[0347]需要说明的是,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,即为确定第一 ID标识出的查询阶段是否为在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段之后的查询阶段。
[0348]具体的,所述处理器901,具体用于在通过解析业务报文,获取业务报文的第一 ID时,第二 ID标识出的查询阶段为空,确定出第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。
[0349]在处理器901通过转发流表获取第一 ID,则记录第一 ID的转发流表对应的ID为第二 ID,则需要确定第一 ID标识出的查询阶段是否为第二 ID标识出的查询阶段之后的查询阶段。
[0350]其中,若第一 ID标识出的查询阶段是第二 ID标识出的查询阶段之后的查询阶段,则可以确定第一 ID标识出的查询阶段高于第二 ID标识出的查询阶段。若第一 ID标识出的查询阶段不是第二 ID标识出的查询阶段之后的查询阶段,则可以确定第一 ID标识出的查询阶段不高于第二 ID标识出的查询阶段。
[0351]所述处理器901,还用于若确定出所述第一 ID标识出的查询阶段高于在所述第一ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第
一转发流表。
[0352]需要说明的是,由于ID可以标识出业务转发报文的查询阶段和查询方式,则第一ID可以标识出业务报文的第一查询阶段和第一查询方式。在每个查询阶段中每个查询方式只对应一个转发流表,所以,可以通过第一 ID唯一确定出第一转发流表。
[0353]所述处理器901,还用于根据所述第一 ID标识出的查询方式,获取第一关键字key。
[0354]具体的,所述处理器901,具体用于在获取第一 ID后,根据第一 ID标识出的查询方式,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key。
[0355]示例性的,若此业务报文为IPv4业务报文,且第一 ID标识出的查询方式为任意匹配查找,任意匹配查找所需的第一 key为五元组,包括:源IP地址(SrcIP)、目的IP地址(DstIP)、源端口号(SrcPort)、目的端口号(DstPort)和协议号(Protocol)。获取单元401确定出第一 ID标识出的查询方式为任意匹配查找时,从业务报文中获取与第一 ID标识出的查询方式对应的第一 key,即为从业务报文中获取作为第一 key的五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号。
[0356]所述处理器901,还用于根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项。
[0357]如上例所述,处理器901获取的第一 key为五元组,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议号,则可以根据五元组查询第一转发流表,从而确定第一转发流表中是否有与从业务报文中获取的第一 key相匹配的匹配表项。即为确定第一转发流表中是否有与从业务报文中获取的五元组相匹配的匹配表项。
[0358]进一步的,根据第一 key查找第一转发流表,若在第一转发流表中查找到与第一key相匹配的表项,则说明第一转发流表中有匹配表项。若在第一转发流表中没有查找到与第一 key相匹配的表项,则说明第一转发流表中没有匹配表项。
[0359]处理器901,还用于在所述第一转发流表中没有与所述第一 key相匹配的匹配表项时,根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项。
[0360]其中,所述新表项中记录有第一处理数据。
[0361]具体的,处理器901根据第一转发流表是否为转发业务报文的最后一个转发流表不同,建立新表项的过程不同。其中,
[0362]在所述第一转发流表不是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:所述业务报文的第三ID。
[0363]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0364]具体的,处理器901在确定出第一转发流表的表项中没有与第一 key相匹配的表项,则说明现有的转发流表不支持此业务报文的转发。此时,处理器901通过解析业务报文,获知业务报文的配置信息,从而可以根据业务报文的配置信息,获知在查找第一转发流表后,需要进行的下一个查询阶段的ID,即为获知第三ID。处理器901在第一转发流表中建立与第一 key相匹配的匹配表项,并将第三ID作为匹配表项的第一处理数据,记录在匹配表项中。
[0365]进一步的,第三ID标识出的查询阶段高于第一 ID标识出的查询阶段。
[0366]在所述第一转发流表是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:处理指令。
[0367]具体的,处理器901在确定出第一转发流表的表项中没有与第一 key相匹配的表项,则说明现有的转发流表不支持此业务报文的转发。此时,处理器901根据业务报文,获知业务报文的配置信息,从而可以根据业务报文的配置信息,获知第一转发流表是业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表,并获知处理业务报文的处理指令。此时,处理器901在第一转发流表中建立与第一 key相匹配的匹配表项,并将处理指令作为匹配表项的第一处理数据,记录在匹配表项中。
[0368]发射器905,用于将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。
[0369]进一步的,接收器906,用于接收转发设备发送的业务报文。
[0370]所述处理器901,还用于解析所述接收器906接收的所述业务报文,获取所述业务报文的配置信息。
[0371]其中,所述配置信息中标识出转发所述业务报文的转发过程。
[0372]此时,处理器901,用于获取所述业务报文的第一标识ID具体为:所述处理器901,具体用于根据所述业务报文的配置信息,获取所述业务报文的第一标识ID。或者,所述处理器901,具体用于在第三转发流表的表项记录的信息中获取第一 ID。
[0373]进一步的,处理器901,还用于在确定所述第一转发流表中有与所述第一 key相匹配的匹配表项的情况下,在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
[0374]具体的,若第一转发流表不是转发业务报文的最后一个转发流表,则第一处理数据中包括转发业务报文时,需要查找的下一个转发流表对应的第三ID。也就是说,第一处理数据中包括:标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID,即为第三ID。
[0375]其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
[0376]若第一转发流表是转发业务报文的最后一个转发流表,则第一处理数据包括:处理指令。
[0377]处理器901根据获取的第一处理数据的不同,对业务报文的处理动作也不同。
[0378]所述处处理器901,具体用于若获取的第一处理数据包括:所述业务报文的第三ID,则在所述匹配表项中获取所述业务报文的第三ID。确定所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段。在确定出所述第三ID标识出的查询阶段高于第一ID标识出的查询阶段的情况下,根据所述业务报文的第三ID,确定第二转发流表。根据所述第三ID标识出的查询方式,获取第二 key。根据所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项。并在确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
[0379]也就是说,处理器901在获取的第一处理数据包括:所述业务报文的第三ID时,说明需要根据第三ID进行转发业务报文,则处理器901触发根据第三ID进行转发业务报文的流程,具体的可以参考根据第一 ID转发业务报文的过程,在此不再赘述。
[0380]进一步的,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
[0381]其中,第三ID标识出的查询方式可以与第一 ID标识出的查询方式相同。由于第一 ID标识出的查询阶段与第三ID标识出的查询阶段不同,所以与第一 ID相对应的第一转发流表与第三ID相对应的第二转发流表为不同的转发流表。若第三ID标识出的查询方式与第一 ID标识出的查询方式相同,则说明第一转发流表与第二转发流表是在不同查询阶段的具有相同查询方式的转发流表。
[0382]进一步的,若ID的第一标识位标识出业务报文的查询阶段,第二标识位标识出业务报文的查询方式,则在第三ID标识出的查询方式与第一 ID标识出的查询方式相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位相同。在第三ID标识出的查询方式与第一 ID标识出的查询方式不相同的情况下,第一 ID与第三ID的第一标识位不同,第二标识位不相同。
[0383]若获取的第一处理数据包括:处理指令,则在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
[0384]也就是说,处理器901在获取的第一处理数据包括:处理指令时,第一转发流表为转发业务报文的最后一个转发流表,此时,处理器901可以根据获取的第一处理数据包括的处理指令,处理业务报文,从而完成业务报文的转发。
[0385]本发明实施例提供了一种控制器,获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项;所述新表项中记录有第一处理数据;将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。这样,控制器在建立与第一 key相匹配的匹配表项之前,需要先确定获取的第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,只有在第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,才在检测出第一转发流表中没有与第一 key相匹配的匹配项,建立与第一 key相匹配的匹配表项,并将新建立的匹配表项的相关信息发送至转发设备,从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。
[0386]本发明实施例提供了一种报文转发的系统,如图10所示,包括:转发设备1001及控制器1002。
[0387]其中,所述转发设备1001为上述实施例所述的转发设备。
[0388]所述控制器1002为上述实施例所述的控制器。
[0389]本发明实施例提供了一种报文转发的方法、装置及系统,转发设备获取业务报文的第一 ID,确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段;在确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,第一 ID标识出的所述第一转发流表的查询方式,获取第一 key,根据第一 key,查找第一转发流表,若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。若确定第一转发流表中没有与第一 key相匹配的匹配表项,则将业务报文发送至控制器,由控制器获取此业务报文相关转发信息。这样,转发设备在接收到业务报文时,可以获取此业务报文的第一 ID,从而可以确定第一 ID标识出的查询阶段是否高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段,在确定了第一 ID标识出的查询阶段高于在第一 ID标识出查询阶段之前获取的第二 ID标识出的查询阶段时,根据第一 ID,确定第一转发流表,并根据第一转发流表进行转发。从而在业务报文转发过程中,保证不同查询阶段的转发流表只被查询一次,进而在进行业务报文转发时,保障业务报文的正常转发,并且无需使用额外的机制保证查找的顺序,从而降低了转发业务报文的复杂度。并在接收到新的业务报文时,可以发送至控制器,控制器可以根据新的业务报文,在转发流表中建立相应的新表项,并将新建立的转发流表的表项的相关信息发送至转发设备,使得转发设备根据此表项中记录的信息处理此新业务报文,无需重新编写转发设备的转发流程,进一步降低了转发业务报文的复杂度,从而提高了系统的性能。
[0390]在本申请所提供的几个实施例中,应该理解到,所公开的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0391]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0392]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0393]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0394]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种报文转发的方法,其特征在于,包括: 获取业务报文的第一标识ID,其中,所述ID用于标识出所述业务报文的查询阶段及查询方式; 确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段; 若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表; 根据所述第一 ID标识出的查询方式,获取第一关键字key ; 根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一key相匹配的匹配表项; 若确定所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
2.根据权利要求1所述的方法,其特征在于,所述第一处理数据包括:所述业务报文的第三ID ;其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID ; 所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括: 在所述匹配表项中获取所述业务报文的第三ID ; 确定所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段; 若确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段,则根据所述业务报文的第三ID,确定第二转发流表; 根据所述第三ID标识出的查询方式,获取第二 key ; 根据所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二key相匹配的匹配表项; 若确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
3.根据权利要求2所述的方法,其特征在于,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
4.根据权利要求1所述的方法,其特征在于,所述第一处理数据包括:处理指令; 所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括: 在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括: 若确定所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则将所述业务报文发送至控制器,以使得所述控制器确定所述业务报文的转发流程; 接收所述控制器发送的所述第一转发流表的新表项的相关信息。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
7.一种报文转发的方法,其特征在于,包括: 获取所述业务报文的第一标识ID,其中,所述ID用于标识出所述业务报文的查询阶段及查询方式; 确定所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段; 若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表; 根据所述第一 ID标识出的所述第一转发流表的查询方式,获取第一关键字key ; 根据所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一key相匹配的匹配表项; 若确定出所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项;所述新表项中记录有第一处理数据; 将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。
8.根据权利要求7所述的方法,其特征在于,在所述第一转发流表不是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:所述业务报文的第三ID ;所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
9.根据权利要求7所述的方法,其特征在于,在所述第一转发流表是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:处理指令。·
10.根据权利要求7-9任一项所述的方法,其特征在于,在所述获取业务报文的第一标识ID之前,还包括: 接收转发设备发送的业务报文; 解析所述业务报文,获取所述业务报文的配置信息;所述配置信息中标识出转发所述业务报文的转发过程。
11.根据权利要求10所述的方法,其特征在于,所述获取业务报文的第一标识ID包括: 根据所述业务报文的配置信息,获取所述业务报文的第一标识ID。
12.根据权利要求7-10任一项所述的方法,其特征在于,所述获取业务报文的第一标识ID包括: 在第三转发流表的表项记录的信息中获取第一 ID。
13.根据权利要求7-12任一项所述的方法,其特征在于,还包括: 若确定出所述第一转发流表中有与所述第一 key相匹配的匹配表项,则在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
14.根据权利要求13所述的方法,其特征在于,所述第一处理数据包括:所述业务报文的第三ID ; 所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括: 在所述匹配表项中获取所述业务报文的第三ID ;确定所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段; 若确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段,则根据所述业务报文的第三ID,确定第二转发流表; 根据所述第三ID标识出的查询方式,获取第二 key ; 根据所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二key相匹配的匹配表项; 若查找到匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
15.根据权利要求14所述的方法,其特征在于,所述第三ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
16.根据权利要求13所述的方法,其特征在于,所述第一处理数据包括:处理指令; 所述在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文包括: 在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
17.根据权利要求7-16任一项所述的方法,其特征在于,所述第一ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
18.一种转发设备,其特征在于,包括: 获取单元,用于获取业务报文的第一标识ID,其中,所述ID用于标识出所述业务报文的查询阶段及查询方式;` 确定单元,用于确定所述获取单元获取的所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段; 所述确定单元,还用于若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表; 所述获取单元,还用于根据所述第一 ID标识出的查询方式,获取第一关键字key ;所述确定单元,还用于根据所述获取单元获取的所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项; 处理单元,用于在所述确定单元确定所述第一转发流表中有与所述第一 key相匹配的匹配表项的情况下,在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
19.根据权利要求18所述的转发设备,其特征在于,所述第一处理数据包括:所述业务报文的第三ID ;其中,所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID ; 所述处理单元,具体用于触发所述获取单元在所述匹配表项中获取所述业务报文的第三ID ; 触发所述确定单元确定所述获取单元获取的所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段; 触发所述确定单元在确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段的情况下,根据所述业务报文的第三ID,确定第二转发流表;触发所述获取单元根据所述第三ID标识出的查询方式,获取第二 key ; 触发所述确定单元根据所述获取单元获取的所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项; 并在所述确定单元确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
20.根据权利要求18所述的转发设备,其特征在于,所述第一处理数据包括:处理指令; 所述处理单元,具体用于在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
21.根据权利要求18-20任一项所述的转发设备,其特征在于,还包括:接收单元; 所述处理单元,还用于在所述确定单元确定所述第一转发流表中没有与所述第一 key相匹配的匹配表项,则将所述业务报文发送至控制器,以使得所述控制器确定所述业务报文的转发流程; 所述接收单元,用于接收所述控制器发送的所述第一转发流表的新表项的相关信息。
22.根据权利要求18-21任一项所述的转发设备,其特征在于,所述第一ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
23.一种控制器,其特征在于,包括: 获取单元,用于获取所述业务报文的第一标识ID,其中,所述ID用于标识出所述业务报文的查询阶段及查询方式; 确定单元,用于确定所述获取单元获取的所述第一 ID标识出的查询阶段是否高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段; 所述确定单元,还用于若确定出所述第一 ID标识出的查询阶段高于在所述第一 ID标识出的查询阶段之前,获取的第二 ID标识出的查询阶段,则根据所述第一 ID,确定第一转发流表; 所述获取单元,还用于根据所述第一 ID标识出的所述第一转发流表的查询方式,获取第一关键字key ; 所述确定单元,还用于根据所述获取单元获取的所述第一 key,查找第一转发流表,确定所述第一转发流表中是否有与所述第一 key相匹配的匹配表项; 处理单元,用于在所述确定单元确定出所述第一转发流表中没有与所述第一 key相匹配的匹配表项时,根据所述业务报文,在所述第一转发流表中建立与所述第一 key相匹配的新表项;所述新表项中记录有第一处理数据; 发送单元,用于将所述第一转发流表的新表项的相关信息发送至转发设备,以使得所述转发设备根据所述第一转发流表的新表项转发所述业务报文。
24.根据权利要求23所述的控制器,其特征在于,在所述第一转发流表不是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:所述业务报文的第三ID ;所述第三ID是标识第一 ID标识的查询阶段之后的,下一个查询阶段的ID。
25.根据权利要求23所述的控制器,其特征在于,在所述第一转发流表是在业务报文的转发过程中,转发所述业务报文时查找的最后一个转发流表时,所述第一处理数据包括:处理指令。
26.根据权利要求23-25任一项所述的控制器,其特征在于,还包括: 接收单元,用于接收转发设备发送的业务报文; 所述获取单元,还用于解析所述接收单元接收的所述业务报文,获取所述业务报文的配置信息;所述配置信息中标识出转发所述业务报文的转发过程。
27.根据权利要求26所述的控制器,其特征在于, 所述获取单元,具体用于根据所述业务报文的配置信息,获取所述业务报文的第一标识ID。
28.根据权利要求23-26任一项所述的控制器,其特征在于, 所述获取单元,具体用于在第三转发流表的表项记录的信息中获取第一 ID。
29.根据权利要求23-28任一项所述的控制器,其特征在于, 所述处理单元,还用于在所述确定单元确定出所述第一转发流表中有与所述第一 key相匹配的匹配表项时,在所述匹配表项中获取第一处理数据,并根据所述第一处理数据,处理所述业务报文。
30.根据权利要求29所述的控制器,其特征在于, 所述第一处理数据包括:所述业务报文的第三ID ; 所述处理单元,具体用于触发所述获取单元在所述匹配表项中获取所述业务报文的第三ID ; 触发所述确定单元确定所述获取单元获取的所述第三ID标识出的查询阶段是否高于第一 ID标识出的查询阶段; 触发所述确定单元在确定出所述第三ID标识出的查询阶段高于第一 ID标识出的查询阶段时,根据所述业务报文的第三ID,确定第二转发流表; 触发所述获取单元根据所述第三ID标识出的查询方式,获取第二 key ; 触发所述确定单元根据所述获取单元获取的所述第二 key,查找第二转发流表,确定所述第二转发流表中是否有与所述第二 key相匹配的匹配表项; 并在所述确定单元确定所述第二转发流表中有与所述第二 key相匹配的匹配表项,则在所述匹配表项中获取第二处理数据,并根据所述第二处理数据,处理所述业务报文。
31.根据权利要求29所述的控制器,其特征在于,所述第一处理数据包括:处理指令; 所述处理单元,具体用于在所述匹配表项中获取所述处理指令,并根据所述处理指令,处理所述业务报文。
32.根据权利要求23-31任一项所述的的控制器,其特征在于,所述第一ID标识出的查询方式包括:任意匹配查找,或者最长匹配查找,或者精确匹配查找,或者线性表查找。
33.一种报文转发的系统,其特征在于,包括:转方设备及控制器; 所述转发设备为权利要求18-22任一项所述的转发设备;所述控制器为权利要求23-32任一项所述的控制器。
【文档编号】H04L12/741GK103581020SQ201310493059
【公开日】2014年2月12日 申请日期:2013年10月18日 优先权日:2013年10月18日
【发明者】张智江, 李振海, 刘振肖, 高鹏, 谢颂贤, 韩冰, 谭学飞 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1