一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种报文处理方法、装置、系统、电子设备及存储介质与流程

2022-08-31 22:49:33 来源:中国专利 TAG:


1.本公开涉及网络技术领域,特别是涉及一种报文处理方法、装置、系统、电子设备及存储介质。


背景技术:

2.sfc(service function chaining,业务链)定义了经过业务分类后报文所需处理的一系列业务功能及处理次序,可支持ipv4(internet protocol version 4,互联网协议4版),vxlan(virtual extensible local area network,虚拟扩展局域网)等不同的协议。
3.相关技术中,由sc(service classifier,分类器)根据预设报文分类策略,为报文添加表示对应的sfc的nsh(network service header,网络业务头部),nsh中记录有sfp(service function path,业务功能路径)的spi(service path index,业务路径标识符)和si(service path index,业务索引),并转发至sff(service function forwarder,业务链转发节点)。sff根据报文中的nsh以及预设的业务链转发表,将报文转发至对应的sfc中的sf(service function,服务节点)进行业务处理。
4.然而,相关技术中,针对一个报文,由分类器确定该报文对应的业务链,即,在经过分类器后,报文对应的sf就已固定,无论后续是否需要,该报文必须经过确定出的业务链中所有的sf进行业务处理,会增大潜在处理开销,且无法实现业务功能处理的灵活调整,使得网络的灵活性较低。


技术实现要素:

5.本公开实施例的目的在于提供一种报文处理方法、装置、系统、电子设备及存储介质,以降低潜在处理开销,提高网络的灵活性。具体技术方案如下:
6.在本公开实施例的第一方面,首先提供了一种报文处理系统,所述报文处理系统包括业务链转发节点、主业务链和分支业务链;所述分支业务链中的首个服务节点为所述主业务链中的指定服务节点;其中:
7.所述业务链转发节点,用于从分类器接收携带有所述主业务链的主链标识的报文;按照包含所述主链标识的业务链转发表,确定所述主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文;
8.所述指定服务节点,用于对从所述业务链转发节点接收到的报文进行业务处理;若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链的分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文;
9.所述业务链转发节点,还用于在接收到的报文中携带有所述分支链标识时,根据所述业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点,并向所述中间服务节点发送接收到的报文;
10.所述中间服务节点,用于对从所述业务链转发节点接收到的报文进行业务处理,
并向所述业务链转发节点发送处理后的报文;
11.所述业务链转发节点,还用于在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
12.在本公开实施例的第二方面,提供了一种报文处理方法,所述方法应用于报文处理系统中的业务链转发节点,所述报文处理系统还包括主业务链和分支业务链;所述分支业务链中的首个服务节点为所述主业务链中的指定服务节点;所述方法包括:
13.从分类器接收携带有所述主业务链的主链标识的报文;
14.按照包含所述主链标识的业务链转发表,确定所述主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文,以使所述指定服务节点对接收到的报文进行业务处理;若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链的分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文;
15.在接收到的报文中携带有所述分支链标识时,根据所述业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点,并向所述中间服务节点发送接收到报文,以使所述中间服务节点对从所述业务链转发节点接收到的报文进行业务处理,并向所述业务链转发节点发送处理后的报文;
16.在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
17.在一些实施例中,从所述分类器接收到的报文中还携带有所述主业务链当前的主业务索引值;
18.所述按照包含所述主链标识的业务链转发表,确定所述主业务链中用于对接收到的报文进行业务处理的服务节点,包括:
19.确定所述业务链转发表中包含接收到的报文中携带的主业务索引值的表项;
20.将确定出的表项中记录的下一跳,确定为所述主业务链中用于对接收到的报文进行业务处理的服务节点。
21.在一些实施例中,携带有所述分支链标识的报文中还携带有所述分支业务链当前的分支业务索引值;
22.所述根据所述业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点,包括:
23.确定所述业务链转发表中包含所述分支链标识和接收到的报文中携带的分支业务索引值的表项;
24.将确定出的表项中记录的下一跳,确定为所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点。
25.在一些实施例中,在将处理后的报文发送至指定出口节点之前,所述方法还包括:
26.当从所述中间服务节点接收到报文时,若所述业务链转发表中不存在接收到的报文中携带的分支业务索引值,则确定所述分支业务链完成对报文的处理;
27.根据接收到的报文中携带的索引偏移值,确定接收到的报文对应的下一跳。
28.在一些实施例中,所述根据接收到的报文中携带的索引偏移值,确定接收到的报文对应的下一跳,包括:
29.若接收到的报文中携带的索引偏移值为指定数值,则确定接收到的报文对应的下一跳为所述指定出口节点;
30.若接收到的报文中携带的索引偏移值不为指定数值,则计算接收到的报文中携带的主业务索引值与索引偏移值的和值,得到更新后的主业务索引值;将所述业务链转发表中包含更新后的主业务索引值的表项中记录的下一跳,确定为接收到的报文对应的下一跳。
31.在一些实施例中,在将所述业务链转发表中包含更新后的主业务索引值的表项中记录的下一跳,确定为接收到的报文对应的下一跳之后,所述方法还包括:
32.删除接收到的报文中的分支链标识和分支业务索引值;
33.向确定出的下一跳发送删除分支链标识和分支业务索引值后的报文。
34.在一些实施例中,所述方法还包括:
35.若接收到的报文中未携带有所述分支链标识,且所述业务链转发表中不存在接收到的报文中携带的主业务索引值,则向所述指定出口节点发送接收到的报文。
36.在本公开实施例的第三方面,提供了一种报文处理方法,所述方法应用于报文处理系统中主业务链中的指定服务节点,所述报文处理系统还包括业务链转发节点和分支业务链;所述分支业务链中的首个服务节点为所述指定服务节点;所述方法包括:
37.对从所述业务链转发节点接收到的报文进行业务处理;其中,接收到的报文为:所述业务链转发节点在从分类器接收到携带有所述主业务链的主链标识的报文后,按照包含所述主链标识的业务链转发表确定所述主业务链中用于对接收到的报文进行业务处理的服务节点的情况下,向所述指定服务节点发送的;
38.若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链的分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文,以使所述业务链转发节点在接收到的报文中携带有所述分支链标识时,根据所述业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点,并向所述中间服务节点发送接收到的报文;以使所述中间服务节点对从所述业务链转发节点接收到的报文进行业务处理,并向所述业务链转发节点发送处理后的报文;以使在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
39.在一些实施例中,所述方法还包括:
40.若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链当前的分支业务索引值,以使所述业务链转发节点基于接收到的报文中的分支业务索引值,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点。
41.在一些实施例中,所述方法还包括:
42.若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加索引偏移值;其中,所述索引偏移值用于指示是否将报文返回所述主业务链进行处理。
43.在本公开实施例的第四方面,提供了一种报文处理方法,所述方法应用于报文处理系统中分支业务链中除指定服务节点以外的中间服务节点,所述报文处理系统还包括业
务链转发节点和主业务链;所述分支业务链中的首个服务节点为所述指定服务节点;所述方法包括:
44.对从所述业务链转发节点接收到的报文进行业务处理;其中,接收到的报文为:所述业务链转发节点在接收到的报文中携带有所述分支业务链的分支链标识时,根据包含所述主业务链的主链标识的业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点的情况下,向所述中间服务节点发送的;所述业务链转发节点,还用于从分类器接收携带有所述主链标识的报文;按照所述业务链转发表确定所述主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文;所述指定服务节点,用于对从所述业务链转发节点接收到的报文进行业务处理;若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文;
45.向所述业务链转发节点发送处理后的报文,以使所述业务链转发节点在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
46.在一些实施例中,从所述业务链转发节点接收到的报文中还携带有所述分支业务链当前的分支业务索引值;
47.在向所述业务链转发节点发送处理后的报文之前,所述方法还包括:
48.对接收到报文中携带的分支业务索引值进行更新,得到处理后的报文
49.在本公开实施例的第五方面,提供了一种报文处理装置,所述装置应用于报文处理系统中的业务链转发节点,所述报文处理系统还包括主业务链和分支业务链;所述分支业务链中的首个服务节点为所述主业务链中的指定服务节点;所述装置包括:
50.报文接收模块,用于从分类器接收携带有所述主业务链的主链标识的报文;
51.第一报文发送模块,用于按照包含所述主链标识的业务链转发表,确定所述主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文,以使所述指定服务节点对接收到的报文进行业务处理;若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链的分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文;
52.第二报文发送模块,用于在接收到的报文中携带有所述分支链标识时,根据所述业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点,并向所述中间服务节点发送接收到报文,以使所述中间服务节点对从所述业务链转发节点接收到的报文进行业务处理,并向所述业务链转发节点发送处理后的报文;
53.第三报文发送模块,用于在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
54.在一些实施例中,从所述分类器接收到的报文中还携带有所述主业务链当前的主业务索引值;
55.所述第一报文发送模块,具体用于确定所述业务链转发表中包含接收到的报文中携带的主业务索引值的表项;
56.将确定出的表项中记录的下一跳,确定为所述主业务链中用于对接收到的报文进
行业务处理的服务节点。
57.在一些实施例中,携带有所述分支链标识的报文中还携带有所述分支业务链当前的分支业务索引值;
58.所述第二报文发送模块,包括:
59.表项确定子模块,用于确定所述业务链转发表中包含所述分支链标识和接收到的报文中携带的分支业务索引值的表项;
60.中间服务节点确定子模块,用于将确定出的表项中记录的下一跳,确定为所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点。
61.在一些实施例中,所述装置还包括:
62.确定模块,用于在将处理后的报文发送至指定出口节点之前,当从所述中间服务节点接收到报文时,若所述业务链转发表中不存在接收到的报文中携带的分支业务索引值,则确定所述分支业务链完成对报文的处理;
63.下一跳确定模块,用于根据接收到的报文中携带的索引偏移值,确定接收到的报文对应的下一跳。
64.在一些实施例中,所述下一跳确定模块,具体用于若接收到的报文中携带的索引偏移值为指定数值,则确定接收到的报文对应的下一跳为所述指定出口节点;
65.若接收到的报文中携带的索引偏移值不为指定数值,则计算接收到的报文中携带的主业务索引值与索引偏移值的和值,得到更新后的主业务索引值;将所述业务链转发表中包含更新后的主业务索引值的表项中记录的下一跳,确定为接收到的报文对应的下一跳。
66.在一些实施例中,所述装置还包括:
67.处理模块,用于在将所述业务链转发表中包含更新后的主业务索引值的表项中记录的下一跳,确定为接收到的报文对应的下一跳之后,删除接收到的报文中的分支链标识和分支业务索引值;
68.向确定出的下一跳发送删除分支链标识和分支业务索引值后的报文。
69.在一些实施例中,所述装置还包括:
70.第四报文发送模块,用于若接收到的报文中未携带有所述分支链标识,且所述业务链转发表中不存在接收到的报文中携带的主业务索引值,则向所述指定出口节点发送接收到的报文。
71.在本公开实施例的第六方面,提供了一种报文处理装置,所述装置应用于报文处理系统中主业务链中的指定服务节点,所述报文处理系统还包括业务链转发节点和分支业务链;所述分支业务链中的首个服务节点为所述指定服务节点;所述装置包括:
72.业务处理模块,用于对从所述业务链转发节点接收到的报文进行业务处理;其中,接收到的报文为:所述业务链转发节点在从分类器接收到携带有所述主业务链的主链标识的报文后,按照包含所述主链标识的业务链转发表确定所述主业务链中用于对接收到的报文进行业务处理的服务节点的情况下,向所述指定服务节点发送的;
73.报文发送模块,用于若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链的分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文,以使所述业务链转发节点在接收到的报文
中携带有所述分支链标识时,根据所述业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点,并向所述中间服务节点发送接收到的报文;以使所述中间服务节点对从所述业务链转发节点接收到的报文进行业务处理,并向所述业务链转发节点发送处理后的报文;以使在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
74.在一些实施例中,所述装置还包括:
75.第一添加模块,用于若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链当前的分支业务索引值,以使所述业务链转发节点基于接收到的报文中的分支业务索引值,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点。
76.在一些实施例中,所述装置还包括:
77.第二添加模块,用于若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加索引偏移值;其中,所述索引偏移值用于指示是否将报文返回所述主业务链进行处理。
78.在本公开实施例的第七方面,提供了一种报文处理装置,所述装置应用于报文处理系统中分支业务链中除指定服务节点以外的中间服务节点,所述报文处理系统还包括业务链转发节点和主业务链;所述分支业务链中的首个服务节点为所述指定服务节点;所述装置包括:
79.业务处理模块,用于对从所述业务链转发节点接收到的报文进行业务处理;其中,接收到的报文为:所述业务链转发节点在接收到的报文中携带有所述分支业务链的分支链标识时,根据包含所述主业务链的主链标识的业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点的情况下,向所述中间服务节点发送的;所述业务链转发节点,还用于从分类器接收携带有所述主链标识的报文;按照所述业务链转发表确定所述主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文;所述指定服务节点,用于对从所述业务链转发节点接收到的报文进行业务处理;若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文;
80.报文发送模块,用于向所述业务链转发节点发送处理后的报文,以使所述业务链转发节点在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
81.在一些实施例中,从所述业务链转发节点接收到的报文中还携带有所述分支业务链当前的分支业务索引值;
82.所述装置还包括:
83.更新模块,用于在向所述业务链转发节点发送处理后的报文之前,对接收到报文中携带的分支业务索引值进行更新,得到处理后的报文。
84.在本公开实施例的第八方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
85.存储器,用于存放计算机程序;
86.处理器,用于执行存储器上所存放的程序时,实现上述任一所述的报文处理方法步骤。
87.在本公开实施例的第九方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的报文处理方法步骤。
88.本公开实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的报文处理方法。
附图说明
89.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
90.图1为本公开实施例提供的一种sfc网络中业务链的示意图;
91.图2为相关技术中按照表(1)中第2行至第6行对报文进行转发的示意图;
92.图3为本公开实施例提供的一种报文处理方法的交互图;
93.图4为本公开实施例提供的另一种报文处理方法的交互图;
94.图5为本公开实施例提供的一种sfc网络中业务链的示意图;
95.图6为本公开实施例提供的另一种报文处理方法的交互图;
96.图7为本公开实施例提供的一种对报文进行转发的示意图;
97.图8为本公开实施例提供的一种报文处理的原理示意图;
98.图9为本公开实施例提供的一种报文处理装置的结构图;
99.图10为本公开实施例提供的另一种报文处理装置的结构图;
100.图11为本公开实施例提供的另一种报文处理装置的结构图;
101.图12为本公开实施例提供的一种电子设备的结构图。
具体实施方式
102.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员基于本公开所获得的所有其他实施例,都属于本公开保护的范围。
103.参见图1,图1为本公开实施例提供的一种sfc网络架构的示意图。
104.图1中,入口业务分类表示分类器,业务1-业务6分别表示不同的sf,各自的id分别为a::1-a::6。转发器表示业务链转发节点,业务1-业务6表示不同的服务节点。图1中存在三个业务链:业务链1、业务链2和业务链3;业务链1表示业务1-业务2-业务4-业务5;业务链2表示业务1-业务2-业务3-业务4-业务5;业务链2表示业务1-业务2-业务3-业务6-业务5。三个业务链的sfp的标识分别为spi1、sp2和spi3。
105.图1中,控制面通过南向控制接口向分类器下发3个报文分类策略。分类器在接收到报文后,通过报文分类策略执行报文分类,并对分类后的报文进行nsh封装,转发到转发
器。
106.控制面通过南向接口向转发器下发业务链转发表,指导转发器根据nsh头中的spi/si编号依次遵循固定路径遍历所属的业务点。具体的,转发器匹配nsh头中的spi/si编号查找业务链转发表,依次转发给对应的下一跳,并进行相应封装。
107.服务节点对报文进行解封装,并进行业务处理。在业务处理后,将si值减1,并将报文转发回到转发器,表明当前服务节点的业务处理完成。
108.以此类推,直至转发器接收到的报文中si在业务链转发表中不存在对应的表项,或,接收到的报文中si为null(空),转发器确认完成业务处理,剥离报文的nsh,并转发到出口。
109.相关技术中,为了能够实现不同的报文分别按照上述三个业务链进行业务处理,则需要向转发器下发针对上述三个业务链的业务链转发表。例如,参见表(1)。
110.表(1)
111.spisi业务点下一跳封装2255sf1a::1ipv62254sf2a::2sfc2253sf3a::3ipv62252sf4a::4ipv62251sf5a::5ipv61212sf1a::1ipv61211sf2a::2ipv61210sf4a::4ipv61209sf5a::5ipv63254sf1a::1ipv63253sf2a::2sfc3252sf3a::3ipv63251sf6a::6vxlan3250sf5a::5ipv6
112.表(1)中第一列表示业务链的标识,第二列表示业务索引值,第三列表示业务点(即服务节点),第四列表示下一跳的id,第五列表示报文的封装方式。
113.表(1)中第2行至第6行表示spi2对应的业务链转发表,即,针对需要通过spi2进行业务处理的报文,转发器可以按照表(1)中第2行至第6行将报文转发至对应的下一跳;第7行至第10行表示spi1对应的业务链转发表,即,针对需要通过spi1进行业务处理的报文,转发器可以按照表(1)中第7行至第10行将报文转发至对应的下一跳;第11行至第15行表示spi3对应的业务链转发表,即,针对需要通过spi3进行业务处理的报文,转发器可以按照表(1)中第11行至第15行将报文转发至对应的下一跳。
114.例如,参见图2,图2为相关技术中按照表(1)中第2行至第6行对报文进行转发的示意图。
115.步骤1,控制面通过南向控制接口向分类器下发报文分类策略。
116.步骤2,分类器在接收到报文后,通过报文分类策略执行报文分类,在确定报文对
应的业务链为业务链2时,在报文中封装nsh,其中,封装的nsh中记录spi=2,且si=255,并向转发器发送封装得到的报文。
117.步骤3,转发器接收到报文后,根据表(1)中spi=2对应的表项,即第2行至第6行,确定当前si=255对应的下一跳为业务1,并向业务1发送报文。业务1在对报文进行业务处理后,将报文中的si减1,并向转发器发送处理后的报文。转发器接收到报文后,确定当前si=254对应的下一跳为业务2,并向业务2发送报文。业务2在对报文进行业务处理后,将报文中的si减1,并向转发器发送处理后的报文,以此类推,直至转发器从业务5接收到报文,此时报文中的si=250,转发器确定spi=2对应的表项中不存在包含si=250的表项,剥离报文中的nsh,并转发到出口。
118.基于spi1和spi3对报文进行处理的方式,与基于spi2对报文进行处理的方式类似。
119.相关技术中,在经过分类器后,报文对应的sf就已固定,基于业务链转发表,无论后续是否需要,该报文必须经过确定出的业务链中所有的sf进行业务处理,会增大潜在处理开销,且无法实现业务功能处理的灵活调整,使得网络的灵活性较低。
120.为了解决上述问题,本公开实施例提供了一种报文处理系统,该报文处理系统包括业务链转发节点、主业务链和分支业务链;分支业务链中的首个服务节点为主业务链中的指定服务节点;其中:
121.业务链转发节点,用于从分类器接收携带有主业务链的主链标识的报文;按照包含主链标识的业务链转发表,确定主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文。
122.指定服务节点,用于对从业务链转发节点接收到的报文进行业务处理;若根据处理结果确定需要通过分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加分支业务链的分支链标识,并向业务链转发节点发送添加分支链标识后的报文。
123.业务链转发节点,还用于在接收到的报文中携带有分支链标识时,根据业务链转发表中包含分支链标识的表项,确定分支业务链中用于对接收到的报文进行业务处理的中间服务节点,并向中间服务节点发送接收到的报文。
124.中间服务节点,用于对从业务链转发节点接收到的报文进行业务处理,并向业务链转发节点发送处理后的报文。
125.业务链转发节点,还用于在分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
126.本公开实施例提供的报文处理系统,指定服务节点处根据报文的处理结果,能够将报文发送至对应的业务链(即分支业务链)进行处理,即,能够实时根据处理结果调整报文所经过的服务节点,也就能够避免上述情况,降低潜在处理开销,也能够提高网络业务的灵活性。
127.其次,若报文头/负载在进行业务处理时发生变化,需要通过不同的业务链实现差异化处理。例如,服务节点对部分报文进行加密,加密的报文和非加密的报文需要采用不同的后继处理机制。此时,若按照相关技术中,则无法实现加密的报文和非加密的报文的不同处理,即,相关技术中,无法制定满足需要的有效分流规则。而本公开实施例提供的报文处理系统,指定服务节点处根据报文的处理结果,能够实现报文通过指定的业务链进行处理,
即,能够实时根据处理结果将报文发送至不同的分支业务链进行处理,也就能够满足差异化处理,提高网络业务的灵活性。
128.其次,服务节点根据报文应用层特征识别的结果/商业逻辑,对报文进行差异化处理时,也需要通过不同的业务链实现差异化处理。例如,服务节点进行深度报文检测后,对正常报文进行发送,对非正常报文需要进行审计和留存等后继操作,此时,则需要通过不同的业务链对报文进行处理。而深度报文检测等处理所引起的分流策略发生在特定服务节点上,分类器无法实现相应的分流。而本公开实施例提供的报文处理系统,指定服务节点处根据报文的处理结果,能够将报文通过处理结果对应的业务链进行处理,即,能够实时根据处理结果将报文发送至不同的分支业务链进行处理,也就能够满足差异化处理,提高网络业务的灵活性。
129.基于本公开实施例提供的报文处理系统,分支业务链中的首个服务节点为主业务链中的指定服务节点,即,主业务链中指定服务节点之前的部分与分支业务链构成一个新的业务链(可以称为从业务链),该从业务链与主业务链存在重合部分。对于该重合部分,无需针对主业务链和该从业务链分别建立对应的表项,也就能够降低业务链转发表的维度,进而,减小维护成本。
130.即,本公开在现有的业务链控制面和转发面引入新的机制,实现业务链分叉处理机制,根据流量特征、商业逻辑、业务负载的变化,对现有的spi处理管线进行局部灵活调整,适应差异化需求,提高业务链服务节点整体利用效率。
131.另外,通过分支业务链可以实现局部刷新业务链的分支处理逻辑,并在业务链的尾端进行合并,对外则保持一条sfc不变。避免了反复调整头端、新增、重建多条端到端sfc的开销;解耦了分流策略与业务链sfp数量的紧绑定关系,有效提升了业务链技术的应用效率和场景适应性。
132.其次,本公开在遵循现有sfc nsh等格式和基本转发方式基础上,重复利用单条业务链的处理资源,调整分支处理逻辑,提高业务链扩展性和服务节点利用率。
133.基于上述处理,通过新增路径分叉、合并的管理和转发能力,灵活按需进行业务链调整和调度,满足算力网络中复杂多变的云计算资源开放需求,增强业务链的生态适应性。
134.关于上述报文处理系统的其他实施例,可以参考后续关于业务链转发节点、指定服务节点和中间服务节点的实施例的详细介绍。
135.基于相同的发明构思,本公开实施例还提供了一种报文处理方法,该方法可以应用于业务链转发节点、指定服务节点和中间服务节点,其中,该业务链转发节点、指定服务节点和中间服务节点可以分别为上述报文处理系统中的业务链转发节点、指定服务节点和中间服务节点。
136.参见图3,图3为本公开实施例提供的一种报文处理方法的交互图,该方法可以包括以下步骤:
137.s301:业务链转发节点从分类器接收携带有主业务链的主链标识的报文。
138.s302:按照包含主链标识的业务链转发表,业务链转发节点确定主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文。
139.s303:指定服务节点对从业务链转发节点接收到的报文进行业务处理。
140.s304:若根据处理结果确定需要通过分支业务链对接收到的报文进行业务处理,
指定服务节点在接收到的报文中添加分支业务链的分支链标识。
141.s305:指定服务节点向业务链转发节点发送添加分支链标识后的报文。
142.s306:业务链转发节点在接收到的报文中携带有分支链标识时,根据业务链转发表中包含分支链标识的表项,确定分支业务链中用于对接收到的报文进行业务处理的中间服务节点。
143.s307:业务链转发节点向中间服务节点发送接收到的报文。
144.s308:中间服务节点对从业务链转发节点接收到的报文进行业务处理。
145.s309:中间服务节点向业务链转发节点发送处理后的报文。
146.s3010:业务链转发节点在分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
147.基于本公开实施例提供的报文处理方法,分支业务链中的首个服务节点为主业务链中的指定服务节点,即,主业务链中指定服务节点之前的部分与分支业务链构成从业务链,该从业务链与主业务链存在重合部分。对于该重合部分,无需针对主业务链和从业务链分别建立对应的表项,也就能够降低业务链转发表的维度,进而,减小维护成本。
148.本公开实施例中的主业务链可以为用户根据需求确定出的sfc网络中的一个业务链。例如,主业务链可以尽可能包含较多的指定服务节点;当一条主业务链无法包含全部指定服务节点时,也可以确定多个主业务链。
149.例如,针对图1所示的sfc网络,可以将spi2表示的业务链确定为主业务链,相应的,业务链1对应分支业务链1,即,分支业务链1对应的指定服务节点为业务2;业务链3对应分支业务链2,即,分支业务链2对应的指定服务节点为业务3。
150.针对步骤s301,在一些实施例中,控制面可以向分类器下发报文分类策略。该报文分类策略中可以记录报文的报文信息与对应的主业务链的标识(即主链标识)的对应关系。其中,报文的报文信息可以包括报文的五元组。进而,在分类器接收到报文后,可以根据该报文分类策略,确定与该报文的报文信息对应的主业务链,并将该主业务链的主链标识封装在该报文的nsh中,并向业务链转发点发送封装后的报文。
151.针对步骤s302,在一些实施例中,控制面可以向业务链转发节点下发业务链转发表,相应的,业务链转发节点可以基于该业务链转发表确定接收到报文的下一跳。例如,参见表(2),表(2)为本公开实施例提供的一种针对图1所示的sfc网络的业务链转发表。
152.表(2)
153.spi主si分支tag分支sisi偏移值业务点下一跳封装2255nullnullnullsf1a::1ipv62254nullnullnullsf2a::2sfc2253nullnullnullsf3a::3ipv62252nullnullnullsf4a::4ipv62251nullnullnullsf5a::5ipv62253-1210-2sf4a::4ipv622252-251-1sf6a::6vxlan
154.表(2)中,第一列表示主业务链的主链标识、第二列表示主业务链的业务索引、第三列表示分支业务链的分支链标识、第四列表示分支业务链的业务索引、第五列表示索引
偏移值、第六列表示业务点(即服务节点)、第七列表示下一跳的id,第八列表示报文的封装方式。
155.针对图1所示的网络架构,spi2为主业务链,因此,分类器在报文中添加spi=2,相应的,业务链转发节点可以按照表(2)确定报文的下一跳。
156.在一些实施例中,分类器向业务链转发节点发送的报文中还携带有主业务链当前的主业务索引值,相应的,参见图4,在图3的基础上,上述步骤s302可以包括以下步骤:
157.s3021:业务链转发节点确定业务链转发表中包含接收到的报文中携带的主业务索引值的表项。
158.s3022:业务链转发节点将确定出的表项中记录的下一跳,确定为主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文。
159.在本公开实施例中,参见表(2),业务链转发表中还可以记录有主si,即,主业务索引值。若接收到的报文中未携带有分支si,则业务链转发节点可以基于该主si确定报文的下一跳。
160.例如,对于与主业务链spi2匹配的报文,分类器可以在该报文的nsh中封装主si=255,进而,当业务链转发节点接收到分类器发送的报文时,可以根据表(2)中的第二行,确定下一跳为业务1,并向业务1发送接收到的报文。
161.主业务链中的服务节点接收到业务链转发节点发送的报文时,可以对报文进行业务处理。另外,在进行业务报文处理后,还可以将报文中的主si减1,并向业务链转发节点发送处理后的报文。
162.例如,业务1在对报文进行业务处理后,将报文中的主si减1,此时,主si=254,并向业务链转发节点发送处理后的报文。业务链转发节点接收到报文后,确定当前主si=254对应的下一跳为业务2,并向业务2发送报文。
163.针对步骤s303和s304,指定服务节点为分支业务链的首节点,在指定服务节点处,可以实现通过不同的业务链对报文进行处理。
164.在一些实施例中,针对某一服务节点对报文进行业务处理的不同处理结果,后续,若需要分别通过不同的业务链对不同处理结果的报文进行处理,则可以将该服务节点确定为指定服务节点,相应的,也可以通过控制面向指定服务节点下发本公开实施例中的业务链转发表。
165.在一个实施例中,指定服务节点中还可以记录有处理结果与分支业务链的对应关系,进而,在得到报文的处理结果后,可以根据该对应关系,确定该报文需要经过的分支业务链,并将该分支业务链的标识(即分支链标识)封装到该报文的nsh中。
166.例如,参见图5,在业务2对报文进行业务处理后,若业务2确定处理后的报文需要通过分支业务链1进行处理,则业务2可以在处理后的报文的nsh中封装分支业务链1的标识(即分支tag(标记)1),并向业务链转发节点发送。
167.在业务3对报文进行业务处理后,若业务3确定处理后的报文需要通过分支业务链2进行处理,则业务3可以在处理后的报文的nsh中封装分支业务链2的标识(即分支tag2),并向业务链转发节点发送。
168.针对步骤s306-s3010,若接收到的报文中携带有分支链标识,表明接收到的报文需要通过该分支链标识指示的分支业务链进行处理,业务链转发节点则可以根据包含该分
支链标识的表项,确定该分支业务链中对接收到的报文进行处理的服务节点(即中间服务节点),并向其发送报文,以使该报文能够通过分支业务链的处理。
169.相应的,中间服务节点可以在完成报文的业务处理后,向业务链转发节点发送处理后的报文。进而,在分支业务链完成对报文的处理的情况下时,业务链转发节点则可以向指定出口节点发送处理后的报文。
170.在一些实施例中,指定服务节点向业务链转发节点发送的报文中还携带有分支业务链当前的分支业务索引值。相应的,参见图6,在图3的基础上,s306可以包括以下步骤:
171.s3061:业务链转发节点确定业务链转发表中包含分支链标识和接收到的报文中携带的分支业务索引值的表项。
172.s3062:业务链转发节点将确定出的表项中记录的下一跳,确定为分支业务链中用于对接收到的报文进行业务处理的中间服务节点。
173.在本公开实施例中,若指定服务节点确定需要通过分支业务链对报文进行处理,则指定服务节点还可以在报文的nsh中封装该分支业务链当前的si(即分支si)。
174.例如,根据表(2),业务2确定报文需要通过分支业务链1进行处理,则可以在报文的nsh中封装分支tag=1,以及分支si=210。
175.进而,在接收到业务2发送的报文后,业务链转发节点根据表(2),确定包含tag=1,以及分支si=210的表项,该表项中记录的下一跳为业务4,则业务链转发节点可以向业务4发送接收到的报文。
176.在一些实施例中,中间服务节点还可以对接收到报文中携带的分支业务索引值进行更新,得到处理后的报文。
177.在一些实施例中,该方法还可以包括以下步骤:
178.步骤一:当从中间服务节点接收到报文时,若业务链转发表中不存在接收到的报文中携带的分支业务索引值,业务链转发节点确定分支业务链完成对报文的处理。
179.步骤二:业务链转发节点根据接收到的报文中携带的索引偏移值,确定接收到的报文对应的下一跳。
180.在本公开实施例中,若业务链转发表中不存在接收到的文中携带的分支业务索引值,表明当前发送报文的中间服务节点为分支业务链中的最后一个服务节点,即,分支业务链完成对报文的处理。
181.此时,可以直接结束报文的业务处理,或者,也可以将该报文返回至主业务链进行处理。
182.在一些实施例中,上述步骤二可以包括以下步骤:
183.步骤1:若接收到的报文中携带的索引偏移值为指定数值,业务链转发节点确定接收到的报文对应的下一跳为指定出口节点。
184.步骤2:若接收到的报文中携带的索引偏移值不为指定数值,业务链转发节点计算接收到的报文中携带的主业务索引值与索引偏移值的和值,得到更新后的主业务索引值;将业务链转发表中包含更新后的主业务索引值的表项中记录的下一跳,确定为接收到的报文对应的下一跳。
185.其中,索引偏移值可以为指定服务节点封装在报文中的,索引偏移值用于指示是否将报文返回主业务链进行处理。
186.在本公开实施例中,若接收到的报文中携带的索引偏移值为指定数值,例如,指定数值可以为null,则表明需要直接结束报文的处理,即,业务链转发节点确定接收到的报文对应的下一跳为指定出口节点。相应的,业务链转发节点可以删除接收到的报文的nsh,并向指定出口节点发送。
187.若接收到的报文中携带的索引偏移值为指定数值,表明当前需要该报文返回至主业务链进行处理,则业务链转发节点计算报文中携带的主业务索引值与索引偏移值的和值,得到更新后的主业务索引值,进而,确定业务链转发表中包含更新后的主业务索引值的表项,将该表项中记录的下一跳,确定为接收到的报文对应的下一跳。
188.例如,若业务3确定报文需要通过业务6处理,且在业务6处理完后,直接发送至出口,则业务3在报文中添加spi=2,si偏移=null,进而,在业务链转发节点接收到业务6发送的报文时,确定分支业务链2完成对报文的处理,并确定报文的索引偏移值为指定数值,则可以直接将报文发送至出口。
189.若业务3确定报文需要通过业务6处理,且在业务6处理完后,发送至业务5进行处理,即,返回主业务链进行处理,则业务3在报文中添加spi=2,si偏移=-1,进而,在业务链转发节点接收到业务6发送的报文时,确定分支业务链2完成对报文的处理,并确定报文的索引偏移值不为指定数值。此时,业务链转发节点计算当前的主si(即252)与索引偏移值(即-1)的和值,得到更新后的主si(即251)。业务链转发节点确定表(2)中包含主si=251的表项中记录的下一跳(即业务5),确定为接收到的报文对应的下一跳。进而,可以向业务5发送从业务6接收到的报文,以将报文返回至主业务链进行处理。
190.参见图7,步骤1:控制面确定指定服务节点、生成报文分类策略、确定分支业务链的标识、分支si和si偏移。通过南向控制接口向分类器下发报文分类策略;通过南向接口向转发器和指定服务接地那下发业务链转发表。
191.步骤2:分类器在接收到报文后,通过报文分类策略执行报文分类,确定报文对应的主业务链,并封装nsh。例如,确定出的主业务链为业务链2时,封装的nsh中记录spi=2,且主si=255,并向转发器发送封装得到的报文。
192.步骤3:转发器接收到报文后,根据表(2)中spi=2、主si=255对应的表项,确定报文的下一跳为业务1,向业务1发送报文。业务1在对报文进行业务处理后,将主si减1,并向转发器发送报文;转发器根据表(2)中spi=2、主si=254对应的表项,确定报文的下一跳为业务2,向业务2发送报文;业务2在对报文进行业务处理后,将主si减1,并向转发器发送报文;转发器根据表(2)中spi=2、主si=253对应的表项,确定报文的下一跳为业务3,向业务3发送报文。业务3在对报文进行业务处理后,将主si减1,并确定需要通过分支业务链2进行处理,则根据表(2),在报文中添加分支tag=2,分支si=251,并向转发器发送。转发器根据表(2),确定主si=252、分支tag=2的表项中下一跳为业务6,则向业务6发送报文。业务6在对报文进行业务处理后,将分支si减1,并向转发器发送。转发器确定表(2)中不存在包含分支si=250的表项,则根据业务6对应的表项中记录的si偏移值确定将报文发送至主业务链进行处理,还是将报文发送至出口。
193.并发送至对应的即第2行至第6行,确定当前si=255对应的下一跳为业务1,并向业务1发送报文。业务1在对报文进行业务处理后,将报文中的si减1,并向转发器发送处理后的报文。转发器接收到报文后,确定当前si=254对应的下一跳为业务2,并向业务2发送
报文。业务2在对报文进行业务处理后,将报文中的si减1,并向转发器发送处理后的报文,以此类推,直至转发器从业务5接收到报文,此时报文中的si=250,转发器确定spi=2对应的表项中不存在包含si=250的表项,剥离报文中的nsh,并转发到出口。
194.相较于表(1),表(2)中的表项更少。即,基于本公开实施例提供的方法,只需要较少的表项即可完成报文的转发,进而,能够降低业务链转发表的维度,减小维护成本。
195.在一些实施例中,在步骤2之后,该方法还可以包括以下步骤:
196.删除接收到的报文中的分支链标识和分支业务索引值;向确定出的下一跳发送删除分支链标识和分支业务索引值后的报文。
197.在本公开实施例中,若需要将报文返回至主业务链进行处理,则业务链转发节点可以删除分支链标识和分支业务索引值后的报文,并将报文发送至主业务链中的服务节点。相应的,主业务链中的服务节点则可以对报文中的主业务索引值进行更新。
198.在一些实施例中,该方法还可以包括以下步骤:
199.若接收到的报文中未携带有分支链标识,且业务链转发表中不存在接收到的报文中携带的主业务索引值,则向指定出口节点发送接收到的报文。
200.在本公开实施例中,若接收到的报文中未携带有分支链标识,且业务链转发表中不存在接收到的报文中携带的主业务索引值,表明报文在返回主业务链后,主业务链完成对报文的处理,此时,业务链转发节点则可以向指定出口节点发送报文。
201.可见,本公开实施例提供的方法,引入业务链分支部署、处理机制,在现有nsh基础上,扩展了分支标识tag、分支si、si偏移等参数。例如,上述参数可以封装在nsh头扩展部分的可自定义metadata(元数据)部分,在保持兼容性的基础上,解决了现有sfc灵活性不足的问题,对现有网络无改造需求,同时提高了服务节点的利用率和重叠路径的复用率。因此,本公开实施例提供的方法,可以与各类现有和未来的算力网络、新型城域网、数据中心边缘云等虚拟化场景结合,且可广泛应用于算力网络、5g承载网、新型城域网、网络重构、云业务内外互联等各类数据领域。
202.参见图8,图8为本公开实施例提供的一种报文处理的原理示意图。
203.在业务链控制面,可以获取sfc网络的拓扑信息,并根据该拓扑信息进行路径计算,确定主业务链、指定服务节点、分支业务链和业务链转发表,以及进行分支处理,例如,确定分支业务链对应的索引偏移值,得到报文分类策略,进而进行策略配置,即,通过本地/南向接口,向分类器下发报文分类策略,以及向指定服务节点和转发器下发业务链转发表。基于此,能够实现控制面对sfc的管理颗粒度进一步细化。
204.在业务链转发面,分类器按照报文分类策略对报文匹配,确定对应的主业务链。转发器按照业务链转发表对报文进行转发。业务单元中的指定服务节点根据报文的处理结果,确定对应的分支业务链,并按照业务链转发表,在报文中添加分支标识、索引偏移值和分支业务索引,以使报文在分支业务链中传输。
205.另外,对于无法支持分支特性的服务节点,可通过代理(proxy)进行nsh的识别和更新。
206.基于相同的发明构思,本公开实施例还提供了一种报文处理装置,所述装置应用于报文处理系统中的业务链转发节点,所述报文处理系统还包括主业务链和分支业务链;所述分支业务链中的首个服务节点为所述主业务链中的指定服务节点;参见图9,所述装置
包括:
207.报文接收模块901,用于从分类器接收携带有所述主业务链的主链标识的报文;
208.第一报文发送模块902,用于按照包含所述主链标识的业务链转发表,确定所述主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文,以使所述指定服务节点对接收到的报文进行业务处理;若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链的分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文;
209.第二报文发送模块903,用于在接收到的报文中携带有所述分支链标识时,根据所述业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点,并向所述中间服务节点发送接收到报文,以使所述中间服务节点对从所述业务链转发节点接收到的报文进行业务处理,并向所述业务链转发节点发送处理后的报文;
210.第三报文发送模块904,用于在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
211.在一些实施例中,从所述分类器接收到的报文中还携带有所述主业务链当前的主业务索引值;
212.所述第一报文发送模块902,具体用于确定所述业务链转发表中包含接收到的报文中携带的主业务索引值的表项;
213.将确定出的表项中记录的下一跳,确定为所述主业务链中用于对接收到的报文进行业务处理的服务节点。
214.在一些实施例中,携带有所述分支链标识的报文中还携带有所述分支业务链当前的分支业务索引值;
215.所述第二报文发送模块903,包括:
216.表项确定子模块,用于确定所述业务链转发表中包含所述分支链标识和接收到的报文中携带的分支业务索引值的表项;
217.中间服务节点确定子模块,用于将确定出的表项中记录的下一跳,确定为所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点。
218.在一些实施例中,所述装置还包括:
219.确定模块,用于在将处理后的报文发送至指定出口节点之前,当从所述中间服务节点接收到报文时,若所述业务链转发表中不存在接收到的报文中携带的分支业务索引值,则确定所述分支业务链完成对报文的处理;
220.下一跳确定模块,用于根据接收到的报文中携带的索引偏移值,确定接收到的报文对应的下一跳。
221.在一些实施例中,所述下一跳确定模块,具体用于若接收到的报文中携带的索引偏移值为指定数值,则确定接收到的报文对应的下一跳为所述指定出口节点;
222.若接收到的报文中携带的索引偏移值不为指定数值,则计算接收到的报文中携带的主业务索引值与索引偏移值的和值,得到更新后的主业务索引值;将所述业务链转发表中包含更新后的主业务索引值的表项中记录的下一跳,确定为接收到的报文对应的下一跳。
223.在一些实施例中,所述装置还包括:
224.处理模块,用于在将所述业务链转发表中包含更新后的主业务索引值的表项中记录的下一跳,确定为接收到的报文对应的下一跳之后,删除接收到的报文中的分支链标识和分支业务索引值;
225.向确定出的下一跳发送删除分支链标识和分支业务索引值后的报文。
226.在一些实施例中,所述装置还包括:
227.第四报文发送模块,用于若接收到的报文中未携带有所述分支链标识,且所述业务链转发表中不存在接收到的报文中携带的主业务索引值,则向所述指定出口节点发送接收到的报文。
228.本公开实施例还提供了一种报文处理装置,所述装置应用于报文处理系统中主业务链中的指定服务节点,所述报文处理系统还包括业务链转发节点和分支业务链;所述分支业务链中的首个服务节点为所述指定服务节点;参见图10,所述装置包括:
229.业务处理模块1001,用于对从所述业务链转发节点接收到的报文进行业务处理;其中,接收到的报文为:所述业务链转发节点在从分类器接收到携带有所述主业务链的主链标识的报文后,按照包含所述主链标识的业务链转发表确定所述主业务链中用于对接收到的报文进行业务处理的服务节点的情况下,向所述指定服务节点发送的;
230.报文发送模块1002,用于若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链的分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文,以使所述业务链转发节点在接收到的报文中携带有所述分支链标识时,根据所述业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点,并向所述中间服务节点发送接收到的报文;以使所述中间服务节点对从所述业务链转发节点接收到的报文进行业务处理,并向所述业务链转发节点发送处理后的报文;以使在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
231.在一些实施例中,所述装置还包括:
232.第一添加模块,用于若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支业务链当前的分支业务索引值,以使所述业务链转发节点基于接收到的报文中的分支业务索引值,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点。
233.在一些实施例中,所述装置还包括:
234.第二添加模块,用于若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加索引偏移值;其中,所述索引偏移值用于指示是否将报文返回所述主业务链进行处理。
235.本公开实施例还提供了一种报文处理装置,所述装置应用于报文处理系统中分支业务链中除指定服务节点以外的中间服务节点,所述报文处理系统还包括业务链转发节点和主业务链;所述分支业务链中的首个服务节点为所述指定服务节点;参见图11,所述装置包括:
236.业务处理模块1101,用于对从所述业务链转发节点接收到的报文进行业务处理;其中,接收到的报文为:所述业务链转发节点在接收到的报文中携带有所述分支业务链的
分支链标识时,根据包含所述主业务链的主链标识的业务链转发表中包含所述分支链标识的表项,确定所述分支业务链中用于对接收到的报文进行业务处理的中间服务节点的情况下,向所述中间服务节点发送的;所述业务链转发节点,还用于从分类器接收携带有所述主链标识的报文;按照所述业务链转发表确定所述主业务链中用于对接收到的报文进行业务处理的服务节点,并向确定出的服务节点发送接收到的报文;所述指定服务节点,用于对从所述业务链转发节点接收到的报文进行业务处理;若根据处理结果确定需要通过所述分支业务链对接收到的报文进行业务处理,则在接收到的报文中添加所述分支链标识,并向所述业务链转发节点发送添加所述分支链标识后的报文;
237.报文发送模块1102,用于向所述业务链转发节点发送处理后的报文,以使所述业务链转发节点在所述分支业务链完成对报文的处理的情况下,将处理后的报文发送至指定出口节点。
238.在一些实施例中,从所述业务链转发节点接收到的报文中还携带有所述分支业务链当前的分支业务索引值;
239.所述装置还包括:
240.更新模块,用于在向所述业务链转发节点发送处理后的报文之前,对接收到报文中携带的分支业务索引值进行更新,得到处理后的报文。
241.本公开实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
242.存储器1203,用于存放计算机程序;
243.处理器1201,用于执行存储器1203上所存放的程序时,实现上述任一报文处理方法。
244.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
245.通信接口用于上述电子设备与其他设备之间的通信。
246.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
247.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
248.在本公开提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一报文处理方法的步骤。
249.在本公开提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其
在计算机上运行时,使得计算机执行上述实施例中任一报文处理方法。
250.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
251.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
252.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
253.以上所述仅为本公开的较佳实施例,并非用于限定本公开的保护范围。凡在本公开的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本公开的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献