发报文处理方法、转发器、报文处理设备、报文处理系统与流程

文档序号:14924564发布日期:2018-07-13 15:42阅读:230来源:国知局

本发明涉及网络通信,具体涉及控制转发解耦架构下的报文处理方法、转发器、报文处理设备、报文处理系统。



背景技术:

在目前的电信网络中,存在着众多复杂的网络设备,如路由器、网关、交换机、防火墙和各类服务器等。这些设备分别支持各类的网络协议,从而实现网元间的互联互通。每一台设备都由内部的报文转发模块和各类协议控制模块组成。这种分布式的控制模块部署方式,使得网络的部署和管理非常复杂,为了实施某个控制参数的修改或升级,网络操作员必须对每台设备进行单独的操作。

为解决网元的部署灵活性和可管理性,业界提出了软件定义网络(Software-Defined Network,SDN)的概念。SDN通过将网元的控制逻辑和转发功能解耦,并将控制逻辑进行集中部署,使得对网络的控制和维护工作能够简单地通过对控制面设备的操作实现,从而提高网络的管理效率,并使得转发面设备更为简单化,有利于实现转发设备的高性能和可重用性。目前SDN思想正在被广泛应用到数据中心网络和电信网络中,以下将基于SDN思想的网络称为控制转发解耦架构的网络。

在控制转发解耦架构的网络中,控制器负责根据报文特征(如IP五元组、以太网帧头、VLAN ID等)确定业务流的转发动作(如转发、丢弃、修改报文头、封装、解封装等),并通过将对应的流规则(包括流匹配信息(如IP五元组、以太网帧头等)和对应执行的动作)下发给转发器,转发器获取并存储该流规则,对于后续符合该流规则的报文执行对应的动作,从而实现报文的转发。

在现有技术中,每个无法匹配流表中所存储任一流规则的报文都会触发一个报文上报消息。因此,在转发器接收到流规则安装消息并成功安装流规则之前,即使同一个流的报文也会导致多个报文上报消息。

例如,在某些大数据量报文传输场景中,如用户报文突发传输、或大量用户同时切换到新的转发器等,转发器可能同时收到大量的属于同一个流的用户报文,从而导致大量并发的报文上报消息。这些报文上报消息不仅消耗了转发器和控制器的计算资源,而且会占用信令传输资源,如导致流规则安装消息传输失败,进而会导致更多的报文上报消息,使得整个系统的控制接口处于过载状态。



技术实现要素:

技术问题

有鉴于此,本发明要解决的技术问题是如何有效减少控制转发解耦架构中的报文上报消息。

解决方案

为了解决上述技术问题,根据本发明的一实施例,提供了可应用于包括转发器和控制器的控制转发解耦架构的一种报文处理方法,其包括:所述转发器获取报文上报控制信息,其中所述报文上报控制信息包括上报控制指示和控制阈值;以及,所述转发器根据所述上报控制指示,在控制参数达到或超过所述控制阈值的情况下,停止向所述控制器发送与一个流相关的报文上报消息。

对于上述报文处理方法,在一种可能的实现方式中,所述控制阈值为最大上报频率,所述控制参数用于统计与该流相关的报文上报消息发送的频率;或者,所述控制阈值为最大上报时长,所述控制参数用于统计与该流相关的报文上报消息发送的持续时间;或者,所述控制阈值为最大上报次数,所述控制参数用于统计与该流相关的报文上报消息发送的次数。

对于上述报文处理方法,在一种可能的实现方式中,所述转发器通过以下方式中的一种或多种来获取所述报文上报控制信息:所述转发器读取本地配置信息,其中所述本地配置信息包含所述报文上报控制信息;所述转发器接收来自所述控制器的配置消息,其中所述配置消息携带有所述报文上报控制信息;以及,所述转发器接收来自所述控制器的流规则安装消息,其中所述流规则安装消息携带有所述报文上报控制信息。

对于上述报文处理方法,在一种可能的实现方式中,还包括:在停止发送与该流相关的报文上报消息之后,所述转发器将该流的未上报报文缓存到与该流的已上报报文的缓存区相关联或具有相同标识的缓存区,其中所述未上报报文是指未发送相应报文上报消息的报文,所述已上报报文是指已发送相应报文上报消息的报文;以及,所述转发器接收所述控制器发送的流规则安装消息,对所缓存的所述已上报报文和所述未上报报文执行所述流规则安装消息定义的处理动作。

对于上述报文处理方法,在一种可能的实现方式中,还包括:在停止发送与该流相关的报文上报消息之后,所述转发器将该流的未上报报文丢弃,其中所述未上报报文是指未发送相应报文上报消息的报文。

对于上述报文处理方法,在一种可能的实现方式中,所述报文上报控制信息还包括报告阈值;所述报文处理方法还包括,在该流的未上报报文的数量达到所述报告阈值的情况下,所述转发器向所述控制器发送未上报报文报告消息,其中,所述未上报报文是指未发送相应报文上报消息的报文,所述未上报报文报告消息包括流匹配信息和报文统计信息。

对于上述报文处理方法,在一种可能的实现方式中,所述报文上报控制信息还包括报告指示;所述报文处理方法还包括,在所述控制参数达到所述控制阈值的情况下,所述转发器向所述控制器发送暂停上报报告消息,其中,所述暂停上报报告消息包括流匹配信息和暂停上报原因。

为了解决上述技术问题,根据本发明另一实施例,提供了一种转发器,其包括:上报控制信息获取单元,用于获取报文上报控制信息,其中所述报文上报控制信息包括上报控制指示和控制阈值;以及,上报控制单元,与所述上报控制信息获取单元连接,用于根据所述上报控制指示,在控制参数达到或超过所述控制阈值的情况下,使所述转发器停止向与所述转发器一起实现控制转发解耦的控制器发送与一个流相关的报文上报消息。

对于上述转发器,在一种可能的实现方式中,所述控制阈值包括最大上报频率、最大上报时长、最大上报次数中的一种或多种,其中:所述最大上报频率表示允许所述转发器针对一个流发送报文上报消息的最大频率,并且在用于统计与一个流相关的报文上报消息发送的频率达到或超过所述最大上报频率时,所述上报控制单元使所述转发器停止发送与该流相关的报文上报消息;所述最大上报时长表示允许所述转发器针对一个流发送报文上报消息的最大时长,并且在用于统计与一个流相关的报文上报消息发送的持续时间达到或超过所述最大上报时长时,所述上报控制单元使所述转发器停止发送与该流相关的报文上报消息;以及所述最大上报次数表示允许所述转发器针对一个流发送报文上报消息的最高次数,并且在用于统计与一个流相关的报文上报消息发送的次数达到或超过所述最大上报次数时,所述上报控制单元使所述转发器停止发送与该流相关的报文上报消息。

对于上述转发器,在一种可能的实现方式中,所述上报控制信息获取单元通过以下方式中的一种或多种来获取所述报文上报控制信息:读取所述转发器的本地配置信息,其中所述本地配置信息包含所述报文上报控制信息;接收来自所述控制器的配置消息,其中所述配置消息携带有所述报文上报控制信息;以及,接收来自所述控制器的流规则安装消息,其中所述流规则安装消息携带有所述报文上报控制信息。

对于上述转发器,在一种可能的实现方式中,还包括:未上报报文缓存单元,与所述上报控制单元连接,用于在所述上报控制单元使所述转发器停止发送与该流相关的报文上报消息之后,将该流的未上报报文缓存到与该流的已上报报文的缓存区相关联或具有相同标识的缓存区,其中所述未上报报文是指未发送相应报文上报消息的报文,所述已上报报文是指已发送相应报文上报消息的报文。

对于上述转发器,在一种可能的实现方式中,所述报文上报控制信息还包括报告阈值;所述转发器还包括未上报报文报告单元,所述未上报报文报告单元用于在该流的未上报报文的数量达到所述报告阈值的情况下,使所述转发器向所述控制器发送未上报报文报告消息,其中所述未上报报文是指未发送相应报文上报消息的报文,所述未上报报文报告消息包括流匹配信息和报文统计信息。

对于上述转发器,在一种可能的实现方式中,所述报文上报控制信息还包括报告指示,所述转发器还包括暂停上报报告单元;所述暂停上报报告单元用于在所述控制参数达到所述控制阈值的情况下,使所述转发器向所述控制器发送暂停上报报告消息,其中所述暂停上报报告消息包括流匹配信息和暂停上报原因。

为了解决上述技术问题,根据本发明的又一实施例,提供了一种报文处理设备,其包括通过总线连接的通信接口、处理器以及计算机可读介质,所述计算机可读介质用于存储程序代码;以及所述处理器用于通过执行所述程序代码来执行上述报文处理方法。

为了解决上述技术问题,根据本发明的又一实施例,提供了一种报文处理设备,其包括:接收器,用于接收用户报文;发送器,用于向与所述报文处理设备一起实现控制转发解耦的控制器发送报文上报消息;以及处理器,用于获取报文上报控制信息,其中所述报文上报控制信息包括上报控制指示和控制阈值,所述处理器还用于根据所述上报控制指示,在控制参数达到或超过所述控制阈值的情况下,使所述发送器停止发送与一个流相关的报文上报消息。

对于上述报文处理设备,在一种可能的实现方式中,所述控制阈值为最大上报频率,所述控制参数用于统计与该流相关的报文上报消息发送的频率;或者,所述控制阈值为最大上报时长,所述控制参数用于统计与该流相关的报文上报消息发送的持续时间;或者,所述控制阈值为最大上报次数,所述控制参数用于统计与该流相关的报文上报消息发送的次数。

对于上述报文处理设备,在一种可能的实现方式中,所述处理器通过以下方式中的一种或多种来获取所述报文上报控制信息:读取所述报文处理设备的本地配置信息,其中所述本地配置信息包含所述报文上报控制信息;接收来自所述控制器的配置消息,其中所述配置消息携带有所述报文上报控制信息;以及,接收来自所述控制器的流规则安装消息,其中所述流规则安装消息携带有所述报文上报控制信息。

对于上述报文处理设备,在一种可能的实现方式中,所述报文上报控制信息还包括报告指示,所述处理器还用于在所述控制参数达到所述控制阈值的情况下,使所述发送器向所述控制器发送暂停上报报告消息,其中所述暂停上报报告消息包括流匹配信息和暂停上报原因。

对于上述报文处理设备,在一种可能的实现方式中,所述报文上报控制信息还包括报告阈值,所述处理器还用于在该流的未上报报文的数量达到所述报告阈值的情况下,使所述发送器向所述控制器发送未上报报文报告消息,其中所述未上报报文是指未发送相应报文上报消息的报文,所述未上报报文报告消息包括流匹配信息和报文统计信息。

对于上述报文处理设备,在一种可能的实现方式中,所述处理器还用于在使所述发送器停止发送与该流相关的报文上报消息之后,将该流的未上报报文缓存到与该流的已上报报文的缓存区相关联或具有相同标识的缓存区,其中所述未上报报文是指未发送相应报文上报消息的报文,所述已上报报文是指已发送相应报文上报消息的报文。

为了解决上述技术问题,根据本发明的再一实施例,提供了一种报文处理系统,其包括:上述任一转发器;以及,与所述转发器一起实现控制转发解耦的控制器。

为了解决上述技术问题,根据本发明的再一实施例,提供了一种报文处理系统,其包括:上述任一报文处理设备;以及,与所述报文处理设备一起实现控制转发解耦的控制器。

有益效果

通过根据报文上报控制信息对属于同一个流的报文上报消息发送进行控制,根据本发明上述实施例的报文处理方法、转发器、报文处理设备、报文处理系统能够有效减少不必要的报文上报,从而可有效提高流规则请求的效率、降低控制转发接口的负荷、减少控制器和转发器的资源占用、并提高系统运行的稳定性。

根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。

图1示出现有技术中基于OF协议的报文处理方法的时序示意图;

图2示出根据本发明一实施例的控制转发解耦架构中的报文处理方法的时序示意图;

图3示出根据本发明另一实施例的控制转发解耦架构中的报文处理方法的时序示意图;

图4示出根据本发明又一实施例的控制转发解耦架构中的报文处理方法的时序示意图;

图5示出根据本发明又一实施例的控制转发解耦架构中的报文处理方法的时序示意图;

图6示出根据本发明又一实施例的控制转发解耦架构中的报文处理方法的时序示意图;

图7示出根据本发明一实施例的转发器的示意结构框图;

图8示出根据本发明一实施例的报文处理设备的结构框图;以及

图9示出根据本发明另一实施例的报文处理设备的结构框图。

具体实施方式

以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。

如背景技术部分所述,对于控制转发解耦架构的网络系统,在现有技术中,每个无法匹配流表中所存储流规则的用户报文都会触发一个报文上报消息,这使得整个系统的控制接口在某些场景下容易处于过载状态,并将以OpenFlow(开放流,以下简称为OF)协议为例详细解释如下。

OF是SDN网络中的最典型和应用最多的协议。OF协议中的网元包括OF控制器(OpenFlow controller)和OF转发器(OpenFlowSwitch)。其中,OF控制器负责根据报文特征(如IP五元组、以太网帧头、VLAN ID等)确定业务流的转发动作(如转发、丢弃、修改报文头、封装、解封装等),并通过将对应的流规则(包括流匹配信息(如IP五元组、以太网帧头等)和对应执行的动作)下发给OF转发器。OF转发器获取并存储该流规则,对于后续符合该流规则的报文执行对应的动作,从而实现报文的转发。

图1示出现有技术中基于OF协议的报文处理方法的时序示意图。如图1所示,基于OF协议进行用户报文转发控制的基本流程包括:

1、当OF转发器收到用户报文(packet data)时,判断流表中是否有该报文可匹配的流规则(flow entry)。

其中,可以根据报文的以太网帧头、IP头信息或者TCP/UDP端口号中任意信息的组合,来进行匹配判断。

2、若流表中没有该报文可匹配的流规则时,OF转发器将该报文存储到本地,并获得对应的缓存区ID,OF转发器将缓存区ID、报文以及请求原因(OFPR_NO_MATCH表示“无匹配流表”)通过报文上报消息、例如Packet_in(buffer_id,OFPR_NO_MATCH)上报给OF控制器。

3、OF控制器根据报文特征决定对该报文应该执行的动作,如转发到指定端口、丢弃、修改、封装、解封装等。OF控制器基于所决定的应该执行的动作生成流规则,并将生成的流规则及bufferid通过流规则消息、例如Flow_mod(buffer_id,flow entry)发送给OF转发器。

其中,流规则包括该流对应的匹配项信息,如以太网帧头、IP头信息或者TCP/UDP端口号中任意信息的组合。

4、OF转发器将该流规则存储(安装)到流表,并从buffer id对应的缓存区中获取触发请求的报文,对该报文执行流规则中包含的动作。

根据上述的报文转发控制流程,在OF转发器接收到流规则安装消息Flow_mod并成功安装流规则之前,即使同一个流的报文也会导致多个Packet_in。这不仅消耗了OF转发器和OF控制器的计算资源,而且会占用信令传输资源,使得整个系统的控制接口处于过载状态。

为了有效减少控制转发解耦架构中的报文上报,根据本发明的一个方面,提出了一种报文处理方法。该报文处理方法包括:转发器获取至少包括上报控制指示和控制阈值的报文上报控制信息;以及,转发器根据上报控制指示,在控制参数达到或超过控制阈值的情况下,转发器向控制器停止发送与一个流相关的报文上报消息。

其中,控制阈值可包括最大上报频率、最大上报时长、最大上报次数中的一种或多种,其中:最大上报频率表示允许转发器针对一个流发送报文上报消息的最大频率,并且在控制阈值包括最大上报频率时,控制参数用于统计与一个流相关的报文上报消息发送的频率;最大上报时长表示允许转发器针对一个流发送报文上报消息的最大时长,并且在控制阈值包括最大上报时长时,控制参数用于统计与一个流相关的报文上报消息发送的持续时间;以及最大上报次数表示允许转发器针对一个流发送报文上报消息的最高次数,并且在控制阈值包括最大上报次数时,控制参数用于统计与一个流相关的报文上报消息发送的次数。

此外,转发器可通过以下方式中的一种或多种来获取报文上报控制信息:转发器读取包含报文上报控制信息的本地配置信息,转发器从控制器接收携带有报文上报控制信息的配置消息,以及转发器从控制器接收携带有报文上报控制信息的流规则安装消息。

这样,通过根据报文上报控制信息对属于同一个流的报文上报消息发送进行控制,上述报文处理方法能够有效避免由于例如突发报文导致的大量报文上报消息的产生,从而可有效降低控制转发接口的负荷、减少控制器和转发器的资源占用、并提高系统运行的稳定性。

对于上述报文处理方法,在一种可能的实施方式中,在停止发送与该流相关的报文上报消息之后,转发器可将该流的未上报报文缓存到与该流的已上报报文的缓存区相关联或具有相同标识的缓存区。其中,未上报报文是指未发送相应报文上报消息的报文,已上报报文是指已发送相应报文上报消息的报文。这样,当转发器接收到控制器发送的流规则安装消息时,可对所缓存的属于这个流的已上报报文和未上报报文执行流规则安装消息定义的处理动作,例如转发、丢弃、修改、封装、解封装等。

在另一种可能的实施方式中,转发器可在停止发送与该流相关的报文上报消息之后将该流的未上报报文丢弃。在这种情况下,转发器在获取流规则后仅需要对缓存的已上报报文执行处理动作。与缓存未上报报文的实施方式相比,尽管这种实施方式可能导致业务流重传,但其可以适当降低转发器的缓存压力。

在一种可能的实现方式中,报文上报控制信息还可包括报告指示。在这种情况下,上述报文处理方法还可包括:在上述控制参数达到控制阈值的情况下,转发器向控制器发送暂停上报报告消息。其中,暂停上报报告消息可以包括流匹配信息、暂停上报原因、报文统计信息的一种或多种。

在一种可能的实现方式中,报文上报控制信息还可包括报告阈值。在这种情况下,上述报文处理方法还可包括:在该流的未上报报文的数量达到报告阈值的情况下,转发器可向控制器发送未上报报文报告消息。其中,未上报报文报告消息可以包括流匹配信息、报文统计信息以及发送报告的原因的一种或多种。

实施例1

图2示出根据本发明一实施例的控制转发解耦架构中的报文处理方法的时序示意图。

本实施例以OpenFlow协议为例,OF转发器通过从OF控制器接收配置消息来获取报文上报控制信息,并将属于同一个流的未上报报文缓存到与该流的已上报报文的缓存区具有相同ID的缓存区中。其中,未上报报文是指未发送相应报文上报消息的报文,已上报报文是指已发送相应报文上报消息的报文。如图2所示,该报文处理方法的基本流程包括:

1、在OF转发器与OF控制器建立连接时,OF控制器通过配置消息将报文上报控制信息发送给OF转发器、例如Set_config(报文上报控制信息)。

其中,报文上报控制信息可以包括上报控制指示和控制阈值等信息。在一种可能的实现方式中,可设定最大上报频率1次/秒作为控制阈值。

2、当用户报文到达OF转发器后,OF转发器将报文与流表进行匹配,若未找到能够匹配的流规则,则将报文缓存到缓存区中,并发送报文上报消息Packet_in到OF控制器以获取对应的流规则。

其中,Packet_in消息中可携带该报文全部或部分内容和/或对应的缓存区buffer_id,还可携带上报原因NO_MATCH,例如Packet_in(packet,buffer_id,reason=NO_MATCH)。

3、对于与该报文属于相同流的后续报文,在报文上报控制信息中的上报控制指示为真(表示要对向OF控制器发送报文上报消息进行控制)的情况下,OF转发器根据报文上报控制信息中的控制阈值来控制Packet_in的发送。

在一种可能的实现方式中,当用于统计与该流相关的Packet_in发送的例如频率、持续时间、和/或次数等的控制参数达到或超过控制阈值时,OF转发器停止发送与该流相关的Packet_in,并将属于该流的未上报报文都缓存到buffer_id对应的缓存区内。例如,可设定最大上报频率1次/秒作为控制阈值,即每秒钟只允许发送一次Packet_in。在这种情况下,控制参数需统计与该流相关的Packet_in发送的频率。

4、OF控制器根据接收到的Packet_in消息制定该报文对应的流规则,并通过Flow_mod消息将该报文对应的buffer_id和流规则flowentry下发给OF转发器。

5、OF转发器将OF控制器下发的流规则安装到流表中,并从buffer_id对应的缓存区中取得所存储的所有报文,对这些报文执行流规则对应的处理动作,如转发、丢弃、修改、封装、解封装等。

尽管以设定最大上报频率作为控制阈值进行了如上说明,本领域技术人员应能理解,控制阈值的具体设定应不限于此,而完全可以采用例如最大上报次数或最大上报时长等的其它参数,甚至还可以采用这些参数的任意组合,只要所采用的参数或者参数组合能够抑制报文上报消息的发送即可。

通过根据报文上报控制信息对属于同一个流的报文上报消息发送进行控制,根据本发明上述实施例的报文处理方法能够有效减少不必要的报文上报、并提高流规则请求的效率。

此外,对于本实施例以及以下任一实施例,在一种可能的实现方式中,也可以直接丢弃未上报报文,以降低缓存压力。在这种情况下,OF转发器在获取流规则后仅需要对已上报并缓存的报文执行处理动作。

实施例2

图3示出根据本发明另一实施例的控制转发解耦架构中的报文处理方法的时序示意图。

本实施例以OpenFlow协议为例,OF转发器通过读取本地配置信息获取报文上报控制信息,并将属于同一个流的未上报报文缓存到与该流的已上报报文的缓存区关联的缓存区中。如图3所示,该报文处理方法的基本流程包括:

1、OF转发器在向OF控制器执行报文上报前,从本地配置信息中获取报文上报控制信息。

其中,报文上报控制信息可以包括上报控制指示和控制阈值等信息。在一种可能的实现方式中,可设置最大上报时长3秒作为控制阈值。

2、当用户报文到达OF转发器后,OF转发器将报文与流表进行匹配,若未找到能够匹配的流规则,则将报文缓存到缓存区中,并发送报文上报消息Packet_in到OF控制器以获取对应的流规则。

其中,Packet_in消息中可携带该报文全部或部分内容和/或对应的缓存区buffer_id,还可携带上报原因NO_MATCH,例如Packet_in(packet,buffer_id,reason=NO_MATCH)。

3、对于与该报文属于相同流的后续报文,在报文上报控制信息中的上报控制指示为真(表示要对向OF控制器发送报文上报消息进行控制)的情况下,OF转发器根据报文上报控制信息中的控制阈值来控制报文上报消息的发送。

在一种可能的实现方式中,当用于统计与该流相关的Packet_in发送的频率、持续时间、和/或次数等的控制参数达到或超过控制阈值时,OF转发器停止发送与该流相关的Packet_in,将属于该流的未上报报文都缓存到缓存区内,并将这些缓存区与该流的已上报报文的缓存区进行关联。例如,可设定最大上报时长3秒作为控制阈值,即只允许在最开始的3秒钟内正常发送Packet_in消息。在这种情况下,控制参数需统计与该流相关的Packet_in发送的持续时间。

其中,可以通过包括但不限于以下任一方式来实现缓存区的关联,例如:将该流的未上报报文的缓存区ID与该流的已上报报文的缓存区ID记录到同一个链表、将该流的未上报报文的缓存区ID与该流的已上报报文的缓存区ID记录到同一个数组、或者将该流的未上报报文的缓存区以及该流的已上报报文的缓存区与相同的流标识进行绑定等。

4、OF控制器根据接收到的Packet_in消息制定该报文对应的流规则,并通过Flow_mod消息将该报文对应的buffer_id和流规则flowentry下发给OF转发器。

5、OF转发器将OF控制器下发的流规则安装到流表中,并从buffer_id及其关联的缓存区中取得所存储的所有报文,对这些报文执行流规则对应的处理动作,如转发、丢弃、修改、封装、解封装等等。

实施例3

图4示出根据本发明又一实施例的控制转发解耦架构中的报文处理方法的时序示意图。

本实施例以OpenFlow协议为例,OF转发器通过读取本地配置信息以及从OF控制器接收配置消息来获取报文上报控制信息,并将属于同一个流的未上报报文缓存到与该流的已上报报文的缓存区具有相同ID的缓存区中。如图4所示,该报文处理方法的基本流程包括:

1、OF转发器在启动时从本地配置信息中获取第一报文上报控制信息。

其中,第一报文上报控制信息可以包括上报控制指示、第一控制阈值等信息。

2、在OF转发器与OF控制器建立连接时,OF控制器通过配置消息将第二报文上报控制信息发送给OF转发器、例如Set_config(报文上报控制信息)。

其中,第二报文上报控制信息可以包括上报控制指示、第二控制阈值等信息中的一种或多种。

然后,OF转发器结合第一报文上报控制信息与第二报文上报控制信息,可具体为结合第一控制阈值与第二控制阈值,以确定需要执行的控制阈值。其中,在第一控制阈值与第二控制阈值存在冲突的情况下,OF转发器需要根据本地策略确定两者的优先级,并采用优先级较高者作为控制阈值。

例如,假设第一控制阈值包括最大上报频率5次/秒、最大上报次数10次,第二控制阈值包括最大上报频率3次/秒、最大上报次数5次。通过进行比较,OF控制器可认为第二控制阈值的优先级更高,并据此将需要执行的控制阈值设定为最大上报频率3次/秒、最大上报次数5次。

3、当用户报文到达OF转发器后,OF转发器将报文与流表进行匹配,若未找到能够匹配的流规则,则将报文缓存到缓存区中,并发送报文上报消息Packet_in到OF控制器以获取对应的流规则。

其中,Packet_in消息中可携带该报文全部或部分内容和/或对应的缓存区buffer_id,还可携带上报原因NO_MATCH,例如Packet_in(packet,buffer_id,reason=NO_MATCH)。

4、对于与该报文属于相同流的后续报文,在报文上报控制信息中的上报控制指示为真(表示要对向OF控制器发送报文上报消息进行控制)的情况下,OF转发器根据报文上报控制信息中的控制阈值来控制Packet_in的发送。

在一种可能的实现方式中,当用于统计与该流相关的Packet_in发送的频率、持续时间、和/或次数等的控制参数达到或超过上述控制阈值时,OF转发器停止发送与该流相关的Packet_in,并将属于该流的未上报报文都缓存到与该流的已上报报文的缓存区具有相同ID的缓存区、即buffer_id对应的缓存区内。例如,可设定最大上报频率3次/秒、最大上报次数5次作为控制阈值,即每秒钟只允许发送一次Packet_in、并且只允许发送前5个Packet_in。在这种情况下,控制参数需统计与该流相关的Packet_in发送的频率和次数。

5、OF控制器根据接收到的Packet_in消息制定该报文对应的流规则,并通过Flow_mod消息将该报文对应的buffer_id和流规则flowentry下发给OF转发器。

6、OF转发器将OF控制器下发的流规则安装到流表中,并从buffer_id对应的缓存区中取得所存储的所有报文,对这些报文执行流规则对应的处理动作,如转发、丢弃、修改、封装、解封装等。

实施例4

图5示出根据本发明又一实施例的控制转发解耦架构中的报文处理方法的时序示意图。

本实施例以OpenFlow协议为例,OF转发器通过从OF控制器接收流规则安装消息来获取报文上报控制信息,并将属于一个流的未上报报文的统计信息通过未上报报文报告消息上报给OF控制器。如图5所示,该报文处理方法的基本流程包括:

1、OF控制器通过流规则安装消息将包含报文上报控制信息的流规则发送给OF转发器、例如Flow_mod(flow entry,action:SET_TO_CONTROLLER,报文上报控制信息)。

该Flow_mod消息可能是由于其它报文上报消息引起的,也可以是OF控制器主动发起的,本发明不做限定。

此外,Flow_mod消息可以包括流匹配信息、对应的处理动作(所述处理动作可包括执行向OF控制器上报)以及报文上报控制信息。其中,报文上报控制信息可以包括上报控制指示、控制阈值、报告阈值等信息。在一种可能的实现方式中,可设置最大上报频率5次/秒作为控制阈值。

2、当用户报文到达OF转发器后,OF转发器将报文与流表进行匹配,若报文可以匹配到该流规则,则执行对应的处理动作。所述处理动作包括将报文上报给OF控制器,因此OF转发器发送报文上报消息Packet_in到OF控制器。

其中,Packet_in消息中可携带该报文全部或部分内容,可选地包括缓存区buffer_id以及上报原因,例如Packet_in(packet,buffer_id,reason=NO_MATCH)。

此外,在一种可能的实现方式中,所述处理动作还可包括其它的动作,例如转发、丢弃、修改、封装、解封装等。

3、对于属于该流的后续报文,在报文上报控制信息中的上报控制指示为真(表示要对向OF控制器发送报文上报消息进行控制)的情况下,OF转发器根据报文上报控制信息中的控制阈值来控制Packet_in的发送。

在一种可能的实现方式中,当用于统计与该流相关的Packet_in发送的频率、持续时间、和/或次数等的控制参数达到或超过控制阈值时,OF转发器停止发送与该流相关的Packet_in。例如,可设定最大上报频率5次/秒作为控制阈值,即每秒钟只允许发送5次Packet_in。在这种情况下,控制参数需统计与该流相关的Packet_in发送的次数。

4、可选地,当该流的未上报报文的数量达到报告阈值时,OF转发器向OF控制器发送未上报报文报告消息Packet_report、例如Packet_report(flow,packet statistics,reason)。

其中,Packet_report消息可包括流匹配信息(如IP五元组、以太网帧头等)、报文统计信息(如报文个数、报文大小、报文占用带宽等),还可包括发送报告的原因等。

尽管以从OF控制器下发的流规则安装消息中获得全部的报文上报控制信息为例进行了如上说明,本领域技术人员应能理解,最终执行的控制阈值可部分或全部从本地配置信息、OF控制器下发的配置消息、或OF控制器下发的流规则安装消息中获得,本发明对此不做限定。

实施例5

图6示出根据本发明又一实施例的控制转发解耦架构中的报文处理方法的时序示意图。

在本实施例中,控制转发解耦架构包括控制转发解耦的网关控制器(GW控制器)和网关转发器(GW转发器)。GW转发器通过从GW控制器接收流规则安装消息来获取报文上报控制信息。GW转发器根据报文上报控制信息执行报文上报消息的发送控制,并向GW控制器发送暂停上报报告消息。如图6所示,该报文处理方法的基本流程包括:

1、GW控制器通过流规则安装消息将包含报文上报控制信息的流规则发送给GW转发器、例如Flow_installation(flow entry,报文上报控制信息)。

该Flow_mod消息可以包括流匹配信息、对应的处理动作(所述处理动作可包括执行向OF控制器上报)以及报文上报控制信息。其中,报文上报控制信息可以包括上报控制指示、控制阈值、报告指示等信息。在一种可能的实现方式中,可设置最大上报次数5次作为控制阈值。

2、当用户报文到达GW转发器后,GW转发器将报文与流表进行匹配,并根据匹配的流规则发送报文上报消息Packet_report到GW控制器。

其中,Packet_report消息中可携带该报文全部或部分内容,例如Packet_report(packet)。

在一种可能的实现方式中,GW控制器对报文执行其它的处理动作,例如转发、丢弃、封装、解封装等。

3、对于属于该流的后续报文,在报文上报控制信息中的上报控制指示为真(表示要对向GW控制器发送报文上报消息进行控制)的情况下,GW转发器根据报文上报控制信息中的控制阈值来控制Packet_report的发送。

在一种可能的实现方式中,当用于统计与该流相关的Packet_report发送的频率、持续时间、和/或次数等的控制参数达到或超过该控制阈值时,GW转发器停止发送与该流相关的Packet_report。例如,可设定最大上报次数5次作为控制阈值,即只允许发送前5个Packet_report。在这种情况下,控制参数需统计与该流相关的Packet_report发送的次数。

4、在一种可能的实现方式中,在报文上报控制信息中的报告指示为真(表示要向GW控制器报告暂停发送报文上报消息这一事件)的情况下,当上述控制参数达到控制阈值时,GW转发器向GW控制器发送暂停上报报告消息Packet_report_paused。

其中,Packet_report_paused消息可包括流匹配信息(如IP五元组、以太网帧头等)、暂停上报的原因等,还可包括报文统计信息(如报文个数、报文大小、报文占用带宽等),例如Packet_report_paused(flow,packet statistics,reason)。

尽管以从GW控制器下发的流规则安装消息中获得全部的报文上报控制信息为例进行了如上说明,本领域技术人员应能理解,最终执行的控制阈值可部分或全部从本地的配置信息、GW控制器下发的配置消息、或GW控制器下发的流规则安装消息中获得,本发明对此不做限定。

实施例6

图7示出根据本发明一实施例的转发器的示意结构框图。如图7所示,转发器700可应用于还包括与转发器700一起实现控制转发解耦的控制器600的控制转发解耦架构,可包括上报控制信息获取单元710、上报控制单元720。

上报控制信息获取单元710用于获取报文上报控制信息,该报文上报控制信息可包括上报控制指示和控制阈值等信息。上报控制单元720与上报控制信息获取单元710连接,用于根据上报控制指示,在控制参数达到或超过控制阈值的情况下,使转发器700停止向控制器600发送与这个流相关的报文上报消息。

其中,控制阈值可包括最大上报频率、最大上报时长、最大上报次数中的一种或多种,其中:最大上报频率表示允许转发器700针对一个流发送报文上报消息的最大频率,并且在控制阈值包括最大上报频率时,控制参数用于统计与一个流相关的报文上报消息发送的频率;最大上报时长表示允许转发器针对一个流发送报文上报消息的最大时长,并且在控制阈值包括最大上报时长时,控制参数用于统计与一个流相关的报文上报消息发送的持续时间;以及最大上报次数表示允许转发器针对一个流发送报文上报消息的最高次数,并且在控制阈值包括最大上报次数时,控制参数用于统计与一个流相关的报文上报消息发送的次数。

通过根据报文上报控制信息对属于同一个流的报文上报消息发送进行控制,根据本发明上述实施例的转发器能够有效减少不必要的报文上报、并提高流规则请求的效率。

此外,上报控制信息获取单元710可通过以下方式中的一种或多种来获取报文上报控制信息:读取转发器700的本地配置信息,该本地配置信息包含报文上报控制信息;接收来自控制器600的配置消息,该配置消息携带有报文上报控制信息;以及接收来自控制器600的流规则安装消息,该流规则安装消息携带有报文上报控制信息。

在一种可能的实现方式中,如图7所示,转发器700还可包括未上报报文缓存单元730。未上报报文缓存单元730与上报控制单元720连接,用于在上报控制单元720使转发器700停止发送与该流相关的报文上报消息之后,将该流的未上报报文缓存到与该流的已上报报文的缓存区相关联或具有相同标识的缓存区。其中,未上报报文是指未发送相应报文上报消息的报文,已上报报文是指已发送相应报文上报消息的报文。在这种实现方式下,转发器700接收到控制器600发送的流规则安装消息之后,可以对所缓存的属于这个流的已上报报文和未上报报文执行该流规则安装消息定义的处理动作。

此外,在一种可能的实现方式中,如图7所示,转发器700还可包括未上报报文报告单元740。在这种实现方式下,报文上报控制信息还可包括报告阈值,以使得在该流的未上报报文的数量达到报告阈值的情况下,未上报报文报告单元740可以使转发器700向控制器600发送未上报报文报告消息。其中,该未上报报文报告消息可包括流匹配信息和报文统计信息,还可包括发送报告的原因。

此外,在一种可能的实现方式中,如图7所示,转发器700还可包括暂停上报报告单元750。在这种实现方式下,报文上报控制信息还可包括报告指示,以使得在上述控制参数达到控制阈值的情况下,暂停上报报告单元750可以使转发器700向控制器600发送暂停上报报告消息。其中,该暂停上报报告消息可包括流匹配信息、暂停上报的原因,还可包括报文统计信息。

实施例7

图8示出根据本发明一实施例的一种报文处理设备的结构框图。所述报文处理设备800可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。

所述报文处理设备800包括处理器(processor)810、通信接口(Communications Interface)820、存储器(memory array)830和总线840。其中,处理器810、通信接口820、以及存储器830通过总线840完成相互间的通信。

通信接口820用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。

处理器810用于执行程序。处理器810可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器830用于存放程序和/或数据。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器830也可以是存储器阵列。存储器830还可能被分块,并且所述块可按一定的规则组合成虚拟卷。

在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:使控制转发解耦架构中的转发器获取报文上报控制信息,其中报文上报控制信息包括上报控制指示和控制阈值;以及使转发器根据上报控制指示,在用于统计与一个流相关的报文上报消息发送的例如频率、持续时间、和/或次数等的控制参数达到或超过所述控制阈值的情况下,使转发器停止向控制器发送与这个流相关的报文上报消息。

实施例8

图9示出根据本发明另一实施例的一种报文处理设备的结构框图。所述报文处理设备900可以是控制转发解耦架构中的转发器。

如图9所示,报文处理设备900可包括接收器910、处理器920以及发送器930,其中:接收器910用于接收用户报文;发送器930用于向与报文处理设备900一起实现控制转发解耦的控制器600发送报文上报消息;以及处理器920用于获取报文上报控制信息,其中该报文上报控制信息可包括上报控制指示和控制阈值。此外,处理器920还用于根据上报控制指示,在控制参数达到或超过控制阈值的情况下,使发送器930停止向控制器600发送与该流相关的报文上报消息。

在一种可能的实现方式中,控制阈值可包括最大上报频率、最大上报时长、最大上报次数中的一种或多种,其中:最大上报频率表示允许发送器930针对一个流发送报文上报消息的最大频率,并且在控制阈值包括最大上报频率时,控制参数用于统计与一个流相关的报文上报消息发送的频率;最大上报时长表示允许发送器930针对一个流发送报文上报消息的最大时长,并且在控制阈值包括最大上报时长时,控制参数用于统计与一个流相关的报文上报消息发送的持续时间;以及,最大上报次数表示允许发送器930针对一个流发送报文上报消息的最高次数,并且在控制阈值包括最大上报次数时,控制参数用于统计与一个流相关的报文上报消息发送的次数。

通过根据报文上报控制信息对属于同一个流的报文上报消息发送进行控制,根据本发明上述实施例的转发器能够有效减少不必要的报文上报、并提高流规则请求的效率。

此外,处理器920可通过以下方式中的一种或多种来获取报文上报控制信息:读取报文处理设备900的本地配置信息,其中所述本地配置信息包含所述报文上报控制信息;接收来自控制器600的配置消息,其中所述配置消息携带有所述报文上报控制信息;以及,接收来自控制器600的流规则安装消息,其中所述流规则安装消息携带有所述报文上报控制信息。

在一种可能的实现方式中,所述报文上报控制信息还可包括报告指示。在这种情况下,处理器920还可用于在所述控制参数达到所述控制阈值时,使发送器930向控制器600发送暂停上报报告消息,其中所述暂停上报报告消息可包括流匹配信息和暂停上报原因。

在一种可能的实现方式中,所述报文上报控制信息还可包括报告阈值。在这种情况下,处理器920还可用于在该流的未上报报文的数量达到所述报告阈值时,使发送器930向控制器600发送未上报报文报告消息,其中所述未上报报文是指未发送相应报文上报消息的报文,所述未上报报文报告消息包括流匹配信息和报文统计信息。

此外,在一种可能的实现方式中,所述处理器还用于在使所述发送器停止发送与该流相关的报文上报消息之后,将该流的未上报报文缓存到与该流的已上报报文的缓存区相关联或具有相同标识的缓存区,其中所述未上报报文是指未发送相应报文上报消息的报文,所述已上报报文是指已发送相应报文上报消息的报文。在这种实现方式下,在报文处理设备900中的接收器910接收到控制器600发送的流规则安装消息之后,处理器920可以对所缓存的属于这个流的已上报报文和未上报报文执行该流规则安装消息定义的处理动作。

本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,也可以考虑将发明应用于LTE-A的异构网络中,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

实用性

根据本发明实施例所提供的报文处理方法、转发器、控制器、报文处理设备可应用于控制转发解耦架构的通信网络,能够有效减少不必要的报文上报,从而可有效提高流规则请求的效率、降低控制转发接口的负荷、减少控制器和转发器的资源占用、并提高系统运行的稳定性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1