缓存控制方法、网元及控制器与流程

文档序号:16513839发布日期:2019-01-05 09:30阅读:209来源:国知局
缓存控制方法、网元及控制器与流程

本申请涉及网络技术,尤其涉及一种缓存控制方法、网元及控制器。



背景技术:

随着网络技术的发展,控制转发分离是移动网络的发展趋势,第三代合作伙伴计划(3rdgenerationpartnershipproject,3gpp)标准组织最新定义的未来第五代移动通信技术(5th-generation,5g)网络架构也是基于控制转发分离的。

基于软件定义网络(softwaredefinednetwork,sdn)架构是一种比较流行的实现控制转发分离的网络技术。其中,sdn架构包括:移动网络的控制面网元和转发面网元(或用户面网元);移动网络的控制面网元和转发面网元都可与移动网络的控制器通信(其中,移动网络的转发面网元可以通过openflow协议与控制器进行通信)。在部分场景下,移动网络的转发面网元需要具备一定的缓存能力,以保障移动网络中数据包的正常转发。但现有的openflow协议中并未提供专门的缓存处理机制。



技术实现要素:

本申请实施例提供一种缓存控制方法、网元及控制器,实现了openflow协议中基于流粒度的缓存处理机制,以满足移动网络的数据缓存需求。

第一方面,本申请实施例提供一种缓存控制方法,包括:

网元接收控制器发送的流表消息;所述流表消息包括流表匹配的数据包的缓存信息;

所述网元根据所述缓存信息对所述数据包的缓存进行处理;

所述网元向所述控制器发送流表响应消息。

通过第一方面提供的缓存控制方法,通过网元接收控制器发送的流表消息;其中,所述流表消息包括流表匹配的数据包的缓存信息;进一步地,网元根据所述缓存信息对所述数据包的缓存进行处理,以便于所述网元可将所述流表匹配的至少一个数据包按照相应的存储方式存入所述流表对应的缓存。可见,本申请实施例提供的缓存控制方法实现了openflow协议中能支持基于数据流粒度的缓存处理方式,可以满足移动网络的数据缓存需求。

在一个可能的设计中,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

在一个可能的设计中,所述缓存信息包括缓存类型信息,所述缓存类型信息用于指示所述数据包的存储方式。

在一个可能的设计中,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

在一个可能的设计中,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

在一个可能的设计中,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

在一个可能的设计中,所述缓存信息包括:所述缓存的存储空间大小。

在一个可能的设计中,所述缓存信息位于所述流表消息的动作集字段。

第二方面,本申请实施例提供一种缓存控制方法,包括:

控制器向网元发送流表消息;所述流表消息包括流表匹配的数据包的缓存信息;

所述控制器接收所述网元发送的流表响应消息。

通过第二方面提供的缓存控制方法,通过控制器向网元发送流表消息(所述流表消息包括流表匹配的数据包的缓存信息),以使网元根据接收的所述流表消息中的所述缓存信息,对所述数据包的缓存进行处理,以便网元可将所述流表匹配的至少一个数据包按照相应的存储方式存入所述流表对应的缓存。可见,本申请实施例提供的缓存控制方法实现了openflow协议中能支持基于数据流粒度的缓存处理方式,可以满足移动网络的数据缓存需求。

在一个可能的设计中,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

在一个可能的设计中,所述缓存信息包括缓存类型信息,缓存类型信息用于指示所述数据包的存储方式。

在一个可能的设计中,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

在一个可能的设计中,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

在一个可能的设计中,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

在一个可能的设计中,所述缓存信息包括:所述缓存的存储空间大小。

在一个可能的设计中,所述缓存信息位于所述流表消息的动作集字段。

第三方面,本申请实施例提供一种网元,包括:

接收模块,用于接收控制器发送的流表消息;所述流表消息包括流表匹配的数据包的缓存信息;

处理模块,用于根据所述缓存信息对所述数据包的缓存进行处理;

发送模块,用于向所述控制器发送流表响应消息。

在一个可能的设计中,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

在一个可能的设计中,所述缓存信息包括缓存类型信息,所述缓存类型信息用于指示所述数据包的存储方式。

在一个可能的设计中,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

在一个可能的设计中,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

在一个可能的设计中,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

在一个可能的设计中,所述缓存信息包括:所述缓存的存储空间大小。

在一个可能的设计中,所述缓存信息位于所述流表消息的动作集字段。

上述第三方面的实施方式所提供的网元,其有益效果可以参见上述第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。

第四方面,本申请实施例提供一种控制器,包括:

发送模块,用于向网元发送流表消息;所述流表消息包括流表匹配的数据包的缓存信息;

接收模块,用于接收所述网元发送的流表响应消息。

在一个可能的设计中,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

在一个可能的设计中,所述缓存信息包括缓存类型信息,缓存类型信息用于指示所述数据包的存储方式。

在一个可能的设计中,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

在一个可能的设计中,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

在一个可能的设计中,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

在一个可能的设计中,所述缓存信息包括:所述缓存的存储空间大小。

在一个可能的设计中,所述缓存信息位于所述流表消息的动作集字段。

上述第四方面的实施方式所提供的控制器,其有益效果可以参见上述第二方面的各可能的实施方式所带来的有益效果,在此不再赘述。

第五方面,本申请实施例提供一种网元,包括:存储器、处理器和收发器;

其中,存储器用于存储程序指令;

收发器用于接收控制器发送的流表消息;所述流表消息包括流表匹配的数据包的缓存信息;

处理器用于调用存储器中的程序指令执行下述步骤:根据所述缓存信息对所述数据包的缓存进行处理;

收发器还用于向所述控制器发送流表响应消息。

在一个可能的设计中,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

在一个可能的设计中,所述缓存信息包括缓存类型信息,所述缓存类型信息用于指示所述数据包的存储方式。

在一个可能的设计中,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

在一个可能的设计中,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

在一个可能的设计中,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

在一个可能的设计中,所述缓存信息包括:所述缓存的存储空间大小。

在一个可能的设计中,所述缓存信息位于所述流表消息的动作集字段。

上述第五方面的实施方式所提供的网元,其有益效果可以参见上述第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。

第六方面,本申请实施例提供一种计算机存储介质,计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所涉及的任意一种方法。

第七方面,本申请实施例提供一种控制器,包括:存储器、处理器和收发器;

其中,存储器用于存储程序指令;处理器用于调用存储器中的程序指令;

收发器用于向网元发送流表消息;所述流表消息包括流表匹配的数据包的缓存信息;

收发器还用于接收所述网元发送的流表响应消息。

在一个可能的设计中,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

在一个可能的设计中,所述缓存信息包括缓存类型信息,缓存类型信息用于指示所述数据包的存储方式。

在一个可能的设计中,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

在一个可能的设计中,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

在一个可能的设计中,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

在一个可能的设计中,所述缓存信息包括:所述缓存的存储空间大小。

在一个可能的设计中,所述缓存信息位于所述流表消息的动作集字段。

