CN104469846B - 一种报文处理方法及设备 - Google Patents
一种报文处理方法及设备 Download PDFInfo
- Publication number
- CN104469846B CN104469846B CN201310430814.4A CN201310430814A CN104469846B CN 104469846 B CN104469846 B CN 104469846B CN 201310430814 A CN201310430814 A CN 201310430814A CN 104469846 B CN104469846 B CN 104469846B
- Authority
- CN
- China
- Prior art keywords
- message
- service node
- business
- tcn
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/088—Load balancing or load distribution among core entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文处理方法及设备,通过预先为同一报文流中的报文配置相同的TCN,利用该TCN和一跳中业务节点的数量值进行负载均衡运算,若根据报文流的数量分别为不同的报文流选择合适的TCN,就能够实现业务节点间对报文流的分担,当报文流的数量稳定时,不论业务节点的拓扑状态如何变化,都能够在统计意义上实现同一跳中业务节点的负载均衡。
Description
技术领域
本发明涉及无线通信领域,尤其涉及一种报文处理方法及设备。
背景技术
具有网络业务功能的业务节点可以对网络报文进行处理,所述业务节点可以是防火墙、传输控制协议(英文:Transmission Control Protocol,缩写:TCP)加速节点或网络地址转换(英文network address translation,缩写NAT)节点等。业务节点包括以下种类的网络业务功能:安全、过滤、统计监测、计费和流量加速。所述具有网络业务功能的业务节点部署在报文流流经的路径上,业务节点对流经的报文流中的每个报文执行相应的网络业务功能。其中:同一报文流中的报文的元组(英文:tuple),如五元组(英文:quintuple),的值相同。
假设业务节点B1具有的网络业务功能称之为B网络业务功能,业务节点的网络架构中还部署了具有B网络业务功能的业务节点B2,则业务节点B1和业务节点B2构成了业务节点网络中的一跳,也就是说,一跳包括了这样的至少一个业务节点:在业务节点的网络中,具有相同网络业务功能的业务节点,其中任一业务节点能够为报文流中的报文提供该网络业务功能。
若将具有相同网络功能的业务节点看成一个节点集合,则一系列节点集合构成的一条路径,称为业务路径。假设一跳业务路由中有两个节点集合,前一个节点集合中包含业务节点A,后一个节点集合中包含业务节点B1和业务节点B2。以报文流中某一报文为例,当该报文被前一个业务节点A执行相应的网络业务功能并向下一个业务节点B1发送时,可视为该报文在业务节点组成的网络的网络拓朴中的一跳。实际上,报文从业务节点A传输到业务节点B1的过程中可能要经过多个物理网络设备,如流经多个网络交换机,但是从业务节点的网络来看,业务节点A的业务下一跳是业务节点B1或业务节点B2,报文流经过一跳从业务节点A传输到业务节点B1,此时,业务节点B1可称为业务节点A的业务下一跳。
由于一跳中具有相同网络业务功能的业务节点的数量是可能变化的,例如,如根据业务节点处理负荷来增加或减少部署的业务节点,这种情况更经常发生于当业务节点是利用云计算实现于虚拟机中时。另外如一跳中某个业务节点故障时,相当于该跳中部署的业务节点数量减少了,导致同一跳中业务节点的负载均衡问题比较突出。
发明内容
本发明提供了一种报文处理方法及设备,用以解决当一跳中业务节点的数量发生变化时,同一跳中的业务节点间无法达到负载均衡的问题。
第一方面,提供一种报文处理方法,所述方法包括:
根据报文中包含的业务路由标识,在确定报文的业务下一跳有多个业务节点时,根据所述报文中包含的流量分类号和业务下一跳中业务节点的数量值进行负载均衡运算;
根据运算结果从所述业务下一跳的业务节点中选择一个业务节点,并将所述报文向选择的所述业务节点传输;
其中,同一报文流中的所有报文的流量分类号相同。
结合第一方面,在第一方面的第一种可能的实现方式中,根据所述报文中包含的流量分类号和业务下一跳中业务节点的数量值进行负载均衡运算,并根据运算结果从所述业务下一跳的业务节点中选择一个业务节点,具体包括:
将所述报文中包含的流量分类号和业务下一跳中业务节点的数量值取模;
查询业务节点的标识与运算值的对应关系,将取模结果作为运算值,确定对应的业务节点的标识,并将确定的业务节点的标识对于的业务节点作为选择的业务节点。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述报文中包含的流量分类号是由中心控制模块生成并发送给流分类模块后,再由所述流分类模块添加在所述报文中的。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述流量分类号是中心控制模块从资源池中随机选取的一个数值,或是中心控制模块根据报文的元组得到的数值,或是中心控制模块针对报文需流经的业务路径中一跳,根据该跳中多个业务节点间的负载状态确定的一个数值。
结合第一方面以及第一方面的第一种可能的实现方式至第一方的第三种可能的实现方式中的任意一个,在第一方面的第四种可能的实现方式中,所述方法还包括:
接收到所述报文的业务节点向中心控制模块上报所述报文的元组,以及与该报文所在报文流对应的反向流的元组;
当所述中心控制模块为所述反向流中的报文生成流量分类号时,生成与所述报文流中的报文相同的流量分类号,使得所述反向流中的报文流经的业务节点与所述报文流中的报文流经的业务节点相同但顺序相反。
第二方面,提供一种报文处理设备,所述报文处理设备包括:
运算单元,用于根据报文中包含的业务路由标识,在确定报文的业务下一跳有多个业务节点时,根据所述报文中包含的流量分类号和业务下一跳中业务节点的数量值进行负载均衡运算,其中,同一报文流中的所有报文的流量分类号相同;
选择单元,用于根据所述运算单元的运算结果从所述业务下一跳的业务节点中选择一个业务节点;
传输单元,用于将所述报文向所述选择单元选择的所述业务节点传输。
结合第二方面,在第二方面的第一种可能的实现方式中,所述运算单元,具体用于将所述报文中包含的流量分类号和业务下一跳中业务节点的数量值取模;
所述选择单元,具体用于根据业务节点的标识与运算值的对应关系,将取模结果作为运算值,确定对应的业务节点的标识,并将确定的业务节点的标识对应的业务节点作为选择的业务节点。
第三方面,提供一种报文处理设备,包括:接口、存储器和处理器,其中,接口、存储器和处理器之间通过总线连接,其中:
所述接口,用于接收报文,并将接收到的报文传输给处理器,以及将报文传输给处理器选择的业务节点;
所述存储器,用于存储程序代码,以及存储业务路由标识所反映的业务路径和该业务路径上每一跳中各业务节点的信息,并将存储的程序代码传输给处理器;
处理器,用于获得存储器中存储的程序代码,并按照获得的程序代码执行:根据报文中包含的业务路由标识,在确定报文的业务下一跳有多个业务节点时,根据所述报文中包含的流量分类号和业务下一跳中业务节点的数量值进行负载均衡运算,并根据运算结果从所述业务下一跳的业务节点中选择一个业务节点,并将选择的所述业务节点的标识发送给接口,其中,同一报文流中的所有报文的流量分类号相同。
结合第三方面,在第三方面的第一种可能的实现方式中,
所述存储器,还用于存储业务节点的标识与运算值的对应关系,并传输给处理器;
所述处理器,具体用于执行如下的负载均衡运算以及选择业务节点:将所述报文中包含的流量分类号和业务下一跳中业务节点的数量值取模,并根据业务节点的标识与运算值的对应关系,将取模结果作为运算值,确定对应的业务节点的标识,并将确定的业务节点的标识对应的业务节点作为选择的业务节点。
第四方面,提供一种中心控制设备,所述中心控制设备包括:
生成单元,用于为报文生成流量分类号和业务路由标识;
发送单元,用于将所述流量分类号和业务路由标识发送给流分类设备,指示流分类设备将所述流量分类号和业务路由标识添加在所述报文中。
结合第四方面,在第四方面的第一种可能的实现方式中,
所述生成单元,具体用于从资源池中随机选取的一个数值作为生成的流量分类号,或是根据报文的元组得到的数值作为生成的流量分类号,或是针对报文需流经的业务路径中一跳,根据该跳中多个业务节点间的负载状态确定的一个数值作为生成的流量分类号。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述中心控制设备还包括:
接收单元,用于接收业务节点上报的报文的元组,以及与该报文所在报文流对应的反向流的元组;
所述生成单元,具体用于为所述反向流中的报文生成流量分类号时,生成与所述报文流中的报文相同的流量分类号,使得所述反向流中的报文流经的业务节点与所述报文流中的报文流经的业务节点相同但顺序相反。
第五方面,提供一种中心控制设备,包括接口、存储器和处理器,其中,接口、存储器和处理器之间通过总线连接;
所述存储器,用于存储程序代码,并将存储的程序代码传输给处理器;
所述处理器,用于为报文生成流量分类号和业务路由标识,并将该流量分类号和业务路由标识传输给接口;
所述接口,用于将所述流量分类号和业务路由标识发送给流分类设备,指示流分类设备将所述流量分类号和业务路由标识添加在所述报文中。
结合第五方面,在第五方面的第一种可能的实现方式中,
所述存储器,还用于存储资源池中的数值,并传输给处理器;
所述处理器,具体用于从资源池中随机选取的一个数值作为生成的流量分类号,或是根据报文的元组得到的数值作为生成的流量分类号,或是针对报文需流经的业务路径中一跳,根据该跳中多个业务节点间的负载状态确定的一个数值作为生成的流量分类号。
结合第五方面或第一方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,
所述接口,还用于接收业务节点上报的报文的元组,以及与该报文所在报文流对应的反向流的元组,并传输给处理器;
所述处理器,具体用于为所述反向流中的报文生成流量分类号时,生成与所述报文流中的报文相同的流量分类号,使得所述反向流中的报文流经的业务节点与所述报文流中的报文流经的业务节点相同但顺序相反。
本发明预先为同一报文流中的各报文配置相同的流量分类号,当报文在业务节点网络中的业务下一跳中有多个业务节点时,利用所述流量分类号进行负载均衡运算后,从所述多个业务节点中选择一个业务节点,使报文流经选择的所述业务节点,在报文流的数量稳定时,可实现一跳中多个业务节点间对报文流的均担,即使一跳中业务节点的数量发生变化,也能够在统计意义上实现业务节点间的负载均衡。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一中报文处理方法的步骤示意图;
图2为本发明实施例一和实施例二中的业务节点网络示意图;
图3为本发明实施例二中报文处理方法的步骤示意图;
图4为本发明实施例三中的业务节点网络示意图;
图5为本发明实施例三中报文处理方法的步骤示意图;
图6(a)和图6(b)为本发明实施例四中报文处理设备的结构示意图;
图7(a)和图7(b)为本发明实施例五中中心控制设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了在业务路径上的一跳中的业务节点数量动态变化的情况下,实现业务节点的负载均衡,本发明实施例提出了一种报文处理方案,预先为同一报文流中的每个报文配置相同的流量分类号(英文:traffic classify number,缩写:TCN),当报文流中任一报文的一跳中有多个业务节点(即该跳中有多个具有相同网络业务功能的业务节点),可根据为该报文配置的TCN,从所述多个业务节点中选择一个合适的业务节点,使报文流经选择的所述业务节点。在报文流的数量较多且稳定时,可实现一跳中多个业务节点间对报文流的均担,即使一跳中业务节点的数量发生变化,也能够在统计意义上实现多个业务节点间的负载均衡。
在本发明实施例的方案中,报文流从源节点传输至目的节点的过程中,若该报文流中的报文需要被执行若干种网络业务功能,则需流经由多个业务节点构成的业务节点网络。报文流从源节点出发后,可经过多个网络交换机到达业务节点网络的入口,报文流在业务节点网络中传输时,从上一个业务节点经过一跳到达下一个业务节点之间也可以经过多个网络交换机。
所述报文流从源节点传输至目的节点的过程可以举例为:作为源节点的视频服务器生成报文流后,该报文流传输至作为目的节点的终端的过程。
以图2所示的业务节点网络为例,当报文流到达业务节点网络的入口(图2中的流分类模块)时,流分类模块将报文流中各报文依次向业务第一跳中的业务节点A传输,业务节点A对接收到的报文执行相应的网络业务功能后,再向业务第二跳中业务节点B1、业务节点B2和业务节点B3中的一个业务节点传输。
在图2所示的业务节点网络中,每个业务节点附着在一个负载均衡模块上,其中,业务节点附着在负载均衡模块上是指:由负载均衡模块将报文传输给业务节点,并接收业务节点执行网络业务功能后的报文,以及对报文进行下一跳传输,业务节点无需关心报文从哪来以及到哪去,只要接收到所附着的负载均衡模块传输的报文,就对该报文执行相应的网络业务功能即可。
负载均衡模块需要记录附着在该负载均衡模块上的业务节点的媒体访问控制(英文:media access control,缩写:MAC)地址等能够与该业务节点进行通信的信息,若一个负载均衡模块上附着有多个业务节点,还需记录与每个业务节点进行通信的通信接口的接口号。同时,业务节点也需记录所附着的负载均衡模块的MAC地址等能够与该负载均衡模块进行通信的信息。
负载均衡模块记录附着在该负载均衡模块上的业务节点所属的节点集合中每个业务节点的信息,还记录根据附着在该负载均衡模块上的业务节点所属的节点集合在业务路径中的位置,记录该节点集合的下一跳节点集合中业务节点的信息。所述业务节点的信息包括:业务节点的标识,业务节点对应的用于进行负载均衡运算的运算值,以及业务节点所附着的负载均衡模块的地址。
由于一跳中业务节点的数量会发生变化,因此,可由图2中的中心控制模块对业务节点网络中每一跳的业务节点的数量进行监控,若某一跳中业务节点的数量发生变化,则中心控制模块确定增加或减少的业务节点所属的节点集合,将增加或减少的业务节点的信息发送给该节点集合中各业务节点所附着的SRF;以及中心控制模块还根据该节点集合在业务路径中的位置,确定该节点集合的上一跳节点集合,并将增加或减少的业务节点的信息通过更新消息发送给该上一跳节点集合中每个业务节点所附着的负载均衡模块。
接收到中心控制模块发送的所述更新消息的负载均衡模块,需根据接收到的所述更新消息中包含的内容,更新本地记录的业务节点的信息。
所述负载均衡模块可以是与附着在其上的业务节点独立的模块,如负载均衡模块可以是业务路由功能模块(英文:service routing function,缩写:SRF);所述负载均衡模块还可以是与附着在其上的业务节点集成在一起的模块,负载均衡模块以虚拟机的形式出现。后续为方便描述,以负载均衡模块是SRF为例进行描述。
本发明各实施例中所涉及的报文从一个业务节点向另一个业务节点传输的过程,是指报文在业务路径上的传输。
下面结合具体实施例对本发明方案做具体描述,当然,本发明方案并不局限于以下实施例。
实施例一:
如图1所示,为本发明实施例一中报文处理方法的步骤示意图,所述方法包括以下步骤:
步骤101:在根据报文中的业务路由标识确定报文的业务下一跳有多个业务节点时,根据所述报文中包含的TCN和业务下一跳中业务节点的数量值进行负载均衡运算。
在实施例一的方案中,同一报文流中的所有报文中添加的TCN相同。
步骤102:根据运算结果从所述业务下一跳的业务节点中选择一个业务节点,并将所述报文向选择的所述业务节点传输。
通过本发明实施例一中所描述的报文处理方法,在报文流的数量较多且稳定时,可实现一跳中多个业务节点间对报文流的均担,即使一跳中业务节点的数量发生变化,也能够在统计意义上实现多个业务节点间的负载均衡。
下面以图2所示的业务节点网络为例,通过实施例二对本发明实施例一的方案进行详细描述。
实施例二:
如图3所示,为本发明实施例二中报文处理方法的步骤示意图,所述方法包括以下步骤:
步骤201:中心控制模块为报文流中的报文生成TCN和业务路由标识。
在本发明实施例一的方案中,当报文流到达业务节点组成的入口,即图2中的流分类模块时,该流分类模块首先将报文流中首个报文发送给中心控制模块,中心控制模块为接收到的报文生成TCN和业务路由标识。
中心控制模块生成的所述TCN可以是中心控制模块从资源池中随机选取的一个数值,也可以根据报文的元组所得到的数值,还可以是针对报文需流经的业务路径中一跳,根据该跳中多个业务节点间的负载状态确定的一个数值。
在中心控制模块生成的所述TCN是中心控制模块从资源池中随机选取的一个数值的情况下,所述资源池中预先缓存有多个可作为TCN的数值。资源池中预先缓存的可作为TCN的数值为正整数。资源池中缓存的所有数值中最大的一个数值满足以下条件:大于等于在报文流经的各跳中,具有相同网络业务功能的业务节点的最大值的M倍,其中M为大于1的整数。可选的,M等于100。例如:在报文需流经的业务第一跳中有一个业务节点A,业务第二跳中有3个业务节点(分别为业务节点B1、业务节点B2和业务节点B3),业务第三跳中有2个业务节点(分别为业务节点C1和业务节点C2),此时,一跳中,具有相同网络业务功能的业务节点的最大值为3,若M等于100,则资源池中的所有数值中最大的一个数值为大于等于300的整数。
所述报文的元组为以下一个或多个的组合:报文的源互联网协议(英文:InternetProtocol,缩写IP)地址;目的IP地址;协议号;在该报文为传输控制协议(英文:Transmission Control Protocol,缩写:TCP)报文的情况下,报文的TCP源端口号;在该报文为TCP报文的情况下,报文的TCP目的端口号;在该报文为用户数据报协议(英文:UserDatagram Protocol,缩写:UDP)报文的情况下,报文的UDP源端口号;在该报文为UDP报文的情况下,报文的UDP目的端口号。
在中心控制模块生成的所述TCN是根据报文的元组所得到的数值的情况下,具体的,根据所述元组计算出TCN。上述计算的算法可以为散列(英文:hash)算法。以所述报文的元组为报文的目的IP地址,计算的算法为将目的IP地址以点分十进制表示法(英文:dot-decimal notation)中的四个十进制整数相加为例,如果报文的目的IP地址为200.1.1.154,则将所述目的IP地址中的数值200、1、1和154之和,即356,作为TCN。
在中心控制模块生成的所述TCN是根据一跳中的多个业务节点的负载状态确定的数值的情况下,中心控制模块确定该跳中多个业务节点中负载较低的业务节点,使得SRF利用确定出的TCN进行步骤209中的负载均衡运算后,根据运算结果能够从所述多个业务节点中选择出所述负载较低的业务节点,以达到业务节点间负载均衡的目的。
所述中心控制模块可根据报文在业务节点的网络中的业务路径生成业务路由标识,所述业务路由标识可以反映一跳业务路径,换句话说,所述业务路由标识可以反映报文需由具有何种网络业务功能的业务节点对其执行相应的网络业务功能,但是,如果具有同一网络业务功能的业务节点数量有多个,则所述业务路由标识只反映需由这多个业务节点中的一个业务节点对报文执行相应的网络业务功能,而不反映是由这多个业务节点中的哪一个业务节点对报文执行相应的网络业务功能。
以图2所示的业务节点的网络为例,中心控制模块确定报文需被业务节点A执行相应的网络业务功能,被业务节点B1、业务节点B2或业务节点B3中的一个业务节点执行相应的网络业务功能,生成的业务路由标识可以反映报文在图2所示的网络需流经业务节点A,还需流经业务节点B1、业务节点B2或业务节点B3中的一个业务节点,但无法确定流经业务节点B1、业务节点B2或业务节点B3中的哪一个业务节点。
本步骤201可以是实现本发明目的的优选步骤,本发明实施例也可以由其他网络设备为报文流中的报文生成TCN和业务路由标识,且生成TCN的方式也不限于以上描述的三种方式。
步骤202:中心控制模块将生成的所述TCN和业务路由标识传输给流分类模块。
中心控制模块可控制一个或多个流分类模块,在为流分类模块发送的报文生成TCN和业务路由标识后,将该报文、为该报文生成的TCN和业务路由标识传输给发送该报文的流分类模块。
步骤203:流分类模块将所述TCN和业务路由标识添加在报文流中的各报文中。
报文中添加的TCN和业务路由标识将一直伴随该报文在业务节点网络中的传输,不再发生变化。
优选地,本发明实施例对报文的报文头做了扩展,流分类模块在报文中新增一个业务路由报文头,流分类模块将所述TCN和业务路由标识添加在新增的业务路由报文头中。这样做的好处是:由于某些业务节点对报文执行相应的网络业务功能时,会修改IP头中的内容,将TCN和业务路由标识添加在业务路由报文头中不会被修改。另外,使用TCN做负载均衡运算时不依赖报文格式,可支持全新的报文格式,TCN和业务路由标识添加在业务路由报文头中,不论报文的格式如何,SRF都可从中识别出该报文包含的TCN和业务路由标识。
上述中心控制模块和流分类模块的功能可以由两个网络设备分别实现,也可以由一个网络设备实现,即该网络设备同时具有上述中心控制模块和流分类模块的功能。
以上步骤202和步骤203是本发明实施例的优选步骤,本发明实施例可以通过其他方式或由其他网络设备在报文中添加TCN。
步骤204:流分类模块根据报文中包含的业务路由标识,将报文流中的各报文向业务节点A所附着的SRF1传输。
在图2所示的网络中,业务第一跳中只有一个业务节点A,因此,流分类模块可直接将报文向业务节点A传输。假设业务第一跳中有多个具有相同网络业务功能的业务节点,如业务节点A1和业务节点A2,则流分类模块也按照以下步骤208至步骤211的方案,从所述业务节点A1和业务节点A2中选择出一个业务节点,并将报文向选择出的业务节点所附着的SRF传输。
本步骤204是本发明实施例的优选步骤,本发明实施例的方案可以由其他网络设备向SRF1传输报文。
步骤205:业务节点A所附着的SRF1接收报文。
步骤206:SRF1将所述报文传输给业务节点A。
步骤207:业务节点A对报文执行相应的网络业务功能后,再将该报文返回给SRF1。
业务节点记录了所附着的SRF的MAC地址,在业务节点A对报文执行相应的网络业务功能后,根据SRF1的MAC地址,将报文返回给SRF1。
以上步骤201至步骤207是在实施例一中步骤101之前执行的,针对任一SRF而言,该SRF在将报文进行下一跳传输之前,需将接收到的报文传输给附着在该SRF上的业务节点,并在接收到业务节点返回的已执行了网络业务功能后的报文时,执行实施例一中步骤101的操作。
步骤208:SRF1根据报文中的业务路由标识确定业务下一跳的业务节点,若业务下一跳中有多个业务节点,则执行步骤209;若业务下一跳中只有一个业务节点,则直接将所述报文向业务下一跳的业务节点所附着的SRF传输。
SRF可以以负载均衡表的形式存储业务路径中,下一跳各业务节点的信息,如表1所示。
表1
SRF1根据报文中包含的业务路由标识从本地存储的负载均衡表中查询出表1,进而根据表1中的内容确定报文的业务下一跳中包括业务节点B1和业务节点B2,同时,表1中还记录了业务节点B1的运算值和所附着的SRF2的地址,以及记录了业务节点B2的运算值和所附着的SRF3的地址。
所述运算值用于在后续步骤209进行负载均衡运算后,与得到的运算结果进行比较以选择业务节点的目的。所述运算值可以是业务节点B1和业务节点B2分别附着的SRF2和SRF3的地址进行排序后的序列值。
假设图2所示的网络中,新增了一个具有B网络业务功能的业务节点B3(图1中虚线表示部分),业务节点B3附着在SRF4上,则中心控制模块可将业务节点B3的标识、SRF4的地址、业务节点B3对应的的运算值通知SRF1,SRF1将表1中的内容更新为表2。
表2
除了SRF1中更新表1外,SRF2、SRF3和SRF4也都更新本地的负载均衡表,其中,SRF2记录业务节点B2的标识、业务节点B2的运算值和业务节点B2所附着的SRF3的地址,还记录业务节点B3的标识、业务节点B3的运算值和业务节点B3所附着的SRF4的地址;SRF3记录业务节点B1的标识、业务节点B1的运算值和业务节点B1所附着的SRF2的地址,还记录业务节点B3的标识、业务节点B3的运算值和业务节点B3所附着的SRF4的地址;SRF4记录业务节点B1的标识、业务节点B1的运算值和业务节点B1所附着的SRF2的地址,还记录业务节点B2的标识、业务节点B2的运算值和业务节点B2所附着的SRF3的地址。
需要说明的是,图2是以每个SRF上附着一个业务节点为例进行说明的,当一个SRF上附着有多个业务节点时,每个业务节点可通过一个独立的端口与SRF通信。假设在图2所示的网络示意图中,新增了一个具有B网络业务功能的业务节点B3,业务节点B3附着在SRF3上,且业务节点B3的运算值为2,中心控制模块可将业务节点B3的标识、运算值和所附着的SRF4的地址通知SRF1,SRF1将表1中的内容更新为表3。
表3
除了SRF1中更新表1外,SRF2和SRF3也都更新本地的负载均衡表,其中,SRF2记录业务节点B2的标识、业务节点B2的运算值和业务节点B2所附着的SRF3的地址,还记录业务节点B3的标识、业务节点B3的运算值和业务节点B3所附着的SRF3的地址;SRF3记录业务节点B1的标识、业务节点B1的运算值和业务节点B1所附着的SRF2的地址,还记录业务节点B2与SRF3的通信接口的接口号(假设为接口号1)、业务节点B3与SRF3的通信接口的接口号(假设为接口号2)。
步骤209:SRF1根据所述报文中的TCN和业务下一跳中业务节点的数量值进行负载均衡运算。
以上步骤209是对实施例一中步骤101的具体描述。
步骤210:SRF1根据运算结果,从业务下一跳的多个业务节点中选择一个业务节点。
在本步骤210中,SRF1可通过负载均衡运算得到运算结果后,查询表1、表2或表3,在运算结果的值域与表1、表2或表3中运算值的集合相同,因此,根据得到的运算结果可从表1、表2或表3中查询出相同的运算值,进而确定查询出的运算值对应的业务节点。举例来说,上述负载均衡运算可以为hash计算。
步骤211:SRF1将所述报文向选择的所述业务节点传输。
假设在步骤209和步骤210中SFR1通过负载均衡运算以及查询表1选择的业务节点是业务节点B2,在本步骤211中,SRF1再根据表1中业务节点B2所附着的SRF3的地址,将报文向SRF3传输,再由SRF3将报文向业务节点B2传输,实现了报文从业务节点A向业务节点B2传输的过程。
假设在步骤209和步骤210中SRF1通过负载均衡运算以及查询表3选择的业务节点是业务节点B2,在本步骤211中,SRF1再根据表3中业务节点B2所附着的SRF3的地址,向SRF3传输报文;SRF3接收到报文后,确定业务节点B2和业务节点B3都附着在SRF3上,因此,SRF3根据接收到的报文中的TCN和记录的当前跳中业务节点的数量值,进行与SRF1在步骤209中相同的负载均衡运算,得到的运算结果与步骤209中SRF1的运算结果相同,可确定该报文需向业务节点B2传输,SRF3根据业务节点B2与SRF3的通信接口的接口号(假设为接口号1),向业务节点B2传输报文。
当业务节点B2对报文执行相应的网络业务功能后,再将报文返回给SRF3。在报文在图2所示的业务节点网络中的传输过程结束的情况下,如果SRF3具有根据IP地址转发报文的功能,则SRF3根据报文的目的IP地址转发报文;如果SRF3不具有根据IP地址转发报文的功能,则SRF3根据预先设定的转发方式将报文向指定的路由器传输,该路由器根据报文的目的IP地址继续转发报文。
以上步骤210和步骤211是对实施例一中步骤102的具体描述。
以上是以图2所示的网络示意图为例对本发明实施例一的方案进行描述的,对于其他形式的业务节点网络,报文在网络中的传输过程与上述步骤208值步骤211的传输过程类似,此处不再赘述。
通过本发明实施例一的方案,不论一跳中的业务节点数量发生何种变化,利用报文中包含的TCN来选择业务下一跳中的业务节点的方案,可以在报文流的数量稳定时,确保一跳中各业务节点的负载均衡;即使是通过随机方式为每个报文流中的报文分配TCN,由于一跳中的业务节点数量有限,也能够将大量的报文流基本均分到各个业务节点中。
实施例二:
本发明实施例二对实施例一中步骤209~步骤211的具体描述如下:
仍以图2所示的业务节点网络示意图为例,假设在实施例一的执行过程中,具有B网络业务功能的业务节点数量为2,分别是业务节点B1和业务节点B2。在步骤209中,SRF1需要从业务节点B1和业务节点B2中选择一个业务节点,具体地,SRF1可利用hash算法进行负载均衡运算后,根据运算结果来选择业务节点。
所述负载均衡运算方式包括但不限于:将报文中的TCN与业务下一跳中的业务节点数量值取模,按照取模结果选择一个业务节点,具体实现过程为:
首先,SRF1将报文中的TCN与业务下一跳中的业务节点数量值(此时该数量值为2)取模,不论TCN的取值为何,取模结果都为0或1。
然后,SRF1查询业务节点的标识与运算值的对应关系,并将取模结果作为运算值,对应的业务节点的标识,即查询表1,确定与取模结果相同的运算值对应的业务节点的标识。
最后,SRF1将确定的业务节点的标识对应的业务节点作为选择的业务节点。
以取模结果为0为例,通过查询表1可知:运算值为0对应的业务节点是业务节点B1,则在步骤109中,SRF1从业务节点B1和业务节点B2中选择出业务节点B1。之后,SRF1根据表1中记录的业务节点B1所附着的SRF2的地址,将报文向SRF2传输,再由SRF2将报文向业务节点B1传输,完成了报文从业务节点A向业务节点B1的传输过程。
以上是以业务第二跳中的业务节点为业务节点B1和业务节点B2为例进行说明的,假设业务第二跳中的业务节点的数量发生了变化,如增加了附着在SRF3上的业务节点B3,此时,业务第二跳中具有B网络业务功能的业务节点的数量值为3,且业务节点B2和业务节点B3都附着在SRF3上,SRF1中存储的负载均衡表为表3。
SRF1从业务节点B1、业务节点B2和业务节点B3中选择一个业务节点的过程为:
首先,SRF1将报文中的TCN与业务下一跳中的业务节点数量值(此时该数量值为3)取模,其取模结果为0、1或2。
然后,SRF1查询表3,确定与取模结果相同的运算值。
最后,SRF1将确定的运算值对应的业务节点作为选择出的业务节点。
以取模结果为1为例,通过查询表3确定运算值为1时对应的业务节点是业务节点B2,则将业务节点B2作为步骤109中选择的业务节点。之后,SRF1查询表3确定业务节点B2附着的SRF3的地址,并根据SRF3的地址,将报文向SRF3传输。SRF3接收到报文后,将报文中的TCN和当前跳的业务节点数量值(此时该数量值为3)取模,得到的取模结果也为1,确定对应的运算值为1的业务节点是业务节点B2,则SRF3根据与业务节点B2之间的接口的接口号,将报文传输给业务节点B2。
本发明实施例二的方案是实现实施例一的优选方案,但本发明实施例一也不限于通过其他负载均衡算法从业务下一跳中选择一个业务节点,作为报文在业务下一跳中流经的业务节点。
优选地,在本实施例一或实施例二描述方案的基础上,如果将从源节点传输至目的节点的报文流视为正向流,该报文流达到目的节点后,目的节点对接收到的报文流进行处理后,若再生成回传至源节点的报文流,则可将该报文流视为反向流。如果反向流从所述目的节点回传至所述源节点时,所流经的业务节点与正向流所流经的业务节点相同但流经顺序相反,此时可称之为正向流和反向流共路。在此情况下,如果正向流在业务节点网络内的传输过程实现了业务节点间的负载均衡,则反向流也能够得到上述效果。下面通过实施例三对正向流和反向流的双向传输过程进行描述。
实施例三:
本发明实施例三可以在实施例一和实施例二方案的基础上,进一步增加反向流的处理过程,以图4所示的业务节点网络示意图为例,假设正向流(假设正向流的标识为flow)在图4所示的网络中流经业务节点的顺序是:业务节点A-业务节点B1-业务节点C,为了使反向流(假设反向流的标识为flow-r)与正向流共路,则反向流在图4所示的网络中流经业务节点的顺序应当是:业务节点C-业务节点B1-业务节点A。
假设中心控制模块为正向流中的报文生成的TCN的值为24,生成的业务路由标识为1001,业务节点A所附着的SRF1的IP地址为10.10.1.1,业务节点B1所附着的SRF2的IP地址为10.10.1.2,业务节点B2所附着的SRF3的IP地址为10.10.1.3,业务节点C所附着的SRF4的IP地址为10.10.1.4,SRF1中存储的负载均衡表如表4所示:
表4
SRF2中存储的负载均衡表如表5(a)和表5(b)所示:
表5(a)
表5(b)
SRF3中存储的负载均衡表如表6(a)和表6(b)所示:
表6(a)
表6(b)
SRF4中存储的负载均衡表如表7所示:
表7
基于图4所示的网络,对正向流和反向流中报文处理方法的步骤示意图如图5所示,主要包括以下步骤:
步骤301:SRF1将正向流的报文依次向业务节点B1所附着的SRF2传输。
流分类模块首先将正向流的报文依次向业务节点A所附着的SRF1传输,由SRF1将报文向业务节点A传输,当SRF1接收到业务节点A执行相应网络业务功能后返回的报文时,根据报文中包含的业务路由标识(此时业务路由标识为1001)查询表4,确定业务下一跳中有两个业务节点;然后将报文中包含的TCN(此时TCN的值为24)与业务下一跳业务节点数量值2取模,取模结果为0,通过查询表4,确定报文在业务下一跳中需流经业务节点B1,最后从表4中查询出业务节点B1所附着的SRF2的地址,将报文向SRF2传输。
步骤302:SRF2将报文向业务节点B1传输。
步骤303:业务节点B1向中心控制模块上报该报文所在的正向流的元组,以及该正向流对应的反向流的元组。
由于元组可唯一表示报文流,因此,业务节点B1向中心控制模块上报正向流和反向流的元组后,中心控制模块可根据接收到的元组识别出需共路的正向流和反向流。本发明实施例中所涉及的元组可以是五元组,也可以是七元组。
实际上,正向流在业务节点网络的传输过程中,可能会流经多个业务节点,其所流经的每个业务节点并不都需要向中心控制模块上报正向流和反向流的五元组,而是对正向流和反向流有共路需求的业务节点,才需要向中心控制模块上报正向流和反向流的五元组。例如:NAT业务节点需要获知正向流中报文的源IP地址和目的IP地址,同时还需要获知对应的反向流中报文的源IP地址和目的IP地址,因此,该NAT业务节点有正向流和反向流共路的需求。
步骤304:中心控制模块在本地记录接收到的正向流的元组和反向流的元组的关联关系,并确定为正向流中报文生成的TCN为24。
步骤305:正向流继续从业务节点B1向业务节点C传输,再向目的节点传输,完成正向流的传输过程。
在本步骤305中,业务节点B1对报文执行相应的网络业务功能后,将报文返回给SRF2,再由SRF2查询表5(a)后,将报文传输给SRF4,SRF4将报文传输给业务节点C,业务节点C对报文执行相应的网络业务功能后,返回给SRF4,再由SRF4继续对报文执行网络传输,直至报文到达目的节点。
步骤306:中心控制模块为反向流生成TCN和业务路由标识,其中,为反向流生成的TCN与所述正向流的TCN相同。
当正向流到达目的节点后,目的节点对正向流进行处理,生成反向流,所述反向流经过网络多跳后,到达图3所示的网络入口。图3中的流分类模块将反向流的首个报文发送给中心控制模块,中心控制模块识别出报文中的元组后,与本地已记录的正向流的元组和反向流的元组的关联关系进行比较,若确定接收到的报文中的元组与所述关联关系中反向流的元组相同,则确定接收到的所述报文所在的报文流为反向流,且该反向流需要与正向流共路,因此,中心控制模块为反向流生成业务路由标识(此时业务路由标识为1002),并为反向流生成与正向流相同的TCN(此时TCN为24)。
在本实施例三的方案中,正向流进入图3所示的网络时,入口的流分类模块与反向流的进入网络时入口的流分类模块可以是同一网络设备,也可以是分别独立的两个网络设备,本发明实施例并不对流分类模块的形式做限定。
步骤307:流分类模块将所述TCN和业务路由标识添加在反向流的报文中,并将反向流的报文向业务节点C所附着的SRF4传输。
步骤308:SRF4将报文向业务节点C传输,在接收到业务节点C返回的报文时,将报文向业务节点B1所附着的SRF2传输。
在本步骤308中,SRF4查询表7,确定业务下一跳中有两个业务节点,将TCN与2取模后的取模结果为0,选择业务下一跳中的业务节点B1,并将报文向业务节点B1所附着的SRF2传输。
通过比较步骤301和步骤308,当正向流和反向流在流经业务节点B1和业务节点B2中的一个业务节点时,由于正向流的报文中的TCN与反向流的报文中的TCN相同,因此,按照相同的取模运算后,SRF1为正向流中的报文选择业务节点B1,SRF4为反向流中的报文也选择业务节点B1,确保了正向流和反向流的同路。
步骤309:反向流继续从业务节点B1向业务节点A传输,再向源节点传输,完成反向流的传输过程。
本步骤309中的源节点是正向流的源节点,是反向流的目的节点。
通过本发明实施例三的方案,当正向流和反向流中报文的TCN相同时,就可实现正向流和反向流的同路,不仅在正向流的传输过程中实现了业务节点间负载均衡,还实现了在反向流的传输过程中的负载均衡;同时,正向流和反向流的同路可以很好地满足诸如NAT业务节点的业务需求。
需要说明的是,本发明实施例的方案是在新增的业务路由报文头中直接添加固定数值的TCN和业务路由标识,当然,如果不直接在报文中添加TCN,而是在每一次需要从业务下一跳中选择业务节点时,利用对网络报文头的一些字段进行hash运算得到的数值也可以按照本发明实施例的方案进行负载均衡运算,但本发明实施例的方案有如下优点:
1)、由于报文被业务节点执行相应的网络业务功能后,网络报文头中某些字段中的内容会发生改变,如被NAT业务节点执行相应的网络业务功能后,网络报文头中目的IP地址会改变,如果恰好利用发生改变的字段中的内容进行hash运算得到的数值进行负载均衡运算的话,最终的负载均衡运算结果可能会干扰报文流在业务节点间的均分,达不到业务节点间负载均衡的目的。而通过本发明实施例的方案,业务路由报文头中的内容不会被修改,确保TCN的值不会发生变化,以使报文流在业务节点间实现均分。
2)、若报文流中的报文采用新的报文格式,可能会出现目前已部署的业务节点所附着的SRF无法识别新报文格式的报文的情况,因此,难以实现负载均衡运算;而本发明实施例的方案中,在新增的业务路由报文头中添加TCN和业务路由标识,业务路由报文头的格式不会变化,业务节点能够识别出业务路由报文头中的TCN和业务路由标识。
实施例四:
本发明实施例四描述了一种报文处理设备,如图6(a)所示,所述报文处理设备包括运算单元11、选择单元12和传输单元13,其中:
运算单元11用于根据报文中包含的业务路由标识,在确定报文的业务下一跳有多个业务节点时,根据所述报文中包含的TCN和业务下一跳中业务节点的数量值进行负载均衡运算,其中,同一报文流中的所有报文的TCN相同;
选择单元12用于用于根据所述运算单元11的运算结果从所述业务下一跳的业务节点中选择一个业务节点;
传输单元13用于将所述报文向所述选择单元12选择的所述业务节点传输。
可选地,所述运算单元11体用于将所述报文中包含的TCN和业务下一跳中业务节点的数量值取模;
所述选择单元12具体用于根据业务节点的标识与运算值的对应关系,将取模结果作为运算值,确定对应的业务节点的标识,并将确定的业务节点的标识对于的业务节点作为选择的业务节点;
所述传输单元13具体用于根据业务节点与该业务节点所附着的负载均衡模块的对应关系,向选择的业务节点所附着的负载均衡模块传输报文,再由该负载均衡模块将报文向附着在该负载均衡模块上的所述选择的业务节点传输报文。
本实施例四中所涉及的报文处理设备可以是实施例一至实施例三中所涉及的负载均衡模块,业务节点的标识与运算值的对应关系和业务节点与该业务节点所附着的负载均衡模块的对应关系,可以记录在实施例一中负载均衡表中,选择单元12和传输单元13通过查询所述负载均衡表分别确定上述两个对应关系。
本发明实施例四还描述了另一种报文处理设备,如图6(b)所示,所述报文处理设备包括接口21、存储器22和处理器23,其中,接口21、存储器22和处理器23之间通过总线连接。
所述接口21,用于接收报文,并将接收到的报文传输给处理器23,以及将报文传输给处理器23选择的业务节点;
所述存储器22,用于存储程序代码,以及存储业务路由标识所反映的业务路径和该业务路径上每一跳中各业务节点的信息,并将存储的程序代码传输给处理器23;
处理器23,用于获得存储器22中存储的程序代码,并按照获得的程序代码执行:根据报文中包含的业务路由标识,在确定报文的业务下一跳有多个业务节点时,根据所述报文中包含的TCN和业务下一跳中业务节点的数量值进行负载均衡运算,并根据运算结果从所述业务下一跳的业务节点中选择一个业务节点,并将选择的所述业务节点的标识发送给接口21,其中,同一报文流中的所有报文的TCN相同。
所述存储器22,还用于存储业务节点的标识与运算值的对应关系,并传输给处理器23;
所述处理器23,具体用于执行如下的负载均衡运算以及选择业务节点:将所述报文中包含的TCN和业务下一跳中业务节点的数量值取模,并根据业务节点的标识与运算值的对应关系,将取模结果作为运算值,确定对应的业务节点的标识,并将确定的业务节点的标识对应的业务节点作为选择的业务节点。
所述存储器22,还用于存储业务节点与该业务节点所附着的负载均衡模块的对应关系,并传输给处理器23,具体地,所述存储器22可以存储在实施例一中负载均衡表,并传输给处理器23。
所述处理器23,具体用于确定选择的业务节点所附着的负载均衡模块,并将该负载均衡模块的地址传输给接口21;
所述接口21,具体用于根据负载均衡模块的地址将报文传输给负载均衡模块。
所述接口21可以为以下一种或多种:提供有线接口的网络接口控制器(英文:network interface controller,缩写:NIC),例如以太网NIC,该以太网NIC可以提供铜线接口,光纤接口或既提供铜线接口也提供光纤接口;提供无线接口的NIC,例如无线局域网(英文:wireless local area network,缩写:WLAN)NIC。
所述存储器22可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);或者非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);或者上述种类的存储器的组合。
所述处理器23可以是中央处理器(英文:central processing unit,缩写:CPU),或者是CPU和硬件芯片的组合。
上述硬件芯片可以是以下一种或多种的组合:专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),复杂可编程逻辑器件(英文:complexprogrammable logic device,缩写:CPLD),网络处理器(英文:network processor,缩写:NP)。
实施例五:
本发明实施例五还描述了一种中心控制设备,如图7(a)所示,所述中心控制设备包括生成单元31和发送单元32,其中:
生成单元31用于为报文生成TCN和业务路由标识;
发送单元32用于将所述TCN和业务路由标识发送给流分类设备,并指示流分类设备将所述TCN和业务路由标识添加在所述报文中。
所述生成单元31具体用于从资源池中随机选取的一个数值作为生成的TCN,或是根据报文的元组得到的数值作为生成的TCN,或是针对报文需流经的业务路径中一跳,根据该跳中多个业务节点间的负载状态确定的一个数值作为生成的TCN。
所述中心控制设备还包括接收单元33,用于接收业务节点上报的报文的元组,以及与该报文所在报文流对应的反向流的元组;
所述生成单元31,具体用于为所述反向流中的报文生成TCN时,生成与所述报文流中的报文相同的TCN,使得所述反向流中的报文流经的业务节点与所述报文流中的报文流经的业务节点相同但顺序相反。
本实施例五中所涉及的中心控制设备可以是实施例二和实施例三中所涉及的中心控制模块,所述流分类设备可以是实施例二和实施例三中所涉及的流分类模块。
本发明实施例五还描述了另一种中心控制设备,如图7(b)所示,所述中心控制设备包括接口41、存储器42和处理器43,其中,接口41、存储器42和处理器43之间通过总线连接。
所述存储器42,用于存储程序代码,并将存储的程序代码传输给处理器43;
所述处理器43,用于为报文生成TCN和业务路由标识,并将该TCN和业务路由标识传输给接口41;
所述接口41,用于将所述TCN和业务路由标识发送给流分类设备,指示流分类设备将所述TCN和业务路由标识添加在所述报文中。
所述存储器42,还用于存储资源池中的数值,并传输给处理器43;
所述处理器43,具体用于从资源池中随机选取的一个数值作为生成的TCN,或是根据报文的元组得到的数值作为生成的TCN,或是针对报文需流经的业务路径中一跳,根据该跳中多个业务节点间的负载状态确定的一个数值作为生成的TCN。
所述接口41,还用于接收业务节点上报的报文的元组,以及与该报文所在报文流对应的反向流的元组,并传输给处理器43;
所述处理器43,具体用于为所述反向流中的报文生成TCN时,生成与所述报文流中的报文相同的TCN,使得所述反向流中的报文流经的业务节点与所述报文流中的报文流经的业务节点相同但顺序相反。
所述接口41可以为以下一种或多种:提供有线接口的网络接口控制器(英文:network interface controller,缩写:NIC),例如以太网NIC,该以太网NIC可以提供铜线接口,光纤接口或既提供铜线接口也提供光纤接口;提供无线接口的NIC,例如无线局域网(英文:wireless local area network,缩写:WLAN)NIC。
所述存储器42可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);或者非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);或者上述种类的存储器的组合。
所述处理器43可以是中央处理器(英文:central processing unit,缩写:CPU),或者是CPU和硬件芯片的组合。
上述硬件芯片可以是以下一种或多种的组合:专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),复杂可编程逻辑器件(英文:complexprogrammable logic device,缩写:CPLD),网络处理器(英文:network processor,缩写:NP)。
本领域内的技术人员应明白,本申请的实施例可为方法、系统、或计算机程序产品。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,所述计算机设备包括一个或多个中央处理器(CPU)、输入/输出接口、网络接口和存储器。所述存储器可能包括计算机可读介质中的随机存取存储器(RAM)或只读存储器(ROM)。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(Transitory Media),如调制的数据信号和载波。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种报文处理方法,其特征在于,所述方法包括:
根据报文中包含的业务路由标识,在确定报文的业务下一跳有多个业务节点时,根据所述报文中包含的流量分类号TCN和业务下一跳中业务节点的数量值进行负载均衡运算;
根据运算结果从所述业务下一跳的业务节点中选择一个业务节点,并将所述报文向选择的所述业务节点传输;
其中,同一报文流中的所有报文的TCN相同。
2.如权利要求1所述的报文处理方法,其特征在于,根据所述报文中包含的TCN和业务下一跳中业务节点的数量值进行负载均衡运算,并根据运算结果从所述业务下一跳的业务节点中选择一个业务节点,具体包括:
将所述报文中包含的TCN和业务下一跳中业务节点的数量值取模;
查询业务节点的标识与运算值的对应关系,将取模结果作为运算值,确定对应的业务节点的标识,并将确定的业务节点的标识对应的业务节点作为选择的业务节点。
3.如权利要求1或2所述的报文处理方法,其特征在于,所述报文中包含的TCN是由中心控制模块生成并发送给流分类模块后,再由所述流分类模块添加在所述报文中的。
4.如权利要求3所述的报文处理方法,其特征在于,所述TCN是中心控制模块从资源池中随机选取的一个数值,或是中心控制模块根据报文的元组得到的数值,或是中心控制模块针对报文需流经的业务路径中一跳,根据该跳中多个业务节点间的负载状态确定的一个数值。
5.如权利要求1~2任一所述的报文处理方法,其特征在于,所述方法还包括:
接收到所述报文的业务节点向中心控制模块上报所述报文的元组,以及与该报文所在报文流对应的反向流的元组;
当所述中心控制模块为所述反向流中的报文生成TCN时,生成与所述报文流中的报文相同的TCN,使得所述反向流中的报文流经的业务节点与所述报文流中的报文流经的业务节点相同但顺序相反。
6.一种报文处理设备,其特征在于,所述报文处理设备包括:
运算单元,用于根据报文中包含的业务路由标识,在确定报文的业务下一跳有多个业务节点时,根据所述报文中包含的流量分类号TCN和业务下一跳中业务节点的数量值进行负载均衡运算,其中,同一报文流中的所有报文的TCN相同;
选择单元,用于根据所述运算单元的运算结果从所述业务下一跳的业务节点中选择一个业务节点;
传输单元,用于将所述报文向所述选择单元选择的所述业务节点传输。
7.如权利要求6所述的报文处理设备,其特征在于,
所述运算单元,具体用于将所述报文中包含的TCN和业务下一跳中业务节点的数量值取模;
所述选择单元,具体用于根据业务节点的标识与运算值的对应关系,将取模结果作为运算值,确定对应的业务节点的标识,并将确定的业务节点的标识对应的业务节点作为选择的业务节点。
8.一种中心控制设备,其特征在于,所述中心控制设备包括:
生成单元,用于为报文生成流量分类号TCN和业务路由标识;具体用于从资源池中随机选取的一个数值作为生成的TCN,或是根据报文的元组得到的数值作为生成的TCN,或是针对报文需流经的业务路径中一跳,根据该跳中多个业务节点间的负载状态确定的一个数值作为生成的TCN;
发送单元,用于将所述TCN和业务路由标识发送给流分类设备,指示流分类设备将所述TCN和业务路由标识添加在所述报文中。
9.如权利要求8所述的中心控制设备,其特征在于,所述中心控制设备还包括:
接收单元,用于接收业务节点上报的报文的元组,以及与该报文所在报文流对应的反向流的元组;
所述生成单元,具体用于为所述反向流中的报文生成TCN时,生成与所述报文流中的报文相同的TCN,使得所述反向流中的报文流经的业务节点与所述报文流中的报文流经的业务节点相同但顺序相反。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310430814.4A CN104469846B (zh) | 2013-09-18 | 2013-09-18 | 一种报文处理方法及设备 |
PCT/CN2014/086834 WO2015039616A1 (zh) | 2013-09-18 | 2014-09-18 | 一种报文处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310430814.4A CN104469846B (zh) | 2013-09-18 | 2013-09-18 | 一种报文处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104469846A CN104469846A (zh) | 2015-03-25 |
CN104469846B true CN104469846B (zh) | 2018-10-30 |
Family
ID=52688252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310430814.4A Active CN104469846B (zh) | 2013-09-18 | 2013-09-18 | 一种报文处理方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104469846B (zh) |
WO (1) | WO2015039616A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330785B (zh) * | 2015-06-17 | 2020-08-11 | 深圳市腾讯计算机系统有限公司 | 一种选择业务节点的方法和装置 |
CN111050353B (zh) | 2018-10-11 | 2021-12-03 | 华为技术有限公司 | 用于无线回传网络的数据传输方法和装置 |
CN114338747B (zh) * | 2021-12-31 | 2023-07-25 | 四川启睿克科技有限公司 | 支持设备自定义上报数据报文的云端场景控制系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546412A (zh) * | 2012-01-04 | 2012-07-04 | 深圳市共进电子股份有限公司 | 一种流量控制方法以及流量控制器 |
CN102624619A (zh) * | 2012-03-09 | 2012-08-01 | 上海大亚科技有限公司 | 基于源地址的多默认网关下实现报文转发路由选择的方法 |
CN103067294A (zh) * | 2012-12-30 | 2013-04-24 | 大连环宇移动科技有限公司 | 多下一跳转发路由器中基于流保续的数据流均衡处理的方法 |
CN103281252A (zh) * | 2013-05-14 | 2013-09-04 | 华为技术有限公司 | 一种基于多路径传输的报文流量控制方法和装置 |
-
2013
- 2013-09-18 CN CN201310430814.4A patent/CN104469846B/zh active Active
-
2014
- 2014-09-18 WO PCT/CN2014/086834 patent/WO2015039616A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546412A (zh) * | 2012-01-04 | 2012-07-04 | 深圳市共进电子股份有限公司 | 一种流量控制方法以及流量控制器 |
CN102624619A (zh) * | 2012-03-09 | 2012-08-01 | 上海大亚科技有限公司 | 基于源地址的多默认网关下实现报文转发路由选择的方法 |
CN103067294A (zh) * | 2012-12-30 | 2013-04-24 | 大连环宇移动科技有限公司 | 多下一跳转发路由器中基于流保续的数据流均衡处理的方法 |
CN103281252A (zh) * | 2013-05-14 | 2013-09-04 | 华为技术有限公司 | 一种基于多路径传输的报文流量控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015039616A1 (zh) | 2015-03-26 |
CN104469846A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10212088B2 (en) | Tactical traffic engineering based on segment routing policies | |
US10374956B1 (en) | Managing a hierarchical network | |
CN104685838B (zh) | 利用服务特定拓扑抽象和接口的软件定义网络虚拟化 | |
JP5410998B2 (ja) | スイッチ及びルータのためのソフトウェア制御プレーン | |
EP2883334B1 (en) | Techniques for flooding optimization for link state protocols in a network topology | |
US8493869B2 (en) | Distributed constraints-based inter-domain network traffic management | |
CN104469845B (zh) | 一种报文处理方法、系统及设备 | |
EP1499074B1 (en) | Dynamic routing through a content distribution network | |
US20030076840A1 (en) | Multi-path analysis for managing machine communications in a network | |
JP5044537B2 (ja) | トランスポート制御サーバ、ネットワークシステム及び集約パス決定方法 | |
US10153964B2 (en) | Network routing using dynamic virtual paths in an overlay network | |
US8462636B2 (en) | Systems and methods for communication of management traffic over link aggregation group interface for a network element with distributed architecture | |
CN113726666B (zh) | 一种发送报文的方法和装置 | |
CN106105162A (zh) | 基于交换机的负载均衡器 | |
CN105850082A (zh) | 网络中的分段源路由 | |
CN104396197A (zh) | 在802.1aq网络中使用分离的平局打破器在等成本最短路径之间选择 | |
Kalmykov et al. | Segment routing as a basis for software defined network | |
CN103746874B (zh) | 用于网际协议流性能监控的方法和设备 | |
US20170201466A1 (en) | Data packet processing apparatus and method | |
US20230216786A1 (en) | Method for forwarding service packet, method for sending sr policy, device, and system | |
CN104469846B (zh) | 一种报文处理方法及设备 | |
CN109672621A (zh) | 一种为vpn业务选择传输路径的方法和设备 | |
CN108111409A (zh) | 建立分离路径的方法和装置 | |
CN1984071A (zh) | 通讯网络中对数据流的分流方法和装置 | |
CN103259720A (zh) | 一种基于mtr的数据传输方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |