一种数据路由的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种数据路由的方法及装置。
背景技术
在固定或移动宽带接入领域以及数据中心应用中,存在很多基于传输层到应用层的增值业务设备,如防病毒、防火墙、应用缓存和加速、网页(web)优化、网络地址转换(Network Address Translation,NAT)、家庭控制等服务功能(Service Function,SF)的设备。图1是服务功能的设备串接的示意图,其中,用户接入设备可以是移动宽带的GPRS网关支持节点(Gateway GPRS Support Node,GGSN;GPRS,General Packet Radio System,通用分组无线系统)或分组数据网网关(Packet Data Network Gateway,PGW),或者是固定宽带的宽带网络网关(Broadband Network Gateway,BNG)。如图1所示,用户接入设备通过Gi接口与Gi-LAN(Local Area Network,局域网)连接。实际应用中,用户可能仅需要使用部分服务功能,例如,部分用户签约了防病毒的服务功能,部分用户需要使用NAT的服务功能。串行组网方式使得所有的数据流都需要流经串接的各个服务功能的设备,对服务功能的设备的处理容量需求增大,且增加了不必要的网络设备投资,此外,在串行组网方式中,串接的某个服务功能的设备故障将导致整体数据流中断和故障。
为解决服务功能的设备串接存在的问题,服务功能链(也称业务链)的概念被提出,服务功能链是指某个数据流所需经过的各个服务功能以及经过各个服务功能的顺序。例如,防病毒、防火墙、NAT可以为一个服务功能链;应用缓存和加速、防火墙、NAT也可以为一个服务功能链;防火墙、NAT也可以为一个服务功能链。对应不同的服务功能链的数据流只需流经对应的服务功能即可。
图2是基于服务功能链的网络架构的示意图。如图2所示,该网络架构包括控制面设备、流分类器(Traffic Classifier,TC)、服务功能转发(Service Function Forward,SFF)设备以及各服务功能,如SF1、SF2、SF3和SF4。数据流可能只需要经过其中的部分服务功能,如只经过SF1、SF3和SF4。其中,流分类器也可以称为分类器。为了负载均衡以及安全性考虑,通常对同一个服务功能部署多台设备,如分别对各个服务功能部署三台设备,其中,各个服务功能中部署的设备称为服务功能实例,例如SF1.1。
如图2所示的网络架构中,控制面设备为数据流分配服务功能链标识,并向流分类器通知该服务功能链标识,其中,服务功能链标识用于标识数据流对应的服务功能链。流分类器在数据流中增加该服务功能链标识后,将数据流发送到Gi-LAN中的服务功能转发设备。服务功能转发设备根据数据流中的服务功能链标识路由数据流。服务功能转发设备在路由数据流的过程中,需要在组成服务功能链的各个服务功能所对应的多个服务功能实例中选择一个服务功能实例。在各个服务功能中选择的服务功能实例构成该数据流的服务功能实例序列。根据数据流的处理要求,同一数据流的所有数据包必须经过相同的服务功能实例序列。并且,当上行数据流的服务功能链与其对应的下行数据流的服务功能链包含相同的服务功能时,上行数据流与下行数据流在经过该相同的服务功能时,需选择同一个服务功能实例。
现有技术中,服务功能转发设备每收到一个数据包,均需要根据该数据包的五元组检索其服务功能实例序列,极大的降低了数据包的转发效率。
发明内容
本发明实施例提供一种数据路由的方法及装置,用以解决每个数据包均需要根据该数据包所属的数据流的五元组检索服务功能实例序列,极大降低数据包转发效率的问题。
本发明实施例提供的具体技术方案如下:
第一方面,本发明实施例提供了一种数据路由的方法,包括:
流分类器接收数据包,所述数据包属于第一数据流;
所述流分类器为所述第一数据流分配第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流;
所述流分类器在所述数据包中携带所述第一数据路由标识;
所述流分类器向服务功能转发设备发送所述数据包。
第二方面,本发明实施例提供了一种数据路由的方法,包括:
服务功能转发设备接收数据包,所述数据包中包含所述数据包所属的第一数据流的第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流;
所述服务功能转发设备根据所述第一数据路由标识确定所述第一数据流的服务功能链,并根据所述服务功能链确定所述第一数据流的服务功能实例序列;
所述服务功能转发设备根据所述服务功能实例序列转发所述数据包。
第三方面,本发明实施例提供了一种数据路由的方法,包括:
控制面设备确定第一数据流的第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流;
所述控制面设备将所述第一数据流与所述第一数据路由标识的对应关系发送给流分类器。
第四方面,本发明实施例提供了一种数据路由的装置,包括:处理器和网络接口,所述网络接口,用于接收数据包,所述数据包属于第一数据流;所述处理器,用于为所述第一数据流分配第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流,以及用于在所述数据包中携带所述第一数据路由标识;所述网络接口还用于向服务功能转发设备发送所述数据包。
第五方面,本发明实施例提供了一种数据路由的装置,包括:处理器和网络接口,所述网络接口,用于接收数据包,所述数据包中包含所述数据包所属的第一数据流的第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流;所述处理器,用于根据所述第一数据路由标识确定所述第一数据流的服务功能链,并根据所述服务功能链确定所述第一数据流的服务功能实例序列;所述网络接口还用于根据所述服务功能实例序列转发所述数据包。
第六方面,本发明实施例提供了一种数据路由的装置,包括:处理器和网络接口,所述处理器,用于确定第一数据流的第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流;所述网络接口,用于将所述第一数据流与所述第一数据路由标识的对应关系发送给流分类器。
第七方面,本发明实施例提供了一种数据路由的装置,包括:接收单元,用于接收数据包,所述数据包属于第一数据流;处理单元,用于为所述第一数据流分配第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流;以及用于在所述数据包中携带所述第一数据路由标识;发送单元,用于向服务功能转发设备发送所述数据包。
第八方面,本发明实施例提供了一种数据路由的装置,包括:接收单元,用于接收数据包,所述数据包中包含所述数据包所属的第一数据流的第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流;处理单元,用于根据所述第一数据路由标识确定所述第一数据流的服务功能链,并根据所述服务功能链确定所述第一数据流的服务功能实例序列;发送单元,用于根据所述服务功能实例序列转发所述数据包。
第九方面,本发明实施例提供了一种数据路由的装置,包括:处理单元,用于确定第一数据流的第一数据路由标识,所述第一数据路由标识用于标识所述第一数据流的服务功能链以及用于标识所述第一数据流;发送单元,用于将所述第一数据流与所述第一数据路由标识的对应关系发送给流分类器。
基于上述技术方案,本发明实施例中,流分类器在数据包中携带该数据包所属数据流的数据路由标识,该数据路由标识用于标识数据流的服务功能链以及用于标识该数据流,服务功能转发设备在接收数据包后,能够根据数据包中的数据路由标识确定服务功能实例序列,避免了采用五元组进行匹配,提高了数据包转发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为服务功能的设备串接的示意图;
图2为基于服务功能链的网络架构的示意图;
图3为本发明第一实施例提供的数据路由的方法的流程图;
图4为本发明第二实施例提供的数据路由的方法的流程图;
图5a为本发明第三实施例提供的数据路由的系统的示意图;
图5b为本发明第四实施例提供的数据路由的系统的示意图;
图6为本发明第五实施例提供的数据路由的装置的结构示意图;
图7为本发明第六实施例提供的数据路由的装置的结构示意图;
图8为本发明第七实施例提供的数据路由的装置的结构示意图;
图9为本发明第八实施例提供的数据路由的装置的结构示意图;
图10为本发明第九实施例提供的数据路由的装置的结构示意图;
图11为本发明第十实施例提供的数据路由的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例的应用场景可以为:由控制面设备、一个或多个流分类器、服务功能转发设备和各个服务功能对应的服务功能实例组成的网络,但不限于此。
本发明实施例中,流分类器可以是独立的设备,也可以是集成在PGW、策略控制和计费规则功能(Policy Control and Charging Rules Function,PCRF)实体或数据流探测功能(Traffic Detection Function,TDF)实体等网络设备中。
图3为本发明第一实施例提供的数据路由的方法的流程图。如图3所示,本实施例的方法包括:
301:流分类器接收数据包,该数据包属于第一数据流。
302:流分类器为第一数据流分配第一数据路由标识,第一数据路由标识用于标识第一数据流的服务功能链以及用于标识该第一数据流。
可选的,流分类器为第一数据流分配第一数据路由标识,包括但不限于以下几种实现方式:
第一种方式:流分类器接收的数据包中包含第一数据流的第一服务功能链标识,第一服务功能链标识用于标识第一数据流的服务功能链。可选的,第一服务功能链标识可以是由第一数据流的服务功能链中各个服务功能的标识组成的,也可以是由第一数据流的服务功能链中各个服务功能的字符串信息组成的,第一服务功能链标识的实现形式不受限制,仅需能够唯一确定一个服务功能链即可。流分类器获取第一服务功能链标识与多个数据路由标识之间的对应关系,例如,流分类器接收控制面设备下发的策略与计费控制(Policy and Charging Control,PCC)规则或应用探测控制(Application DetectionControl,ADC)规则,下发的规则中包含第一服务功能链标识与多个数据路由标识之间的对应关系。流分类器根据第一服务功能链标识与多个数据路由标识之间的对应关系,从该多个数据路由标识中为该第一数据流分配第一数据路由标识,分配的第一数据路由标识为该多个数据路由标识中未分配给其它数据流的数据路由标识。
第二种方式:流分类器根据第一数据流与第一数据路由标识的对应关系,为第一数据流分配第一数据路由标识,其中,第一数据流与第一数据路由标识的对应关系是由控制面设备发送给所述流分类器的。
第三种方式:流分类器为第一数据流随机分配第一数据路由标识。
可选的,在第一、第三种方式中,流分类器在为第一数据流分配第一数据路由标识之后,建立第一数据流与第一数据路由标识之间的对应关系,以使得后续接收到属于第一数据流的数据包之后直接查询该对应关系。例如,建立第一数据流的五元组与第一数据路由标识之间的对应关系。
303:流分类器在数据包中携带第一数据路由标识。
304:流分类器向服务功能转发设备发送数据包。
可选的,流分类器向服务功能转发设备发送数据包之前,还确定第二数据流的第二数据路由标识,该第二数据流为第一数据流的相反方向的数据流,第二数据路由标识用于标识第二数据流的服务功能链以及用于标识第二数据流;流分类器除在数据包中携带第一数据路由标识外,还在数据包中携带指示信息,该指示信息用于指示第二数据路由标识。
可选的,流分类器确定第二数据流的第二数据路由标识,包括但不限于以下两种实现方式:
第一种方式:流分类器确定第二数据流的第二服务功能链标识,根据该第二服务功能链标识为该第二数据流分配第二数据路由标识,其中,第二服务功能链标识用于标识第二数据流的服务功能链。
第二种方式:流分类器根据第二数据流与第二数据路由标识的对应关系,确定第二数据路由标识,该第二数据路由标识是流分类器在收到第二数据流时为第二数据流分配的。
可选的,流分类器查找保存的数据流与数据路由标识之间的对应关系,若该对应关系中存在第二数据流的第二数据路由标识,则流分类器直接从该对应关系中获取该第二数据流的第二数据路由标识;若该对应关系中不存在第二数据流的第二数据路由标识,流分类器根据该第二数据流的第二服务功能链标识为该第二数据流分配第二数据路由标识,并保存第二数据流与第二数据路由标识之间的对应关系。其中,流分类器根据第二数据流的第二服务功能链标识为第二数据流分配第二数据路由标识的过程,与流分类器根据第一数据流的第一服务功能链标识为第一数据流分配第一数据路由标识的过程相似,可以参考步骤302中的详细描述,此处不再赘述。
305:服务功能转发设备接收数据包,该数据包中包含该数据包所属的第一数据流的第一数据路由标识,该第一数据路由标识用于标识该第一数据流的服务功能链以及用于标识该第一数据流。
306:服务功能转发设备根据第一数据路由标识确定第一数据流的服务功能链,并根据该服务功能链确定该第一数据流的服务功能实例序列。
可选的,服务功能转发设备本地保存第一服务功能链标识与第一数据路由标识以及服务功能链之间的对应关系,该对应关系可以是控制面设备配置给服务功能转发设备的,也可以是由其它功能设备转发给该服务功能转发设备的。
可选的,服务功能转发设备确定第一数据路由标识所标识的服务功能链,并根据第一数据路由标识对第一数据流的标识作用,按照该服务功能链中各服务功能的先后顺序,依次为该服务功能链中的各个服务功能选择对应的服务功能实例,所选择的各个服务功能实例组成该第一数据流的服务功能实例序列。
可选的,服务功能转发设备还保存第一数据路由标识与该第一数据流的服务功能实例序列之间的对应关系,以使得后续接收到属于第一数据流的数据包之后,直接根据该数据包中携带的第一数据路由标识查找该对应关系,获取该第一数据路由标识对应的服务功能实例序列,从而避免了每次根据数据包中的五元组检索对应的服务功能实例序列,提高数据转发效率。
可选的,数据包中还包含指示信息,该指示信息用于指示第二数据流的第二数据路由标识,该第二数据流为第一数据流的相反方向的数据流,该第二数据路由标识用于标识第二数据流的服务功能链以及用于标识第二数据流。
可选的,服务功能转发设备还根据数据包中包含的指示信息确定第二数据路由标识,并根据第二数据路由标识确定第二数据流的服务功能链;服务功能转发设备还根据第二数据流的服务功能链确定第二数据流的服务功能实例序列,其中,当第二数据流的服务功能链与第一数据流的服务功能链中包含相同的服务功能时,服务功能转发设备为该相同的服务功能选择相同的服务功能实例。也就是说,服务功能转发设备在为第一数据流的服务功能链中的各个服务功能选择服务功能实例的过程中,对于第一数据流的服务功能链中包含且第二数据流的服务功能链中也包含的服务功能,选择的服务功能实例与第二数据流的同一服务功能的服务功能实例相同,以避免数据流的路由中断。
307:服务功能转发设备根据该服务功能实例序列转发数据包。
本实施例中,流分类器为第一数据流分配第一数据路由标识,该第一数据路由标识用于标识第一数据流的服务功能链以及用于标识第一数据流,并在数据包中携带该第一数据路由标识;服务功能转发设备接收流分类器转发的数据包,根据该数据包中携带的第一数据路由标识确定第一数据流的服务功能实例序列,避免了每次收到数据包时都需要采用五元组检索服务功能实例序列,从而提高了数据包转发效率。
进一步的,本实施例中,流分类器在数据包中携带第二数据流的第二数据路由标识的指示信息,该第二数据流为该数据包所属的第一数据流的相反方向的数据流,服务功能转发设备根据数据包携带的第二数据流的数据路由标识确定第二数据流的服务功能实例序列,使得在确定第一数据流的服务功能实例序列时,可以直接参考第二数据流的服务功能实例序列,避免了通过第一数据流的五元组确定第二数据流的五元组,再通过第二数据流的五元组进行匹配获得第二数据流的服务功能实例序列的过程,进一步提高了数据转发效率。
图4为本发明第二实施例提供的数据路由的方法的流程图。如图4所示,本实施例的方法包括:
401:控制面设备确定第一数据流的第一数据路由标识,该第一数据路由标识用于标识第一数据流的服务功能链以及用于标识第一数据流。
可选的,第一数据流对应于服务功能链标识,该服务功能链标识对应多个数据路由标识,其中,服务功能链标识用于标识第一数据流的服务功能链。控制面设备根据第一数据流与服务功能链标识的对应关系,以及服务功能链标识与多个数据路由标识的对应关系,确定第一数据流对应的多个数据路由标识;控制面设备从该多个数据路由标识确定第一数据路由标识,其中,第一数据路由标识为该多个数据路由标识中未分配给其它数据流的数据路由标识。
402:控制面设备将第一数据流与第一数据路由标识的对应关系发送给流分类器。
可选的,控制面设备还确定第二数据流的第二数据路由标识,该第二数据流为第一数据流的相反方向的数据流,该第二数据路由标识用于标识第二数据流的服务功能链以及用于标识第二数据流;控制面设备还将第一数据流、第一数据路由标识以及第二数据路由标识之间的对应关系发送给流分类器。
其中,第二数据流的第二数据路由标识的确定过程,与第一数据流的第一数据路由标识的确定过程相似,可以参考步骤401中的详细描述,此处不再赘述。
下面通过具体应用场景对第一、第二实施例的方法进行举例说明。
图5a为第三实施例提供的数据路由的系统的示意图。如图5a所示,本实施例提供的系统包括控制面设备、一个流分类器、服务功能转发设备和服务功能实例,其中,SF1至SFn对应多个服务功能,其中,n为大于2的整数。在其他实施例中,服务功能的个数不受限制。以其中一个服务功能SF2为例,SF2.1~SF2.y表示服务功能SF2的y个服务功能实例。其中,图5a中的x、y、z均为大于1的整数。
实际应用中,控制面设备可能为多种数据流配置同一个服务功能链。例如,目的端口为80的数据流采用同一种服务功能链,而目的端口为80的数据流有很多种,每种数据流的五元组不相同。即多种数据流可能对应同一个服务功能链标识,如表1所示。
表1
本实施例中,控制面设备按照表2所示的对应关系配置服务功能链标识与数据路由标识的对应关系,从而有利于服务功能转发设备在转发不同数据流时执行负载均衡,避免采用五元组匹配数据流并确定服务功能实例序列造成的转发效率低的问题。
表2
服务功能链标识 |
数据路由标识 |
a |
1~N |
b |
N+1~M |
c |
M+1~L |
....... |
...... |
可选地,控制面设备根据表1和表2所示的对应关系为不同数据流配置不同的数据路由标识。例如,以服务功能链标识为a的数据流为例,控制面设备为数据流配置数据路由标识后得到的数据流与数据路由标识之间的对应关系如表3所示,当然,控制面设备也可以按照其他对应关系为不同数据流配置不同的数据路由标识,本实施例不对此进行限定。
表3
数据流 |
数据路由标识 |
五元组1 |
1 |
五元组2 |
2 |
五元组3 |
3 |
....... |
...... |
可选的,控制面设备还确定上述数据流的相反方向的数据流的数据路由标识,并按照表3所示的对应关系为例进行配置,具体实现方式与控制面设备为上述数据流确定其数据路由标识的过程相似,在此不再赘述。为了方便描述,上述数据流的相反方向的数据流也可以称为反向数据流。
可选的,控制面设备还配置数据流、数据流的数据路由标识以及反向数据流的数据路由标识之间的对应关系。以五元组为“五元组1~五元组N”的数据流中的任一种数据流为第一数据流进行举例说明:第一数据流的数据路由标识称为第一数据路由标识,该反向数据流称为第二数据流,第二数据流的数据路由标识称为第二数据路由标识,第一数据流、第一数据路由标识以及第二数据路由标识之间的关系如表4所示。
表4
第一数据流 |
第一数据路由标识 |
第二数据路由标识 |
五元组1 |
1 |
X |
五元组2 |
2 |
Y |
五元组3 |
3 |
Z |
....... |
....... |
....... |
控制面设备向流分类器下发规则,该规则为PCC规则或ADC规则,该规则中包含表2或表3所示的对应关系。可选的,该规则中还包含表4所示的对应关系。
流分类器接收控制面设备下发的规则后,若该规则中包含表2所示的对应关系,流分类器根据表2所示的服务功能链标识与多个数据路由标识之间的对应关系,配置如表5所示的对应关系。流分类器接收数据流后,根据数据流中携带的服务功能链标识查找表5,从该服务功能链标识对应的多个数据路由标识中确定该数据流的数据路由标识,其中,该数据流的数据路由标识为未分配给其他数据流的数据路由标识。然后,流分类器保存该数据流与该数据路由标识之间的对应关系,得到表6所示的数据流和数据路由标识之间的对应关系。为了描述方便,表6所示的对应关系与表3所示的对应关系一致。
表5
服务功能链标识 |
数据路由标识 |
服务功能链 |
a |
1~N |
SF1->SF2->SF3 |
b |
N+1~M |
SF4->SF6->SF8 |
c |
M+1~L |
SF3->SF5->SF7 |
...... |
...... |
...... |
表6
数据流 |
数据路由标识 |
五元组1 |
1 |
五元组2 |
2 |
五元组3 |
3 |
...... |
...... |
需要说明的是:流分类器为数据流分配数据路由标识的具体方式也可以采用另外的方式(不通过表5),也就是说,流分类器在收到数据流后为该数据流分配数据路由标识,然后建立服务功能链标识与数据路由标识之间的对应关系以及建立数据流与数据路由标识之间的对应关系,即建立表5,并建立表6。
若控制面设备下发的规则中包含表3所示的对应关系,流分类器可以配置表3所示的数据流与数据路由标识之间的对应关系。流分类器接收数据流后,可以直接根据表3所示的对应关系确定该数据流对应的数据路由标识,而不需要建立表6。
可选的,流分类器还确定反向数据流的数据路由标识,具体实现方式与流分类器确定上述数据流对应的数据路由标识的过程相似。例如,若控制面设备下发的规则中包含表2所示的对应关系,流分类器可以从反向数据流的服务功能链标识对应的数据路由标识中分配数据路由标识,得到表3所示的对应关系;若控制面设备下发的规则中包含表3所示的对应关系时,流分类器也可以直接根据表3所示的对应关系确定反向数据流对应的数据路由标识。
可选的,若控制面设备下发的规则中包含表4所示的对应关系,流分类器在接收到数据流后,也可以直接根据表4所示的对应关系确定反向数据流的数据路由标识,即表4中所示的第二数据路由标识。
当流分类器接收到数据包时,在该数据包中携带该数据包所属的数据流对应的数据路由标识。可选的,流分类器还可以在该数据包中携带该所属的数据流的反向数据流的数据路由标识或者携带用于指示该反向数据流的数据路由标识的指示信息。
服务功能转发设备中配置有如表7所示的数据路由标识与服务功能链的对应关系,当数据流到达服务功能转发设备时,服务功能转发设备根据数据流的数据路由标识确定对应的服务功能链,并根据当前网络情况执行负载均衡,为该服务功能链中的各个服务功能选择服务功能实例,从而确定数据路由标识对应的服务功能实例序列并保存,得到如表8所示的数据路由标识和服务功能实例序列之间的对应关系。
表7
数据路由标识 |
服务功能链 |
1~N |
SF1->SF2->SF3 |
N+1~M |
SF4->SF6->SF8 |
M+1~L |
SF3->SF5->SF7 |
表8
数据路由标识 |
服务功能实例序列 |
1 |
SF1.1->SF2.1->SF3.1 |
2 |
SF1.1->SF2.2->SF3.2 |
...... |
...... |
可选的,服务功能转发设备还根据反向数据流的数据路由标识查询表7获得反向数据流对应的服务功能链,并根据当前网络情况执行负载均衡,为该服务功能链中的各个服务功能选择服务功能实例;或者,服务功能转发设备还根据表8确定反向数据流的服务功能实例序列。其中,对数据流与反向数据流的服务功能链中均包含的服务功能,服务功能转发设备选择相同的服务功能实例。
当服务功能转发设备接收到数据包时,根据该数据包所属的数据流对应的服务功能实例序列转发该数据包。
下面以流分类器接收到属于第一数据流的数据包后的操作进行举例说明:
(1)流分类器根据数据包所属的第一数据流的五元组查找表6,判断表6中是否有该五元组对应的第一数据路由标识;
(2)如果表6中有数据包所属的第一数据流的五元组对应的第一数据路由标识,流分类器在数据包中携带该第一数据路由标识;否则,流分类器根据该五元组分配对应的第一数据路由标识,例如,可以通过表5分配,也可以随机分配,然后在数据包中携带该分配的第一数据路由标识,并将该五元组与分配的第一数据路由标识的对应关系保存至表6中;
(3)流分类器确定第二数据流的五元组,该第二数据流为第一数据流的相反方向的数据流,判断表6中是否有该第二数据流的五元组对应的第二数据路由标识,若有,则在数据包中携带该第二数据路由标识或者指示信息,该指示信息用于指示该第二数据路由标识。例如,可以在数据包的最高位或最低位上携带该第二数据路由标识的指示值,或者,约定以第一数据路由标识和第二数据路由标识以及第二数据路由标识的指示信息之间满足某种数学关系的方式进行指示;
(4)流分类器向服务功能转发设备发送该数据包;
(5)服务功能转发设备接收该数据包后,可以根据第一数据路由标识查找表7,确定第一数据路由标识对应的服务功能链,并根据服务功能链确定对应的服务功能实例序列;或者,也可以根据第一数据路由标识查找表8,直接确定对应的服务功能实例序列;
(6)服务功能转发设备根据第二数据路由标识查找表7,确定第二数据路由标识对应的服务功能实例序列;当第二数据路由标识对应的服务功能链与第一数据路由标识对应的服务功能链中包含相同的服务功能时,对该相同的服务功能选择相同的服务功能实例;
(7)服务功能转发设备根据确定的服务功能实例序列转发该数据包。
需要说明的是,第三实施例中的实施方式也适用于图5b所示的系统。图5b为第四实施例提供的数据路由的系统的示意图。如图5b所示,本实施例的系统包括控制面设备、两个流分类器、服务功能转发设备和服务功能实例。两个流分类器中,一个流分类器仅处理从基站到因特网的上行数据流,另一个流分类器仅处理从因特网到基站的下行数据流。本实施例与第三实施例的不同之处在于:由控制面设备确定表3所示的对应关系后,分别将该对应关系配置给每个流分类器,或者,由控制面设备确定表4所示的对应关系后,分别将该对应关系配置给每个流分类器。其他内容参考第三实施例中的详细描述,在此不再赘述。
图6为本发明第五实施例提供的数据路由的装置的结构示意图。本实施例中,与第一实施例对应的内容可以参考第一实施例中的详细描述,在此不再赘述。本实施例提供的装置可以是流分类器,该流分类器可以独立的设备,也可以集成在PGW、PCRF实体或TDF实体等网络设备中。如图6所示,本实施例的装置600包括:处理器601和网络接口602。
网络接口602,用于接收数据包,该数据包属于第一数据流。
处理器601,用于为第一数据流分配第一数据路由标识,该第一数据路由标识用于标识该第一数据流的服务功能链以及用于标识该第一数据流,以及用于在该数据包中携带该第一数据路由标识。
网络接口602还用于向服务功能转发设备发送该数据包。
可选地,处理器601具体用于通过第一实施例步骤302中的几种方式之一为第一数据流分配第一数据路由标识:
第一种方式:处理器601用于在网络接口602接收包含第一数据流的第一服务功能链标识的数据包后,获取第一服务功能链标识与多个数据路由标识之间的对应关系,以及用于根据第一服务功能链标识与多个数据路由标识之间的对应关系,从该多个数据路由标识中为该第一数据流分配第一数据路由标识,分配的第一数据路由标识为该多个数据路由标识中未分配给其它数据流的数据路由标识。
第二种方式:处理器601用于根据第一数据流与第一数据路由标识的对应关系,为第一数据流分配第一数据路由标识,其中,第一数据流与第一数据路由标识的对应关系是由控制面设备发送给所述流分类器的。
第三种方式:处理器601用于为第一数据流随机分配第一数据路由标识。
可选的,在第一、第三种方式中,处理器601还用于在为第一数据流分配第一数据路由标识之后,建立第一数据流与第一数据路由标识之间的对应关系,以使得后续处理器601在网络接口602接收到属于第一数据流的数据包之后直接查询该对应关系。例如,处理器601具体用于建立第一数据流的五元组与第一数据路由标识之间的对应关系。
可选的,处理器601还用于在网络接口602向服务功能转发设备发送数据包之前,确定第二数据流的第二数据路由标识,该第二数据流为该第一数据流的相反方向的数据流,该第二数据路由标识用于标识该第二数据流的服务功能链以及用于标识该第二数据流,以及用于在该数据包中携带指示信息,该指示信息用于指示该第二数据路由标识。
可选的,处理器601具体用于通过第一实施例步骤304中的两种方式之一确定第二数据流的第二数据路由标识:
第一种方式:处理器601具体用于确定第二数据流的第二服务功能链标识,根据该第二服务功能链标识为该第二数据流分配第二数据路由标识,其中,该第二服务功能链标识用于标识该第二数据流的服务功能链。
第二种方式:处理器601具体用于根据第二数据流与第二数据路由标识的对应关系,确定该第二数据路由标识,该第二数据路由标识是装置600之前在收到该第二数据流时为该第二数据流分配的。可选的,处理器601还用于查找保存的数据流与数据路由标识之间的对应关系,若该对应关系中存在第二数据流的第二数据路由标识,则直接从该对应关系中获取该第二数据流的第二数据路由标识;若该对应关系中不存在第二数据流的第二数据路由标识,根据该第二数据流的第二服务功能链标识为该第二数据流分配第二数据路由标识,并保存第二数据流与第二数据路由标识之间的对应关系。其中,处理器601根据第二数据流的第二服务功能链标识为第二数据流分配第二数据路由标识的过程,与处理器601根据第一数据流的第一服务功能链标识为第一数据流分配第一数据路由标识的过程相似,此处不再赘述。
可选的,网络接口602用于执行图3所示方法中的流分类器的信号接收过程和信号发送过程;处理器601用于执行图3所示方法中的流分类器的信号处理过程。进一步的,装置600还可以包括存储器603。存储器603用于存储处理器可执行指令。存储器603中存储的指令可以使得处理器601执行上述图3所示方法中流分类器的信号的处理过程,例如:
存储器603中存储的处理器可执行指令使得处理器601进行如下操作:接收数据包,该数据包属于第一数据流;为第一数据流分配第一数据路由标识,第一数据路由标识用于标识第一数据流的服务功能链以及用于标识第一数据流;在数据包种携带第一数据路由标识;向服务功能转发设备发送数据包。
可选的,本发明的实施例还提供一种计算机存储介质或者计算机程序产品,用于存储上述存储器603中存储的处理器可执行指令。
可选的,上述存储器603可以为存储单元,上述处理器601可以为处理单元。
图7为本发明第六实施例提供的数据路由的装置的结构示意图。本实施例中,与第一实施例对应的内容可以参考第一实施例中的详细描述,在此不再赘述。本实施例提供的装置可以是服务功能转发设备。如图7所示,本实施例的装置700包括:处理器701和网络接口702。
网络接口702,用于接收数据包,该数据包中包含该数据包所属的第一数据流的第一数据路由标识,该第一数据路由标识用于标识该第一数据流的服务功能链以及用于标识该第一数据流。
处理器701,用于根据第一数据路由标识确定第一数据流的服务功能链,并根据该服务功能链确定该第一数据流的服务功能实例序列。
网络接口702还用于根据该服务功能实例序列转发该数据包。
可选的,本实施例的装置700本地保存第一服务功能链标识与第一数据路由标识以及服务功能链之间的对应关系,该对应关系可以是控制面设备配置给该装置700的,也可以是由其它功能设备转发给该装置700的。
可选的,处理器701具体用于确定第一数据路由标识所标识的服务功能链,并根据第一数据路由标识对第一数据流的标识作用,按照该服务功能链中各服务功能的先后顺序,依次为该服务功能链中的各个服务功能选择对应的服务功能实例,所选择的各个服务功能实例组成该第一数据流的服务功能实例序列。
可选的,处理器701还用于保存第一数据路由标识与该第一数据流的服务功能实例序列之间的对应关系,以使得后续在网络接口702接收到属于第一数据流的数据包之后,处理器701直接根据该数据包中携带的第一数据路由标识查找该对应关系,获取该第一数据路由标识对应的服务功能实例序列,从而避免了每次根据数据包中的五元组检索对应的服务功能实例序列,提高数据转发效率。
可选的,处理器701还用于根据数据包中包含的指示信息确定第二数据路由标识,并根据该第二数据路由标识确定该第二数据流的服务功能链;以及用于根据该第二数据流的服务功能链确定该第二数据流的服务功能实例序列,其中,处理器701具体用于当该第二数据流的服务功能链与该第一数据流的服务功能链中包含相同的服务功能时,为该相同的服务功能选择相同的服务功能实例。也就是说,处理器701具体用于在为第一数据流的服务功能链中的各个服务功能选择服务功能实例的过程中,对于第一数据流的服务功能链中包含且第二数据流的服务功能链中也包含的服务功能,选择的服务功能实例与第二数据流的同一服务功能的服务功能实例相同,以避免数据流的路由中断。
可选的,网络接口702用于执行图3所示方法中的服务功能转发设备的信号接收过程和信号发送过程;处理器701用于执行图3所示方法中的服务功能转发设备的信号处理过程。
进一步的,装置700还可以包括存储器703。存储器703用于存储处理器可执行指令。存储器703中存储的指令可以使得处理器701执行上述图3所示方法中服务功能转发设备的信号的处理过程,例如:
存储器703中存储的处理器可执行指令使得处理器701进行如下操作:接收数据包,数据包中包含该数据包所属的第一数据流的第一数据路由标识,第一数据路由标识用于标识第一数据流的服务功能链以及用于标识第一数据流;根据第一数据路由标识确定第一数据流的服务功能链,并根据该服务功能链确定第一数据流的服务功能实例序列;根据该服务功能实例序列转发数据包。
可选的,本发明的实施例还提供一种计算机存储介质或者计算机程序产品,用于存储上述存储器703中存储的处理器可执行指令。
可选的,上述存储器703可以为存储单元,上述处理器701可以为处理单元。
图8为本发明第七实施例提供的数据路由的装置的结构示意图。本实施例中,与第二实施例对应的内容可以参考第二实施例中的详细描述,在此不再赘述。本实施例的装置可以是控制面设备。如图8所示,本实施例的装置800包括:处理器801和网络接口802。
处理器801,用于确定第一数据流的第一数据路由标识,该第一数据路由标识用于标识该第一数据流的服务功能链以及用于标识该第一数据流。
网络接口802,用于将该第一数据流与该第一数据路由标识的对应关系发送给流分类器。
可选的,第一数据流对应于服务功能链标识,该服务功能链标识对应多个数据路由标识,其中,服务功能链标识用于标识该第一数据流的服务功能链。处理器801具体用于根据第一数据流与服务功能链标识的对应关系,以及服务功能链标识与多个数据路由标识的对应关系,确定多个数据路由标识;以及用于从该多个数据路由标识确定第一数据路由标识,其中,第一数据路由标识为未分配给其它数据流的数据路由标识。
可选的,处理器801还用于确定第二数据流的第二数据路由标识,该第二数据流为第一数据流的相反方向的数据流,该第二数据路由标识用于标识该第二数据流的服务功能链以及用于标识该第二数据流;网络接口801还用于在处理器801确定第二数据流的第二数据路由标识后,将第一数据流、第一数据路由标识以及第二数据路由标识之间的对应关系发送给流分类器。
其中,处理器801确定第二数据流的第二数据路由标识的过程,与处理器801第一数据流的第一数据路由标识的确定过程相似,此处不再赘述。
可选的,网络接口802用于执行图4所示方法中的信号接收过程和信号发送过程;处理器801用于执行图4所示方法中的信号处理过程。
进一步的,装置800还可以包括存储器803。存储器803用于存储处理器可执行指令。存储器803中存储的指令可以使得处理器801执行上述图4所示方法中的信号的处理过程,例如:
存储器803中存储的处理器可执行指令使得处理器801进行如下操作:确定第一数据流的第一数据路由标识,第一数据路由标识用于标识第一数据流的服务功能链以及用于标识第一数据流;将第一数据流与第一数据路由标识的对应关系发送给流分类器。
可选的,本发明的实施例还提供一种计算机存储介质或者计算机程序产品,用于存储上述存储器803中存储的处理器可执行指令。
可选的,上述存储器803可以为存储单元,上述处理器801可以为处理单元。
图9为本发明第八实施例提供的数据路由的装置的结构示意图。本实施例中,与第一实施例对应的内容可以参考第一实施例中的详细描述,与第五实施例相似的内容,可以参考第五实施例中的详细描述,在此不再赘述。如图9所示,本实施例的装置900包括:接收单元901、处理单元902和发送单元903。
接收单元901,用于接收数据包,该数据包属于第一数据流;
处理单元902,用于为第一数据流分配第一数据路由标识,该第一数据路由标识用于标识第一数据流的服务功能链以及用于标识第一数据流;以及用于在数据包中携带第一数据路由标识;
发送单元903,用于向服务功能转发设备发送数据包。
可选的,数据包中包含第一数据流的第一服务功能链标识,第一服务功能链标识用于标识第一数据流的服务功能链,处理单元902具体用于根据第一服务功能链为第一数据流分配第一数据路由标识。
可选的,处理单元902具体用于根据第一数据流与第一数据路由标识的对应关系,为第一数据流分配第一数据路由标识,其中,第一数据流与第一数据路由标识的对应关系是由控制面设备发送给装置900的。
可选的,处理单元902还用于在发送单元903向服务功能转发设备发送数据包之前,确定第二数据流的第二数据路由标识,该第二数据流为该第一数据流的相反方向的数据流,该第二数据路由标识用于标识该第二数据流的服务功能链以及用于标识该第二数据流;以及用于在数据包中携带指示信息,该指示信息用于指示第二数据路由标识。
可选的,处理单元902具体用于确定第二数据流的第二服务功能链标识,根据该第二服务功能链标识为该第二数据流分配第二数据路由标识,其中,该第二服务功能链标识用于标识该第二数据流的服务功能链;或者处理单元902具体用于根据第二数据流与第二数据路由标识的对应关系,确定该第二数据路由标识,该第二数据路由标识是装置900之前在收到该第二数据流时分配的。
图10为本发明第九实施例提供的数据路由的装置的结构示意图。本实施例中,与第一实施例对应的内容可以参考第一实施例中的详细描述,与第六实施例相似的内容可以参考第六实施例中的详细描述,在此不再赘述。本实施例提供的装置可以是服务功能转发设备。如图10所示,本实施例的装置1000包括:接收单元1001、处理单元1002和发送单元1003。
接收单元1001,用于接收数据包,该数据包中包含该数据包所属的第一数据流的第一数据路由标识,该第一数据路由标识用于标识该第一数据流的服务功能链以及用于标识该第一数据流;
处理单元1002,用于根据第一数据路由标识确定第一数据流的服务功能链,并根据该服务功能链确定该第一数据流的服务功能实例序列;
发送单元1003,用于根据该服务功能实例序列转发该数据包。
可选的,数据包中还包含指示信息,该指示信息用于指示第二数据流的第二数据路由标识,该第二数据流为该第一数据流的相反方向的数据流,该第二数据路由标识用于标识该第二数据流的服务功能链以及用于标识该第二数据流。处理单元1002还用于根据该指示信息确定第二数据路由标识,并根据该第二数据路由标识确定该第二数据流的服务功能链;以及用于根据该第二数据流的服务功能链确定该第二数据流的服务功能实例序列,其中,处理单元1002具体用于当该第二数据流的服务功能链与该第一数据流的服务功能链中包含相同的服务功能时,为该相同的服务功能选择相同的服务功能实例。
图11为本发明第十实施例提供的数据路由的装置的结构示意图。本实施例中,与第二实施例对应的内容可以参考第二实施例中的详细描述,与第七实施例相似的内容可以参考第七实施例中的详细描述,在此不再赘述。本实施例提供的装置可以是控制面设备。如图11所示,本实施例的装置1100包括:处理单元1101和发送单元1102。
处理单元1101,用于确定第一数据流的第一数据路由标识,该第一数据路由标识用于标识该第一数据流的服务功能链以及用于标识该第一数据流;
发送单元1102,用于将该第一数据流与该第一数据路由标识的对应关系发送给流分类器。
可选的,第一数据流对应于服务功能链标识,该服务功能链标识对应多个数据路由标识,其中,服务功能链标识用于标识该第一数据流的服务功能链。处理单元1101具体用于根据第一数据流与服务功能链标识的对应关系,以及服务功能链标识与多个数据路由标识的对应关系,确定第一数据流对应的多个数据路由标识;以及用于从该多个数据路由标识确定第一数据路由标识,其中,第一数据路由标识为未分配给其它数据流的数据路由标识。
可选的,处理单元1101还用于确定第二数据流的第二数据路由标识,该第二数据流为第一数据流的相反方向的数据流,该第二数据路由标识用于标识该第二数据流的服务功能链以及用于标识该第二数据流。
可选的,发送单元1102还用于将第一数据流、第一数据路由标识以及第二数据路由标识之间的对应关系发送给流分类器。
基于上述技术方案,本发明实施例中,流分类器在数据包中携带该数据包所属数据流的数据路由标识,服务功能转发设备在接收数据包后,根据数据包中的数据路由标识确定服务功能实例序列,避免了采用五元组进行匹配,提高了数据包转发效率。
进一步的,通过在数据包中携带反向数据流的数据路由标识的指示信息,服务功能转发设备根据数据包所属数据流的反向数据流的数据路由标识进行匹配确定该反向数据流的服务功能实例序列,使得在确定数据包所属数据流的服务功能实例序列时,可以直接参考该反向数据流的服务功能实例序列,避免了通过五元组确定反向数据流的五元组,再通过反向数据流的五元组进行匹配获得反向数据流的服务功能实例序列的过程,进一步提高了数据转发效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。