本申请涉及通信技术领域,尤其涉及一种服务路由方法及装置。
背景技术:
计算优先网络(computingfirstnetwork,cfn)提出:以服务标识(identification,id)为目的地的报文取代服务节点的网络协议(internetprotocol,ip)地址,即提供相同服务的边缘计算节点暴露相同的ip地址(即服务id)给cfn,当用户发起服务请求时,计算路由器装置/计算节点(以下简称cfnrouter/cfnnode)可以根据服务id结合实时的网络以及服务的状态,在众多服务节点中选择合适的服务节点为用户提供服务。
在进行服务路由时,cfnrouter需要对属于同一会话的服务报文提供流粘性保证,即将属于同一会话的服务报文导向同一服务节点,通常的做法是根据服务的属性在cfnrouter建立路径信息表,该路径信息表记录会话的路径信息,如源地址、服务id、服务节点ip等信息,从而可以根据路径信息表将属于同一条会话的服务报文导向同一服务节点。
边缘计算、物联网兴起将带来巨量接入,要做到服务报文的线速转发,以及对每个会话流粘性的保持,cfnrouter需要建立巨量的会话流表,cfnrouter的成本负担很大。
技术实现要素:
本申请提供了一种服务路由方法及装置,用以解决在目前cfnrouter的成本负担很大的问题。
第一方面,本申请实施例的服务路由方法,包括:第一路由节点接收第一报文,该第一报文携带服务标识信息和第一服务节点地址信息,并基于该第一服务节点地址信息转发第一报文。其中,服务标识信息用于表征包括第一服务节点在内的至少两个服务节点提供的第一服务的标识,第一服务节点地址信息用于表征第一服务节点的地址。
本申请实施例中服务的后续报文可以携带服务节点地址信息,使得路由节点可以从报文中获取服务节点地址信息,而不需要保存路径信息表。通过本申请实施例提供的服务路由方法,路由节点可以不需要维护用于记录业务转发信息(或状态)的路径信息表,从而可以降低路由节点的负载,并且可以在保持服务路由动态性的同时,保持会话的流粘性。
在一种可能的设计中,第一路由节点基于第一服务节点地址信息转发第一报文时,可以先确定第一服务节点地址信息对应的第一服务节点是否可用。若第一服务节点可用,第一路由节点向第一服务节点转发所述第一报文。或者,若第一服务节点不可用,第一路由节点根据服务标识信息转发第一报文。通过上述方式,路由节点可以在第一服务节点不可用时快速切换至其他可用服务节点。
在一种可能的设计中,第一路由节点可以基于过滤列表确定第一服务节点是否可用,过滤列表用于指示一个或多个服务节点不可用。上述设计中通过在第一路由节点保存过滤列表,可以保证第一报文导向可用的服务节点,从而可以提高会话的可靠性。
在一种可能的设计中,服务节点不可用可以指服务节点过载或者故障或者报文不可达。其中,报文不可达可以指由于网络拥塞使报文不能到达服务节点。通过上述设计,第一路由节点还可以实现服务节点的均衡。
在一种可能的设计中,在第一路由节点基于过滤列表确定第一服务节点是否可用之前,第一路由节点可以确定第一服务节点不可用,将过滤信息更新到过滤列表,并广播过滤信息,过滤信息用于指示第一服务节点不可用。上述设计中,路由节点可以实时监控服务节点的状态以及可用性,并通过控制面扩散,建立过滤列表,从而可以使得服务节点在过载、failover时能快速切换至其他可用服务节点。
在一种可能的设计中,在第一路由节点基于过滤列表确定第一服务节点是否可用之前,第一路由节点也可以接收第二路由节点广播的过滤信息,并将过滤信息更新到过滤列表,过滤信息用于指示第一服务节点不可用。上述设计中,路由节点还可以接收其他路由节点扩散的过滤信息建立过滤列表,从而可以使得服务节点在过载、failover时能快速切换至其他可用服务节点。
在一种可能的设计中,在第一路由节点根据服务标识信息转发第一报文之后,第一路由节点向客户节点发送连接复位报文,该连接服务报文可以用于触发客户节点重新发起传输控制协议tcp连接。上述设计中,路由节点在发现服务节点不可用时可以触发客户节点重连,从而可以降低会话的中断时延。
在一种可能的设计中,在第一路由节点根据服务标识信息转发第一报文之后,还包括:第一路由节点获取第二服务节点地址信息,第二服务节点地址信息用于表征第二服务节点的地址,第一路由节点发送所述第二服务节点地址信息,至少两个服务节点包括第二服务节点。通过上述设计,vcfn节点可以在服务节点切换后获取新的服务节点地址信息,从而可以提高会话的可靠性。
在一种可能的设计中,在第一路由节点接收来自客户节点的第一报文之前,第一路由节点可以获取所述第一服务节点地址信息。第一路由节点发送第二报文,第二报文携带第一服务节点地址信息。通过上述设计,vcfn可以获取第一服务节点地址信息,从而可以在后续报文中携带该第一服务节点地址信息。
在一种可能的设计中,在第一路由节点获取第一服务节点地址信息之前,第一路由节点接收第三报文,所述第三报文携带所述服务标识信息。通过上述设计,第一路由节点可以在首报文的触发下发送第一服务节点地址信息。
在一种可能的设计中,第三报文携带用于请求第一服务节点地址信息的请求信息。上述设计中,第一路由节点可以是在显式请求下发送第一服务节点地址信息。
在一种可能的设计中,该请求信息可以携带在第三报文的ip扩展字段中。或者,该请求信息也可以携带在第三报文的目的地址字段,请求信息为被置为预设值的服务节点地址信息。
在一种可能的设计中,第一报文还可以携带路由节点标识信息,该路由节点标识信息用于表征多个路由节点共同的标识。通过上述设计,后续报文可以通过路由节点,从而可以由路由节点进行转发,进而可以在服务节点不可用时,由路由节点的控制下切换到其他服务节点。
在一种可能的设计中,第一报文的srv6头部可以携带服务标识信息和第一服务节点地址信息。或者,第一报文的目的地址字段也可以携带服务标识信息和第一服务节点地址信息。或者,第一报文的ip扩展字段也可以携带服务标识信息和第一服务节点地址信息。
第二方面,本申请实施例的服务路由方法,包括:会话保持装置获取第一报文,第一报文携带服务标识信息,其中,服务标识信息用于表征至少两个服务节点提供的第一服务的标识。会话保持装置在第一报文中添加第一服务节点地址信息后向路由节点进行发送,其中,第一服务节点地址信息用于表征第一服务节点的地址,至少两个服务节点包括第一服务节点。本申请实施例中会话保持装置可以在服务的后续报文中添加服务节点地址信息,使得路由节点可以从报文中获取路径信息,而不需要保存路径信息表。通过本申请实施例提供的服务路由方法可以减轻路由节点转发面路径信息表的负担,并且会话保持装置可以在保持服务路由动态性的同时,保持会话的流粘性。
在一种可能的设计中,会话保持装置在第一报文中添加第一服务节点地址信息后向路由节点进行发送时,可以在第一报文中添加第一服务节点地址信息以及路由节点标识信息后向路由节点进行发送,路由节点标识信息用于表征多个路由节点共同的标识。上述设计中通过在报文中添加路由节点标识信息,使得后续报文可以通过路由节点,从而可以由路由节点进行转发,进而可以在服务节点不可用时,由路由节点的控制下切换到其他服务节点。
在一种可能的设计中,在会话保持装置在第一报文中添加第一服务节点地址信息之前,会话保持装置可以基于第一报文携带的源地址信息以及服务标识信息在路径信息表中查找第一服务节点地址信息,路径信息表记录一个或多个会话与服务节点地址信息的映射关系。本申请实施例中通过引入vcfn装置用来记录服务会话的状态(如服务节点地址信息),vcfn装置通过显式或者隐式的方法,获取服务节点地址信息,从而可以建立面向serviceid的路径映射关系,进而客户节点发送的后续报文可以通过vcfn装置来携带服务节点地址信息,使得路由节点可以从报文中获取服务节点地址信息,而不需要保存路径信息表。
在一种可能的设计中,在会话保持装置在第一报文中添加第一服务节点地址信息后向路由节点进行发送之前,会话保持装置可以接收来自路由节点或者服务节点的第二报文,第二报文携带服务标识信息以及第一服务节点地址信息;会话保持装置在路径信息表中记录第一服务节点地址信息。通过上述设计,会话保持装置可以获取到服务节点地址信息,从而可以维持路径信息表。
在一种可能的设计中,在会话保持装置接收来自路由节点或者服务节点的第二报文之前,会话保持装置可以向路由节点发送第三报文,第三报文携带服务标识信息。上述设计,会话保持装置可以通过首报文请求获取服务节点地址信息。
在一种可能的设计中,第三报文可以携带服务标识信息以及用于请求第一服务节点地址信息的请求信息。通过上述设计,会话保持装置可以显式请求获取服务节点地址信息。
在一种可能的设计中,请求信息可以携带在第三报文的ip扩展字段。或者,请求信息可以携带在第三报文的目的地址字段,请求信息为被置为预设值的服务节点地址信息。
在一种可能的设计中,在会话保持装置在第一报文中添加第一服务节点地址信息后向路由节点进行发送之后,会话保持装置可以接收来自路由节点或者服务节点的第四报文,第四报文携带服务标识信息以及第二服务节点地址信息,其中,第二服务节点地址信息用于表征第二服务节点的地址,至少两个服务节点包括第二服务节点;会话保持装置将路径信息表中记录的第一服务节点地址信息更新为第二服务节点地址信息。通过上述设计,会话保持装置可以在服务节点切换后及时更新路径信息表,从而可以提高会话的可靠性。
在一种可能的设计中,会话保持装置可以在第一报文的srv6头部中添加第一服务节点地址信息;或者,会话保持装置可以在第一报文的目的地址字段中添加第一服务节点地址信息;或者,会话保持装置可以在第一报文的ip扩展字段中添加第一服务节点地址信息。
第三方面,本申请实施例的服务路由方法,包括:服务节点生成第一报文,第一报文携带服务标识信息,并在第一报文中添加服务节点地址信息后进行发送,第一服务节点地址信息用于表征第一服务节点的地址,至少两个服务节点包括服务节点,服务节点地址信息用于表征服务节点的地址。本申请实施例中,服务节点可以向会话保持装置发送服务节点地址信息,从而使得会话保持装置保存服务节点地址信息,进而会话保持装置可以在保持服务路由动态性的同时,保持会话的流粘性。通过上述方式,使得路由节点可以不保存路径信息表,从而可以减轻路由节点转发面路径信息表的负担。
在一种可能的设计中,在服务节点在第一报文中添加服务节点地址信息之前,服务节点可以接收第二报文,第二报文携带服务标识信息。通过上述设计,服务节点可以在首报文的触发下发送服务节点地址信息。
在一种可能的设计中,第二报文可以携带用于请求服务节点地址信息的请求信息。上述设计中,服务节点可以是在显式请求下发送第一服务节点地址信息。
在一种可能的设计中,第二报文的ip扩展字段可以携带请求信息;或者,第二报文的目的地址字段也可以携带请求信息,请求信息为被置为预设值的服务节点地址信息。
在一种可能的设计中,服务节点可以在第一报文的srv6头部中添加服务节点地址信息;或者,服务节点也可以在第一报文的ip扩展选项中添加服务节点地址信息;或者,服务节点还可以在第一报文的目的地址字段中添加服务节点地址信息。
在一种可能的设计中,服务节点还可以在第一报文中添加路由标识信息,路由标识信息用于表征多个路由节点共同的标识。上述设计中通过在报文中添加路由节点标识信息,使得后续报文可以通过路由节点,从而可以由路由节点进行转发,进而可以在服务节点不可用时,由路由节点的控制下切换到其他服务节点。
第四方面,本申请提供一种服务路由装置,该装置可以是网络设备,也可以是网络设备内的芯片或芯片组,其中,网络设备可以路由节点,也可以是会话保持装置,也可以是服务节点。该装置可以包括处理单元和收发单元。当该装置是网络设备时,该处理单元可以是处理器,该收发单元可以是通信接口;该装置还可以包括存储单元,该存储单元可以是存储器;该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使路由节点执行上述第一方面中相应的功能、或者以使会话保持装置执行上述第二方面中相应的功能、或者以使服务节点执行上述第三方面中相应的功能。当该装置是路由节点内的芯片或芯片组时,该处理单元可以是处理器,该收发单元可以是输入/输出接口、管脚或电路等;该处理单元执行存储单元所存储的指令,以使路由节点执行上述第一方面中相应的功能、或者以使会话保持装置执行上述第二方面中相应的功能、或者以使服务节点执行上述第三方面中相应的功能。该存储单元可以是该芯片或芯片组内的存储单元(例如,寄存器、缓存等),也可以是路由节点内的位于该芯片或芯片组外部的存储单元(例如,只读存储器、随机存取存储器等)。
第五方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第六方面,本申请还提供一种包括指令的计算机程序产品,当其被运行时,使得上述各方面所述的方法被执行。
第七方面,本申请提供了一种芯片,该芯片包括处理器和通信接口,所述通信接口用于接收代码指令,并传输到处理器。所述处理器,用于调用所述通信接口传输的代码指令以执行上述各方面所述的方法。
附图说明
图1为本申请提供的一种会话流粘性示意图;
图2为本申请提供的一种二元组信息匹配过程的示意图;
图3为本申请提供的一种通信系统的架构示意图;
图4为本申请提供的一种通信系统的架构示意图;
图5为本申请提供的一种服务路由方法的流程示意图;
图6a为本申请提供的一种编码示意图;
图6b为本申请提供的一种报文导向示意图;
图7为本申请提供的一种vcfn获取路径信息过程的示意图;
图8为本申请提供的一种客户节点发送后续报文过程的示意图;
图9为本申请提供的另一种vcfn获取路径信息过程的示意图;
图10为本申请提供的又一种vcfn获取路径信息过程的示意图;
图11为本申请提供的一种客户节点向第一服务节点发送后续报文过程的示意图;
图12为本申请提供的再一种vcfn获取路径信息过程的示意图;
图13为本申请提供的一种会话流粘性过程的示意图;
图14为本申请提供的另一种客户节点向第一服务节点发送后续报文过程的示意图;
图15为本申请提供的一种服务路由装置的结构示意图;
图16为本申请提供的一种服务路由装置的结构示意图。
具体实施方式
为了方便理解本申请实施例,下面介绍与本申请实施例相关的术语:
1、服务标识(serviceid):目前,可以将任播ip(internetprotocolanycast,ipanycast)技术用于在不同边缘计算节点间的寻址,即提供相同服务的边缘计算节点(也可称为服务节点)暴露相同的网络协议(internetprotocol,ip)地址给网络,该ip地址可以视为serviceid。或者,也可以理解为提供相同服务的服务节点对应相同的标识,该标识为serviceid。
2、服务ip地址(serviceip):服务节点的ip地址。
3、cfnrib:路由节点根据服务扩散协议以及测量的网络状态得到serviceid的计算路由表。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
随着5g,智慧城市,物联网等的兴起,海量数据的分析与储存对网络带宽提出了巨大的挑战,由于许多数据流由末端设备(如用户设备)生成,而通过云计算处理和分析,不可能做出实时决策,从而导致网络时延较为严重。因此,相比于云计算,利用边缘计算节点(例如靠近用户的接入机房服务器或者汇聚机房服务器等)为用户设备提供服务,由于传输路径短,时延低,可以极大的降低对业务对网络的开销以及网络等待时间。
目前,计算优先网络(computingfirstnetwork,cfn)提出以serviceid取代serviceip作为报文的目的地址,计算路由器装置/计算节点(以下简称cfnrouter/cfnnode)可以结合实时的网络以及服务的状态,在众多服务节点中选择合适的服务节点接入。
由于服务以及网络的动态性(如服务负载,网络拥塞等),不同时刻,cfnrouter对于同一serviceid进行寻址时可能选择不同的服务节点。而在进行服务路由时,cfnrouter需要对属于同一会话的报文提供流粘性保证,即将属于同一会话的报文导向同一服务节点。通常的做法是根据服务的属性在cfnrouter建立路径信息表,该路径信息表记录会话的5元组或2元组流表,其中,五元组流表可以包括源地址(简称srcip),源端口(简称srcport),serviceid(简称servid),服务端口(简称servport),传输协议(简称protocol),还包括路径信息(简称pathinfo),其中,路径信息可以为serviceip:serviceid,或者路径信息也可以为cfnid:serviceip:serviceid,可以如表1所示。二元组流表可以包括源地址(srcip),servid,还包括路径信息,可以如表2所示。
表1
表2
其中,tcp为传输控制协议(transmissioncontrolprotocol)的简称。
如图1所示,服务节点1,服务节点2,服务节点3均提供servicea服务,其中edge2负载最低,延迟最小,以servicea为目的地的报文将被导流到服务节点2站点,并建立转发流表,将属于同一会话的服务报文持续导向服务节点2,以保证业务的流粘性。
cfn节点在可以通过将报文的五元组信息或者二元组信息与路径信息表进行匹配,然后根据匹配结果转发,二元组信息的匹配过程可以如图2所示。cfn节点在接收到报文之后,将该报文的源地址与路径信息表中的srcip表项进行匹配,若未匹配上则丢弃该报文。若源地址匹配成功,则将报文的目的地址与源地址匹配成功的会话流表中的servid表项进行匹配,若未匹配上则丢弃该报文。若目的地址匹配成功,则将报文的传输协议信息与目的地址匹配成功的会话流表中的protocol表项进行匹配,若未匹配上则丢弃该报文。若传输协议匹配成功,根据该传输协议匹配成功的会话流表中的路径信息转发报文。
边缘计算、物联网兴起将带来巨量接入,要做到服务报文的线速转发,以及对每个会话流粘性的保持,cfnrouter需要建立巨量的会话流表,cfnrouter的成本负担很大。
基于此,本申请实施例提供一种服务路由方法及装置,用于解决现有技术中cfnrouter的成本负担很大的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本申请实施例可以应用于通信系统中,该通信系统可以包括路由节点以及服务节点,其中,一个路由节点可以连接一个或多个服务节点。路由节点可以用于提供服务路由,例如将用户设备发送的业务报文路由到服务节点,其中,用户设备最先接入的服务路由节点可以称为网络入口(ingress)节点,其他服务路由节点可以称为网络出口(egress)节点。ingress节点可以负责将用户发送的报文路由到egress节点,egress节点可以负责将用户发送的报文路由到服务节点。具体实施中,egress节点也可以是ingress节点本身。服务节点指为用户提供服务的节点,也可以称为边缘计算节点等。示例性的,图3示出一种通信系统结构示意图,应理解,图3仅是一种示例性说明,并不对通信系统中所包括服务路由节点、服务节点的数量进行具体限定。
下面结合附图对本申请实施例进行详细说明。
本申请通过设计一种用于承载计算类业务的装置,该装置可以称为会话保持装置(virtualcomputingfirstnetwork,vcfn),该会话保持装置可以维护路径信息表,路径信息表中记录了一个或多个会话的路径信息,其中,路径信息可以包括服务节点地址信息,还可以包括路由节点地址信息,还可以包括服务标识信息。
vcfn可以部署在计算路由节点之前,例如vcfn可以部署在客户节点上,如个人电脑(persionalcomputer,pc)、手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinternetdevice,mid)、可穿戴设备,例如智能手表、智能手环、计步器等。vcfn也可以部署在客户节点与路由节点之间的任何实体位置,比如:宽带远程接入服务器(broadbandremoteaccessserver,bras),用户面功能(userplanefunction,upf),甚至路由节点本身(物理一体,逻辑隔离)。vcfn用于保持会话的流粘性,通过将路径信息表从路由节点卸载到vcfn,从而降低路由节点的轻载。示例性的,如图4所示。
为了方便描述。下文将用于承载计算类业务的装置称为vcfn,将路由节点称为cfn节点。应理解,vcfn、cfn节点仅是一种示例性命名,在具体实施中也可以命名为其他,只要可以实现承载计算类业务的节点均可以理解为本申请实施例涉及的vcfn,只要可能实现服务路由的节点均可以理解为本申请实施例涉及的路由节点。
针对需要保持会话流粘性的业务,即同一服务的报文需要导向同一服务节点,vcfn可以建立和维护一张路径信息表,该路径信息表记录一个或多个业务会话与路径信息的映射关系,以保持业务的粘性,映射表支持二元组、五元组等多种类型,如表3所示。
表3
其中,ttl为生存时间值(timetolive)。
本申请实施例提供一种服务路由方法可以如图5所示,该方法可以应用为图4所示的通信系统,该方法具体包括:
s501,vcfn获取第一报文,其中,该第一报文携带服务标识信息,其中,服务标识信息用于表征至少两个服务节点提供的第一服务的标识。其中,一个或多个节点可以提供第一服务,该第一服务对应一个标识。
一种示例性说明中,服务标识信息可以为服务的serviceid,服务标识信息也可以为服务的sserviceid的编码,服务标识信息也可以为服务的sserviceid的索引等。下面以服务标识信息为serviceid为例进行说明。
一种实现方式中,vcfn可以部署在客户节点上,则该第一报文可以是vcfn功能模块从客户节点内部获取的。
另一种实现方式中,vcfn可以部署在客户节点外,则该第一报文可以是客户节点向vcfn发送的。
s502,vcfn在第一报文中添加第一服务节点地址信息后向cfn节点进行发送,其中,该第一服务节点地址信息用于表征第一服务节点的地址,上述至少两个服务节点可以包括该第一服务节点。对应的,cfn节点接收该第一报文。
可选的,vcfn可以在第一报文中添加路径信息,该路径信息可以至少包括第一服务节点地址信息。
示例性的,第一服务节点地址信息可以为第一服务节点的serviceip,第一服务节点地址信息也可以为第一服务节点的sserviceip的编码,第一服务节点地址信息也可以为第一服务节点的sserviceip的索引等。
一种示例性说明中,针对sserviceip的编码,可以将路径信息(pathinfo)=cfnid->serviceip->serviceid编码生成目标路径密钥(destinationpathkey)=编码定义->cfnid->serviceip->serviceid。例如,编码可以定义如fcc6:4字节编码(eg:fcc6:00000001),或者fcc4:2字节编码(eg:fcc4:0001)。以编码定义为fcc6的destinationpathkey为例,可以如图6a所示。
一种实现方式中,vcfn可以部署在客户节点上,步骤s402可以是客户节点执行的,具体来说,可以是客户节点的vcfn功能模块执行的。例如,vcfn功能模块从客户节点内部获取的第一报文可以携带serviceid。vcfn功能模块根据该第一报文的多元组信息(如二元组信息、三元组信息、四元组信息、五元组信息等等)查找对应的第一服务节点地址信息,根据该第一服务节点地址信息在第一报文中添加服务节点地址信息后向cfn节点进行发送。
另一种实现方式中,vcfn可以部署在客户节点外,则步骤s402可以是vcfn执行的。例如,客户节点可以向vcfn传输第一报文,传输的该第一报文可以携带serviceid。vcfn根据该第一报文的多元组信息(如二元组信息、三元组信息、四元组信息、五元组信息等等)查找对应的第一服务节点地址信息,根据该第一服务节点地址信息在第一报文中添加服务节点地址信息后向cfn节点进行转发。
以二元组信息为例,vcfn可以根据第一报文携带的源地址、服务标识信息在路径信息表中查找第一服务节点地址信息。进一步的,vcfn可以根据第一报文携带的源地址、服务标识信息在路径信息表中查找对应的路径信息,然后在查找到的路径信息中获取第一服务节点地址信息。查找路径信息的具体过程与图2类似,相似之处不再赘述。
示例性的,vcfn可以在第一报文的srv6头部添加第一服务节点地址信息。或者,vcfn可以在第一报文的目的地址字段添加第一服务节点地址信息。或者,vcfn可以在第一报文的ip扩展字段添加第一服务节点地址信息。
进一步的,vcfn还可以在第一报文中添加路由节点标识信息,也可以理解为路径信息还可以包括路由节点标识信息。路由节点标识信息用于表征可以是多个cfn节点共同的标识(cfnid),如多个cfn节点可以对应同一个ip地址,该cfnid可以是该ip地址。对应的,cfn节点接收到的第一报文中还可以携带路由节点标识信息。
可选的,该路由节点标识信息可以是一些特定的路由节点共同的标识,这些路由节点可以具有重路由、监控服务节点的状态等功能,通过在第一报文中添加路由节点标识信息,可以使得该第一报文经过特定的路由节点,从而该路由节点在监控在第一服务节点不可用时可以将第一报文及时切换到其他可用的服务节点,进而可以提高会话的可靠性。
示例性的,路由节点标识信息可以是cfnid,路由节点标识信息也可以是cfnid的编码,路由节点标识信息可以是cfnid的索引。
s403,cfn节点基于第一服务节点地址信息转发第一报文。
一种实现方式中,第一服务节点可用,cfn节点向该第一服务节点转发该第一报文。
另一种实现方式中,第一服务节点不可用,cfn节点基于服务标识信息转发该第一报文。
进一步的,cfn节点可以基于服务标识信息进行寻址,例如,cfn节点可以根据cfnrib寻址下一跳,下一跳为egress节点,并将该第一报文转发给该egress节点,该egress节点进一步根据cfnrib寻址进行寻址,确定第二服务节点,并向第二服务节点转发该第一报文,上述至少两个服务节点还可以包括第二服务节点。其中,egress节点与该cfn节点可以是两个不同的cfn节点,egress节点与该cfn节点可以是同一个cfn节点,这种情况下,cfn节点可以根据cfnrib寻址确定第二服务节点,并转发第一报文。
当第一服务节点不可用时,可以新的服务节点(即第二服务节点)、cfn节点或者vcfn终结当前不可用服务,如发起连接复位(tcpreset),以通知客户节点重新发起tcp连,从而可以使客户节点能够快速服务重连。
在一些实施例中,cfn节点可以基于过滤列表确定第一服务节点是否可用,过滤列表用于指示一个或多个服务节点不可用。其中,服务节点不可用可以指服务节点过载或者故障或者报文不可达。报文不可达可以指网络拥塞导致报文不能到达服务节点等等。例如,cfn节点可以将第一报文携带的服务标识信息以及服务节点地址信息与过滤列表进行匹配,若匹配成功,则可以确定第一服务节点不可用,反之则可以确定第一服务节点可用。
在cfn节点基于过滤列表确定第一服务节点是否可用之前,cfn节点可以在过滤列表中记录该第一服务节点的过滤信息,该过滤信息用于指示第一服务节点不可用。
一种实现方式中,cfn节点可以在确定第一服务节点不可用时将该过滤信息更新到所述过滤列表。进一步的,cfn节点还可以广播该过滤信息。
另一种实现方式中,cfn节点也可以通过接收其他cfn节点广播的该过滤信息,从而将该过滤信息更新到过滤列表中。
以serviceid为servicea为例进行说明。如图6b所示,由于mec0节点不可用,cfn节点0~3在自身保存的过滤列表中添加指示mec0节点不可用的过滤信息,servicea服务的报文将被导流至其他服务节点,如mec1、mec2、mec3。其中,mec节点为一种服务节点。
一种实现方式中,当第一服务节点不可用,切换到第二服务节点时,第二服务节点或者路由节点可以向vcfn向第四报文,第四报文可以携带新的路径信息,该新的路径信息中包括用于表征第二服务节点的地址的第二服务节点地址信息。相应的,vcfn可以接收第四报文。vcfn可以将第四报文中的路径信息与已建的路径信息进行匹配对比,若不一致则更新会话与路径信息的映射关系。
一种示例性说明中,vcfn获取第一服务节点地址信息的过程可以为:
a1,cfn节点获取第一服务节点地址信息。
cfn节点可以通过如下任一种方式获取路径信息:
方式一,该cfn节点既是cfningress同时也是cfnegress,因此cfn节点在寻址到第一服务节点后可以确定第一服务节点地址信息。可选的,cfn节点在寻址到第一服务节点后可以确定路径信息,该路径信息中包括第一服务节点地址信息,还可以包括路由节点标识信息,还可以包括服务标识信息等等。
方式二,该cfn节点是cfningress,cfnegress是另一个cfn节点,这种情况下,cfn节点可以从cfnegress获取第一服务节点地址信息。可选的,cfn节点可以从cfnegress获取路径信息,该路径信息中包括第一服务节点地址信息,还可以包括路由节点标识信息,还可以包括服务标识信息等等。
a2,cfn节点向vcfn发送第三报文。该第三报文携带该第一服务节点地址信息。
a3,vcfn接收第三报文后获取第一服务节点地址信息,并在路径信息表中记录该第一服务节点地址信息。
可选的,vcfn接收第三报文后获取包括第一服务节点地址信息的路径信息,并在路径信息表中记录该路径信息。
进一步的,步骤a1中cfn节点获取第一服务节点地址信息可以是客户节点的首包触发的,其中,首包可以为路径信息表中没有对应第一服务节点地址信息的报文。通过首包触发的过程可以如下:
k1,vcfn接收客户节点的应用程序传输的第二报文,该第二报文携带服务标识信息。
此外,第二报文还可以携带用于请求第一服务节点地址信息的请求信息。
示例性的,第二报文的ip扩展字段可以携带该请求信息;或者,第二报文的目的地址字段也可以携带所述请求信息,其中,请求信息为被置为预设值的服务节点地址信息。
k2,vcfn确定路径信息表中没有第二报文的服务节点地址信息。
k3,vcfn将第二报文向cfn节点(cfningress)进行转发,cfn节点根据cfnrib寻址下一跳,下一跳为cfn出口节点(cfnegress),直至第一服务节点,其中cfningress和cfnegress可以为相同的一个节点,也可以为不同节点。
一种实现方式中,vcfn可以将第二报文向cfn入口节点进行透传。
另一种实现方式中,vcfn也可以在第二报文中用于请求路径信息的请求信息后向cfn入口节点进行转发。
步骤a1中cfn节点获取第一服务节点地址信息还可以是服务节点切换触发的,如服务节点由其他服务节点切换到该第一服务节点时,cfn节点获取第一服务节点地址信息并向vcfn进行发送。
另一种示例性说明中,vcfn获取第一服务节点地址信息的过程还可以为:
p1,第一服务节点向vcfn发送第三报文。该第三报文携带该第一服务节点地址信息。
示例性的,服务节点可以在第三报文的srv6头部中添加该第一服务节点地址信息;或者,服务节点也可以在第三报文的ip扩展选项中添加该第一服务节点地址信息;或者,服务节点还可以在第三报文的目的地址字段中添加该第一服务节点地址信息。
此外,服务节点还可以在第三报文中添加路由标识信息。
p2,vcfn接收第三报文后获取第一服务节点地址信息,并在路径信息表中记录该第一服务节点地址信息。
进一步的,步骤p1中第一服务节点向vcfn发送第一服务节点地址信息可以是客户节点的首包触发的。通过首包触发的过程可以参阅上述k1~k3。
步骤p1中第一服务节点向vcfn发送第一服务节点地址信息还可以是服务节点切换触发的,如服务节点由其他服务节点切换到该第一服务节点时,第一服务节点向vcfn进行发送第一服务节点地址信息。
为了更好的理解本申请实施例所提供服务路由方法,下面结合具体报文格式,对报文的路由过程进行具体描述。为了描述上的方便,下文将包括服务节点地址信息、路由节点信息、服务标识信息的信息集合称为路径信息。实施例一,路径信息携带在报文的srv6头部。
vcfn通过首包以及首包的响应报文获取路径信息的过程可以如图7所示:
b1,客户节点发送的第二报文的格式可以为第二报文=(src:ue,dst:sid)payload。
b2,vcfn将第二报文透传至cfningress。
b3,cfningress寻址到cfnegress,并向cfnegress转发第二报文,cfningress转发的第二报文的格式可以为第二报文=(src:ue,dst:cfnegress)srh(sid,cfnegress,sl=2)payload。
b4,cfnegress寻址到第一服务节点,并向第一服务节点的服务器网络端口转发第二报文,该cfnegress转发的第二报文的格式可以为第二报文=(src:ue,dst:sip1)srh(sid,sip1,sl=1)payload。
其中,cfningress、cfncfnegress基于第二报文进行寻址后可以将第二报文用分段路由/源路由(segmentrouting,sr)或者隧道向第一服务节点进行转发。
b5,第一服务节点的服务器网络端口向第一服务节点的服务器本地环回接口(loopback)转发第二报文,该第一服务节点转发的第二报文的格式可以为第二报文=(src:ue,dst:sid)srh(sid,sip1,sl=0)payload。
其中,在报文格式中,src表示源地址,dst表示目的地址,payload为数据,srh()为srv6头部,sid表示目标服务的serviceid,sip1表示第一服务节点的serviceip,cfnegress表示cfnegress的ip地址,sl表示路由跳数。
b6,第一服务节点的服务器loopback向第一服务节点的服务器网络端口发送第三报文,第一服务节点的服务器loopback发送的第三报文的格式可以为第三报文=(src:sid,dst:sip1)srh(ue,cfnid,sip1,sl=2)payload。
b7,第一服务节点的服务器网络端口接收到该第三报文后,向cfningress进行转发,第一服务节点转发的第三报文的格式可以为第三报文=(src:sip,dst:cfnid)srh(ue,cfnid,sip1,sl=1)payload。
b8,cfn节点接收到第一服务节点的服务器网络端口转发的该第三报文后向vcfn进行转发,cfn节点转发的第三报文的格式可以为第三报文=(src:sid,dst:ue)srh(ue,cfnid,sip1,sl=0)payload。
b10,vcfn在接收到cfn节点转发的第三报文后获取路径信息,并在路径信息表中记录该路径信息。
客户节点发送后续报文的过程可以如图8所示,其中,后续报文可以指vcfn的路径信息表中包括对应路径信息的报文,例如上述第一报文:
c1,客户节点向vcfn发送第一报文,其中,客户节点发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)payload。
c2,vcfn在第一报文的srv6头部添加路径信息后转发给cfn节点,vcfn转发的第一报文的格式可以为第一报文=(src:ue,dst:sid)srh(sid,sip1,cfnid,sl=2)payload。
c3,cfn节点在接收到携带路径信息的第一报文后调整路由跳数向第一服务节点的服务器网络端口发送调整后的第一报文,cfn节点发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)srh(sid,sip1,cfnid,sl=1)payload。
c4,第一服务节点的服务器网络端口在接收到该第一报文后进一步调整路由跳数,向第一服务节点的服务器loopback发送,第一服务节点发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)srh(sid,sip1,cfnid,sl=0)payload。
其中,在报文格式中,cfnid为多个路由节点的共同标识。
以第三报文为例,服务节点发送报文的过程可以参阅上述步骤b6~b10。
其中,在步骤b10中,若vcfn确定来自服务节点的报文中携带的路径信息与路径信息表中记录的路径信息不一致,则根据报文中携带的路径信息对路径信息表进行更新,例如,服务节点由第一服务节点切换到第二服务节点,vcfn在接收到第二服务节点发送的第四报文后根据第四报文携带的路径信息对路径信息表进行更新。
实施例二:路径信息携带在报文的ip协议扩展(option)字段或者目的地址字段。
一种示例性说明中,vcfn通过首包以及首包的响应报文获取路径信息的过程可以如图9所示:
d1,客户节点向vcfn发送第二报文。客户节点发送的第二报文的格式可以为第二报文=(src:ue,dst:sid)destopt(servicebindreq)payload。
d2,vcfn在第二报文中携带用于请求路径信息的请求信息后将第二报文向cfn节点进行。vcfn转发的第二报文的格式可以为第二报文=(src:ue,dst:sid)destopt(servicebindreq)payload。其中,destopt为报文的ipoption字段,当destopt为servicebindreq时用于请求路径信息。
d3,cfn节点寻址到第一服务节点。
应理解,步骤d3中对cfningress与cfnegress为同一个节点的情况进行说明,当cfningress与cfnegress为不同节点时,cfningress寻址的过程与步骤b3和b4类似。
d4,cfn节点向第一服务节点的服务器网络端口转发第二报文,cfn节点转发的第二报文的格式可以为第二报文=(src:ue,dst:sip1)srh(sid,sip1,sl=1)payload。
d5,第一服务节点的服务器网络端口向第一服务节点的服务器loopback转发第二报文,该第一服务节点转发的第二报文的格式可以为第二报文=(src:ue,dst:sid)srh(sid,sip1,sl=0)payload。
d6,cfn节点向vcfn发送第三报文,第三报文中携带路径信息。cfn节点发送的第三报文的格式可以为第三报文=(src:sid,dst:ue)destopt(servicebindrsp:pathinfo)payload。
其中,步骤d6和步骤d4没有严格的执行顺序,可以先执行d4后执行d6,也可以先执行d6后执行d4,也可以同时执行d4和d6。
一种实现方式,当服务节点由第一服务节点切换到第二服务节点时,cfn节点可以向vcfn发送携带新路径信息的报文,从而vcfn可以根据该新路径信息更新路径信息表。具体过程可以参阅步骤d6。
另一种示例性说明中,vcfn通过首包以及首包的响应报文获取路径信息的过程也可以如图10所示:
f1,客户节点向vcfn发送第二报文。客户节点发送的第二报文的格式可以为第二报文=(src:ue,dst:sid)destopt(servicebindreq)payload。
f2,vcfn在第二报文中携带用于请求路径信息的请求信息后将第二报文向cfn节点进行。vcfn转发的第二报文的格式可以为第二报文=(src:ue,dst:sid)destopt(servicebindreq)payload。
f3,cfn节点寻址到第一服务节点。
应理解,步骤e3中对cfningress与cfnegress为同一个节点的情况进行说明,当cfningress与cfnegress为不同节点时,cfningress寻址的过程与步骤b3和b4类似。
f4,cfn节点向第一服务节点的服务器网络端口转发第二报文,cfn节点转发的第二报文的格式可以为第二报文=(src:ue,dst:sip1)destopt(servicebindreq)srh(sid,sip1,sl=1)payload。
f5,第一服务节点的服务器网络端口向第一服务节点的服务器loopback转发第二报文,该第一服务节点转发的第二报文的格式可以为第二报文=(src:ue,dst:sid)destopt(servicebindreq)srh(sid,sip1,sl=0)payload。
f6,第一服务节点的服务器网络端口向vcfn发送第三报文,第三报文中携带路径信息。第一服务节点发送的第三报文的格式可以为第三报文=(src:sid,dst:ue)destopt(servicebindrsp:pathinfo)payload。
一种实现方式,当服务节点由第一服务节点切换到第二服务节点时,第二服务节点可以向vcfn发送携带新路径信息的报文,从而vcfn可以根据该新路径信息更新路径信息表。具体过程可以参阅步骤f6。
以第一报文为例,客户节点向第一服务节点发送后续报文的过程可以如图11所示:
e1,客户节点向vcfn发送第一报文,其中,客户节点发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)payload。
e2,vcfn在第一报文中添加路径信息后转发给cfn节点。其中,路径信息携带在ipoption字段时,vcfn转发的第一报文的格式可以为第一报文=(src:ue,dst:sid)destopt(serviceforward:pathkey)payload,destopt为serviceforward时用于请求多报文进行转发。路径信息携带在目的地址字段时,vcfn转发的第一报文的格式可以为第一报文=(src:ue,dst:pathkey)payload。pathkey可以为(sid,sip1,cfnid,sl=2)的编码。
e3,cfn节点在接收到携带路径信息的第一报文后解码得到路径信息,并调整路由跳数向第一服务节点的服务器网络端口发送调整后的第一报文,cfn节点发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)srh(sid,sip1,cfnid,sl=1)payload。
e4,第一服务节点的服务器网络端口在接收到该第一报文后进一步调整路由跳数,向第一服务节点的服务器loopback发送,第一服务节点的服务器网络端口发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)srh(sid,sip1,cfnid,sl=0)payload。
实施例三:通过对目的地址进行编码携带路径信息。
vcfn通过首包以及首包的响应报文获取路径信息的过程可以如图12所示:
g1,客户节点发送的第二报文的格式可以为第二报文=(src:ue,dst:sid)payload。
g2,vcfn对第二报文的目的地址进行编码后向路由节点进行转发。对第二报文的目的地址进行编码的方式可以为在目的地址字段添加cfnid、以及serviceip信息,在第二报文中,可以将目的地址字段中的serviceip置为预设值(如置为0)生成bindingkey,以请求路径信息。vcfn转发的第二报文的格式可以为第二报文=(src:ue,dst:bindingkey)payload。
一种示例性说明中,bindingkey=编码定义->cfnid->serviceip(置为0)->serviceid。编码定义可以fcc6:4字节编码(eg:fcc6:00000001),或者也可以是fcc4:2字节编码(eg:fcc4:0001)。以编码定义为fcc6的bindingkey为例,如图13所示。
g3,cfn节点寻址到第一服务节点。
应理解,步骤d3中对cfningress与cfnegress为同一个节点的情况进行说明,当cfningress与cfnegress为不同节点时,cfningress寻址的过程与步骤b3和b4类似。
g4,cfn节点向第一服务节点的服务器网络端口转发第二报文,cfn节点转发的第二报文的格式可以为第二报文=(src:ue,dst:sip1)srh(sid,sip1,sl=1)payload。
g5,第一服务节点的服务器网络端口向第一服务节点的服务器loopback转发第二报文,该第一服务节点转发的第二报文的格式可以为第二报文=(src:ue,dst:sid)srh(sid,sip1,sl=0)payload。
g6,第一服务节点向vcfn发送第三报文,第三报文中携带路径信息。cfn节点发送的第三报文的格式可以为第三报文=(src:pathkey,dst:ue)payload。
其中,第一服务节点对第三报文的源地址进行编码,例如在源地址字段添加cfnid、以及serviceip信息,在第三报文中,可以将目的地址字段中的serviceip置为第一服务节点的serviceip生成pathkey,以携带路径信息。
一种示例性说明中,pathkey=编码定义->cfnid->serviceip(第一服务节点的serviceip)->serviceid。编码定义可以fcc6:4字节编码(eg:fcc6:00000001),或者也可以是fcc4:2字节编码(eg:fcc4:0001)。
一种实现方式,当服务节点由第一服务节点切换到第二服务节点时,第二服务节点可以向vcfn发送携带新路径信息的报文,从而vcfn可以根据该新路径信息更新路径信息表。具体过程可以参阅步骤g6。
以第一报文为例,客户节点向第一服务节点发送后续报文的过程可以如图14所示:
h1,客户节点向vcfn发送第一报文,其中,客户节点发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)payload。
h2,vcfn对第一报文进行编码后转发给cfn节点。vcfn转发的第一报文的格式可以为第一报文=(src:ue,dst:pathkey)payload。
其中,pathkey可以参阅g6中的相关描述,这里不再重复赘述。
h3,cfn节点在接收到携带路径信息的第一报文后解码得到路径信息,并调整路由跳数向第一服务节点的服务器网络端口发送调整后的第一报文,cfn节点发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)srh(sid,sip1,cfnid,sl=1)payload。
h4,第一服务节点的服务器网络端口在接收到该第一报文后进一步调整路由跳数,向第一服务节点的服务器loopback发送,第一服务节点的服务器网络端口发送的第一报文的格式可以为第一报文=(src:ue,dst:sid)srh(sid,sip1,cfnid,sl=0)payload。
本申请实施例中通过引入vcfn装置用来记录服务会话的状态(如路径信息),vcfn装置通过显式或者隐式的方法,获取路径信息,从而可以建立面向serviceid的路径映射关系,进而客户节点发送的后续报文可以通过vcfn装置来携带路径信息,使得路由节点可以从报文中获取路径信息,而不需要保存路径信息表。通过本申请实施例提供的服务路由方法可以减轻路由节点转发面路径信息表的负担,并且通过在vcfn装置中包括路径信息表可以在保持服务路由动态性的同时,保持会话的流粘性。
此外,路由节点可以实时监控服务节点的状态以及可用性,并通过控制面扩散,建立过滤列表,从而可以使得服务节点在过载、failover时能快速切换至其他可用服务节点。
基于与方法实施例的同一发明构思,本申请实施例提供一种服务路由装置,该服务路由装置的结构可以如图15所示,包括处理单元1501和收发单元1502。
一种实现方式中,该装置具体用于实现图5~图14实施例中路由节点的功能,该装置可以是路由节点本身,也可以是路由节点中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。具体的,收发单元1502,用于收发报文。处理单元1501,用于通过收发单元1502执行:接收第一报文,第一报文携带服务标识信息和第一服务节点地址信息,其中,服务标识信息用于表征至少两个服务节点提供的第一服务的标识,第一服务节点地址信息用于表征第一服务节点的地址,至少两个服务节点包括第一服务节点;基于第一服务节点地址信息转发第一报文。
示例性的,第一报文的srv6头部可以携带服务标识信息和第一服务节点地址信息;或者,第一报文的目的地址字段也可以携带服务标识信息和第一服务节点地址信息;或者,第一报文的ip扩展字段也可以携带服务标识信息和第一服务节点地址信息。
在一些实施例中,处理单元1501,在基于第一服务节点地址信息转发第一报文时,可以具体用于:若第一服务节点可用,向第一服务节点转发第一报文;或者,若第一服务节点不可用,根据服务标识信息转发第一报文。
处理单元1501,还可以用于:基于过滤列表确定第一服务节点是否可用,过滤列表用于指示一个或多个服务节点不可用。
其中,服务节点不可用可以指服务节点过载或者故障或者报文不可达。
处理单元1501,在基于过滤列表确定第一服务节点是否可用之前,还可以用于:确定第一服务节点不可用;将过滤信息更新到过滤列表,并广播过滤信息,过滤信息用于指示第一服务节点不可用。
处理单元1501,在基于过滤列表确定第一服务节点是否可用之前,也可以用于:通过收发单元1502接收第二路由节点广播的过滤信息,过滤信息用于指示第一服务节点不可用;将过滤信息更新到过滤列表。
处理单元1501,在根据服务标识信息转发第一报文之后,还可以用于:通过收发单元1502向客户节点发送连接复位报文,连接服务报文用于触发客户节点重新发起传输控制协议tcp连接。
处理单元1501,在根据服务标识信息转发第一报文之后,还可以用于:获取第二服务节点地址信息,第二服务节点地址信息用于表征第二服务节点的地址,至少两个服务节点包括第二服务节点;通过收发单元1502发送第二服务节点地址信息。
处理单元1501,在第一路由节点接收来自客户节点的第一报文之前,还可以用于:获取第一服务节点地址信息;通过收发单元1502发送第二报文,第二报文携带第一服务节点地址信息。
处理单元1501,在获取第一服务节点地址信息之前,还可以用于:通过收发单元1502接收第三报文,第三报文携带服务标识信息。
示例性的,第三报文可以携带用于请求第一服务节点地址信息的请求信息。
如,第三报文的ip扩展字段可以携带请求信息;或者,第三报文的目的地址字段也可以携带请求信息,请求信息为被置为预设值的服务节点地址信息。
此外,第一报文还可以携带路由节点标识信息,路由节点标识信息用于表征多个路由节点共同的标识。
另一种实现方式中,该装置具体用于实现图5~图14实施例中会话保持装置的功能,该装置可以是会话保持装置本身,也可以是会话保持装置中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。具体的,收发单元1502,用于收发报文;处理单元1501,用于执行:获取第一报文,第一报文携带服务标识信息,其中,服务标识信息用于表征至少两个服务节点提供的第一服务的标识;在第一报文中添加第一服务节点地址信息后通过收发单元1502向路由节点进行发送,其中,第一服务节点地址信息用于表征第一服务节点的地址,至少两个服务节点包括第一服务节点。
在一些实施例中,处理单元1501,在第一报文中添加第一服务节点地址信息时,可以具体用于:在第一报文的srv6头部中添加第一服务节点地址信息;或者,在第一报文的目的地址字段中添加第一服务节点地址信息;或者,在第一报文的ip扩展字段中添加第一服务节点地址信息。
处理单元1501,在第一报文中添加第一服务节点地址信息时,可以具体用于:在第一报文中添加第一服务节点地址信息以及路由节点标识信息,路由节点标识信息用于表征多个路由节点共同的标识。
处理单元1501,在第一报文中添加第一服务节点地址信息之前,还可以用于:基于第一报文携带的源地址信息以及服务标识信息在路径信息表中查找第一服务节点地址信息,路径信息表记录一个或多个会话与服务节点地址信息的映射关系。
处理单元1501,在第一报文中添加第一服务节点地址信息后向路由节点进行发送之前,还可以用于:通过收发单元1502接收来自路由节点或者服务节点的第二报文,第二报文携带服务标识信息以及第一服务节点地址信息;在路径信息表中记录第一服务节点地址信息。
处理单元1501,在通过收发单元1502接收来自路由节点或者服务节点的第二报文之前,还可以用于:通过收发单元1502向路由节点发送第三报文,第三报文携带服务标识信息。
其中,第三报文可以携带用于请求第一服务节点地址信息的请求信息。
示例性的,第三报文的ip扩展字段可以携带请求信息;或者,第三报文的目的地址字段也可以携带请求信息,请求信息为被置为预设值的服务节点地址信息。
处理单元1501,在第一报文中添加第一服务节点地址信息后向路由节点进行发送之后,还可以用于:通过收发单元1502接收来自路由节点或者服务节点的第四报文,第四报文携带服务标识信息以及第二服务节点地址信息,其中,第二服务节点地址信息用于表征第二服务节点的地址,至少两个服务节点包括第二服务节点;将路径信息表中记录的第一服务节点地址信息更新为第二服务节点地址信息。
又一种实现方式中,该装置具体用于实现图5~图14实施例中服务节点的功能,该装置可以是服务节点本身,也可以是服务节点中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。具体的,收发单元1502,用于收发报文;处理单元1501,用于执行:生成第一报文,第一报文携带服务标识信息,服务标识信息用于表征至少两个服务节点提供的第一服务的标识,至少两个服务节点包括服务节点;在第一报文中添加服务节点地址信息后通过收发单元1502进行发送,其中,服务节点地址信息用于表征服务节点的地址。
处理单元1501,在第一报文中添加服务节点地址信息时,可以具体用于:在第一报文的srv6头部中添加服务节点地址信息;或者,在第一报文的ip扩展选项中添加服务节点地址信息;或者,在第一报文的目的地址字段中添加服务节点地址信息。
一些实施例中,处理单元1501,在第一报文中添加服务节点地址信息时,可以具体用于:
在第一报文中添加服务节点地址信息以及路由标识信息,路由标识信息用于表征多个路由节点共同的标识。
处理单元1501,在第一报文中添加服务节点地址信息之前,还可以用于:通过收发单元1502接收第二报文,第二报文携带服务标识信息。
第二报文中可以携带用于请求服务节点地址信息的请求信息。
例如,第二报文的ip扩展字段可以携带请求信息。或者,第二报文的目的地址字段也可以携带请求信息,请求信息为被置为预设值的服务节点地址信息。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
其中,集成的模块既可以采用硬件的形式实现时,服务路由装置可以如图16所示,处理单元1501可以为处理器1602。处理器1602,可以是一个中央处理单元(centralprocessingunit,cpu),或者为数字处理模块等等。收发单元1502可以为通信接口1601,通信接口1601可以是收发器、也可以为接口电路如收发电路等、也可以为收发芯片等等。该服务路由装置还包括:存储器1603,用于存储处理器1601执行的程序。存储器1603可以是非易失性存储器,比如硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram)。存储器1603是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
处理器1602用于执行存储器1603存储的程序代码,具体用于执行上述处理单元1501的动作,本申请在此不再赘述。
本申请实施例中不限定上述通信接口160、处理器1602以及存储器1603之间的具体连接介质。本申请实施例在图16中以存储器1603、处理器1602以及通信接口1601之间通过总线1604连接,总线在图16中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
1.一种服务路由方法,其特征在于,包括:
第一路由节点接收第一报文,所述第一报文携带服务标识信息和第一服务节点地址信息,其中,所述服务标识信息用于表征至少两个服务节点提供的第一服务的标识,所述第一服务节点地址信息用于表征第一服务节点的地址,所述至少两个服务节点包括所述第一服务节点;
所述第一路由节点基于所述第一服务节点地址信息转发所述第一报文。
2.如权利要求1所述的方法,其特征在于,所述第一路由节点基于所述第一服务节点地址信息转发所述第一报文,包括:
若所述第一服务节点可用,所述第一路由节点向所述第一服务节点转发所述第一报文;
或者,若所述第一服务节点不可用,所述第一路由节点根据所述服务标识信息转发所述第一报文。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一路由节点基于过滤列表确定所述第一服务节点是否可用,所述过滤列表用于指示一个或多个服务节点不可用。
4.如权利要求2或3所述的方法,其特征在于,在所述第一路由节点根据所述服务标识信息转发所述第一报文之后,所述方法还包括:
所述第一路由节点向客户节点发送连接复位报文,所述连接服务报文用于触发所述客户节点重新发起传输控制协议tcp连接。
5.如权利要求2至4任一项所述的方法,其特征在于,在所述第一路由节点根据所述服务标识信息转发所述第一报文之后,还包括:
所述第一路由节点获取第二服务节点地址信息,所述第二服务节点地址信息用于表征第二服务节点的地址,所述至少两个服务节点包括所述第二服务节点;
所述第一路由节点发送所述第二服务节点地址信息。
6.如权利要求1至5任一项所述的方法,其特征在于,在第一路由节点接收来自客户节点的第一报文之前,所述方法还包括:
所述第一路由节点获取所述第一服务节点地址信息;
所述第一路由节点发送第二报文,所述第二报文携带所述第一服务节点地址信息。
7.如权利要求6所述的方法,其特征在于,在所述第一路由节点获取所述第一服务节点地址信息之前,包括:
所述第一路由节点接收第三报文,所述第三报文携带所述服务标识信息。
8.如权利要求1至7任一项所述的方法,其特征在于,所述第一报文携带路由节点标识信息,所述路由节点标识信息用于表征多个路由节点共同的标识。
9.一种服务路由方法,其特征在于,包括:
会话保持装置获取第一报文,所述第一报文携带服务标识信息,其中,所述服务标识信息用于表征至少两个服务节点提供的第一服务的标识;
所述会话保持装置在所述第一报文中添加第一服务节点地址信息后向路由节点进行发送,其中,所述第一服务节点地址信息用于表征第一服务节点的地址,所述至少两个服务节点包括所述第一服务节点。
10.如权利要求9所述的方法,其特征在于,所述会话保持装置在所述第一报文中添加第一服务节点地址信息后向路由节点进行发送,包括:
所述会话保持装置在所述第一报文中添加所述第一服务节点地址信息以及路由节点标识信息后向路由节点进行发送,所述路由节点标识信息用于表征多个路由节点共同的标识。
11.如权利要求9或10所述的方法,其特征在于,在所述会话保持装置在所述第一报文中添加第一服务节点地址信息之前,还包括:
所述会话保持装置基于所述第一报文携带的源地址信息以及所述服务标识信息在路径信息表中查找所述第一服务节点地址信息,所述路径信息表记录一个或多个会话与服务节点地址信息的映射关系。
12.如权利要求11所述的方法,其特征在于,在所述会话保持装置在所述第一报文中添加第一服务节点地址信息后向路由节点进行发送之前,所述方法还包括:
所述会话保持装置接收来自所述路由节点或者所述服务节点的第二报文,所述第二报文携带所述服务标识信息以及所述第一服务节点地址信息;
所述会话保持装置在所述路径信息表中记录所述第一服务节点地址信息。
13.如权利要求12所述的方法,其特征在于,在所述会话保持装置接收来自所述路由节点或者所述服务节点的第二报文之前,所述方法还包括:
所述会话保持装置向所述路由节点发送第三报文,所述第三报文携带所述服务标识信息。
14.如权利要求9至13任一项所述的方法,其特征在于,在所述会话保持装置在所述第一报文中添加第一服务节点地址信息后向路由节点进行发送之后,还包括:
所述会话保持装置接收来自所述路由节点或者所述服务节点的第四报文,所述第四报文携带所述服务标识信息以及第二服务节点地址信息,其中,所述第二服务节点地址信息用于表征第二服务节点的地址,所述至少两个服务节点包括所述第二服务节点;
所述会话保持装置将所述路径信息表中记录的所述第一服务节点地址信息更新为所述第二服务节点地址信息。
15.一种服务路由方法,其特征在于,包括:
服务节点生成第一报文,所述第一报文携带服务标识信息,服务标识信息用于表征至少两个服务节点提供的第一服务的标识,所述至少两个服务节点包括所述服务节点;
所述服务节点在所述第一报文中添加服务节点地址信息后进行发送,其中,所述服务节点地址信息用于表征所述服务节点的地址。
16.如权利要求15所述的方法,其特征在于,在所述服务节点在所述第一报文中添加服务节点地址信息之前,所述方法还包括:
所述服务节点接收第二报文,所述第二报文携带所述服务标识信息。
17.如权利要求15或16所述的方法,其特征在于,所述服务节点在所述第一报文中添加服务节点地址信息,包括:
所述服务节点在所述第一报文中添加所述服务节点地址信息以及路由标识信息,所述路由标识信息用于表征多个路由节点共同的标识。
18.一种服务路由装置,其特征在于,包括:
收发单元,用于收发报文;
处理单元,用于通过所述收发单元执行:
接收第一报文,所述第一报文携带服务标识信息和第一服务节点地址信息,其中,所述服务标识信息用于表征至少两个服务节点提供的第一服务的标识,所述第一服务节点地址信息用于表征第一服务节点的地址,所述至少两个服务节点包括所述第一服务节点;
基于所述第一服务节点地址信息转发所述第一报文。
19.如权利要求18所述的装置,其特征在于,所述处理单元,在基于所述第一服务节点地址信息转发所述第一报文时,具体用于:
若所述第一服务节点可用,向所述第一服务节点转发所述第一报文;
或者,若所述第一服务节点不可用,根据所述服务标识信息转发所述第一报文。
20.如权利要求19所述的装置,其特征在于,所述处理单元,还用于:
基于过滤列表确定所述第一服务节点是否可用,所述过滤列表用于指示一个或多个服务节点不可用。
21.如权利要求19或20所述的装置,其特征在于,所述处理单元,在根据所述服务标识信息转发所述第一报文之后,还用于:
通过所述收发单元向客户节点发送连接复位报文,所述连接服务报文用于触发所述客户节点重新发起传输控制协议tcp连接。
22.如权利要求19至21任一项所述的装置,其特征在于,所述处理单元,在根据所述服务标识信息转发所述第一报文之后,还用于:
获取第二服务节点地址信息,所述第二服务节点地址信息用于表征第二服务节点的地址,所述至少两个服务节点包括所述第二服务节点;
通过所述收发单元发送所述第二服务节点地址信息。
23.如权利要求18至22任一项所述的装置,其特征在于,所述处理单元,在第一路由节点接收来自客户节点的第一报文之前,还用于:
获取所述第一服务节点地址信息;
通过所述收发单元发送第二报文,所述第二报文携带所述第一服务节点地址信息。
24.如权利要求23所述的装置,其特征在于,所述处理单元,在获取所述第一服务节点地址信息之前,还用于:
通过所述收发单元接收第三报文,所述第三报文携带所述服务标识信息。
25.如权利要求18至24任一项所述的装置,其特征在于,所述第一报文携带路由节点标识信息,所述路由节点标识信息用于表征多个路由节点共同的标识。
26.一种服务路由装置,其特征在于,包括:
收发单元,用于收发报文;
处理单元,用于执行:
获取第一报文,所述第一报文携带服务标识信息,其中,所述服务标识信息用于表征至少两个服务节点提供的第一服务的标识;
在所述第一报文中添加第一服务节点地址信息后通过所述收发单元向路由节点进行发送,其中,所述第一服务节点地址信息用于表征第一服务节点的地址,所述至少两个服务节点包括所述第一服务节点。
27.如权利要求26所述的装置,其特征在于,所述处理单元,在所述第一报文中添加第一服务节点地址信息时,具体用于:
在所述第一报文中添加所述第一服务节点地址信息以及路由节点标识信息,所述路由节点标识信息用于表征多个路由节点共同的标识。
28.如权利要求26或27所述的装置,其特征在于,所述处理单元,在所述第一报文中添加第一服务节点地址信息之前,还用于:
基于所述第一报文携带的源地址信息以及所述服务标识信息在路径信息表中查找所述第一服务节点地址信息,所述路径信息表记录一个或多个会话与服务节点地址信息的映射关系。
29.如权利要求28所述的装置,其特征在于,所述处理单元,在所述第一报文中添加第一服务节点地址信息后向路由节点进行发送之前,还用于:
通过所述收发单元接收来自所述路由节点或者所述服务节点的第二报文,所述第二报文携带所述服务标识信息以及所述第一服务节点地址信息;
在所述路径信息表中记录所述第一服务节点地址信息。
30.如权利要求29所述的装置,其特征在于,所述处理单元,在通过所述收发单元接收来自所述路由节点或者所述服务节点的第二报文之前,还用于:
通过所述收发单元向所述路由节点发送第三报文,所述第三报文携带所述服务标识信息。
31.如权利要求26至30任一项所述的装置,其特征在于,所述处理单元,在所述第一报文中添加第一服务节点地址信息后向路由节点进行发送之后,还用于:
通过所述收发单元接收来自所述路由节点或者所述服务节点的第四报文,所述第四报文携带所述服务标识信息以及第二服务节点地址信息,其中,所述第二服务节点地址信息用于表征第二服务节点的地址,所述至少两个服务节点包括所述第二服务节点;
将所述路径信息表中记录的所述第一服务节点地址信息更新为所述第二服务节点地址信息。
32.一种服务路由装置,其特征在于,包括:
收发单元,用于收发报文;
处理单元,用于执行:
生成第一报文,所述第一报文携带服务标识信息,服务标识信息用于表征至少两个服务节点提供的第一服务的标识,所述至少两个服务节点包括所述服务节点;
在所述第一报文中添加服务节点地址信息后通过所述收发单元进行发送,其中,所述服务节点地址信息用于表征所述服务节点的地址。
33.如权利要求32所述的装置,其特征在于,所述处理单元,在所述第一报文中添加服务节点地址信息之前,还用于:
通过所述收发单元接收第二报文,所述第二报文携带所述服务标识信息。
34.如权利要求32或33所述的装置,其特征在于,所述处理单元,在所述第一报文中添加服务节点地址信息时,具体用于:
在所述第一报文中添加所述服务节点地址信息以及路由标识信息,所述路由标识信息用于表征多个路由节点共同的标识。
35.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至8任一项所述的方法,或者如权利要求9至14任一项所述的方法,或者如权利要求15至17任一项所述的方法。
36.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储程序或指令,所述程序或所述指令在被一个或多个处理器读取并执行时可实现权利要求1至8任一项所述的方法,或者权利要求9至14任一项所述的方法,或者权利要求15至17任一项所述的方法。
技术总结