上述第七方面的实施方式所提供的控制器,其有益效果可以参见上述第二方面的各可能的实施方式所带来的有益效果,在此不再赘述。

第八方面,本申请实施例提供一种计算机存储介质,计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面所涉及的任意一种方法。

附图说明

图1为本申请实施例中软件定义网络结构示意图;

图2为本申请提供的缓存控制方法实施例一的流程示意图;

图3为本申请提供的缓存控制方法实施例二的流程示意图;

图4为本申请提供的缓存控制方法实施例三的流程示意图;

图5为本申请提供的缓存控制方法实施例四的流程示意图;

图6为本申请提供的缓存控制方法实施例五的流程示意图;

图7为本申请提供的缓存控制方法实施例六的流程示意图;

图8为本申请网元实施例一的结构示意图;

图9为本申请网元实施例二的结构示意图;

图10为本申请控制器实施例一的结构示意图;

图11为本申请控制器实施例二的结构示意图。

具体实施方式

首先,对本申请实施例中所涉及的部分词汇和应用场景进行解释说明。

本申请实施例中涉及的ran-c主要包含传统接入网的控制面功能。

本申请实施例中涉及的gw-c主要包含传统网关设备的控制面功能。

本申请实施例中涉及的移动网络的控制器主要负责对下层转发面资源的管理以及对上层控制面网元(例如ran-c,gw-c)的服务。可选地,所述控制器也可称之为sdn控制器,本申请实施例中对此并不作限制。

本申请实施例中涉及的ran-u主要包含传统接入网用户面功能,并且使用openflow协议进行通信。

本申请实施例中涉及的gw-u主要包含传统网关用户面功能,并且使用openflow协议进行通信。

本申请实施例中涉及的移动性管理实体(mobilemanagemententity,mme)是3gpp协议长期演进(longtermevolution,lte)接入网络的关键控制节点,mme的主要功能包括接入控制、移动性管理、会话管理、网元选择、存储用户承载信息等。

本申请实施例中定义具有相同包头信息的一个或多个数据包属于同一数据流。

本申请实施例中涉及的流表消息可以采用openflow协议进行发送/接收。

图1为本申请实施例中软件定义网络结构示意图,如图1所示,基于软件定义网络(softwaredefinednetwork,sdn)架构实现移动网络的控制面网元和转发面网元(或用户面网元)的分离。移动网络的控制面网元通过北向接口与移动网络的控制器通信,其中,控制面网元包括:无线接入网控制面(radioaccessnetworkcontrolplane,ran-c)和网关控制面(gatewaycontrolplane,gw-c)。移动网络的转发面网元与移动网络的控制器通过openflow协议进行通信,其中,转发面网元包括:无线接入网用户面(radioaccessnetworkuserplane,ran-u)和网关用户面(gatewayuserplane,gw-u)。

本申请提供的缓存控制方法、网元及控制器,可以适用于如图1所示的网络结构,当然,也可以适用于如图1所示的其它等效或变形网络结构,本申请实施例中对此并不作限制。

如图1所示的网络结构下,通常存在如下几种情形ran-u和/或gw-u需要具备一定的缓存能力,以保障移动网络中数据包的正常转发:

第一种情形:当终端设备处于空闲态(例如空口连接和s1连接已经释放)且gw-u接收到发往所述终端设备的下行数据时,gw-u无法继续转发所述下行数据,因此,gw-u需要对所述下行数据流进行缓存,等待空口连接和s1连接的建立。

第二种情形:当终端设备的空口连接已经释放且ran-u接收到发往所述终端设备的下行数据时,ran-u无法继续转发所述下行数据,因此,ran-u需要对所述下行数据流进行缓存,等待空口连接的建立。

第三种情形:当终端设备处于连接态且ran-u收到大量下行数据并通过空口连接将所述下行数据转发给所述终端设备时,由于空口资源紧张,导致ran-u向所述终端设备转发所述下行数据的速率可能无法匹配接收所述下行数据的速率,因此,ran-u需要对接收到的所述下行数据流进行缓存。

第四种情形:当终端设备进行网络切换时,目标ran-u需要分别接收源ran-u和gw-u发送的下行数据,为了保证优先转发源ran-u发送的下行数据,ran-u需要将gw-u发送的下行数据进行缓存。

当然,ran-u和/或gw-u也可在其它情形下需要具备一定的缓存能力,本申请实施例中对此并不作限制。

由于现有的openflow协议中并未提供专门的缓存处理机制,以及考虑到移动网络中的数据量非常大,openflow协议中如何实现专门的缓存处理机制,是亟待解决的技术问题。

因此,本申请提供的缓存控制方法、网元及控制器,实现了openflow协议中基于流粒度的缓存处理机制,以满足移动网络的数据缓存需求。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

图2为本申请提供的缓存控制方法实施例一的流程示意图。本实施例中涉及的执行主体包括:控制器和/或网元,该控制器和网元都可以通过软件和/或硬件实现。可选地,本申请实施例中涉及的网元可以包括但不限于:gw-u或者ran-u。如图2所示,本实施例的方法包括:

步骤s201、控制器向网元发送流表消息;所述流表消息包括流表匹配的数据包的缓存信息。

本步骤中,控制器向网元发送流表消息;可选地,所述流表消息用于指示流表的信息。可选地,所述流表消息包括所述流表匹配的数据包的缓存信息。可选地,若所述流表能匹配一个或多个数据包,则所述一个或多个数据包必然具有相同的包头信息,即所述一个或多个数据包属于同一数据流,即同一数据流对应相同的缓存(即所述缓存用于存储所述流表匹配的一个或多个数据包,且所述多个数据包属于同一数据流)。

可选地,所述缓存信息包括:创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。其中,所述创建缓存指示信息用于指示所述网元创建所述流表对应的缓存(用于存储与所述流表匹配的至少一个数据包)。所述修改缓存指示信息用于指示所述网元修改所述流表对应的缓存的属性信息(例如包括但不限于:所述缓存的缓存类型信息或者所述缓存的存储空间大小等)。所述删除缓存指示信息用于指示所述网元删除所述流表对应的缓存。

可选地,所述缓存信息还可以包括以下任一项或多项:缓存类型信息、缓存的创建触发指示、缓存的存储空间大小。当然,所述缓存信息还可以包括其它信息,本申请实施例中对此并不作限制。

为了便于理解,本申请实施例的以下部分对所述缓存信息包括所述缓存类型信息、所述缓存的创建触发指示以及所述缓存的存储空间大小中的任一项进行解释说明。

(a)可选地,所述缓存信息可以包括所述缓存类型信息,所述缓存类型信息用于指示所述数据包的存储方式(即所述流表匹配的所述数据包存入所述缓存的存储方式)。可选地,所述缓存类型信息包括但不限于:对接收到的数据包进行存储(即只存储不转发)、或对接收到的数据包进行存储并转发(即边存储边转发)。

可选地,所述缓存类型信息可以通过第一预设字段的预设数值进行指示,例如:若所述第一预设字段等于第一预设数值,则代表所述缓存类型信息包括对接收到的所述流表匹配的数据包进行存储;若所述第一预设字段等于第二预设数值,则代表所述缓存类型信息包括对接收到的所述流表匹配的数据包进行存储并转发。当然,所述缓存类型信息还可以通过其它方式进行指示,本申请实施例中对此并不作限制。

(b)可选地,所述缓存信息可以包括:所述缓存的创建触发指示,所述缓存的创建触发指示用于指示所述缓存的创建时机。可选地,所述缓存的创建触发指示包括但不限于:所述网元在接收到所述流表消息时创建所述缓存的指示(即所述网元在接收到所述流表消息时立即创建所述缓存),或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。可选地,所述网元的接收速率代表所述网元接收所述流表匹配的所述至少一个数据包的速率,所述转发速率为所述网元转发所述至少一个数据包的速率。

可选地,所述缓存的创建触发指示可以通过第二预设字段的预设数值进行指示,例如:若所述第二预设字段等于第三预设数值,则代表所述缓存的创建触发指示包括所述网元在接收到所述流表消息时创建所述缓存的指示;若所述第二预设字段等于第四预设数值,则代表所述缓存的创建触发指示包括所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。当然,所述缓存的创建触发指示还可以通过其它方式进行指示,本申请实施例中对此并不作限制。

(c)可选地,所述缓存信息还可以包括:所述缓存的存储空间大小。可选地,所述缓存的存储空间大小可以通过第三预设字段的预设数值进行指示。当然,所述缓存的存储空间大小还可以通过其它方式进行指示,本申请实施例中对此并不作限制。

可选地,当所述缓存信息包括所述缓存类型信息、所述缓存的创建触发指示、所述缓存的存储空间大小中的至少两项时,可以通过上述(a)-(c)部分中记载的相应指示方式的结合,本申请实施例中此处不再赘述。

可选地,若所述缓存信息包括创建缓存指示信息,当然所述缓存信息也可以不包括所述缓存类型信息、所述缓存的创建触发指示、所述缓存的存储空间大小中的任意一项或多项,则所述网元根据所述缓存信息确定所述流表对应的缓存按照预设的缓存类型信息、预设的创建触发指示、预设的存储空间大小中的任意一项或多项。例如:若所述缓存信息包括创建缓存指示信息以及所述缓存类型信息,则所述网元根据所述缓存信息确定所述流表对应的缓存按照所述缓存类型信息、预设的创建触发指示、以及预设的存储空间大小。又例如:若所述缓存信息包括创建缓存指示信息、所述缓存类型信息以及所述缓存的创建触发指示,则所述网元根据所述缓存信息确定所述流表对应的缓存按照所述缓存类型信息、所述缓存的创建触发指示、以及预设的存储空间大小。

可选地,本申请实施例中所述缓存信息可以位于所述流表消息的动作集(actionset)字段;当然,所述缓存信息也可以位于所述流表消息的其它字段,本申请实施例中对此并不作限制。

表1示出本申请实施例中actionset字段新增的字段类型。如表1所示,以下以所述缓存信息位于所述流表消息的actionset字段为例进行说明。

表1示出本申请实施例中actionset字段新增的字段类型

可选地,所述流表消息还可以包括:所述流表的标识和/或所述流表的匹配信息,其中,所述流表的匹配信息用于指示所述流表匹配的数据包的特征信息(例如:包括但不限于所述数据包的源ip地址、源端口号、目的ip地址、目的端口号、协议类型等)。可选地,所述匹配信息可以位于所述流表消息的匹配(match)字段,当然,所述匹配信息还可以位于所述流表消息的其它字段,本申请实施例中对此并不作限制。

当然,所述流表消息还可以包括其它信息,本申请实施例中对此并不作限制。

步骤s202、所述网元接收所述控制器发送的所述流表消息。

本步骤中,网元接收所述控制器发送的所述流表消息,可选地,所述流表消息包括流表匹配的数据包的缓存信息。

步骤s203、所述网元根据所述缓存信息对所述数据包的缓存进行处理。

本步骤中,所述网元根据所述缓存信息(包括但不限于:创建缓存指示信息、修改缓存指示信息、删除缓存指示信息)对所述流表对应的缓存(用于存储所述流表匹配的一个或多个数据包,且所述多个数据包属于同一数据流)进行相应处理(包括但不限于:创建所述缓存、修改所述缓存以及删除所述缓存)。

例如:若所述缓存信息包括创建缓存指示信息以及所述缓存的存储空间大小,则所述网元根据所述创建缓存指示信息以及所述缓存的存储空间大小,创建满足所述存储空间大小的缓存,且所述缓存的缓存类型信息为预设的缓存类型信息以及所述缓存的创建触发指示为预设的创建触发指示,以便于所述网元将所述流表匹配的至少一个数据包按照相应的存储方式存入所述流表对应的缓存。

又例如:若所述缓存信息包括修改缓存指示信息以及修改后的缓存类型信息,则所述网元根据所述修改缓存指示信息以及所述修改后的缓存类型信息,将所述流表对应的缓存原来的缓存类型信息修改为所述修改后的缓存类型信息,以便于所述网元将所述流表匹配的至少一个数据包按照相应的存储方式存入所述流表对应的缓存。

又例如:若所述缓存信息包括删除缓存指示信息,则所述网元根据所述删除缓存指示信息,删除所述流表对应的缓存。

当然,所述缓存信息还可以包括其它类型的信息,对应地,所述网元根据所述缓存信息对所述流表对应的缓存进行相应处理,本申请实施例中对此并不作限制。

步骤s204、所述网元向所述控制器发送流表响应消息。

本实施例中,所述网元在根据所述缓存信息对所述数据包的缓存进行处理后,向所述控制器发送流表响应消息,以便告知所述控制器所述网元根据所述流表消息的处理结果。可选地,若所述网元成功完成对所述数据包的处理,则所述流表响应消息中携带确认信息;若所述网元未成功完成对所述数据包的处理,则所述流表响应消息中携带非确认信息。

步骤s205、所述控制器接收所述网元发送的流表响应消息。

本实施例中,通过控制器向网元发送流表消息;所述流表消息包括流表匹配的数据包的缓存信息;进一步地,所述网元根据接收的所述流表消息中的所述缓存信息,对所述数据包的缓存进行处理,以便于所述网元可将所述流表匹配的至少一个数据包按照相应的存储方式存入所述流表对应的缓存,即所述网元可以将属于同一数据流的多个数据包存入相同的缓存。可见,本申请实施例提供的缓存控制方法实现了openflow协议中能支持基于数据流粒度的缓存处理方式,可以满足移动网络的数据缓存需求。

图3为本申请提供的缓存控制方法实施例二的流程示意图。如图3所示,假设所述控制器向所述网元发送的流表消息中包括:第一流表的标识、第一流表的缓存信息、第二流表的标识以及第二流表的缓存信息;其中,所述第一流表的缓存信息包括:第一流表的创建缓存指示信息以及第一流表的缓存类型信息(例如对接收到的所述第一流表匹配的第一数据包进行存储);所述第二流表的缓存信息包括:第二流表的创建缓存指示信息以及第二流表的缓存类型信息(例如对接收到的所述第二流表匹配的第二数据包进行存储并转发)。

当网元从入口1接收到所述第一流表匹配的一个或多个第一数据包(如第一数据流)时,所述网元根据所述第一流表的缓存信息将所述一个或多个第一数据包存入所述第一流表对应的缓存;当网元从入口2接收到所述第二流表匹配的一个或多个第二数据包(如第二数据流)时,所述网元根据所述第二流表的缓存信息将所述一个或多个第二数据包进行存储并从出口2转发。

图4为本申请提供的缓存控制方法实施例三的流程示意图。在上述实施例的基础上,本申请实施例中,将上述缓存控制方法应用于终端设备接入网络时的附着流程中。如图4所示,本实施例的方法,可以包括:

步骤1:终端设备通过ran-u和控制器给ran-c发送附着请求(attachrequest)消息。

步骤2:ran-c给mme转发附着请求消息。

步骤3:mme对附着请求消息进行身份验证和安全处理(authentication/security)。

步骤4:mme更新归属签约用户服务器(homesubscriberserver,hss)上的位置信息(updatelocation)。

步骤5:mme向gw-c发送会话创建请求(createsessionrequest)消息,会话创建请求消息中携带ran-u的标识。

步骤6:gw-c向控制器发送第一创建流表请求(createflowrequest)消息,第一创建流表请求消息用于指示控制器控制gw-u创建第一下行流表,第一创建流表请求消息中携带gw-u的标识、ran-u的标识(即第一下行流表匹配的数据流的目标网元的标识)以及apn的标识(即第一下行流表匹配的数据流的源网元的标识)。

步骤7:控制器通过openflow协议向gw-u发送第一流表创建消息,第一流表创建消息用于指示gw-u创建到ran-u的第一下行流表。

步骤8:控制器向gw-c返回第一创建流表响应(createflowresponse)消息,第一创建流表响应消息包括流表创建结果。

步骤9:gw-c给mme返回会话创建响应(createsessionresponse)消息。

步骤10:mme向ran-c发送初始上下文建立请求(initialcontextsetuprequest)消息,并携带附着接受(attachaccept)消息。

步骤11:ran-c向控制器发送第二创建流表请求消息,第二创建流表请求消息用于指示控制器控制ran-u创建第二下行流表,第二创建流表请求消息中携带ran-u的标识、gw-u的标识(即第二下行流表匹配的数据流的源网元的标识)、终端设备的标识(即第二下行流表匹配的数据流的目标网元的标识)。

步骤12:控制器通过openflow协议向ran-u发送第二流表创建消息,第二流表创建消息用于指示ran-u创建到终端设备的第二下行流表。可选地,第二流表创建消息可以包括:第二下行流表的标识(如cookie)以及第二下行流表的匹配信息。

考虑到空口传输速率(即ran-u向终端设备发送数据包的速率)可能小于gw-u到ran-u的传输速率(即ran-u接收gw-u发送的数据包的接收速率,大于ran-u向终端设备转发数据包的转发速率),ran-u需要对接收到的数据包进行缓存。可选地,本申请实施例中的第二流表创建消息至少可以通过如下两种可实现方式:

第一种可实现方式:第二流表创建消息中还可以包括第二下行流表的缓存信息。可选地,第二流表创建消息的动作集中包含第二下行流表的缓存信息,其中,第二下行流表的缓存信息可以包括:创建缓存指示信息、缓存的存储空间大小、缓存类型信息以及缓存的创建触发指示。其中,缓存类型信息包括对接收到的数据包进行存储并转发,缓存的创建触发指示包括ran-u的接收速率大于ran-u的转发速率时创建缓存的指示。

第二种可实现方式:第二流表创建消息中不包括第二下行流表的缓存信息(即第二流表创建消息为现有技术中正常的流表消息)。当ran-u检测到接收速率大于转发速率时,ran-u向控制器上报速率检测消息,速率检测消息中携带:第二下行流表的标识以及速率不匹配标识;速率不匹配标识用于指示ran-u的接收速率大于转发速率。进一步地,控制器根据第二下行流表的标识和速率不匹配标识确定ran-u需要创建缓存,并通过openflow协议向ran-u发送第一流表修改消息,第一流表修改消息中可以包括:第二下行流表的标识以及第二下行流表的缓存信息;第二下行流表的缓存信息包括:创建缓存指示信息、缓存的存储空间大小、缓存类型信息以及缓存的创建触发指示;其中,缓存类型信息包括对接收到的数据包进行存储并转发,缓存的创建触发指示包括ran-u在接收到第一流表修改消息时创建缓存的指示。

步骤13:控制器向ran-c返回第二创建流表响应(createflowresponse)消息,第二创建流表响应消息包括流表创建结果。

步骤14:ran-c通过控制器和ran-u给终端设备发送rrc连接重配置(rrcconnectionreconfiguration)消息。

步骤15:终端设备向ran-c返回rrc连接重配置完成(rrcconnectionreconfigurationcomplete)消息。

步骤16:ran-c向mme回复初始上下文建立响应(initialcontextsetupresponse)消息。

步骤17:终端通过ran-u和控制器向ran-c发送直接传输(directtransfer)消息,直接传输消息中包含附着完成消息。

步骤18:ran-c向mme发送附着完成(attachcomplete)消息。

可选地,本实施例中,上述步骤序号的大小并不限定执行顺序的先后,各步骤的执行顺序可以适当调整,本申请实施例中对此并不作限制。

可见,本申请实施例中,实现了在终端设备接入网络时的附着流程中,当ran-u向终端设备转发下行数据的转发速率小于接收下行数据的速率时,ran-u对接收到的下行数据进行基于数据流粒度的缓存方式,从而能够满足移动网络的数据缓存需求。

图5为本申请提供的缓存控制方法实施例四的流程示意图。在上述实施例的基础上,本申请实施例中,将上述缓存控制方法应用于当终端设备处于连接态且位置发生变化时所触发的网络切换流程中。如图5所示,本实施例的方法,可以包括:

注:当ran-c不发生改变时,(a1)和(a2)部分不执行;另外,本实施例中涉及的目标ran-c与源ran-c为同一ran-c,可以不作区分。

步骤1:源ran-c对终端设备进行信号测量。

步骤2:源ran-c根据信号测量的结果确定进行网络切换。

步骤3:源ran-c向目标ran-c发送切换请求(handoverrequest)消息。

步骤4:目标ran-c对终端设备进行接入控制(admissioncontrol),以决策是否允许终端设备接入。

步骤5:目标ran-c给源ran-c回复切换请求确认(handoverrequestack)消息。

步骤6:源ran-c通过控制器和源ran-u向终端设备发送rrc连接重配置消息。

