CN112087390A - 一种网络路由方法及装置 - Google Patents
一种网络路由方法及装置 Download PDFInfo
- Publication number
- CN112087390A CN112087390A CN201910518094.4A CN201910518094A CN112087390A CN 112087390 A CN112087390 A CN 112087390A CN 201910518094 A CN201910518094 A CN 201910518094A CN 112087390 A CN112087390 A CN 112087390A
- Authority
- CN
- China
- Prior art keywords
- flow
- service
- data
- network node
- viscosity
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/44—Distributed routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Abstract
本申请公开了一种网络路由方法及装置,用以解决网络路由过程中因流粘性无法保持出现的断流、丢包或流量乱窜的问题。该方法为:网络节点从客户端接收第一数据报文,所述第一数据报文包括服务的标识;所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息,所述服务的流粘性属性信息包括所述服务的流粘性类型和所述服务的流粘性超时时间;所述网络节点在所述第一数据报文为数据流的首个数据报文时,根据所述服务的流粘性属性信息建立流表项,所述流表项用于转发所述数据流的后续数据报文。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种网络路由方法及装置。
背景技术
随着各类云计算资源在网络内的大量部署,同一服务往往同时部署于多个服务节点中,由于多个服务节点的同一服务可以提供相同的业务,因而其具有功能上的等价性。在这种情况下,Anycast技术被提出。Anycast的中文译称主要有,“任播”、“泛播”、“选播”等,本申请中可以用“任播”一词,或者直接使用英文单词“Anycast”。网络上多个提供同一服务的服务节点对外可以通过一个服务地址标识。客户端在访问服务时,并不关注请求的服务在哪个服务节点执行,客户端只需要向网络提供访问请求的服务地址即可。网络收到客户端发送的服务地址,可以将访问请求路由到能够提供该服务的任意一个服务节点上。
通常客户端的数据报文可能会通过一个或多个网络节点(例如交换机或路由器)到达服务节点上,服务节点返回的数据报文也会通过一个或多个网络节点到达客户端。客户端的数据报文经过的网络节点的传输路径可以称为上行路径,服务节点返回的数据报文经过的网络节点的传输路径可以称为下行路径。上行路径和下行路径传输数据报文的过程可以称为流。在一些应用场景下,客户端的业务流需要保持在同一个服务节点,因此客户端访问同一个服务的流需要保持流粘性(flow affinity),流粘性即数据报文经过的网络节点的传输路径应该相同。
当在网络中应用Anycast技术时,网络并可能会将同一个用户的数据报文路由到不同的服务节点上,或者可能经过不同的路径路由到同一个服务节点上,这样就很难保持流粘性。例如,在城域网或多接入边缘年计算(multi-access edge computing,MEC)等应用场景,尤其在网络或计算出现变化时,应用Anycast技术便很难保持流粘性。如果流粘性无法保持,将会出现断流、丢包或流量乱窜等问题。
发明内容
本申请实施例提供一种网络路由方法及装置,用以解决网络路由过程中因流粘性无法保持出现的断流、丢包或流量乱窜的问题。
本申请实施例提供的具体技术方案如下:
第一方面,提供一种网络路由方法,网络节点从客户端接收一个数据报文,记为第一数据报文,所述第一数据报文中包括服务的标识,所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息,所述服务的流粘性属性信息包括所述服务的流粘性类型和所述服务的流粘性超时时间,所述流粘性类型用于标识所述第一数据报文中的一个或多个数据项作为键值来识别所述第一数据报文所属的数据流;所述网络节点在所述第一数据报文为数据流的首个数据报文时,根据所述服务的流粘性属性信息建立流表项,所述流表项用于转发所述数据流的后续数据报文。根据流粘性属性信息建立流表项,实现后续数据报文根据流表项进行转发,满足业务的流粘性需求。通过本申请提供的方法,能够实现用户对访问同一服务需要同一服务节点的需求,使得用户的请求得到满足,避免因流粘性无法保持出现的断流、丢包或流量乱窜的问题。
在一个可能的设计中,所述网络节点根据所述服务的标识,确定所述第一数据报文路由的下一跳网络节点的信息;所述流表项中还包括所述下一跳网络节点的信息。用于实现后续数据报文根据同样的下一跳网络节点的信息进行转发,保证数据流的流粘性。
在一个可能的设计中,所述网络节点从所述客户端接收第二数据报文,所述第二数据报文包括所述服务的标识;所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息;所述网络节点确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;所述网络节点确定所述一个或多个流表中包含所述数据流对应的所述流表项,则根据所述流表项转发所述第二数据报文。通过不同流粘性类型对应不同流表,方便网络节点根据数据报文对应的流粘性类型,快速查找到流表集合,在流表集合中更快的找到数据报文所属数据流对应的流表,提高转发效率。
在一个可能的设计中,所述网络节点确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;所述网络节点确定所述一个或多个流表中不包含所述数据流对应的流表项,则确定所述第一数据报文为所述数据流的首个数据报文。当首包到达时,触发流表项的建立,保证首包之后的数据报文能够按照流表项进行转发。
在一个可能的设计中,所述网络节点向管理节点发送查询消息,所述查询消息用于查询所述服务的流粘性属性信息;所述网络节点从所述管理节点接收所述查询消息的应答消息,所述应答消息中携带所述服务的流粘性属性信息。服务按需向网络管理节点暴露自身的流粘性特征,网络节点按照服务的需求进行流粘性属性信息的扩散,实现服务需求的高校匹配及动态可调。
在一个可能的设计中,所述网络节点从管理节点或其他网络节点接收通知消息,所述通知消息中携带一个或多个服务的流粘性属性信息,所述网络节点保存所述一个或多个服务的流粘性属性信息,所述一个或服务包括所述第一数据报文中服务的标识所指示的服务。服务按需向网络管理节点暴露自身的流粘性特征,网络节点按照服务的需求进行流粘性属性信息的扩散,实现服务需求的高校匹配及动态可调。
在一个可能的设计中,所述网络节点根据所述通告消息确定所述服务的流粘性属性信息发生变化;所述网络节点将流表中所述服务的流表项按照变化的属性信息进行更新。当服务或用户对流粘性有实时变更需求时,也可通过流粘性数据生成的流表项进行实时调整,满足各种业务的对流粘性的需求。
在一个可能的设计中,所述网络节点确定所述流表项中定时时间超过所述流粘性超时时间,删除所述流表项。当服务或用户对流粘性有实时变更需求时,也可通过流粘性数据生成的流表项进行实时调整,满足各种业务的对流粘性的需求。
在一个可能的设计中,所述网络节点确定所述数据流的路由已经失效,则删除所述流表项。当服务或用户对流粘性有实时变更需求时,也可通过流粘性数据生成的流表项进行实时调整,满足各种业务的对流粘性的需求。
在一个可能的设计中,所述流表项中还包括以下一种或多种信息:所述服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
在一个可能的设计中,所述流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
在一个可能的设计中,所述流粘性类型的值包括网络层流粘性和传输层流粘性,所述网络层流粘性的值包括源IP地址和目的IP地址,所述传输层流粘性的值包括传输层协议类型、源IP地址、源端口、目的IP地址和目的端口。
在一个可能的设计中,所述服务的所述流粘性属性信息还包括以下一种或多种:所述数据流的上下行传输路径是否要求一致的指示信息;所述数据流的热切换功能指示信息,所述数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;所述数据流的重置指示信息,所述重置指示信息用于指示所述网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收所述数据流的服务节点以及进行所述流表项的更新;所述数据流的删除指示信息,所述删除指示信息用于指示所述网络节点是否监测数据报文的第二标志位,并通过监测结果删除所述数据流的流表项。当服务或用户对流粘性有实时变更需求时,也可通过流粘性数据生成的流表项进行实时调整,满足各种业务的对流粘性的需求。
第二方面,提供一种网络路由装置,该装置具有实现上述第一方面和第一方面的任一种可能的设计的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该装置可以是芯片或者集成电路。
在一个可能的设计中,该装置包括收发器和处理器,收发器用于与其他通信设备进行通信,处理器用于与存储器进行耦合,执行存储器存储的程序,当程序被执行时,所述装置可以执行上述第一方面和第一方面的任一种可能的设计中所述的方法。
在一个可能的设计中,该装置还包括存储器,用于存储处理器执行的程序。
在一个可能的设计中,该装置为网络节点、交换机或路由器。
第三方面,提供一种芯片,该芯片与存储器相连或者该芯片包括存储器,用于读取并执行所述存储器中存储的软件程序,以实现如上述第一方面和第一方面的任一种可能的设计中所述的方法。
第四方面,提供了一种通信系统,该通信系统包括客户端、网络节点和服务节点,所述网络节点用于执行上述第一方面和任一可能设计中的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面和第一方面的任一可能的设计中方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面和第一方面的任一可能的设计中所述的方法。
附图说明
图1为本申请实施例中网络系统架构示意图;
图2为本申请实施例中网络路由方法的流程示意图之一;
图3为本申请实施例中网络节点获取服务的流粘性属性信息过程示意图;
图4为本申请实施例中流的上下行传输路径一致示意图;
图5为本申请实施例中触发建立流表项的流程示意图;
图6为本申请实施例中更新流表项的流程示意图;
图7为本申请实施例中删除流表项的流程示意图之一;
图8为本申请实施例中删除流表项的流程示意图之二;
图9为本申请实施例中流粘性的维持方式的流程示意图;
图10为本申请实施例中网络路由方法的流程示意图之二;
图11为本申请实施例中网络路由方法的流程示意图之三;
图12为本申请实施例中网络路由装置结构示意图之一;
图13为本申请实施例中网络路由装置结构示意图之二。
具体实施方式
下面将结合附图,对本申请实施例进行详细描述。
本申请实施例提供一种网络路由方法及装置,用于保持网络路由过程中的流粘性。其中,方法和装置是基于同一构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。本申请实施例的描述中,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请中所涉及的至少一个是指一个或多个;多个,是指两个或两个以上。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1示出了本申请实施例提供的网络路由方法适用的一种可能的网络系统架构示意图。如图1所示,网络系统100包括网络节点101、客户端102和服务节点103。该系统100还可以包括服务的管理节点104。网络节点101和服务节点103的数量均可以是一个或多个。
其中,客户端102,用于向服务节点103请求提供服务,将请求报文或者数据流通过网络节点101发送给服务节点103,从服务节点103接收服务。
网络节点101,用于从服务的管理节点104获取服务的流粘性属性,在本地保存,在接收到客户端102发送的请求报文或者数据流时,根据流粘性属性建立流表项,实现请求报文或数据流的转发,保持服务的流粘性。网络节点101可以是交换机或者路由器等路由设备。
服务节点103,用于向客户端102提供服务。其中,同一个服务可能在多个服务节点103上存在。例如,在网络中应用Anycast技术,网络上多个提供同一服务的服务节点对外可以通过一个服务地址标识。这种情况下,客户端102只需要提供请求访问的服务地址即可,至于网络节点101将数据流路由到哪一个服务节点103来提供服务客户端102并不关心。服务节点103上可能运行一个或多个服务实例,不同的服务实例提供不同功能的服务。
服务的管理节点104,管理各个服务节点中运行的服务实例,以及管理各个服务的流粘性属性。服务的管理节点104可以向各个网络节点101来提供各个服务的流粘性属性。其中,服务的管理节点104可以通过控制模块向各个网络节点101来提供各个服务的流粘性属性,控制模块可以是服务的管理节点104中的一个硬件或软件模块,例如为一个组件,或者一个接口。服务的管理节点104可以是一个网管系统,例如是运营支撑系统(operationsupport system,OSS)。
本申请中,服务的管理节点104与各个网络节点101组成控制面。客户端102、各个网络节点101和服务节点103组成数据面。控制面通过管理节点104到各个网络节点101之间的链路(图1中的细线箭头)来组成,用于传输服务的流粘性属性信息。数据面由客户端通过各个网络节点101到服务节点103之间的链路(图1中的粗线箭头)来组成。图1中通过客户端通过两条路径分别到达服务节点1和服务节点2来举例说明。
服务节点103在图1中通过服务节点1、服务节点2和服务节点3来举例,服务节点1中运行服务A和服务B,服务节点2上运行服务A和服务C,服务节点3上运行服务C。服务A对外暴露的地址为IP_A,服务B对外暴露的地址为IP_B,服务C对外暴露的地址为IP_C。这样,客户端想访问服务A时,可能由服务节点1或服务节点2或其他运行服务A的节点来提供。
本申请实施例可以但不限于应用到城域网或移动边缘计算(mobile edgecomputing,MEC)或多接入边缘计算(multi-access edge computing,MEC)等应用场景。
当在网络中应用Anycast技术时,网络节点104如果按照现有的转发技术进行转发,则来自于同一个客户端(或用户)的数据流中的数据报文可能将被路由到不同的服务节点上,因为不同的服务节点可能提供相同的服务。但是有些客户端要求访问同一个服务的流需要保持相同的传输路径以及相同的服务节点,即保持流粘性,为解决这一问题,本申请实施例提供了一种网络路由方法。以下对本申请实施例提供的网络路由方法作详细说明。
本申请实施例的基本思想是,网络节点在本地建立流表项,根据流表项中的流粘性属性对到来的数据报文进行转发,从而保证同一个客户端访问同一个服务的流保存流粘性。
如图2所示,本申请实施例提供的网络路由方法的详细过程如下所述。
S200、客户端向网络节点发送数据报文,网络节点从客户端接收数据报文。
这里的数据报文记为第一数据报文,该第一数据报文包括服务的标识。该服务为客户端想要访问的服务。
S201、网络节点根据第一数据报文中携带服务的标识,获取服务的流粘性属性信息。
本申请中,流粘性属性信息包括流粘性类型和流粘性超时时间。流粘性类型用于标识一个数据报文中哪些数据项作为键值(KEY)/关键词/关键字来区分不同数据流,即流粘性类型用于标识数据报文中的哪些数据项作为键值来识别该数据报文所属的数据流。以第一数据报文为例,网络节点获取的该服务的流粘性类型用于标识第一数据报文中的一个或多个数据项来作为键值来识别第一数据报文所属的数据流。流粘性类型的值包括用于区分流的键值。这里所谓的键值/关键词/关键字可以是网际协议(internet protocol,IP)五元组中的任意一个或多个成员的组合。IP五元组包括传输协议类型、源IP地址、源端口、目的IP地址、目的端口。例如,流粘性类型包括网络层流粘性和传输层流粘性。其中,网络层流粘性通过两个键值来标识一个流,该网络层流粘性的值包括源IP地址和目的IP地址。传输层流粘性通过五个键值来标识一个流,该传输层流粘性的值包括传输层协议类型、源IP地址、源端口、目的IP地址和目的端口。网络层流粘性用于表征服务属于网络层,客户端与服务节点通过网络层来实现服务提供和使用。传输层用于表征服务属于传输层,客户端与服务节点通过传输层来实现服务的提供和使用。网络层和传输层是指协议栈的不同层。
网络节点可以在本地存储不同服务对应的不同的流粘性属性信息,在本步骤中,网络节点可以根据服务的标识,获取与该服务对应的流粘性属性信息。网络节点获取不同服务对应的不同的流粘性属性信息的可选方式以及可选存储方式,将在下文中图3所示的实施例中介绍。
S202、网络节点在第一数据报文为数据流的首个数据报文时,根据服务的流粘性属性信息建立流表项。
网络节点可以根据服务的流粘性属性信息来建立流表项。网络节点可以在本地维护一张流表,流表中包括一个或多个流表项,一个流表项用于标识一个流的各种属性信息。其中,流表项中包括服务的流粘性属性信息。当一条数据流的首个数据报文到达时,网络节点在流表中插入一条新的流表项,该流表项用于这条数据流后续数据报文的转发。当网络节点在根据流表项来转发数据流中的数据报文时,就可以参照服务的流粘性属性信息,根据流粘性属性信息来保持该数据流的流粘性。
为了实现流表项的功能,一个流表项中除了包括服务的流粘性属性信息之外,还可以包括服务的标识、源IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。其中,网络节点根据服务的标识去进行服务寻址或路由,来确定第一数据报文路由的下一跳网络节点的信息。服务寻址或路由可以采用现有技术的任意一种方式,本申请不作限制。通过服务的标识、源IP地址、源端口、目的IP地址、目的端口中的任意一项或多项来区分到来的后续数据报文是否属于这条数据流。
在S202之后,当有后续数据报文到来时,可以执行以下步骤。
客户端向网络节点发送第二数据报文,网络节点从客户端接收第二数据报文,第二数据报文包括服务的标识;该服务的标识与S200中第一数据报文的服务的标识相同。网络节点可以判断,第二数据报文和第一数据报文访问的是同一个服务。网络节点根据该服务的标识获取服务的流粘性属性信息,获取方法与S201中相同。在获得服务的流粘性属性信息后,根据流粘性属性信息中的该服务的流粘性类型,确定该服务的流粘性类型对应的一个或多个流表。实际应用中,网络节点可以在本地存储不同的流粘性类型与不同流表之间的对应关系,例如,流粘性类型的标识为1,对应使用二元组区分不同流的一些流表;流粘性类型的标识为2,对应使用五元组区分不同流的一些流表。网络节点在根据服务的流粘性类型对应的一个或多个流表查找是否有第二数据报文所属数据流对应的流表项,若有,则根据流表项转发该第二数据报文,这样,第二数据报文可以与第一数据报文有相同的转发路径,保持该数据流的流粘性。基于上述描述,上述S202中网络节点可以在确定服务的流粘性类型对应的一个或多个流表中不包含第一数据报文所属数据流对应的流表项时,确定该第一数据报文为数据流的首个数据报文,从而建立该数据流的流表项。
如上所述,服务的管理节点104来管理各个服务的流粘性属性信息,网络节点可以通过主动获取或者被动接收两种方式来获取服务的流粘性属性信息。
例如,网络节点通过被动接收来获取服务的流粘性属性信息。管理节点向网络节点发送通知消息,网络节点从管理节点或其他网络节点接收通知消息,该通知消息中携带服务的流粘性属性信息。
又例如,网络节点也可以主动获取服务的流粘性属性信息。网络节点向管理节点发送查询消息,管理节点向网络节点返回基于该查询消息的应答消息,在应答消息中携带服务的流粘性属性信息。网络节点从管理节点或其他网络节点接收该应答消息,获取应答消息中的服务的流粘性属性信息。
如图3所示,网络节点获取服务的流粘性属性信息的两种可能的具体实现方式如下所述。
S301、服务OSS向管理节点发送流粘性通知消息,管理节点从服务OSS接收该流粘性通知消息。
流粘性通知消息或者称为流粘性通知消息,或者称为通知消息。当有某一个服务接入、退出网络或该服务的流粘性属性信息发生变更时,服务OSS向管理节点发送流粘性通知消息。
S302、管理节点接收到流粘性通知消息后,解析消息内容,保存服务的流粘性属性信息。
例如,管理节点可以在本地保存及维护一张流粘性数据表。该流粘性数据表中每一个条目对应一个服务的流粘性属性信息。
在网络节点被动接收服务的流粘性属性信息的情况下,执行S303~S304。
S303、管理节点向连接的各个网络节点发送流粘性通知消息,各个网络节点从管理节点或其他网络节点接收该流粘性通知消息。
图3中以一个网络节点为示例,实际应用中,网络中可能包括多个网络节点。该一个网络节点执行的动作可以适用于各个网络节点。
S304、网络节点将流粘性通知消息中的服务的流粘性属性信息保存,或者根据接收到的流粘性通知消息将已经保存的流粘性属性信息的数据进行更新。
网络节点可以根据接收到的流粘性通知消息在本地形成流粘性数据表,或者,根据接收到的流粘性通知消息将本地已经形成的流粘性数据表进行更新。例如,流粘性通知消息指示服务的流粘性属性信息变更或者删除,则网络节点根据该流粘性通知消息对流粘性数据表中的对应条目进行维护,即进行变更或者删除。
在网络节点主动获取服务的流粘性属性信息的情况下,执行S303’~S304’。
S303’、网络节点向管理节点发送查询消息,管理节点从网络节点接收该查询消息。
该查询消息用于查询某一个或多个服务的流粘性属性。
当网络节点在启动时或者对某服务的流粘性状态确定不准确时,则会触发向管理节点发送查询消息。
S304’、管理节点在收到该查询消息后,向网络节点返回应答消息。
管理节点查询本地是否保存有该服务的流粘性属性信息,若是,则在应答消息中携带网络节点查询的该服务的流粘性属性信息。
本申请实施例中,网络节点在本地保存及维护的流粘性数据表,每一个条目为一个服务的流粘性属性信息。以下给出一种流粘性数据表的示例。可以适用于管理节点保存及维护的流粘性数据表。
例如,一种可能的流粘性数据表如表1所示。
表1
在表1所示的流粘性数据表中,示例了3个服务的流粘性属性信息,流粘性属性信息中包括流粘性类型和流粘性超时时间,还可以包括其他的附加参数。不同的服务通过服务标识ID来区分。流粘性类型可以用不同的类型标识来区分,例如,用标识1表示一种流粘性类型,用标识2表示另一种流粘性类型。可选的,标识1表示网络层流粘性,标识2表示传输层流粘性。表1所示,标识为8.8.8.8的服务的流粘性类型为网络层流粘性,流粘性超时时间为30s。标识为11.0.0.11的服务的流粘性类型为网络层流粘性,流粘性超时时间为20s。标识为12.5.1.10:80的服务的流粘性类型为传输层流粘性,流粘性超时时间为500ms。
流粘性属性信息中的附加参数可能包括以下几种,可以通过表2来示例各个附加参数的指示信息,各个附加参数的指示信息通过数据内容、数据类型和释义来表示。本申请中,“数据流”也可以简称为“流”。
1)流的上下行传输路径是否要求一致的指示信息,可通过same_path来表示该参数的数据内容,数据类型为bool,该参数的释义为是否要求上行路径一致。如图4所示,当该参数的值为真(true)时,要求流的上下行传输路径一致,即回程包需要按照源路径返回。本申请中,网络节点根据流粘性属性信息建立流表项,在传输上行数据报文时,通过流表项查询到路由路径以及服务节点,如果流表项中的流粘性属性信息中的same_path的值为true,则表示该网络节点在传输回程包时需要按照原来的传输路径原路返回。
2)流的热切换功能指示信息,包括流的热切换功能hot_swap_enable指示信息,如通过hot_swap_enable来表示参数的数据内容,数据类型为bool,该参数的释义为是否支持热流切换。当该参数的值为true时,使能流的热切换功能。
3)回程包超时定时器时间信息,可通过hot_swap_timeout来标识参数的数据内容,数据类型为long,该参数的释义可以为流热切换超时时间。当2)的参数的值为true时,使能流的热切换功能,在3)中的参数指示的回程包超时定时时间内还未出现回程包时,触发流的热切换,即切换该流的下一跳网络节点(target hop),从而实现该流的服务节点的切换。
4)缓存数据流功能指示信息。可通过cache_enable来表示参数的数据内容,数据类型为bool,该参数的释义为是否需要缓存数据报文。当cache_enable的值为true时,表示需要缓存该流的数据报文。
5)缓存数据流缓冲区长度信息,可通过缓存尺寸(cache size)来标识参数的数据内容,数据类型为long,参数的释义为缓存区大小。
缓存的目的在于,当流的热切换触发时,将该缓存的数据发送给新的网络节点。
6)数据流的重置指示信息。重置指示信息用于指示网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收数据流的服务节点以及进行流表项的更新。
可以通过active_reset_enable来表示参数的数据内容,数据类型为bool,该参数的释义为是否支持重置流表项。当active_reset_enable的值为true时,网络节点监测该流的数据报文的第一标志位,例如第一标志位为数据报文的重置标志,该数据报文的重置标志为true时,重选服务节点,重置流粘性超时时间及其他附加参数的值。其中,数据报文的重置标志可以复用传输控制协议(transmission control protocol,TCP)中的重置(reset)标志,也可在协议层的三层或四层包头定义其它reset标志。
7)数据流的删除指示信息。删除指示信息用于指示网络节点是否监测数据报文的第二标志位,并通过监测结果删除所述数据流的流表项。
可以通过active_del_enable来标识参数的数据内容,数据类型为bool,该参数的释义是否支持主动删除流表项。当active_del_enable的值为true时,网络节点监测该流的数据报文的标志位,该数据报文的删除标志为true时,删除流表中该流对应的流表项。其中,该标志位复用TCP中的fin标志,也可以在协议层的三层或四层包头定义其它删除标志。
表2
上面通过表1和表2的举例示意了服务的流粘性属性信息。网络节点从管理节点或其他网络节点接收通知消息来获得服务的流粘性属性信息,或者网络节点向管理节点发送查询消息来获取服务的流粘性属性信息。该通知消息或查询消息(以下简统称为流粘性消息)的格式以及内容如下所述。
流粘性消息的格式包括两部分:公共消息头和消息体(body)。公共消息头为各类流粘性消息的公共头部,用以标识消息体类型、消息长度等,格式如下表3所示。
表3
消息体为各类流粘性消息的内容,用以传递服务的流粘性交互数据,即服务的流粘性属性信息。通告消息格式如表4所示。查询消息的格式如表5所示。
表4
表5
网络节点可以通过表5所示的内容格式的查询消息,向网管节点查询一个或多个服务的流粘性属性信息。
网络节点在获取到各个服务的流粘性属性信息之后,在本地建立流表,流表中包括多个条目即流表项,每一个流表项表示一条流的标识信息和流粘性属性信息。
如表6所示,为网络节点建立及维护的流表的一种示例。
表6
网络节点根据已经获取的服务的流粘性属性信息,建立流表项,维护流表。如表6中所示,第一列为服务(2)的服务IP地址,在上行过程中为目的地址。在上行传输中客户端IP为源IP,客户端端口为源端口。网络节点根据服务寻址及路由获取下一跳网络节点(target hop)的信息,并记录在流表项中。根据流粘性属性信息中的流粘性超时时间来确定Time stamp和定时器的信息。根据流粘性属性信息中的附加参数的信息来确定后面几列中的“是否相同路径”、“流的热切换功能”、“回程包超时定时器时间”、“缓存数据流功能”、“缓存尺寸”、“数据流重置”、“数据流删除”各个参数的信息。“NULL”表示为空,没有该附加参数。附加参数的值为“TRUE”时该参数才能使能,为“FALSE”时不启用该功能。
其中,Time stamp为定时器开始计时的时间。流粘性超时时间可以通过定时器和Time stamp来实现,也可以在流表项中记录老化时间(age),当老化时间减到0时表示流粘性超时时间到达。
表6所示的流表通过源IP、目的IP、源端口来组成标识一条流的参数,即表明了流粘性的类型。
网络节点根据以下几种触发方式来触发建立、更新或删除流表项。
第一种、当网络节点接收到一条数据流的首个数据报文时,建立流表项。具体如图5所示。
S501、网络节点从客户端接收数据报文。
数据报文中携带服务的标识,用于表示访问哪一个服务。
S502、网络节点查询流粘性数据表,判断该服务的流粘性属性信息是否存在,若是则执行S503,否则执行S503’。
网络节点根据服务的标识查询流粘性数据表中是否存在该服务的流粘性属性信息。
S503、根据该服务的流粘性属性信息建立流表项,并将流表项插入流表中。继续执行S504。
在S503之前,网络节点还可以根据服务的标识确定流表中不包含该数据报文所属数据流的流表项,则建立流表项。如果流表中已经包含该数据报文所属数据流的流表项,说明该数据报文不是首个数据报文,则按照流表项进行转发该数据报文即可。
S503’、按照普通路由的路径转发该数据报文。
S504、对后续接到的数据报文按照流表项进行转发。
从而保证同一个数据流的报文能够按照相同的流表项进行转发,到达相同的服务节点。
第二种、根据管理节点的通知消息更新流表项。具体如图6所示。
S601、网络节点从管理节点或其他网络节点接收通知消息,该通知消息中包括服务的流粘性属性信息更新的指示信息。
S602、网络节点查询流表,判断是否有发生流粘性属性信息更新的服务的流表项存在,若是,则执行S603,否则执行S604。
S603、网络节点对流表中的流表项进行更新。
按照通知消息,将发生更新的服务对应的流表项进行更新。例如,流粘性类型发生更新,或者流粘性超时时间发生更新。
第三种、流粘性超时时间到达时触发流表项的删除。具体过程如图7所示。
S701、网络节点启动定时时间的计时。
当数据流的首包到达或者每当数据流的任意一个数据报文到达是,重启定时时间,例如重启定时器。
S702、网络节点确定流表项中定时时间超过流粘性超时时间。
网络节点在流表项中定时时间超过流粘性超时时间时可以直接删除流表项,或者,也可以执行S703。
S703、查询服务的路由。
S704、判断查询到的服务的路由是否与该流表项所表示的路由相同,若相同,则执行S705,否则,执行S706。
S705、不需要删除该流表项,将该流表项中的时间戳参数更新。
S706、删除该流表项。
第四种、网络节点确定数据流的路由已经失效,则删除流表项。具体过程如图8所示。
S801、网络节点确定数据流的路由已经失效。
路由失效,即数据流无法通过所述网络节点转发到原来的服务节点。例如所述网络节点可以通过其他网络节点或者管理节点接收到路由变更/路由失效的通知消息。
S802、网络节点查询流表,判断发生路由失效的数据流对应的流表项是否存在,若是,则执行S803,否则结束流程。
S803、网络节点判断该数据流的原服务节点是否失效或是否不可达,若是,则执行S804,否则结束流程。
S804、删除流表中与路由失效的数据流对应的流表项。
通过以上几种方法,可以触发对流表的维护。
网络节点每接收到一个数据报文,可以根据本地保存或维护的流表查询该数据报文所属数据流的流表项,根据该流表项进行该数据报文的转发,从而保持流粘性。
如图9所示,以下通过一个具体的实施例来对流粘性的维持方式进行详细说明。假设网络中包括网络节点1、网络节点2、网络节点3、网络节点n等,客户端和服务节点。客户端想要访问某一个服务,例如服务A,该服务A的IP地址为8.8.8.8,某一个或多个服务节点的服务实例运行该服务A。以网络节点1为执行主体,网络节点1保存及维护流表,流表中包括每一个经过网络节点1的数据流的流表项,网络节点1可以根据流粘性数据表和服务寻址及路由的结果来对流表进行建立及维护。如图10所示,整个网络路由方法如下所述。
S1001、客户端访问服务A,服务请求被传递到网络节点1,网络节点1接收到客户端对服务A的访问请求。
具体地,客户端接入网络后,发起对服务A的调用请求,请求报文到达网络节点1,网络节点1完成寻址及路由计算后,根据流粘性数据表中该服务A的流粘性属性信息在流表中建立流表项,以使得后续数据报文按该流表项进行转发。
S1002、网络节点1查询流表,按照流表中的流表项转发该访问请求的数据报文,或者,建立流表项。
具体的,网络节点1根据数据报文中的服务标识ID,查询本地保存的流表中是否有该服务以及该客户端对应的流表项,例如,服务标识ID的一种实现方式为服务Anycast IP,服务Anycast IP地址可以作为数据报文的目的IP地址来标识服务ID。若有该服务以及该客户端对应的流表项,则按照该流表项指示的下一跳路由节点进行转发,当然按照流表项中的其他参数进行相应的操作;若没有,则查询流粘性数据表中该服务的流粘性属性信息,以及查询该服务的路由,根据该服务的流粘性属性信息以及查询到的路由结果生成流表项,插入到流表中。当流表中有该流的流表项时,需要重启或者更新该流表项对应的定时时间的信息,例如,重启定时器。当流表中没有该流的流表项时,在建立流表项时,启动定时时间的信息,例如,启动定时器。
网络节点1再接收到客户端发送的数据报文时,按照上述方法重复执行。
假设网络节点1将该数据报文转发到下一跳网络节点n。
S1003、网络节点n查询流表,按照流表中的流表项转发该访问请求的数据报文,或者,建立流表项。
网络节点n执行的动作与网络节点1执行的动作相同,参见S1002的描述。
假设网络节点1将该数据报文转发到下一跳为服务节点。
S1004、网络节点n将数据报文发送给服务节点,服务节点从网络节点n接收到该数据报文。
服务节点在接收到数据报文后,执行下行传输过程。即向客户端回传数据报文,具体回传的过程与上行传输时建立的流表项相关,各个网络节点在接收到数据报文时,根据上行传输时建立的流表项进行反向数据报文的转发。
这样完成了数据报文的整个路由过程,实现服务的流粘性维持。
基于上述实施例的描述,下面以在MEC的应用场景为例,对本申请实施例提供的网络路由方法做进一步详细说明。
如图11所示,在同一城域网的两个边缘站点(MEC)内都部署有服务(service)A,对外提供服务A,例如服务A为虚拟现实(virtual reality,VR)互动服务直播,此外远端的云(cloud)站点内也有计算资源能够提供该服务A。站点即上文中的服务节点。同一服务节点内的serviceA具备多个实例,这多个实例使用同一应用程序编程接口(applicationprogramming interface,API)网关(gateway),所有serviceA的API Gateway对外暴露相同的IP地址。各服务节点的入口处部署计算调度的路由器(router),路由器即上文中的网络节点。管理节点将serviceA的流粘性属性信息通知给各个服务节点,各个服务节点在本地保存服务A的流粘性属性信息,例如通过流粘性数据表来保存。
可以通过在网元设备用户面功能(user plane function,UPF)上配置相应的转发策略,使得访问serviceA的数据报文被定向转发至就近的路由器。
可选的,客户端接入网络后,发起对serviceA的调用请求,经过接入网设备到达UPF,UPF根据转发策略,将访问serviceA的数据报文定向转发至就近的路由器。
数据报文到达路由器后,路由器进行服务寻址及路由计算,并根据服务寻址和路由计算的结果以及流粘性属性信息建立流表项。那么路由器对后续到来的数据报文按该流表项进行转发。
系统运行之初,各个服务节点上servicerA的服务资源充足,客户端的请求由就近的服务节点提供服务。如图11所示,客户端1与服务节点1内serviceA建立连接,客户端2与服务节点2内的serviceA建立连接。随着系统的运行,各个服务节点间出现负载不均的情况,例如通过路由器2接入的客户端逐渐增多,服务节点2内的serviceA负载变重,影响部分用户的服务质量,在此情况下路由器2将新接入的客户端N调度到临近的服务节点1,新接入的客户端(N+1)被调度到更高的云cloud站点。
经过路由器2的有多条数据流,各个数据流的目的IP是相同的,都是serviceA,但实际上不同的数据流到达的服务节点并不是相同的。如果依靠现有技术的普通路由转发功能,则无法保证各个数据流的数据报文能转发到原来的服务节点,可能会出现断流、丢包等问题,通过本申请实施例上述设计的方法,路由器2在收到数据报文时,根据数据报文所属数据流的流表项来进行转发,能够有助于保障各条流的流粘性,保证各条流的正确及高效转发。
综上,通过本申请实施例提供的网络路由方法,网络节点在本地根据流粘性属性信息建立流表项,按照流表项对数据报文进行转发,有助于保证数据流的正确高效转发。不同的服务可以按照自身的需求向网络暴露自身的流粘性属性信息,网络可以按照服务的需求进行流粘性属性信息的扩散,实现服务需求的高效匹配和动态可调。另外,通过流粘性属性信息中的附加参数,能够实现客户端或服务对数据流的流粘性的各种需求。当服务或客户端对流粘性有实时变更需求时,也可通过对流表项进行实时调整,满足各种业务的对流粘性的需求。通过流表项中的定时时间信息,对流表项进行持续刷新,为客户端保持该数据流的服务节点的动态特性。根据更新或删除流表项,能够及时为客户端匹配到更合适的服务节点。
基于上述方法实施例的同一构思,如图12所示,本申请实施例还提供一种网络路由装置1200,该通信装置1200具有执行上述方法实施例中网络节点执行的操作的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。例如,该通信装置1200包括处理单元1201和接收单元1202。接收单元1202用于执行方法实施例中接收的步骤。处理单元1201用于执行除接收外的其它步骤。该通信装置1200可以是网络节点、路由器或交换机,也可以是网络节点、路由器或交换机内部的芯片或功能模块,当该通信装置1200用于执行上述方法实施例中网络节点执行的操作时:
接收单元1202,用于从客户端接收第一数据报文,该第一数据报文包括服务的标识;
处理单元1201,用于根据该服务的标识获取该服务的流粘性属性信息,该服务的流粘性属性信息包括该服务的流粘性类型和该服务的流粘性超时时间,该流粘性类型用于标识该第一数据报文中的一个或多个数据项作为键值来识别该第一数据报文所属的数据流;
该处理单元1201,还用于在该第一数据报文为数据流的首个数据报文时,根据该服务的流粘性属性信息建立流表项,该流表项用于转发该数据流的后续数据报文。
可选的,该处理单元1201还用于:
根据该服务的标识,确定该第一数据报文路由的下一跳网络节点的信息;该流表项中还包括该下一跳网络节点的信息。
可选的,接收单元1202用于从该客户端接收第二数据报文,该第二数据报文包括该服务的标识;
该处理单元1201还用于:根据该服务的标识获取该服务的流粘性属性信息;以及确定该服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;以及确定该一个或多个流表中包含该数据流对应的该流表项,则根据该流表项转发该第二数据报文。
可选的,该处理单元1201还用于:
确定该服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;
以及确定该一个或多个流表中不包含该数据流对应的流表项,则确定该第一数据报文为该数据流的首个数据报文。
可选的,该通信装置1200还包括发送单元1203,发送单元1203用于向管理节点发送查询消息,该查询消息用于查询该服务的流粘性属性信息;
接收单元1202还用于从该管理节点接收该查询消息的应答消息,该应答消息中携带该服务的流粘性属性信息。
可选的,该处理单元1201还用于:
确定该流表项中定时时间超过该流粘性超时时间,删除该流表项。
可选的,该处理单元1201还用于:
确定该数据流的路由已经失效,则删除该流表项。
可选的,该流表项中还包括以下一种或多种信息:该服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
可选的,该流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
可选的,该服务的该流粘性属性信息还包括以下一种或多种:该数据流的上下行传输路径是否要求一致的指示信息;该数据流的热切换功能指示信息,该数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;该数据流的重置指示信息,该重置指示信息用于指示该网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收该数据流的服务节点以及进行该流表项的更新;该数据流的删除指示信息,该删除指示信息用于指示该网络节点是否监测数据报文的第二标志位,并通过监测结果删除该数据流的流表项。
基于与上述方法实施例的同一构思,如图13所示,本申请实施例还提供了一种网络路由装置1300,该网络路由装置1300用于实现上述方法实施例中网络节点执行的操作。图13仅仅示出了网络路由装置1300的主要部件。
网络路由装置1300包括:收发器1301和处理器1302,可选的还可以包括存储器1303。收发器1301用于与其它设备(例如客户端或服务节点)进行消息或信令的传输,处理器1302与存储器1303耦合,用于调用存储器1303中的程序,当程序被执行时,使得处理器1302执行上述方法实施例中网络节点执行的操作。存储器1303用于存储处理器1302执行的程序。收发器1301可以包括发射器和/或接收器,分别实现收发功能。处理器1302可以为一个或多个。存储器1303可以位于处理器1302中,也可以单独存在。图12中的功能模块处理单元1201可以通过处理器1302来实现,接收单元1202和发送单元1203可以通过收发器1301来实现。本领域技术人员可以理解,为了便于说明,图13仅示出了一个存储器和处理器。在实际的网络节点中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请实施例对此不做限制。
处理器1302主要用于对通信协议以及通信数据进行处理,以及对整个网络路由装置进行控制,执行软件程序,处理软件程序的数据,例如用于支持网络路由装置执行上述方法实施例中所描述的动作。存储器1303主要用于存储软件程序和数据。
其中,处理器1302执行以下操作:
收发器1301,用于从客户端接收第一数据报文,该第一数据报文包括服务的标识;
处理器1302,用于根据该服务的标识获取该服务的流粘性属性信息,该服务的流粘性属性信息包括该服务的流粘性类型和该服务的流粘性超时时间,该流粘性类型用于标识该第一数据报文中的一个或多个数据项作为键值来识别该第一数据报文所属的数据流;
该处理器1302,还用于在该第一数据报文为数据流的首个数据报文时,根据该服务的流粘性属性信息建立流表项,该流表项用于转发该数据流的后续数据报文。
可选的,该处理器1302还用于:
根据该服务的标识,确定该第一数据报文路由的下一跳网络节点的信息;该流表项中还包括该下一跳网络节点的信息。
可选的,该收发器1301还用于:从该客户端接收第二数据报文,该第二数据报文包括该服务的标识;
该处理器1302还用于:根据该服务的标识获取该服务的流粘性属性信息;以及确定该服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;以及确定该一个或多个流表中包含该数据流对应的该流表项,则根据该流表项转发该第二数据报文。
可选的,该处理器1302还用于:
确定该服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;
以及确定该一个或多个流表中不包含该数据流对应的流表项,则确定该第一数据报文为该数据流的首个数据报文。
可选的,该收发器1301还包括:
向管理节点发送查询消息,该查询消息用于查询该服务的流粘性属性信息;
从该管理节点接收该查询消息的应答消息,该应答消息中携带该服务的流粘性属性信息。
可选的,该处理器1302还用于:
确定该流表项中定时时间超过该流粘性超时时间,删除该流表项。
可选的,该处理器1302还用于:
确定该数据流的路由已经失效,则删除该流表项。
可选的,该流表项中还包括以下一种或多种信息:该服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
可选的,该流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
可选的,该服务的该流粘性属性信息还包括以下一种或多种:该数据流的上下行传输路径是否要求一致的指示信息;该数据流的热切换功能指示信息,该数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;该数据流的重置指示信息,该重置指示信息用于指示该网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收该数据流的服务节点以及进行该流表项的更新;该数据流的删除指示信息,该删除指示信息用于指示该网络节点是否监测数据报文的第二标志位,并通过监测结果删除该数据流的流表项。
处理器1302可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
处理器1302还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器1303可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1303也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1303还可以包括上述种类的存储器的组合。
在本申请上述方法实施例描述的网络节点所执行的操作和功能中的部分或全部可以用芯片或集成电路来完成。
为了实现上述图12或图13所述的网络路由装置的功能,本申请实施例还提供一种芯片,包括处理器,用于支持该网络路由装置实现上述方法实施例中网络节点所涉及的功能。在一种可能的设计中,该芯片与存储器连接或者该芯片包括存储器,该存储器用于保存该网络路由装置必要的程序指令和数据。
本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述方法实施例的指令。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种网络路由方法,其特征在于,包括:
网络节点从客户端接收第一数据报文,所述第一数据报文包括服务的标识;
所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息,所述服务的流粘性属性信息包括所述服务的流粘性类型和所述服务的流粘性超时时间;
所述网络节点在所述第一数据报文为数据流的首个数据报文时,根据所述服务的流粘性属性信息建立流表项,所述流表项用于转发所述数据流的后续数据报文。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述网络节点根据所述服务的标识,确定所述第一数据报文路由的下一跳网络节点的信息;所述流表项中还包括所述下一跳网络节点的信息。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述网络节点从所述客户端接收第二数据报文,所述第二数据报文包括所述服务的标识;
所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息;
所述网络节点确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;
所述网络节点确定所述一个或多个流表中包含所述数据流对应的所述流表项,则根据所述流表项转发所述第二数据报文。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述网络节点确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;
所述网络节点确定所述一个或多个流表中不包含所述数据流对应的流表项,则确定所述第一数据报文为所述数据流的首个数据报文。
5.如权利要求1~4任一项所述的方法,其特征在于,所述方法还包括:
所述网络节点向管理节点发送查询消息,所述查询消息用于查询所述服务的流粘性属性信息;
所述网络节点从所述管理节点接收所述查询消息的应答消息,所述应答消息中携带所述服务的流粘性属性信息。
6.如权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
所述网络节点确定所述流表项中定时时间超过所述流粘性超时时间,删除所述流表项。
7.如权利要求1~6任一项所述的方法,其特征在于,所述方法还包括:
所述网络节点确定所述数据流的路由已经失效,则删除所述流表项。
8.如权利要求1~7任一项所述的方法,其特征在于,所述流表项中还包括以下一种或多种信息:所述服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
9.如权利要求1~8任一项所述的方法,其特征在于,所述流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
10.如权利要求1~9任一项所述的方法,其特征在于,所述服务的所述流粘性属性信息还包括以下一种或多种:所述数据流的上下行传输路径是否要求一致的指示信息;所述数据流的热切换功能指示信息,所述数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;所述数据流的重置指示信息,所述重置指示信息用于指示所述网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收所述数据流的服务节点以及进行所述流表项的更新;所述数据流的删除指示信息,所述删除指示信息用于指示所述网络节点是否监测数据报文的第二标志位,并通过监测结果删除所述数据流的流表项。
11.一种网络路由装置,其特征在于,包括:
接收单元,用于从客户端接收第一数据报文,所述第一数据报文包括服务的标识;
处理单元,用于根据所述服务的标识获取所述服务的流粘性属性信息,所述服务的流粘性属性信息包括所述服务的流粘性类型和所述服务的流粘性超时时间,所述流粘性类型用于标识所述第一数据报文中的一个或多个数据项作为键值来识别所述第一数据报文所属的数据流;
所述处理单元,还用于在所述第一数据报文为数据流的首个数据报文时,根据所述服务的流粘性属性信息建立流表项,所述流表项用于转发所述数据流的后续数据报文。
12.如权利要求11所述的装置,其特征在于,所述处理单元还用于:
根据所述服务的标识,确定所述第一数据报文路由的下一跳网络节点的信息;所述流表项中还包括所述下一跳网络节点的信息。
13.如权利要求11或12所述的装置,其特征在于,所述接收单元还用于:从所述客户端接收第二数据报文,所述第二数据报文包括所述服务的标识;
所述处理单元还用于:根据所述服务的标识获取所述服务的流粘性属性信息;以及确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;以及确定所述一个或多个流表中包含所述数据流对应的所述流表项,则根据所述流表项转发所述第二数据报文。
14.如权利要求11或12所述的装置,其特征在于,所述处理单元还用于:
确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;以及
确定所述一个或多个流表中不包含所述数据流对应的流表项,则确定所述第一数据报文为所述数据流的首个数据报文。
15.如权利要求11~14任一项所述的装置,其特征在于,所述装置还包括发送单元;
所述发送单元,用于向管理节点发送查询消息,所述查询消息用于查询所述服务的流粘性属性信息;
所述接收单元,还用于从所述管理节点接收所述查询消息的应答消息,所述应答消息中携带所述服务的流粘性属性信息。
16.如权利要求11~15任一项所述的装置,其特征在于,所述处理单元还用于:
确定所述流表项中定时时间超过所述流粘性超时时间,删除所述流表项。
17.如权利要求11~16任一项所述的装置,其特征在于,所述处理单元还用于:
确定所述数据流的路由已经失效,则删除所述流表项。
18.如权利要求11~17任一项所述的装置,其特征在于,所述流表项中还包括以下一种或多种信息:所述服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
19.如权利要求11~18任一项所述的装置,其特征在于,所述流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
20.如权利要求11~19任一项所述的装置,其特征在于,所述服务的所述流粘性属性信息还包括以下一种或多种:所述数据流的上下行传输路径是否要求一致的指示信息;所述数据流的热切换功能指示信息,所述数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;所述数据流的重置指示信息,所述重置指示信息用于指示所述网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收所述数据流的服务节点以及进行所述流表项的更新;所述数据流的删除指示信息,所述删除指示信息用于指示所述网络节点是否监测数据报文的第二标志位,并通过监测结果删除所述数据流的流表项。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910518094.4A CN112087390B (zh) | 2019-06-14 | 2019-06-14 | 一种网络路由方法及装置 |
PCT/CN2020/096175 WO2020249129A1 (zh) | 2019-06-14 | 2020-06-15 | 一种网络路由方法及装置 |
EP20822347.9A EP3972208A4 (en) | 2019-06-14 | 2020-06-15 | METHOD AND APPARATUS FOR NETWORK ROUTING |
US17/549,183 US20220103476A1 (en) | 2019-06-14 | 2021-12-13 | Network routing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910518094.4A CN112087390B (zh) | 2019-06-14 | 2019-06-14 | 一种网络路由方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112087390A true CN112087390A (zh) | 2020-12-15 |
CN112087390B CN112087390B (zh) | 2022-05-31 |
Family
ID=73734404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910518094.4A Active CN112087390B (zh) | 2019-06-14 | 2019-06-14 | 一种网络路由方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220103476A1 (zh) |
EP (1) | EP3972208A4 (zh) |
CN (1) | CN112087390B (zh) |
WO (1) | WO2020249129A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966938A (zh) * | 2021-03-08 | 2021-06-15 | 中国联合网络通信集团有限公司 | 评估边缘计算能力的方法和装置 |
CN114629842A (zh) * | 2022-03-30 | 2022-06-14 | 阿里巴巴(中国)有限公司 | 流表处理方法、电子设备、可读存储介质及产品 |
WO2023035836A1 (zh) * | 2021-09-09 | 2023-03-16 | 华为技术有限公司 | 一种报文处理方法及相关装置 |
WO2024001566A1 (zh) * | 2022-06-29 | 2024-01-04 | 中兴通讯股份有限公司 | 网元访问方法、装置、网元及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11799761B2 (en) | 2022-01-07 | 2023-10-24 | Vmware, Inc. | Scaling edge services with minimal disruption |
US11962564B2 (en) * | 2022-02-15 | 2024-04-16 | VMware LLC | Anycast address for network address translation at edge |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060130064A1 (en) * | 2002-03-19 | 2006-06-15 | Srivastava Sunil K | Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states |
US7784055B2 (en) * | 2002-03-19 | 2010-08-24 | Cisco Technology, Inc. | Method and apparatus for routing data to a load balanced server using MPLS packet labels |
CN108134828A (zh) * | 2017-12-20 | 2018-06-08 | 金蝶软件(中国)有限公司 | 服务请求的路由方法、装置、计算机设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549516B1 (en) * | 1999-07-02 | 2003-04-15 | Cisco Technology, Inc. | Sending instructions from a service manager to forwarding agents on a need to know basis |
US20020143965A1 (en) * | 2001-04-03 | 2002-10-03 | International Business Machines Corporation | Server application initiated affinity within networks performing workload balancing |
US9363180B2 (en) * | 2013-11-04 | 2016-06-07 | Telefonkatiebolaget L M Ericsson (Publ) | Service chaining in a cloud environment using Software Defined Networking |
US9363183B2 (en) * | 2014-04-10 | 2016-06-07 | Cisco Technology, Inc. | Network address translation offload to network infrastructure for service chains in a network environment |
US9455908B2 (en) * | 2014-07-07 | 2016-09-27 | Cisco Technology, Inc. | Bi-directional flow stickiness in a network environment |
-
2019
- 2019-06-14 CN CN201910518094.4A patent/CN112087390B/zh active Active
-
2020
- 2020-06-15 EP EP20822347.9A patent/EP3972208A4/en active Pending
- 2020-06-15 WO PCT/CN2020/096175 patent/WO2020249129A1/zh unknown
-
2021
- 2021-12-13 US US17/549,183 patent/US20220103476A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060130064A1 (en) * | 2002-03-19 | 2006-06-15 | Srivastava Sunil K | Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states |
US7784055B2 (en) * | 2002-03-19 | 2010-08-24 | Cisco Technology, Inc. | Method and apparatus for routing data to a load balanced server using MPLS packet labels |
CN108134828A (zh) * | 2017-12-20 | 2018-06-08 | 金蝶软件(中国)有限公司 | 服务请求的路由方法、装置、计算机设备和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966938A (zh) * | 2021-03-08 | 2021-06-15 | 中国联合网络通信集团有限公司 | 评估边缘计算能力的方法和装置 |
WO2023035836A1 (zh) * | 2021-09-09 | 2023-03-16 | 华为技术有限公司 | 一种报文处理方法及相关装置 |
CN114629842A (zh) * | 2022-03-30 | 2022-06-14 | 阿里巴巴(中国)有限公司 | 流表处理方法、电子设备、可读存储介质及产品 |
WO2024001566A1 (zh) * | 2022-06-29 | 2024-01-04 | 中兴通讯股份有限公司 | 网元访问方法、装置、网元及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020249129A1 (zh) | 2020-12-17 |
EP3972208A4 (en) | 2022-07-20 |
EP3972208A1 (en) | 2022-03-23 |
CN112087390B (zh) | 2022-05-31 |
US20220103476A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112087390B (zh) | 一种网络路由方法及装置 | |
US11868824B2 (en) | Single node and multiple node datastore architecture in a network routing environment | |
US9838333B2 (en) | Software-defined information centric network (ICN) | |
US20130041982A1 (en) | Method and node for acquiring content and content network | |
CN105340244A (zh) | 基于来自暂态准则的上下文的动态内容分发网络选择 | |
CN102238226A (zh) | 在以内容为中心的网络上的会话迁移 | |
US9521071B2 (en) | Federation of controllers management using packet context | |
US9407687B2 (en) | Method, apparatus, and network system for acquiring content | |
JP2023523473A (ja) | ユーザプレーン機能の決定方法、情報提供方法、機器及び媒体 | |
US11212329B2 (en) | Method, apparatus, device and storage medium for pushing video stream | |
WO2018068588A1 (zh) | 提供组播业务的方法和软件定义网络控制器 | |
CN112491717A (zh) | 一种服务路由方法及装置 | |
CN113630428B (zh) | 用于服务数据的获取方法和获取系统 | |
US20140317271A1 (en) | Method and node apparatus for collecting information in content network based on information-centric networking | |
US8605629B1 (en) | Lawful interception of subscriber received multicast traffic | |
US9356861B2 (en) | Secondary lookup for scaling datapath architecture beyond integrated hardware capacity | |
CN107483628B (zh) | 基于dpdk的单向代理方法及系统 | |
US11265790B2 (en) | Methods and network entities for handover | |
US20140317272A1 (en) | Method of collecting information, content network management system, and node apparatus using management interface in content network based on information-centric networking | |
CN112087382B (zh) | 一种服务路由方法及装置 | |
US9338230B2 (en) | Method, network entity and network system for forwarding resources | |
US20150098468A1 (en) | Method of controlling routing of identifier/locator mapping service | |
CN116094923A (zh) | 云实例迁移后的网关更新方法及装置和电子设备 | |
WO2022068484A1 (zh) | 一种业务链地址池切片处理方法、装置及系统 | |
CN108713336B (zh) | 用户设备标识与信息中心联网请求的相关性 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |