一种处理用户报文的方法及转发面设备与流程

文档序号:14271177阅读:153来源:国知局
一种处理用户报文的方法及转发面设备与流程

本发明涉及通信技术领域,特别是涉及一种处理用户报文的方法及转发面设备。



背景技术:

电信网络中包含众多网络设备,例如:路由器、网关、交换机和防火墙等等。每一网络设备均由报文转发模块和协议控制模块组成,报文转发模块用于转发报文,协议控制模块用于根据协议对报文进行处理,以实现报文从不同网络设备中传输,进而实现网络的互联。由于网络设备分布在不同地方,这种将控制功能和转发功能集中于网络设备的方式,会使得网络的管理非常复杂,例如:需要升级网络时,则需要到不同地方将网络中每一个网络设备进行升级,非常不便利,而且耗时。

为了解决网络的管理复杂性,出现SDN(Software Defined Network,软件定义网络)网络。SDN网络是指将网络设备中的控制模块和转发模块进行解耦,并将控制模块进行集中部署,在控制模块侧即能实现对网络的维护和管理,简单而方便。

在SDN网络中,转发功能部署在转发面设备,控制功能部署在控制面设备。控制面设备根据用户报文的内容确定处理用户报文所需的流表项,并通过流表项安装消息将流表项发送到转发面设备。转发面设备将流表项安装到自身的流表中,并根据流表项处理用户报文。在SDN网络协议,比如:Openflow协议,一流表项安装消息仅携带一流表项,若转发面设备处理用户报文的方式为多流匹配时,则控制面设备需要将处理用户报文所需的流表项通过多个流表项安装消息发送到转发面设备,转发面设备分别流表项写入对应的流表中。

本申请的发明人在长期研究中发现:转发面设备将流表项写入流表与转发面设备处理用户报文为两组独立过程,而因网络延时的原因,流表项安装消息到达转发面设备并不同步,就触发转发面设备对用户报文执行匹配与处理的流程,进而造成转发面设备在流表项缺失的情况处理用户报文,导致转发面设备处理的用户报文出错的情况。



技术实现要素:

本发明实施方式主要解决的技术问题是提供处理用户报文的方法及转发面设备,能够有效避免因网络延,造成转发面设备处理用户报文出错的情况。

第一方面,提供一种处理用户报文的方法,包括转发面设备接收来自控制面设备的流表项安装消息,其中,流表项安装消息的数量为一条,并且流表项安装消息携带处理用户报文所需的所有流表项以及所述所有流表项中各个流表项所在流表的流表标识;转发面设备将流表项写入流表标识对应的流表中;在所有流表项写入对应的流表后,转发面设备对接收到的用户报文执行匹配与处理流程。

结合第一方面实现方式,在第一方面的第一种可能实现中,在转发面设备接收来自控制面设备的流表项安装消息的步骤之前,还包括:转发面设备接收用户报文,并查询到转发面设备的流表中不存在处理用户报文所需的流表项时,缓存用户报文,并向控制面设备发送流表项请求报文,其中,流表项请求报文携带至少部份用户报文的内容和缓存用户报文的缓存地址;转发面设备接收来自控制面设备的流表项安装消息的步骤具体为:转发面设备接收控制面设备根据流表项请求报文而下发的流表项安装消息,其中,流表项安装消息还携带缓存用户报文的缓存地址;转发面设备对接收到的用户报文执行匹配与处理流程的步骤包括:转发面设备从缓存地址所对应的缓存空间中提取用户报文,并对用户报文执行匹配与处理流程。

结合第一方面实现方式,在第一方面的第二种可能实现中,转发面设备接收来自控制面设备的流表项安装消息的步骤包括:转发面设备接收控制面设备根据用户签约信息、本地策略或者外部消息触发而下发的流表项安装消息。

第二方面,提供一种处理用户报文的方法,包括:转发面设备接收来自控制面设备的流表项安装消息,其中,流表项安装消息携带处理用户报文所需的流表项、流表项所在流表的流表标识和空闲标记;在转发面设备将流表项写入流表标识对应的流表后,转发面设备根据空闲标记将在流表标识对应的流表中的流表项的状态置为空闲状态;在处理用户报文所需的所有流表项写入对应的流表后,转发面设备接收来自控制面设备的激活消息;转发面设备根据激活消息将在转发面设备中的用于处理用户报文的所有流表项的状态置为激活状态,并对接收到的用户报文执行匹配与处理的流程。

结合第二方面实现方式,在第二方面的第一种可能实现中,流表项安装消息的数量为多个,并且一个流表项安装消息仅携带处理用户报文所需的一个流表项、一个流表标识和一个空闲标记。

结合第二方面实现方式或者第二方面的第一种实现方式,在第二方面的第二种可能实现中,流表项包括匹配条件;激活消息携带处理用户报文所需的所有流表项中的匹配条件和流表项所在流表的流表标识;转发面设备根据激活消息将在转发面设备中的用于处理用户报文的所有流表项的状态置为激活状态,并对接收到的用户报文执行匹配与处理的流程的步骤包括:转发面设备根据激活消息中所携带的流表标识和匹配条件找到对应的流表项,并将流表项的状态置为激活状态;在处理用户报文所需的所有流表项的状态已置为激活状态后,转发面设备对接收到的用户报文执行匹配与处理流程。

结合第二方面实现方式或者第二方面的第一种实现方式,在第二方面的第三种可能实现中,流表项包括流表项标识;激活消息携带处理用户报文所需的所有流表项的流表项标识;转发面设备根据激活消息将在转发面设备中的用于处理用户报文的所有流表项的状态置为激活状态,并执行对用户报文的匹配与处理的流程的步骤包括:转发面设备根据激活消息中所携带的流表项标识找到对应的流表项,并将流表项的状态置为激活状态,在处理用户报文所需所有流表项的状态均已置为激活状态后,转发面设备对接收到的用户报文执行匹配与处理流程。

结合第二方面至第二方面实现方式第三种实现方式中任一项,在第二方面的第四种可能实现方式中,转发面设备接收来自控制面设备的流表项安装消息的步骤具体为:转发面设备接收控制面设备根据用户签约信息、本地策略或者外部消息触发而下发的流表项安装消息。

结合第二方面至第二方面实现方式第三种实现方式中任一项,在第二方面的第五种可能实现方式中,在转发面设备接收来自控制面设备的流表项安装消息的步骤之前,还包括:转发面设备接收用户报文,并查询到转发面设备的流表中不存在处理用户报文所需的流表项时,向控制面设备发送流表项请求报文,其中,流表项请求报文携带至少部份用户报文的内容;转发面设备接收来自控制面设备的关于处理用户报文所需流表项的流表项安装消息的步骤的步骤具体为:转发面设备接收控制面设备根据流表项请求报文而下发的流表项安装消息。

第三方面,提供一种转发面设备,包括:第一接收模块,用于接收来自控制面设备的流表项安装消息,其中,流表项安装消息的数量为一条,并且流表项安装消息携带处理用户报文所需的所有流表项以及所有流表项中各个流表项所在流表的流表标识;写入模块,用于将各个流表项写入流表标识对应的流表中;匹配处理模块,用于在关于处理用户报文所需的所有流表项写入对应的流表后,对接收到的用户报文执行匹配与处理流程

结合第三方面实现方式,在第三方面的第一种可能实现中,转发面设备还包括第二接收模块、查询模块和发送模块;第二接收模块,用于接收用户报文;查询模块,用于查询转发面设备的流表中是否存在处理用户报文所需的流表项;缓存发送模块,用于在查询模块查询到转发面设备的流表中不存在处理用户报文所需的流表项时,缓存用户报文,并向控制面设备发送流表项请求报文,其中,流表项请求报文携带至少部份用户报文的内容和缓存用户报文的缓存地址;第一接收模块具体用于接收控制面设备根据流表项请求报文而下发的流表项安装消息,其中,流表项安装消息还携带缓存用户报文的缓存地址;匹配处理模块具体用于在关于处理用户报文所需的所有流表项均写入对应的流表后,从缓存地址所对应的缓存空间中提取用户报文,并对用户报文执行匹配与处理流程。

结合第三方面实现方式,在第三方面的第二种可能实现中,第一接收模块具体用于接收控制面设备根据用户签约信息、本地策略或者外部消息触发而下发的流表项安装消息。

第四方面,提供一种转发面设备,包括:转发面设备包括处理器、总线和网络接口;处理器和网络接口均与总线连接;处理器用于通过网络接口接收来自控制面设备的流表项安装消息,其中,流表项安装消息的数量为一条,并且流表项安装消息携带处理用户报文所需的所有流表项以及所有流表项中各个流表项所在流表的流表标识;将各个流表项写入流表标识对应的流表中;在所有流表项写入对应的流表后,对通过网络接口接收到的用户报文执行匹配与处理流程。

第五方面,提供一种转发面设备,包括:第一接收模块,用于接收来自控制面设备的流表项安装消息,其中,流表项安装消息携带处理用户报文所需的流表项、流表项所在流表的流表标识和空闲标记;状态设置模块,用于在将流表项写入流表标识对应的流表后,根据空闲标记将在流表标识对应的流表中的流表项的状态置为空闲状态;第二接收模块,用于在处理用户报文所需的所有流表项均写入对应的流表后,接收来自控制面设备的激活消息;匹配处理模块,用于根据激活消息将在转发面设备中的用于处理用户报文的所有流表项的状态置为激活状态,并对接收到的用户报文执行匹配与处理流程。

结合第五方面实现方式,在第五方面的第一种可能实现方式中,流表项安装消息的数量为多个,并且一个流表项安装消息仅携带处理用户报文所需的一个流表项、一个流表标识和一个空闲标记。

结合第五方面实现方式或第五方面的第一种可能实现方式,在第五方面的第二种可能实现方式,流表项包括匹配条件;激活消息携带处理用户报文所需的所有流表项中的匹配条件和流表项所在流表的流表标识;匹配处理模块具体用于根据激活消息中所携带的流表标识和匹配条件找到对应的流表项,并将流表项的状态置为激活状态,以及在处理用户报文所需的所有流表项的状态均已置为激活状态后,执行对接收到的用户报文的匹配与处理流程。

结合第五方面实现方式或第五方面的第一种可能实现方式,在第五方面的第三种可能实现方式,流表项包括流表项标识;激活消息携带处理用户报文所需的所有流表项的流表项标识;匹配处理模块具体用于根据激活消息中所携带的流表项标识找到对应的流表项,并将流表项的状态置为激活状态,在处理用户报文所需的所有流表项的状态均已置为激活状态后,对接收到的用户报文执行匹配与处理流程。

结合第五方面实现方式至第五方面的第三种实现方式中任一项实现方式,第五方面的第四种可能实现方式中,第一接收模块具体用于接收控制面设备根据用户签约信息、本地策略或者外部消息触发而下发的流表项安装消息。

结合第五方面实现方式至第五方面的第三种实现方式中任一项实现方式,第五方面的第四种可能实现方式中,转发面设备还包括第三接收模块、查询模块和发送模块;第三接收模块,用于接收用户报文;查询模块,用于查询转发面设备的流表中是否存在处理用户报文所需的流表项;发送模块,用于在查询模块查询到转发面设备的流表中不存在处理用户报文所需的流表项时,向控制面设备发送流表项请求报文,其中,流表项请求报文携带至少部份用户报文的内容;第一接收模块又具体用于接收控制面设备根据流表项请求报文而下发的流表项安装消息。

本发明实施方式有益效果:转发面设备将处理用户报文所需的所有流表项均写入对应的流表后,以允许在转发面设备中的用于用户报文的流表项参与对用户报文的匹配处理流程,有效地避免由于流表项安装的不同步,部分业务流所需的流表项因还未写入流表时无法参与对用户报文进行处理,使得用户报文的处理不充分,进而造成用户报文出错的情况,有效地避免因网络原因,各个流表项安装消息到达转发面设备的时间不同步,造成将处理用户报文的流表项的写入对应流表也是不同步的,从而造成在某些流表项尚未写入流表时,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

附图说明

图1是本发明软件定义网络系统的结构示意图;

图2是本发明转发面设备第一实施方式的结构示意图;

图3是本发明转发面设备第二实施方式的结构示意图;

图4是本发明转发面设备第三实施方式的结构示意图;

图5是本发明处理用户报文的方法第一实施方式流程图;

图6是本发明处理用户报文的方法第二实施方式流程图;

图7是本发明处理用户报文的方法第三实施方式流程图;

图8是本发明处理用户报文的方法第四实施方式流程图;

图9是本发明处理用户报文的方法第五实施方式的流程图。

具体实施方式

下面结合附图和实施方式对本发明进行详细说明。

请参阅图1,图1是本发明软件定义网络系统的结构示意图。如图所示,所述系统50包括转发面设备501和控制面设备502。

转发面设备501接收来自控制面设备502的流表项安装消息,流表项安装携带处理用户报文所需的流表项和流表项所在流表的流表标识。转发面设备501将流表项写入流表标识对应的流表中。在处理用户报文所需的所有流表项均写入对应的流表后,转发面设备502对接收到的用户报文执行匹配与处理流程。

在本发明一种可能实现方式中,流表项安装消息的数量为一条,并且该一条流表项安装消息携带处理用户报文所需的所有流表项、各个流表项所在流表的流表标识和缓存用户报文的缓存地址。转发面设备501将流表项安装消息所携带的所有流表项均写入对应的流表后,再从缓存地址对应的缓存空间提取用户报文,并执行对用户报文的匹配和处理流程。转发面设备501也可不缓存用户报文,则流表项安装消息不携带缓存用户报文的缓存地址,但是由于以一条流表项安装消息携带处理用户报文所需的流表项,转发面设备501将一条流表项安装消息携带的所有流表项写入转发面设备501的流表的时间极短,基本上可认为是同时写入的,从而确保处理用户报文所需的流表项均同时写入对应的流表,避免以多条流表项安装消息携带处理用户报文所需的所有流表项时,因网络原因,各个流表项安装消息到达转发面设备的时间不同步,造成将处理用户报文的流表项的写入对应流表也是不同步的,从而造成在某些流表项尚未写入流表时,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

在本发另一种实现中,流表项安装消息的数量为多条,流表项安装消息携带处理用户报文所需的流表项、流表项所在流表的流表标识和空闲标记。在转发面设备501将流表项写入流表标识对应的流表的同时,将该流表项置为空闲状态,以使该流表项不参与对用户报文的处理。控制面设备502在将所有流表项安装消息下发到转发面设备501后,间隔预定义时间后,才向转发面设备501发送激活消息,从而确保激活消息要比流表项安装消息晚到达到转发面设备501,从而确保转发面设备501在将处理用户报文所需的所有流表项均写入对应的流表后,再根据激活消息将在转发面设备501中的用于处理用户报文的流表项的状态置为激活状态,以使该流表项参与对用户报文的匹配和处理流程,进而确保转发面设备501中存在完整的用于处理用户报文的流表项时,才执行对用户报文的匹配和处理流程,避免因网络原因,各个流表项安装消息到达转发面设备的时间不同步,造成将处理用户报文的流表项的写入对应流表也是不同步的,从而造成在某些流表项尚未写入流表时,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

在本发明实施方式中,转发面设备502在处理用户报文所需的所有流表项均写入对应的流表后,才对接收到的用户报文执行匹配与处理流程,从而确保转发面设备501中存在完整的用于处理用户报文的流表项时,才执行对用户报文的匹配和处理流程,避免因网络原因,各个流表项安装消息到达转发面设备的时间不同步,造成将处理用户报文的流表项的写入对应流表也是不同步的,从而造成在某些流表项尚未写入流表时,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

请参阅图2,图2是本发明转发面设备第一实施方式的结构示图。如图所示,转发面设备60包括:第一接收模块601、写入模块602和匹配处理模块603。

第一接收模块601接收来自控制面设备61的流表项安装消息,其中,流表项安装消息的数量可以为一条,并且流表项安装消息携带处理用户报文所需的所有流表项以及各个流表项所在流表的流表标识。写入模块602用于将流表项写入流表标识对应的流表中。匹配处理模块603在关于处理用户报文所需的所有流表项均写入对应的流表后,对接收到的用户报文执行匹配与处理流程。

可选的,流表项安装消息可由控制面设备61主动下发的,而不是由转发面设备60请求而下发的。则第一接收模块301又可具体为接收控制面设备61根据用户签约信息、本地策略或者外部消息触发而下发的流表项安装消息。

可选的,流表项安装消息也可由转发面设备60主动请求而下发的,则转发面设备60还包括第二接收模块604、查询模块605和缓存发送模块。

第二接收模块604接收用户报文。查询模块604查询转发面设备60的流表中是否存在处理用户报文所需的流表项。若查询模块604查询到转发面设备60的流表中不存在处理用户报文所需的流表项,则缓存发送模块606缓存用户报文,并向控制面设备61发送流表项请求报文,其中,流表项请求报文携带至少部份用户报文的内容和缓存用户报文的缓存地址。至少部份用户报文的内容是控制面设备61能够该至少部份用户报文制定处理用户报文所需的流表项的内容,例如:IP五元组、以太网帧头或者局域网标识等等。第一接收模块601具体用于接收控制面设备61根据流表项请求报文而下发的流表项安装消息,其中,流表项安装消息还携带缓存用户报文的缓存地址。匹配处理模块603具体用于在关于处理用户报文所需的所有流表项均写入对应的流表后,从缓存地址所对应的缓存空间中提取用户报文,并对用户报文执行匹配与处理流程。

在本发明实施方式中,第一接收模块601接收来自控制面设备的流表项安装消息,写入模块602将流表项安装消息中携带的所有流表项写入对应的流表,其中,由于流表项安装消息的数量为一条,并流表项安装消息携带处理用户报文所需的所有流表项,则转发面设备60接收该一条流表项安装消息,相当于转发面设备60同时接收到处理用户报文所需的所有流表项,而转发面设备将流表项安装消息所携带的所有流表项写入对应流表的时间极短,基本上可认为是同时进行的,从而实现将处理用户报文所需的所有流表项基本同时写入对应的流表,避免以多条流表项安装消息携带处理用户报文所需的所有流表项时,因网络原因,各个流表项安装消息到达转发面设备不同步,造成将处理用户报文的流表项的写入对应流表也是不同步的,从而造成在某些流表项尚未写入流表时,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

请参阅图3,图3是本发明转发面设备第二实施方式的结构示意图。如图所示,转发面设备70包括处理器701、总线702和网络接口703。处理器701和网络接口703均与总线702连接。

处理器701用于通过网络703接口接收来自控制面设备的流表项安装消息,其中,流表项安装消息的数量为一条,并且流表项安装消息携带处理用户报文所需的所有流表项以及所有流表项中各个流表项所在流表的流表标识;将各个流表项写入流表标识对应的流表中;在关于处理用户报文所需的所有流表项均写入对应的流表后,对通过网络接口703接收到的所述用户报文执行匹配与处理流程。

进一步的,转发面设备70还包括存储器704。处理器701执行的上述处理过程可以是由程序控制完成,程序存放于存储器704中,当需要进行上述操作时,将程序调入处理器701,由处理器501控制完成。当然,上述处理过程还可以是由硬件完成。

请参阅图3,图3是本发明转发面设备第三实施方式的结构示意图。如图所示,转发面设备80包括第一接收模块801、状态设置模块802、第二接收模块803和匹配处理模块804。

第一接收模块801接收来自控制面设备81的流表项安装消息,其中,流表项安装消息携带处理用户报文所需的流表项、流表项所在流表的流表标识和空闲标记。在本发明可能实施方式中,流表项安装消息的数量为多个,并且一个流表项安装消息仅携带所述处理用户报文所需的一个流表项、一个流表标识和一个空闲标记。

可选的,流表项安装消息可由控制面设备81主动下发的,则第一接收模块801又可具体为:接收控制面设备根据用户签约信息、本地策略或者外部消息触发而下发的流表项安装消息。

可选的,流表项安装消息也可由控制面设备81根据转发面设备的请求而下发的,则转发面设备80还包括第三接收模块805、查询模块806和发送模块807。第三接收模块805用于接收用户报文。查询模块806用于查询转发面设备80的流表中是否存在处理用户报文所需的流表项。发送模块807用于在查询模块806查询到转发面设备80的流表中不存在处理用户报文所需的流表项时,向控制面设备81发送流表项请求报文,其中,流表项请求报文携带至少部份用户报文的内容。至少部份用户报文的内容为控制面设备能够根据该至少部份内容,制定处理用户报文的流表项的内容。转发面设备80查到不存处理用户报文的流表项时,不缓存用户报文,将通过默认的方式转发用户报文。第一接收模块801又具体用于接收控制面设备81根据流表项请求报文而下发的流表项安装消息。

状态设置模块802在将流表项写入流表标识对应的流表后,根据空闲标记将在流表标识对应的流表中的流表项的状态置为空闲状态。流表项处于无效状态是指流表项不参与对用户报文的匹配与处理流程。第二接收模块803在处理用户报文所需的所有流表项均写入对应的流表后,接收来自控制面设备81的激活消息。其中,控制面设备81将携带有处理用户报文所需的流表项的流表项安装消息均已下发完成后,间隔预定义时间后,再发送激活消息,以确保激活消息要比流表项安装消息晚到达转发面设备80。匹配处理模块804根据激活消息将在转发面设备中的用于处理用户报文的所有流表项的状态置为激活状态,并对所述接收的用户报文执行匹配与处理流程。

可选的,流表项包括匹配条件和处理内容,激活消息包括携带处理用户报文所需的所有流表项中的匹配条件和流表项所在流表的流表标识。匹配处理模块804具体用于根据激活消息中所携带的流表标识和匹配条件找到对应的流表项,并将流表项的状态置为激活状态,以及在处理用户报文所需的所有流表项的状态均已置为激活状态后,执行对接收到的用户报文的匹配与处理流程。

可选的,流表项包括流表项标识。流表项标识是流表项的唯一标记。激活消息携带处理用户报文所需的所有流表项的流表项标识,匹配处理模块804具体用于根据激活消息中所携带的流表项标识找到对应的流表项,并将流表项的状态置为激活状态,在处理用户报文所需的所有流表项的状态均已置为激活状态后,对接收到的用户报文执行匹配与处理流程。

在本发明实施方式中,第一接收模块801接收到的流表项安装消息中除携带流表项和流表项所在流表的流表标识之外,还携带空闲标记。状态设置模块在将流表项写入对应的流表后,将该流表项的状态置为空闲状态。其中,当流表项处于无效状态时,流表项是不允许参与对用户报文的匹配和处理,即使各流表项安装消息因网络延时,造成到达转发面设备的时间不同步,进而造成将处理用户报文的流表项的写入对应流表也是不同步的,但是由于已经写入转发面设备的用于处理用户报文的流表项的状态处于无效状态,不参与对用户报文的匹配和处理流程,避免出现处理用户报文的流表项存在缺少的情况下,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。,第二接收模块803在处理用户报文所需的所有流表项均写入对应的流表后,接收到激活消息。匹配处理模块804根据激活消息,将处理用户报文所需的所有流表项的状态置为激活状态,以允许流表项参与对用户报文的处理,从而保确在转发面设备中存在完整的用于处理用户报文的流表项时,才执行对用户报文的匹配和处理流程,避免出现处理用户报文的流表项存在缺少的情况下,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

请参阅图5,图5是本发明转发面设备第四实施方式的结构示意图。如图所示,转发面设备90包括处理器901、总线902和网络接口903。处理器901和网络接口903均与总线902连接。

处理器901用于通过网络接口903接收来自控制面设备的流表项安装消息,其中,流表项安装消息携带处理用户报文所需的流表项、流表项所在流表的流表标识和空闲标记;在转发面设备90将流表项写入流表标识对应的流表后,根据空闲标记将在流表标识对应的流表中的流表项的状态置为空闲状态;在处理用户报文所需的所有流表项均写入对应的流表后,接收来自控制面设备91的激活消息;根据激活消息将在转发面设备90中的用于处理用户报文的所有流表项的状态置为激活状态,并对通过网络接口903接收到的用户报文执行匹配与处理的流程。

进一步的,转发面设备90还包括存储器904。处理器901执行的上述处理过程可以是由程序控制完成,程序存放于存储器904中,当需要进行上述操作时,将程序调入处理器901,由处理器901控制完成。当然,上述处理过程还可以是由硬件完成。

请参阅图6,图6是本发明处理用户报文的方法第一实施方式的流程图。如图所示,所述方法包括:

步骤101:转发面设备接收来自控制面设备的流表项安装消息,其中,流表项安装消息的数量为一条,并且流表项安装消息携带处理用户报文所需的所有流表项以及各个流表项所在流表的流表标识;

控制面设备负责逻辑控制,转发面设备负责报文处理,控制面设备将处理用户报文所需要的流表项下发到转发面设备,转发面设备将流表项写入对应的流表,并根据流表中的流表项对用户报文执行匹配和处理流程。

流表项包括匹配条件和处理内容,匹配条件用于判断用户报文是否为该流表项的处理对象,其中,可以以用户报文源/目的MAC地址、局域网标识、源/目的IP地址、TCP/UDP协议类型、源/目的端口号、GRE key(Generic Routing Encapsulation,通用路由封装钥匙)、GTP TEID(Generic Routing Encapsulation Tunnel Endpoint Identifier,通用路由封装隧道终点标识)中一种或者多种可作匹配条件,处理内容用于指示对匹配的用户报文所执行的处理,比如转发、丢弃、修改、封装或者解封装等等。

通常情况下,转发面设备设置有多个流表,每个流表中设置有多个流表项,转发面设备在处理用户报文时,通常需要进行多流表匹配,其中,转发面设备进行多流表匹配的处理方式为串行处理方式,例如:用户报文1,需要经历流表0中流表项1->流表3中流表项3->流表5中流表项2处理,则先根据流表0中流表项1处理用户报文,接着根据流表3中流表项3处理用户报文,最后根据流表5中流表项2处理用户报文,若存在流表项缺失,例如:缺少流表3中流表项3,则导致用户报文1处理不充份,进而导致用户报文1处理出错。

步骤102:转发面设备将流表项写入流表标识对应的流表中;

流表标识是转发面设备中的流表的唯一标记,不同流表赋予唯一标记的流表标识。

步骤103:在关于处理用户报文所需的所有流表项均写入对应的流表后,转发面设备对接收到的用户报文执行匹配与处理流程;

当转发面设备接收到流表项安装消息,并且没接收到用户报文时,转发面设备将流表项安装消息中所携带的所有流表项均写入对应流表,其中转发面设备将流表项安装消息中所携带的所有流表项写入对应流表的时间极短,基本上可以认为流表项安装消息所携带的所有流表项均同时写入对应流表,此后,转发面设备接收到该用户报文时,则可对该用户报文执项匹配和处理。

当转发面设备接收到流表项安装消息之前,已经接收到该用户报文时,则转发面设备将该用户报文缓存于缓存空间,并向控制面设备申请处理该用户报文的流表项,并在处理该用户报文的流表项均已写入对应的流表后,再从缓存空间中提取该用户报文,并对该用户报文执行匹配和处理。

在本发明实施方式中,转发面设备接收来自控制面设备的流表项安装消息,并将流表项安装消息中携带的所有流表项写入对应的流表,其中,由于流表项安装消息的数量为一条,并流表项安装消息携带处理用户报文所需的所有流表项在这一条流表项安装消息中,则转发面设备接收该一条流表项安装消息,相当于转发面设备同时接收到处理用户报文所需的所有流表项,而转发面设备将流表项安装消息所携带的所有流表项写入对应流表的时间极短,基本上可认为是同时进行的,从而实现将处理用户报文所需的所有流表项基本同时写入对应的流表,避免以多条流表项安装消息携带处理用户报文所需的所有流表项时,因网络原因,各个流表项安装消息到达转发面设备的时间不一定相同,造成将处理用户报文的流表项的写入对应流表也是不同步的,从而造成在某些流表项尚未写入流表时,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

请参阅图7,图7是本发明处理用户报文的方法第二实施方式的流程图。如图所示,所述方法包括:

步骤201:转发面设备接收用户报文;

控制面设备负责逻辑控制,转发面设备负责报文处理,并且转发面设备根据控制面设备下发的流表项对用户报文执项匹配和处理。流表项包括匹配条件和处理内容,匹配条件用于判断用户报文是否属于流表项的处理对象,处理内容用于指示对符合匹配条件的用户报文所执行的动作。

步骤202:转发面设备查询转发面设备的流表中是否存在处理用户报文所需的流表项,若不存在处理用户报文所需的流表项时,进入步骤204,否则进入步骤203;

步骤203:转发面设备根据流表中的流表项处理用户报文;

步骤204:转发面设备缓存该用户报文,并向控制面设备发送流表项请求报文,其中,流表项请求报文携带至少部份用户报文的内容和缓存用户报文的缓存地址;

至少部份用户报文的内容为控制面设备接收到流表项请求报文后,能够根据该至少部份用户报文的内容,制定处理该用户报文所需要的流表项的内容,例如IP五元组、以太网帧头或者局域网标识等等。控制面设备制定好处理用户报文的流表项后,将流表项、各个流表项所在流表的流表标识和缓存用户报文的缓存地址封装于流表项安装消息中,并将流表项安装消息下发到转发面设备。

步骤205:转发面设备接收来自控制面设备根据流表项请求报文而下发的流表项安装消息,其中,流表项安装消息的数量为一个,并且流表项安装消息携带处理用户报文所需的所有流表项、各个流表项所在流表的流表标识以及缓存用户报文的缓存地址;

通常情况下,转发面设备接收到流表项安装消息后,会先将流表项安装消息中携带的流表项写入对应的流表,再从缓存地址的缓存空间中提取用户报文,执行对用户报文的匹配和处理。若以多条流表项安装消息携带处理用户报文的流表项,很有可能因网络延时的问题,造成各条流表项安装消息到达转发面设备的时间不相同,从而造成将处理用户报文的流表项写入对应流表的时间也不相同;假如携带有缓存用户报文的缓存地址的流表项安装消息先到达转发面设备,其他流表项安装消息后到达转发面设备,则有可能造成其他流表项安装消息所携带的流表项尚没写入对应的流表,即从缓存地址对应的缓存空间提取用户报文,并执行对用户报文的匹配和处理,从而造成用户报文的处理不充分,进而造成用户报文处理出错的情况。

步骤206:转发面设备将流表项写入流表标识对应的流表中;

流表标识是转发面设备中的流表的唯一标记,通过流表标识区别不同流表。

步骤207:在关于处理用户报文所需的所有流表项均写入对应的流表后,转发面设备从缓存地址所对应的缓存空间中提取用户报文,并对用户报文执行匹配与处理流程;

流表项安装消息的数量为一条,并且该一条流表项安装消息携带处理用户报文所需的所有流表项,因此,转发面设备接收该流表项安装消息时,就相当于同时接收到处理用户报文所需的所有流表项,而转发面设备将流表项安装消息中携带所有流表项写入对应流表的时间极短,基本可以认为是同时写入的,从而确保处理用户报文所需的所有流表项几乎是同时写入对应的流表。进一步,由于流表项安装消息还携带缓存用户报文的缓存地址,则在将流表项写入对应流表后,从缓存地址提取用户报文,并执行匹配和处理。

可选的,控制面设备也可主动向转发面设备下发流表项安装消息,其中,流表项安装消息的数量也为一条,并且流表项安装消息携带处理用户报文所需的所有流表项以及各个流表项所在流表的流表标识,则在本发明实施方式中,也可不包括步骤201~步骤204,步骤205又可具体为:转发面设备接收控制面设备根据用户签约信息、本地策略或者外部消息触发而下发的流表项安装消息,其中,流表项安装消息的数量为一条,并且流表项安装消息携带处理用户报文所需的所有流表项以及各个流表项所在流表的流表标识。步骤207又可具体:在关于处理用户报文所需的所有流表项均写入对应的流表后,转发面设备对接收到的用户报文执行匹配与处理流程。