步骤7:源ran-c向控制器发送切换命令(handovercommand),切换命令用于指示控制器切换用户面转发路径。其中,切换命令中携带切换前的源ran-u的标识、切换后的目标ran-u的标识以及终端设备的标识,即通知控制器哪个终端设备从哪个ran-u切换到哪个ran-u。

步骤8:控制器从源ran-u获取序列号状态。可选地,序列号状态可以为pdcp的序列号状态。

步骤9:控制器将序列号状态通知目标ran-u。

步骤10a:控制器通过openflow协议向源ran-u发送第二流表修改消息,第二流表修改消息用于指示源ran-u将源ran-u中的下行流表所匹配数据流的目标网元由终端设备修改为目标ran-u,以便于源ran-u将原来转发至终端设备的数据包都转发至目标ran-u。

步骤10b:控制器通过openflow协议向目标ran-u发送第三流表创建消息、第四流表创建消息以及第五流表创建消息。可选地,第三流表创建消息、第四流表创建消息以及第五流表创建消息也可以为一条流表创建消息,本申请实施例中对此并不作限制。

可选地,第三流表创建消息用于指示ran-u创建第一上行流表(用于转发从终端设备到gw-u的上行数据包),第四流表创建消息用于指示ran-u创建转发流表(用于转发从源ran-u到终端设备的转发数据包),第五流表创建消息用于指示ran-u创建第三下行流表(用于转发从gw-u到终端设备的下行数据包)。可选地,第三流表创建消息可以包括:第一上行流表的标识、第一上行流表的匹配信息、第一上行流表的缓存信息;第四流表创建消息可以包括:转发流表的标识以及转发流表的匹配信息;第五流表创建消息可以包括:第三下行流表的标识、第三下行流表的匹配信息、第三下行流表的缓存信息。

(a)针对第一上行流表:

考虑到若控制器尚未执行下述步骤18(即控制器确定gw-u中的上行流表还是只能匹配从源ran-u转发的数据包,无法匹配目标ran-u转发的数据包),目标ran-u需要对需要发往gw-u的数据包进行缓存,并等待步骤18执行完成后(即控制器确定gw-u中的上行流表能匹配目标ran-u转发的数据包)再将缓存的数据包转发至gw-u。可选地,本申请实施例中的第三流表创建消息至少可以通过如下可实现方式:

第三流表创建消息的动作集中包含第一上行流表的缓存信息,其中,第一上行流表的缓存信息可以包括:创建缓存指示信息、缓存的存储空间大小、缓存类型信息以及缓存的创建触发指示。其中,缓存类型信息包括对接收到的数据包进行存储,缓存的创建触发指示包括目标ran-u的接收速率(即接收第一上行流表匹配的数据包的速率)大于目标ran-u的转发速率(即转发第一上行流表匹配的数据包的速率)时创建缓存的指示,即目标ran-u检测到第一上行流表匹配的数据包到达时创建缓存。

(b)针对转发流表

考虑到在目标ran-u接收到源ran-u发送的数据包时,控制器还未收到下述步骤12中的rrc连接重配置完成消息(即控制器确定目标ran-u与终端设备之间的空口连接可能还未建立),或者由于空口传输速率(即目标ran-u向终端设备发送数据包的速率)可能小于源ran-u到目标ran-u的传输速率(即目标ran-u接收源ran-u发送的数据包的接收速率,大于目标ran-u向终端设备转发数据包的转发速率),目标ran-u需要对接收到的数据包进行缓存。可选地,本申请实施例中的第四流表创建消息至少可以通过如下两种可实现方式:

第一种可实现方式:第四流表创建消息中还可以包括转发流表的缓存信息。可选地,第四流表创建消息的动作集中包含转发流表的缓存信息,其中,转发流表的缓存信息可以包括:创建缓存指示信息、缓存的存储空间大小、缓存类型信息以及缓存的创建触发指示。a)若控制器已收到下述步骤12中的rrc连接重配置完成消息(即控制器确定目标ran-u与终端设备之间的空口连接已建立),缓存类型信息包括对接收到的数据包进行存储并转发,缓存的创建触发指示包括目标ran-u的接收速率大于目标ran-u的转发速率时创建缓存的指示。b)若控制器还未收到下述步骤12中的rrc连接重配置完成消息(即控制器确定目标ran-u与终端设备之间的空口连接可能还未建立),缓存类型信息包括对接收到的数据包进行存储,缓存的创建触发指示包括目标ran-u的接收速率大于目标ran-u的转发速率时创建缓存的指示。

第二种可实现方式:第四流表创建消息中不包括转发流表的缓存信息(即第四流表创建消息为现有技术中正常的流表消息)。当目标ran-u检测到接收速率大于转发速率时,目标ran-u向控制器上报速率检测消息,速率检测消息中携带:转发流表的标识以及速率不匹配标识;速率不匹配标识用于指示目标ran-u的接收速率大于转发速率。进一步地,控制器根据流表的标识和速率不匹配标识确定目标ran-u需要创建缓存,并通过openflow协议向目标ran-u发送第三流表修改消息,第三流表修改消息中可以包括:转发流表的标识以及转发流表的缓存信息,缓存信息可以包括:创建缓存指示信息、缓存类型信息以及缓存的创建触发指示。a)若控制器已收到下述步骤12中的rrc连接重配置完成消息(即控制器确定目标ran-u与终端设备之间的空口连接已建立),缓存类型信息包括对接收到的数据包进行存储并转发,缓存的创建触发指示包括目标ran-u在接收到第三流表修改消息时创建缓存的指示。b)若控制器还未收到下述步骤12中的rrc连接重配置完成消息(即控制器确定目标ran-u与终端设备之间的空口连接可能还未建立),缓存类型信息包括对接收到的数据包进行存储,缓存的创建触发指示包括目标ran-u在接收到第三流表修改消息时创建缓存的指示。

(c)针对第三下行流表

为了保证目标ran-u优先转发源ran-u到终端设备的数据包,其次转发gw-u到终端设备的数据包,考虑到在目标ran-u接收到gw-u发送的数据包时,控制器可能还未收到下述步骤29中的通知消息(即控制器确定目标ran-u还未将源ran-u发送的数据包转发完成),或者由于空口传输速率(即目标ran-u向终端设备发送数据包的速率)可能小于gw-u到目标ran-u的传输速率(即目标ran-u接收gw-u发送的数据包的接收速率,大于目标ran-u向终端设备转发数据包的转发速率),目标ran-u需要对接收到的数据包进行缓存。可选地,本申请实施例中的第五流表创建消息至少可以通过如下可实现方式:

第五流表创建消息的动作集中包含第三下行流表的缓存信息,第三下行流表的缓存信息可以包括:创建缓存指示信息、缓存的存储空间大小、缓存类型信息以及缓存的创建触发指示。a)若控制器已收到下述步骤29中的通知消息(即控制器确定目标ran-u已将源ran-u发送的数据包转发完成),缓存类型信息包括对接收到的数据包进行存储并转发,缓存的创建触发指示包括目标ran-u的接收速率大于目标ran-u的转发速率时创建缓存的指示。b)若控制器还未收到下述步骤29中的通知消息(即控制器确定目标ran-u还未将源ran-u发送的数据包转发完成),缓存类型信息包括对接收到的数据包进行存储,缓存的创建触发指示包括目标ran-u的接收速率大于目标ran-u的转发速率时创建缓存的指示。

步骤11:由于上步骤10a中对源ran-u中的下行流表所匹配数据流的目标网元由终端设备修改为目标ran-u,因此,本步骤中源ran-u将原来转发至终端设备的数据包都转发至目标ran-u。

步骤12:终端通过目标ran-u和控制器向目标ran-c发送rrc连接重配置完成消息,用于指示空口连接已完成建立。

步骤13:当控制器在执行上述步骤10b且尚未收到步骤12中的rrc连接重配置完成消息时,上述步骤10b中第四流表创建消息的缓存类型信息包括对接收到的数据包进行存储,因此,在控制器接收到步骤12中的rrc连接重配置完成消息后,控制器向目标ran-u发送第四流表修改消息,第四流表修改消息中可以包括:转发流表的标识、修改缓存指示信息以及缓存类型信息;缓存类型信息包括对接收到的数据包进行存储并转发,以便于目标ran-u将源ran-u发送的数据包顺利地转发至终端设备。

可选地,当控制器在执行上述步骤10b且收到步骤12中的rrc连接重配置完成消息时,则无需执行步骤13。

步骤14:目标ran-u根据转发流表和/或第三下行流表向终端设备发送下行数据;另外,目标ran-u根据第一上行流表将终端设备发送的上行数据包转发至gw-u。

步骤15:目标ran-c接收到步骤12中的rrc连接重配置完成消息后,向mme发送路径切换请求(pathswitchrequest)消息。

步骤16:mme向gw-c发送第一修改承载请求(modifybearerrequest)消息。

步骤17:gw-c向控制器发送第一修改流表请求(modifyflowrequest)消息,第一修改流表请求消息用于指示控制器修改gw-u的上下行流表,第一修改流表请求消息中携带gw-u的标识、目标ran-u的标识(即gw-u中下行流表匹配的数据流的目标网元的标识)、终端设备的标识以及apn的标识(用来识别gw-u中上行流表匹配的数据流的目标网元)。

步骤18:控制器通过openflow协议向gw-u发送第五流表修改消息,第五流表修改消息用于指示gw-u修改gw-u中的上下行流表,使gw-u能够正确地转发由目标ran-u发送的数据包,并且可以正确地向目标ran-u发送数据包。

步骤19a:执行完步骤18后,控制器通过openflow协议向gw-u发送包发出(packetout)消息,并通过gw-u转发给源ran-u;其中,packetout消息中携带结束标识(endmarker)数据包,endmarker数据包用于指示gw-u到源ran-u的数据包已发送完毕。

步骤19b:执行完步骤18后,若在上述步骤10b中第三流表创建消息的缓存类型信息包括对接收到的数据包进行存储,则控制器通过openflow协议向目标ran-u发送第六流表修改消息,第六流表修改消息中可以包括:第一上行流表的标识、修改缓存指示信息以及缓存类型信息;缓存类型信息包括对接收到的数据包进行存储并转发,以便于目标ran-u向gw-u发送数据包。

步骤19b-1:若执行了上述步骤19b,则当步骤10b中创建的第一上行流表对应的缓存为空或者创建第一上行流表对应的缓存的动作尚未触发时,目标ran-u向控制器上报第一数据转发完成(dataforwardingcomplete)消息,第一数据转发完成消息中携带第一上行流表的标识。

步骤19b-2:若控制器收到步骤19b-1中目标ran-u上报的第一数据转发完成消息,则通过openflow协议向目标ran-u发送第七流表修改消息,第七流表修改消息中包括:第一上行流表的标识、匹配信息以及删除缓存指示信息。其中,删除缓存指示信息用于指示目标ran-u删除第一上行流表的缓存。

步骤20:源ran-u将gw-u发送的结束标识数据包转发到目标ran-u。

步骤21:当执行了上述步骤20且源ran-u中的下行流表对应的缓存为空,则源ran-u向控制器发送第二数据转发完成消息,用于通知控制器源ran-u到目标ran-u的数据包转发完成,其中,第二数据转发完成消息中携带源ran-u中的下行流表的标识(如cookie信息)。

步骤22:控制器收到步骤21中的第二数据转发完成消息后,通过openflow协议向源ran-u发送第一流表删除消息(用于指示源ran-u删除源ran-u中的下行流表),第一流表删除消息中包括:源ran-u中的下行流表的标识。

步骤23:控制器向gw-c返回第一修改流表响应(modifyflowresponse)消息。

步骤24:gw-c向mme返回第一修改承载响应(modifybearerresponse)消息。

步骤25:mme向目标ran-c返回路径切换请求确认(pathswitchrequestack)消息。

步骤26:目标ran-c向源ran-c发送终端设备上下文释放(uecontextrelease)消息,用于指示源ran-c释放终端设备的上下文信息。

步骤27:源ran-c向控制器发送资源释放(resourcerelease)消息,资源释放消息中携带终端设备的标识和源ran-u的标识,用于指示控制器释放对应ran-u上的对应终端设备的资源。

步骤28:控制器根据终端设备的标识和源ran-u的标识,确定对应的流表,并通过openflow协议向源ran-u发送第二流表删除消息(用于指示源ran-u删除对应的流表)。

步骤29:当目标ran-u检测到步骤10b中创建的转发流表对应的缓存(用来缓存源ran-u发送的数据包)中的数据包已转发完毕(即转发流表对应的缓存为空且已收到endmarker数据包)时,目标ran-u向控制器发送第三数据转发完成消息,第三数据转发完成消息中携带转发流表的标识。

步骤30:当控制器收到步骤29中的第三数据转发完成消息后,控制器确定目标ran-u已将源ran-u发送的数据包转发完成,从而目标ran-u可以开始转发gw-u发送的数据包了。若步骤10b中创建的第三下行流表对应的缓存的缓存类型信息包括对接收到的数据包进行存储并转发,则无需执行本步骤;若步骤10b中创建的第三下行流表对应的缓存的缓存类型信息包括对接收到的数据包进行存储,则需要通过openflow协议向目标ran-u发送第八流表修改消息,第八流表修改消息中可以包括:第三下行流表的标识、修改缓存指示信息以及缓存类型信息;缓存类型信息包括对接收到的数据包进行存储并转发,以便于目标ran-u开始转发gw-u发送的数据包。

步骤31:在收到步骤29中的第三数据转发完成消息后,控制器通过openflow协议向目标ran-u发送第三流表删除消息,第三流表删除消息中携带所述转发流表的标识,用于指示目标ran-u删除所述转发流表。

可选地,本实施例中,上述步骤序号的大小并不限定执行顺序的先后,各步骤的执行顺序可以适当调整,本申请实施例中对此并不作限制。

可见,本申请实施例中,实现了在网络切换流程中,当终端设备的空口连接已经释放且目标ran-u接收到需要发往终端设备的下行数据时,目标ran-u无法继续转发下行数据,因此,目标ran-u对下行数据进行基于数据流粒度的缓存方式、当目标ran-u向终端设备转发下行数据的转发速率小于接收下行数据的速率时,目标ran-u对接收到的下行数据进行基于数据流粒度的缓存方式、以及当终端设备进行网络切换时,目标ran-u需要分别接收源ran-u和gw-u发送的下行数据,为了保证优先转发源ran-u发送的下行数据,ran-u将gw-u发送的下行数据进行基于数据流粒度的缓存方式,从而能够满足移动网络的数据缓存需求。

图6为本申请提供的缓存控制方法实施例五的流程示意图。在上述实施例的基础上,本申请实施例中,将上述缓存控制方法应用于当终端设备在一段时间内没有发生业务时,所触发的s1连接释放流程中。如图6所示,本实施例的方法,可以包括:

步骤1:ran-c通过控制器和ran-u向终端设备发送rrc连接释放消息(用于指示终端设备释放rrc连接)、以及ran-c通过s1-ap接口向mme发送终端设备的s1上下文释放请求(s1uecontextreleaserequest)消息。

步骤2:mme向gw-c发送释放接入承载请求(releaseaccessbearersrequest)消息,用于请求gw-c释放所述终端设备的s1连接。

步骤3:gw-c向控制器发送修改下行连接请求(modifydownlinkrequest)消息,下行连接请求消息中携带gw-u的标识、ran-u的标识以及终端设备的标识;即用于通知控制器修改对应终端设备从gw-u到ran-u的第四下行流表。

步骤4:控制器根据下行连接请求消息确定第四下行流表,并通过openflow协议向gw-u发送第九流表修改消息,第九流表修改消息中可以包括:第四下行流表的标识、匹配信息以及缓存信息,缓存信息可以包括:创建缓存指示信息、缓存类型信息以及缓存的创建触发指示;其中,缓存类型信息包括对接收到的数据包进行存储,缓存的创建触发指示包括gw-u的接收速率(即接收第四下行流表匹配的数据包的速率)大于gw-u的转发速率(即转发第四下行流表匹配的数据包的速率)时创建缓存的指示。

步骤5:控制器向gw-c回复修改下行连接响应(modifydownlinkresponse)消息。

步骤6:gw-c向mme回复释放接入承载响应(releaseaccessbearerresponse)消息。

步骤7:mme向ran-c发送终端设备的s1上下文释放命令(s1uecontextreleasecommand)消息,用于释放s1连接。

步骤8:如果rrc连接还未释放,则ran-c向终端设备发送rrc连接释放(rrcconnectionrelease)消息。

步骤9:ran-c收到步骤7中的终端设备的s1上下文释放命令消息后,向控制器发送删除流表请求(deleteflowrequest)消息,其中,删除流表请求消息中携带ran-u的标识和终端设备的标识。

步骤10:控制器根据删除流表请求消息中的ran-u的标识和终端设备的标识,确定对应的上下行流表,并通过openflow协议向ran-u发送第四流表删除消息(用于指示ran-u删除对应的上下行流表以及上下行流表对应的缓存)。

步骤11:控制器向ran-c返回删除流表响应(deleteflowresponse)消息。

步骤12:ran-c向mme发送终端设备的s1上下文释放完成(s1uecontextreleasecomplete)消息。

可选地,本实施例中,上述步骤序号的大小并不限定执行顺序的先后,各步骤的执行顺序可以适当调整,本申请实施例中对此并不作限制。

可见,本申请实施例中,实现了在s1连接释放流程中,当终端设备处于空闲态(例如空口连接和s1连接已经释放)且gw-u接收到需要转发至终端设备的下行数据时,gw-u无法继续转发下行数据,因此,gw-u对下行数据进行基于数据流粒度的缓存方式,以等待空口连接和s1连接的建立,从而能够满足移动网络的数据缓存需求。

图7为本申请提供的缓存控制方法实施例六的流程示意图。在上述实施例的基础上,本申请实施例中,将上述缓存控制方法应用于当终端设备处于空闲态且欲发起业务时,所触发的服务请求流程中。如图7所示,本实施例的方法,可以包括:

步骤1:终端设备向mme发送服务请求(servicerequest)消息。可选地,服务请求消息可以携带于非接入层(non-access-stratum,nas)消息中。

步骤2:mme对ue的服务请求消息进行身份验证和安全处理。

步骤3:mme向ran-c发送初始上下文建立请求(initialcontextsetuprequest)消息。可选地,mme可以通过s1-ap接口发送初始上下文建立请求消息。

步骤4:ran-c向控制器发送第三创建流表请求消息,第三创建流表请求消息用于指示控制器控制ran-u创建第五下行流表,第三创建流表请求消息中携带ran-u的标识、gw-u的标识(即第五下行流表匹配的数据流的源网元的标识)以及终端设备的标识(即第五下行流表匹配的数据流的目标网元的标识)。

步骤5:控制器通过openflow协议向ran-u发送第六流表创建消息,第六流表创建消息用于指示ran-u创建到终端设备的第五下行流表。可选地,第六流表创建消息可以包括:第五下行流表的标识以及匹配信息。

考虑到空口传输速率(即ran-u向终端设备发送数据包的速率)可能小于gw-u到ran-u的传输速率(即ran-u接收gw-u发送的数据包的接收速率,大于ran-u向终端设备转发数据包的转发速率),ran-u需要对接收到的数据包进行缓存。可选地,本申请实施例中的第六流表创建消息至少可以通过如下两种可实现方式:

第一种可实现方式:第六流表创建消息中还可以包括第五下行流表的缓存信息。可选地,第六流表创建消息的动作集中包含第五下行流表的缓存信息,其中,第五下行流表的缓存信息可以包括:创建缓存指示信息、缓存的存储空间大小、缓存类型信息以及缓存的创建触发指示。其中,缓存类型信息包括对接收到的数据包进行存储并转发,缓存的创建触发指示包括ran-u的接收速率大于ran-u的转发速率时创建缓存的指示。

第二种可实现方式:第六流表创建消息中不包括第五下行流表的缓存信息(即第六流表创建消息为现有技术中正常的流表消息)。当ran-u检测到接收速率大于转发速率时,ran-u向控制器上报速率检测消息,速率检测消息中携带:第五下行流表的标识以及速率不匹配标识;速率不匹配标识用于指示ran-u的接收速率大于转发速率。进一步地,控制器根据第五下行流表的标识和速率不匹配标识确定ran-u需要创建缓存,并通过openflow协议向ran-u发送第十流表修改消息,第十流表修改消息中可以包括:第五下行流表的标识以及第五下行流表的缓存信息;第五下行流表的缓存信息包括:创建缓存指示信息、缓存的存储空间大小、缓存类型信息以及缓存的创建触发指示;其中,缓存类型信息包括对接收到的数据包进行存储并转发,缓存的创建触发指示包括ran-u在接收到第九流表修改消息时创建缓存的指示。

步骤6:控制器向ran-c返回第三创建流表响应消息,第三创建流表响应消息包括流表创建结果。

步骤7:ran-c通过控制器和ran-u给终端设备发送rrc连接重配置消息。

步骤8:终端设备向ran-c返回rrc连接重配置完成消息。

步骤9:ran-c向mme发送初始上下文建立完成(initialcontextsetupcomplete)消息。

步骤10:mme向gw-c发送第二修改承载请求消息。

步骤11:gw-c向控制器发送第二修改流表请求(modifyflowrequest)消息,第二修改流表请求消息用于指示控制器修改gw-u中的第六下行流表,第二修改流表请求消息中携带gw-u的标识、ran-u的标识、终端设备的标识以及apn的标识。

步骤12:控制器通过openflow协议向gw-u发送第十一流表修改消息,第十一流表修改消息中可以包括:第六下行流表的标识、匹配信息以及缓存信息;第六下行流表的缓存信息可以包括:修改缓存指示信息以及缓存类型信息;缓存类型信息包括对接收到的数据包进行存储并转发,以便gw-u向ran-u发送数据包。

步骤13:控制器向gw-c返回第二修改流表响应(modifyflowresponse)消息。

步骤14:gw-c向mme返回第二修改承载响应消息。

步骤15:当gw-u检测到在s1连接释放流程中创建的第六下行流表对应的缓存(用于缓存到终端设备的下行数据包)为空时,gw-u向控制器发送第四数据转发完成消息,其中,第四数据转发完成消息中携带第六下行流表的标识。

步骤16:控制器在收到步骤15中的第四数据转发完成消息后,通过openflow协议向gw-u发送第十二流表修改消息,第十二流表修改消息中可以包括:第六下行流表的标识、匹配信息以及删除缓存指示信息。其中,删除缓存指示信息用于指示gw-u删除第六下行流表对应的缓存。

可选地,本实施例中,上述步骤序号的大小并不限定执行顺序的先后,各步骤的执行顺序可以适当调整,本申请实施例中对此并不作限制。

可见,本申请实施例中,实现了在服务请求流程中,当ran-u向终端设备转发下行数据的转发速率小于接收下行数据的速率时,ran-u对接收到的下行数据进行基于数据流粒度的缓存方式,从而能够满足移动网络的数据缓存需求。

当然,上述缓存控制方法还可应用于其它情形中,本申请实施例中对此并不作限制。

图8为本申请网元实施例一的结构示意图。如图8所示,本实施例提供的网元80,可以包括:接收模块801、处理模块802以及发送模块803。

其中,接收模块801,用于接收控制器发送的流表消息;所述流表消息包括流表匹配的数据包的缓存信息;

处理模块802,用于根据所述缓存信息对所述数据包的缓存进行处理;

发送模块803,用于向所述控制器发送流表响应消息。

可选地,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

可选地,所述缓存信息包括缓存类型信息,所述缓存类型信息用于指示所述数据包的存储方式。

可选地,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

可选地,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

可选地,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

可选地,所述缓存信息包括:所述缓存的存储空间大小。

可选地,所述缓存信息位于所述流表消息的动作集字段。

本实施例的网元,可以用于执行本申请上述缓存控制方法实施例一至实施例六中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图9为本申请网元实施例二的结构示意图。如图9所示,本实施例提供的网元90,可以包括:存储器901、处理器902、收发器903和至少一个通信总线904。

其中,通信总线904用于实现元件之间的通信连接。存储器901可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,存储器901中可以存储各种程序指令,用于完成各种处理功能以及实现本申请上述实施例中的方法步骤。收发器903可以为相应的具有通信功能的输出/输出接口。收发器903用于接收控制器发送的流表消息;所述流表消息包括流表匹配的数据包的缓存信息。处理器902用于调用所述存储器901中的程序指令执行下述步骤:根据所述缓存信息对所述数据包的缓存进行处理。收发器903还用于向所述控制器发送流表响应消息。

可选地,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

可选地,所述缓存信息包括缓存类型信息,所述缓存类型信息用于指示所述数据包的存储方式。

可选地,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

可选地,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

可选地,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

可选地,所述缓存信息包括:所述缓存的存储空间大小。

可选地,所述缓存信息位于所述流表消息的动作集字段。

本实施例的网元,可以用于执行本申请上述缓存控制方法实施例一至实施例六中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图10为本申请控制器实施例一的结构示意图。如图10所示,本实施例提供的控制器100,可以包括:发送块1001以及接收模块1002。

其中,发送模块1001,用于向网元发送流表消息;所述流表消息包括流表匹配的数据包的缓存信息;

接收模块1002,用于接收所述网元发送的流表响应消息。

可选地,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

可选地,所述缓存信息包括缓存类型信息,缓存类型信息用于指示所述数据包的存储方式。

可选地,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

可选地,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

可选地,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

可选地,所述缓存信息包括:所述缓存的存储空间大小。

可选地,所述缓存信息位于所述流表消息的动作集字段。

本实施例的控制器,可以用于执行本申请上述缓存控制方法实施例一至实施例六中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图11为本申请控制器实施例二的结构示意图。如图11所示,本实施例提供的控制器110,可以包括:存储器1101、处理器1102、收发器1103和至少一个通信总线1104。

其中,通信总线1104用于实现元件之间的通信连接。存储器1101可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,存储器1101中可以存储各种程序指令,用于完成各种处理功能以及实现本申请上述实施例中的方法步骤。处理器1102用于调用存储器1101中的程序指令。收发器1103可以为相应的具有通信功能的输出/输出接口。收发器1103用于向网元发送流表消息;所述流表消息包括流表匹配的数据包的缓存信息;收发器1103还用于接收所述网元发送的流表响应消息。

可选地,所述缓存信息包括创建缓存指示信息或修改缓存指示信息或删除缓存指示信息。

可选地,所述缓存信息包括缓存类型信息,缓存类型信息用于指示所述数据包的存储方式。

可选地,所述缓存类型信息包括:对接收到的数据包进行存储、或对接收到的数据包进行存储并转发。

可选地,所述缓存信息包括:缓存的创建触发指示,其中,所述缓存的创建触发指示用于指示所述缓存的创建时机。

可选地,所述缓存的创建触发指示包括:所述网元在接收到所述流表消息时创建所述缓存的指示,或者所述网元的接收速率大于所述网元的转发速率时创建所述缓存的指示。

可选地,所述缓存信息包括:所述缓存的存储空间大小。

可选地,所述缓存信息位于所述流表消息的动作集字段。

本实施例的控制器,可以用于执行本申请上述缓存控制方法实施例一至实施例六中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

在上述各实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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