由于控制面设备以一条流表项安装消息携带处理用户报文所需的所有流表项,则转发面设备接收到该流表项安装消息,相当于转发面设备同时接收到处理用户报文所需的所有流表项,而转发面设备将一条流表项安装消息中所携带处理用户报文所需的所有流表项写入对应流表的时间极短,基本可以认为是同时进行的。若用户报文比流表项安装消息先到达转发面设备,则转发面设备按默认方式处理用户报文;若转发面设备在处理用户报文过程中,接收到流表项安装消息,则转发面仍然按默认方式处理用户报文;在将处理用户报文所需的所有流表项均写入对应后,若接收用户报文,则对用户报文进行匹配和处理流程。

在本发明实施方式中,转发面设备接收来自控制面设备的流表项安装消息,并将流表项安装消息中所携带的所有流表项写入对应的流表,其中,由于流表项安装消息的数量为一条,并流表项安装消息携带处理用户报文所需的所有流表项,则转发面设备接收该一条流表项安装消息,相当于转发面设备同时接收到处理用户报文所需的所有流表项,而转发面设备将流表项安装消息所携带的所有流表项写入对应流表的时间极短,基本上可认为是同时进行的,从而实现将处理用户报文所需的所有流表项基本同时写入对应的流表,避免以多条流表项安装消息携带处理用户报文所需的所有流表项时,因网络原因,各个流表项安装消息到达转发面设备的时间不同步,从而造成将处理用户报文的流表项的写入对应流表也是不同步的,进而可能造成在某些流表项尚未写入流表时,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

请参阅图8,图8是本发明处理用户报文的方法第二实施方式流程图。如图所示,所述方法包括:

步骤301:转发面设备接收来自控制面设备的流表项安装消息,其中,流表项安装消息携带处理用户报文所需的流表项、流表项所在流表的流表标识和空闲标记;

控制面设备负责逻辑控制,转发面设备负责报文处理,控制面设备将处理用户报文所需要的流表项下发到转发面设备,转发面设备根据控制面设备下发的流表项对用户报文执行匹配和处理流程。流表项包括匹配条件和处理内容,匹配条件用于判断用户报文是否属于流表项的处理对象,处理内容用于指示对符合匹配条件的用户报文所执行的动作。在本发明实施方式中,流表项安装消息的数量为多个,并且一流表项安装消息仅携带处理用户报文所需的一流表项、流表标识和空闲标记。

步骤302:在转发面设备将流表项写入流表标识对应的流表后,转发面设备根据空闲标记将在流表标识对应的流表中的流表项的状态置为空闲状态;

空闲标记用于指示在转发面设备将流表项写入对应的流表后,将在该流表中的该流表项的状态置为空闲状态,其中,转发面设备中的流表项处于状态是指在转发面设备中的流表项不参与对用户报文的匹配和处理流程。

步骤303:在处理用户报文所需的所有流表项均写入对应的流表后,转发面设备接收来自控制面设备的激活消息;

控制面设备将流表项安装消息都发送完成后,隔间预定时间再发送激活消息,以确保激活消息会比流表项安装消息晚到达转发面设备,进而能够确保转发面设备将处理用户报文所需的所有流表项均写入对应的流表后,才根据激活消息激活在转发面设备中的用于处理用户报文的流表项。

步骤:304:转发面设备根据激活消息将在转发面设备中的用于处理用户报文的所有流表项的状态置为激活状态,并对接收到的用户报文执行匹配与处理的流程。

转发面设备中的流表项处于激活状态是指在转发面设备中的流表项允许参与对用户报文的匹配和处理流程。由于处理用户报文所需的所有流表项均写入对应的流表后,才激活在转发面设备中的处理用户报文的流表项,从而确保处理用户报文所需的流表项均写入对应的流表后,才执行对用户报文的匹配和处理。

在本发明实施方式中,流表项安装消息中除携带流表项和流表项所在流表的流表标识之外,还携带空闲标记,以使转发面设备将流表项写入对应的流表的同时,将该流表项的状态置为空闲状态,当流表项处于无效状态时,流表项是不允许参与对用户报文的匹配和处理流程,纵然各流表项安装消息因网络延时,造成到达转发面设备的时间不同步,进而造成将处理用户报文的流表项的写入对应流表也是不同步的,但是由于已经写入转发面设备的用于处理用户报文的流表项的状态处于无效状态,不参与对用户报文的匹配和处理流程,从而避免出现处理用户报文的流表项存在缺少的情况下,即触发对用户报文的匹配与处理,造成用户报文处理出错的情况。当处理用户报文所需的所有流表项均写入对应的流表后,才将用于处理用户报文的所有流表项的状态置为激活状态,以允许流表项参与对用户报文的处理,从而确保在转发面设备中存在完整的用于处理用户报文的流表项时,才执行对用户报文的匹配和处理,避免出现处理用户报文的流表项存在缺少的情况下,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

请参阅图9,图9是本发明处理用户报文的方法第五实施方式的流程图。如图所示,所述方法包括:

步骤401:转发面设备接收用户报文;

转发面设备负责报文的处理,控制面设备负责逻辑控制,控制面设备根据需求将处理用户报文所需要的流表项下发到转发面设备,以使转发面设备根据控制面设备下发的流表项对用户报文执行匹配和处理流程。

步骤402:转发面设备查询转发面设备的流表中是否存在处理用户报文所需的流表项,若不存在处理用户报文所需的流表项时,进入步骤404,否则进入步骤403;

通常情况下,转发面设备设置有多流表,每个流表中存储有多个流表项。流表项包括匹配条件和处理内容,匹配条件用于判断用户报文是否属于流表项的处理对象,处理内容用于指示对符合匹配条件的用户报文所执行的处理。转发面设备将用户报文与起始流表中的流表项的匹配条件进行匹配,若用户报文与匹配条件吻合,则根据处理内容处理用户报文,在处理完成后转到所指定的下一流表,并在所指定的下一流表中,将用户报文与在流表中的流表项的匹配条件进行匹配,若用户报文与匹配条件吻合,则根据处理内容处理用户报文,在处理完成转到所指定的下一流表,直至匹配和处理完成。

步骤403:转发面设备根据流表中的流表项处理用户报文;

步骤404:转发面设备向控制面设备发送流表项请求报文,其中,流表项请求报文携带至少部份用户报文的内容;

至少部份用户报文的内容为控制面设备接收到流表项请求报文后,能够根据该至少部份用户报文的内容,制定处理该用户报文所需要的流表项的内容,例如IP五元组、以太网帧头或者局域网标识等等。

值得说明的是:转发面设备查询到不存在处理用户报文所需的流表项时,可不缓存该用户报文,直接按默认处理方式处理用户报文,而不是执行匹配和处理流程。

步骤405:转发面设备接收控制面设备根据流表项请求报文而下发的关于处理用户报文所需的流表项安装消息;

流表项安装消息的数量为多个,并且一流表项安装消息仅携带处理用户报文所需的一流表项、流表标识和空闲标记。

步骤406:在转发面设备将流表项写入流表标识对应的流表后,转发面设备根据空闲标记将在流表中的流表项的状态置为空闲状态;

空闲标记用于指示在转发面设备将流表项写入对应的流表后,将在该流表中的该流表项的状态置为空闲状态,其中,转发面设备中的流表项处于状态是指在转发面设备中的流表项不参与对用户报文的匹配和处理流程。

步骤407:在处理用户报文所需的所有流表项均写入对应的流表后,转发面设备接收来自控制面设备的激活消息;

控制面设备将流表项安装消息都发送完成后,隔间预定时间再发送激活消息,以确保激活消息会比流表项安装消息晚到达转发面设备,进而能够确保转发面设备将处理用户报文所需的所有流表项均写入对应的流表后,才根据激活消息将在转发面设备中的处理用户报文所需的流表项置为激活状态。

步骤:408:转发面设备根据激活消息将在转发面设备中的处理用户报文所需的所有流表项置为激活状态,并对接收到的用户报文执行匹配与处理的流程。

转发面设备中的流表项处于激活状态是指在转发面设备中的流表项允许参与对用户报文的匹配和处理流程。由于处理用户报文所需的所有流表项均写入对应的流表后,才激活在转发面设备中的处理用户报文的流表项,从而确保处理用户报文所需的流表项均写入对应的流表后,才执行对用户报文的匹配和处理。

在本发明一种实现中,流表项包括匹配条件和处理内容,激活消息携带处理用户报文所需的所有流表项中的匹配条件和流表项所在流表的流表标识,转发面设备接收到激活消息后,根据流表标识找到对应的流表,接着根据激活消息所携带的匹配条件在所找到的流表中查找对应流表项,并将所找到的流表项的状态置为激活状态,则步骤408又可具体为:转发面设备根据激活消息中所携带的流表标识和匹配条件找到对应的流表项,并将流表项的状态置为激活状态;在处理用户报文所需的所有流表项的状态均已置为激活状态后,转发面设备执行对用户报文的流表项匹配与处理的流程;

在本发明另一种实现中,流表项除了包括匹配条件和处理内容之外,还包括流表项标识,其中,流表项标识为流表项的唯一标记,不同流表项,流表项标识也是不同的。激活消息携带处理用户报文所需的所有流表项的流表项标识。步骤408又可具体为:转发面设备根据激活消息中所携带的流表项标识找到对应的流表项,并将流表项的状态置为激活状态,在处理用户报文所需所有流表项的状态均已置为激活状态后,转发面设备执行对用户报文的匹配与处理流程。

可选的,控制面设备也可主动向转发面设备下发流表项安装消息,则也可不包括步骤401~步骤404,步骤405又可具体为:转发面设备接收控制面设备根据用户签约信息、本地策略或者外部触发消息而下发的流表项安装消息,其中,流表项安装消息携带处理用户报文所需的流表项、流表项所在流表的流表标识和空闲标记。

在本发明实施方式中,流表项安装消息中除携带流表项和流表项所在流表的流表标识之外,还携带空闲标记,以使得转发面设备在将流表项写入对应的流表的同时,将该流表项的状态置为空闲状态。当流表项处于无效状态时,流表项是不允许参与对用户报文的匹配和处理,即使各流表项安装消息因网络延时,造成到达转发面设备的时间不同步,进而造成将处理用户报文的流表项的写入对应流表也是不同步的,但是由于已经写入转发面设备的用于处理用户报文的流表项的状态处于无效状态,不参与对用户报文的匹配和处理流程,避免出现处理用户报文的流表项存在缺少的情况下,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。在处理用户报文所需的所有流表项均写入对应的流表后,才将处理用户报文所需的所有流表项的状态置为激活状态,以允许流表项参与对用户报文的处理,从而保确在转发面设备中存在完整的用于处理用户报文的流表项时,才执行对用户报文的匹配和处理流程,避免出现处理用户报文的流表项存在缺少的情况下,即触发对用户报文的匹配与处理,使得用户报文的处理不充分,进而造成用户报文出错的情况。

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