CN116647501A - 计算系统、服务链处理方法以及存储介质 - Google Patents
计算系统、服务链处理方法以及存储介质 Download PDFInfo
- Publication number
- CN116647501A CN116647501A CN202310648663.3A CN202310648663A CN116647501A CN 116647501 A CN116647501 A CN 116647501A CN 202310648663 A CN202310648663 A CN 202310648663A CN 116647501 A CN116647501 A CN 116647501A
- Authority
- CN
- China
- Prior art keywords
- service
- packet
- node
- function
- service function
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 4
- 230000006870 function Effects 0.000 claims abstract description 177
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 28
- 238000004891 communication Methods 0.000 description 12
- 239000002609 medium Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 235000008694 Humulus lupulus Nutrition 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000010420 art technique Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000006163 transport media Substances 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
- H04L41/5025—Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5009—Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5045—Making service definitions prior to deployment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/091—Measuring contribution of individual network components to actual service level
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- 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/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及计算系统、服务链处理方法以及存储介质。本公开描述了包括将信息添加至由服务链中的一组计算节点处理的分组中的网络服务报头的技术。其中包括:接收分组;标识与服务链相关联的性能约束,所述服务链表示将由所述服务节点中的一个或多个服务节点对所述分组执行的一系列服务功能;确定服务功能的执行将对满足所述性能约束产生的预期影响,其中所述服务功能是将对所述分组执行的所述一系列服务功能中的一个服务功能;以及修改所述分组以反映所述服务功能的执行将对满足所述性能约束产生的所述预期影响。
Description
本申请是申请日为2020年6月3日、申请号为202010495576.5、发明名称为“网络服务功能链中的SLA分组操纵”的发明专利申请的分案申请。
技术领域
本公开涉及计算机网络,并且更具体地涉及将网络服务应用于遍历计算机网络的数据业务。
背景技术
计算机网络是可以交换数据和共享资源的互连计算设备的集合。在基于分组的网络中,计算设备通过将数据划分为被称为分组的小块来传送数据,这些小区块被单独跨网络从源设备路由到目的地设备。目的地设备从分组中提取数据,并且将数据汇编成其原始形式。将数据划分成分组使得源设备能够仅重新发送在传输期间可能会丢失的那些单独分组。
网络服务提供方向传入分组提供服务,诸如安全性、隧道化、虚拟专用网络、过滤、负载平衡、VoIP/多媒体处理、代理以及其他类型的服务。服务提供方还提供旨在提高用户体验的质量的内容特定的服务,例如视频串流和高速缓存。为了提供这些新服务,网络服务提供方可以沿着“服务链”引导分组,其中服务链表示被应用于分组虚拟计算节点或物理计算节点的一组功能。
发明内容
本公开描述了包括将信息添加至由网络服务链中的一组计算节点处理的分组的网络服务报头的技术。被添加至网络服务报头的信息可以在对服务链中的下一跳的选择期间被使用,并且可以用于帮助确保相对于一个或多个度量符合服务水平协议(SLA)或其他约束。在一些示例中,本文中所描述的技术可以涉及:将SLA信息包括在网络服务报头中;并且当在服务链中处理分组时使得服务链中的节点中的每个节点都能够动态地更新信息。例如,在一些示例中,服务节点各自维护关于服务链中的相邻节点之间的往返时间(RTT)的信息表。在每个节点在服务链中处理分组时,每个节点在网络服务报头内包括关于与SLA要求相关的当前度量的信息。例如,在服务链中的每个节点处理网络分组时,每个节点可以更新网络分组,以包括关于相对于针对将由服务链消耗的总RTT的SLA要求剩余了多少RTT的信息。因此,在该分组在服务链中进行处理时,存储在分组的网络服务报头内的信息可以动态地改变。可以在网络服务报头中被反映的这些度量可以包括RTT以及其他度量,包括抖动和分组丢失容限。因此,本公开描述了包括在网络分组内嵌入关于一个或多个度量(例如受到SLA要求限制的那些度量)的信息并且在该分组在服务链中被处理时更新这种信息的技术。本文中所描述的技术可以被实现为RFC 8300中所描述的网络服务报头元数据的扩展。
本文中所描述的技术可以提供一个或多个技术优点。例如,通过将关于SLA要求的信息包括在网络分组内,可以鉴于SLA要求更有效地对网络服务功能路由或路径进行适合的选择。包括关于SLA要求的信息并且通过服务链动态地更新这种信息是一种用来帮助确保网络服务功能节点被正确地选择来满足SLA要求的更简单、更高效且更准确的方式。与用于帮助确保遵从SLA的现有技术相比,在网络服务报头内维护这种信息是更简单、更高效且更准确的。另外,将动态更新的SLA信息包括在每个分组内还帮助确保关于满足针对给定分组的SLA要求的进展的最新信息是可获得的。
在一些示例中,本公开描述了由根据本公开的一个或多个方面的网络服务复合体(complex)、计算节点或其他系统执行的操作。在一个特定示例中,本公开描述了一种包括以下步骤的方法:由具有多个服务节点的服务复合体接收与服务链相关联的分组,该服务链表示将由多个服务节点中的一个或多个服务节点对分组执行的一系列服务;由服务复合体标识与服务链相关联的一个或多个服务链约束;以及由服务复合体修改分组以包括关于服务链约束的信息。
在另一示例中,本公开描述了一种包括多个服务节点的服务复合体,其中服务复合体被配置为执行包括以下步骤的操作:接收与服务链相关联的分组,该服务链表示将由多个服务节点中的一个或多个服务节点对分组执行的一系列服务;标识与服务链相关联的一个或多个服务链约束;基于一个或多个服务链约束来标识服务节点,以对分组执行服务功能;确定由服务节点对服务功能的执行将对服务链约束产生的预期影响;将信息包括在分组中以反映服务功能的执行将对服务链约束产生的预期影响;以及启用由服务节点对服务功能的执行。
在另一示例中,本公开描述了一种包括指令的计算机可读存储介质,该指令在被执行时将计算系统的处理电路装置配置为:接收与服务链相关联的分组,该服务链表示将由多个服务节点中的一个或多个服务节点对分组执行的一系列服务;标识与服务链相关联的一个或多个服务链约束;基于一个或多个服务链约束来标识服务节点,以对分组执行服务功能;确定由服务节点对服务功能的执行将对服务链约束产生的预期影响;将信息包括在分组中以反映服务功能的执行将对服务链约束产生的预期影响;以及启用由服务节点对服务功能的执行。
附图说明
图1图示了根据本公开的一个或多个方面的用于在服务链中处理分组的示例网络系统。
图2是图示了根据本公开的一个或多个方面的示例接入网络与示例公共网络之间的服务链中的示例网络分组的处理的概念图。
图3A和图3B是图示了根据本公开的一个或多个方面的可以用于实现服务功能链的示例网络服务报头的概念图。
图4是图示了根据本公开的一个或多个方面的可以为一个或多个服务节点提供操作环境的示例主机设备的框图。
图5是图示了根据本公开的一个或多个方面的由示例服务节点执行的操作的流程图。
具体实施方式
图1图示了根据本公开的一个或多个方面的用于在服务链中处理分组的示例网络系统。图1的示例网络系统包括服务提供方网络102,该服务提供方网络102作为专用网络而操作以向计算设备116A至116N(统称为“计算设备116”,并且表示任何数量的计算设备)提供基于分组的网络服务。即,服务提供方网络102可以为计算设备116提供网络接入的认证和建立,使得计算设备116中的每个计算设备都可以开始与公共网络112交换数据分组,该公共网络可以是基于内部或外部分组的网络,诸如互联网。
在图1的示例中,服务提供方网络102包括接入网络106,该接入网络经由服务提供方核心网络107和网关108提供与公共网络112的连接性。网关108可以通过服务复合体109来应用各种网络服务功能,该服务复合体根据一个或多个服务链128来应用功能。服务提供方核心网络107(在下文中为“核心网络107”)、网关108、服务复合体109和/或公共网络112可以提供可用于由计算设备116请求和使用的基于分组的服务。作为示例,核心网络107、网关108、服务复合体109和/或公共网络112可以提供例如批量数据传递、互联网协议语音(VoIP)、短消息传送服务(SMS)、无线应用协议(WAP)服务或客户特定的应用服务。
公共网络112可以包括例如局域网(LAN)、广域网(WAN)、互联网、虚拟LAN(VLAN)、企业LAN、层3虚拟专用网络(VPN)、由操作接入网络106的服务提供方操作的互联网协议(IP)内联网、企业IP网络或他们的某一组合。在各种示例中,公共网络112连接至公共WAN、互联网或连接到其他网络。公共网络112执行用以实现基于分组的公共网络112服务的运输的一个或多个分组数据协议(PDP),诸如IP(IPv4和/或IPv6)、X.25或点对点协议(PPP)。
计算设备116经由接入网络106连接至网关108,以接收与在计算设备116上执行或由计算设备116托管的应用的服务的连接性。计算设备116中的每个计算设备都可以是例如通常由用户操作的任何适合的移动或非移动计算设备。计算设备116中的每个计算设备都可以运行各种软件应用,诸如生产率或办公支持软件、web浏览软件、用以支持语音呼叫、视频游戏、视频会议以及电子邮件的软件等。计算设备116经由包括有线和/或无线通信链路的接入链路105连接至接入网络106。如本文中所使用的术语“通信链路”可以包括呈有线或无线的任何形式的运输介质,并且可以包括中间节点,诸如网络设备。
网络服务提供方可以操作或在一些情况下租用接入网络106的元件,以提供计算设备116与网关108之间的分组运输。接入网络106表示聚合来自一个或多个用户设备(例如计算设备116)的数据业务以用于向/从服务提供方的核心网络107运输的网络。接入网络106包括网络节点,该网络节点执行通信协议以运输控制和用户数据,从而促进计算设备116与网关108之间的通信。接入网络106可以包括宽带接入网络、网络、无线LAN、公共交换电话网络(PSTN)或其他类型的接入网络,并且可以包括或以其他方式提供针对蜂窝或移动接入网络的连接性。
核心网络107向附接到接入网络106的计算设备116提供基于分组的连接性,以用于接入公共网络112。核心网络107可以表示由服务提供方拥有和操作的公共网络,以将多个网络互连,该网络可以包括接入网络106。核心网络107可以实现多协议标签交换(MPLS)转发,并且在这种实例中,可以被称为MPLS网络或MPLS骨干网络。在一些实例中,核心网络107表示供应来自一个或多个服务提供方的服务的多个互连的自主系统,诸如互联网。公共网络112可以表示例如通过客户边缘设备(诸如客户边缘交换机或路由器)被耦合到核心网络107的边缘网络。公共网络112可以包括数据中心。
管理服务提供方网络102的至少部分的网络服务提供方通常向计算设备116供应服务,诸如例如传统互联网接入、互联网协议语音(VoIP)、视频和多媒体服务以及安全性服务。如上文相对于接入网络106所描述,核心网络107可以支持多种类型的接入网络基础设施,该接入网络基础设施连接到服务提供方网络接入网关以提供对所供应的服务的接入。在一些实例中,网络系统可以包括附接到具有不同架构的多个不同的接入网络106的计算设备116。
一般而言,计算设备116中的任何一者或多者可以通过向网关108发送会话请求来请求授权和数据服务。继而,网关108通常对这些计算设备116进行认证。一旦被认证,每个这种计算设备116就可以向核心网络107发送订户数据业务,以便接入和接收由公共网络112提供的服务,并且这些分组作为至少一个分组流的一部分遍历网关108。图1中所图示的流程126表示来自任何一个或多个计算设备116并且被引导到公共网络112的一个或多个上游分组流。术语“分组流”、“业务流”或简称为“流”是指源自特定源设备并且被发送到特定目的地设备的分组集合。
如本文中所描述,服务提供方网络包括服务复合体109,该服务复合体具有为网络服务提供执行环境的服务节点110A至110N(“服务节点110”,并且表示任何数量的服务节点)的集群。即,服务节点110中的每个服务节点应用一个或多个服务。作为示例,服务节点110可以应用防火墙和安全性服务、电信级(carrier grade)网络地址转换(CG-NAT)、媒体优化(语音/视频)、IPSec/VPN服务、深度分组检测(DPI)、HTTP过滤、分组流的计数、计费、收费以及负载平衡或应用于网络业务的其他类型的服务。服务节点110中的每个服务节点以这种方式表示服务实例。
尽管服务节点110被图示为服务复合体109的可以表示数据中心的一部分,但服务节点110可以例如由核心网络107的一个或多个交换机或虚拟交换机耦合。在一个示例中,服务节点110中的每个服务节点都可以在虚拟计算环境中作为虚拟机而运行。而且,计算环境可以包括通用计算设备或服务器的可扩展集群。作为另一示例,服务节点110包括通用计算设备与专用设备的组合。随着虚拟化,由服务节点110提供的单独网络服务可以如同在现代数据中心中一样通过虚拟化存储器的分配、处理器利用率、存储和网络策略以及横向地通过添加附加的负载平衡虚拟机来按比例调整。尽管被描述和图示为暗示服务复合体109可以容置于单个数据中心中,但服务复合体109可以跨越多个数据中心和/或地理位置。
如图1中所示,网关108通过服务节点110所提供的定义的服务集合来操纵单独分组流126。即,每个订户分组流可以通过服务节点110所提供的服务的特定有序组合来转发,每个有序集合在本文中被称为“服务链”。在图1的示例中,一个或多个流126沿着第一服务链128A被引导,且因此,以该顺序接收由服务节点110A、110B以及110N应用的服务。类似地,一个或多个流126沿着第二服务链128B被引导,且因此接收由服务节点110C、110B以及110N应用的服务。
以这种方式,当分组根据由服务提供方配置的服务链在接入网络106与公共网络112之间流动时,订户流26可以由服务节点110处理。在所图示的示例中,服务链128A根据所列排序来标识服务节点110A、110B以及110N的有序集合。服务链128B标识服务节点110C、110B以及110N的有序集合。因此,根据服务链128A处理的分组流126遵循遍历服务节点110A、110B,且最后遍历作为服务链128A的终端节点的节点110N的服务路径。特定服务节点110可以支持多个服务链。在该示例中,服务节点110B支持服务链128A、128B。
一旦在服务链的终端节点(即,最终服务节点110)处进行处理以将服务应用于沿着特定服务路径流动的分组,终端节点就可以将业务引导回网关108以便进一步处理和/或转发到公共网络112。例如,业务工程服务路径可以从网关108开始和终止。
在图1中,软件定义的联网控制器119(“SDN控制器119”)提供用于配置和管理服务提供方网络102(例如网关108、核心网络107以及服务节点110)的路由和交换基础设施的高级控制器。在一些实例中,SDN控制器119管理在服务复合体109的操作环境内的虚拟机的部署。例如,SDN控制器119可以与网关108交互以指定服务链128A、128B信息。例如,由SDN控制器119提供的服务链信息可以指定以下各项的任何组合和排序:由服务节点110提供的增值服务、用于沿着服务路径隧道化或以其他方式运输(例如MPLS或IP隧道)分组流的业务工程信息(例如标签或下一跳)、速率限制、服务类型(TOS)标记或分组分类器(这些分组分类器指定了用于使分组流与特定服务链128A、128B相匹配的标准)。
根据本公开的一个或多个方面,SDN控制器119可以配置接入网络106、核心网络107和/或网关108中的一个或多个,以针对服务提供方网络102内的分组实现一种或多种策略。例如,参照图1,策略控制服务器114接收来自管理员的输入,该输入描述了将在分组和/或与在计算设备116上执行的各种应用相关联的分组上被实施的策略。这些策略可以描述或用于得出将对遍历服务提供方网络102的某些分组执行的服务链操作。策略控制服务器114配置或使SDN控制器119配置接入网络106、核心网络107、网关108和/或服务复合体109以实现与管理员输入一致的策略。
服务提供方网络102可以接收将在受到约束或服务链性能约束(诸如定时或由需要在某个时间框架内进行服务链处理的服务水平协议规定的其他要求)限制的服务链中被处理的分组。例如,在可以参照图1描述的示例中,接入网络106从设备(诸如计算设备116A)接收分组101。接入网络106将分组101传送到核心网络107,并且核心网络107将分组101传送到网关108。网关108基于由策略控制服务器114和/或SDN控制器119建立的配置和/或策略来确定分组101与需要对分组101执行服务链的特定功能的应用相关联。网关108确定分组101的服务链需要三个服务功能的执行,并且进一步确定三个服务功能的执行受到服务链性能约束或服务水平协议(SLA)的限制,这需要服务链在100毫秒的总往返时间(RTT)内完成。
服务提供方网络102可以选择适合的服务节点110来执行服务链中的第一功能。例如,仍然参考参照图1描述的示例,网关108确定哪些服务节点110应该对分组101执行服务链中的第一功能。为了进行确定,网关108考虑哪些服务节点110能够执行所需服务功能。网关108进一步考虑哪些服务节点110能够在100毫秒的所需往返时间内执行所需服务功能。为了确定哪些服务节点110能够在所需时间内执行所需服务功能,网关108咨询关于与服务节点110中的每个服务节点相关联的预期往返时间的可用信息。在所描述的示例中,网关108确定服务节点110A能够执行服务链中的第一功能,并且确定预期服务节点110A在执行功能时所消耗的往返时间为20毫秒。在一些示例中,执行服务功能所需的预期时间可以被指定为往返时间或其他度量,该其他度量指定与执行所需服务功能的服务节点110A相关联的时延。
服务提供方网络102包括关于分组101内的定时要求的信息,并使服务节点110A执行第一网络服务功能。例如,在参照图1描述的示例中,网关108更新分组101的网络服务报头中的信息,以反映与分组101的服务链处理相关联的定时和/或性能约束(例如SLA)要求。在一些示例中,网关108将指示在服务节点110A执行第一网络功能之后,RTT SLA上将剩余80毫秒的信息(即,80毫秒是通过从原始的100毫秒SLA要求中减去预期将被服务节点110A消耗的20毫秒而计算得出的)包括在分组101内。另外,在一些示例中,网关108可以将关于RTT SLA的备选或附加信息(诸如原始RTT SLA要求(即,100毫秒)或关于由策略或SLA要求指定的其他度量的信息)存储在分组101的网络服务报头中。网关108将分组101输出到服务节点110A。服务节点110A对分组101执行网络服务功能。
服务节点110A选择适合的服务节点110以执行服务链中的第二功能。例如,再次参考参照图1描述的示例,服务节点110A确定适合的服务节点110以执行服务链中的下一个(即,第二)服务功能。为了进行确定,服务节点110A考虑了哪些服务节点110能够执行第二服务功能,并且还考虑了哪些服务节点110能够在所需往返时间SLA中剩余的时间量内执行所需服务功能。如上文所描述,为了确定在往返时间SLA中剩余了多少时间,服务节点110A咨询网关108先前存储在分组101的网络服务报头中的信息。服务节点110A基于存储在分组101的网络服务报头内的信息来确定在RTT SLA中剩余了80毫秒。为了确定哪些服务节点110能够在剩余时间内执行所需服务功能,服务节点110A咨询关于与服务节点110中的每个服务节点相关联的预期往返时间的信息。在一些示例中,服务节点110A维护信息表,该信息表针对各种网络功能指示服务节点110中的每个服务节点的预期往返时间。服务节点110A可以使用基于历史或观察到的时延(例如往返时间)或基于用于确定两个节点之间的时延的探测过程的信息来维护这种表。在所描述的示例中,服务节点110A选择服务节点110B,以执行服务链中的下一个网络功能。服务节点110A进一步确定在执行下一个网络功能时,服务节点110B预期要消耗30毫秒。
服务节点110A在分组101内包括关于RTT SLA中剩余的时间量的信息,并使服务节点110B执行第二服务功能。例如,仍然参考图1,服务节点110A确定在服务节点110B执行第二网络功能之后,预期从100毫秒的原始SLA要求中剩余50毫秒(在从服务节点110A执行第一网络功能之后剩余的80毫秒中减去预期将被服务节点110B消耗的30毫秒之后)。服务节点110A将分组101转发到服务节点110B。服务节点110B对分组101执行网络服务功能,从而完成服务链中三个功能中的第二个功能。
服务节点110B选择适合的服务节点110以执行服务链中的第三服务功能和最终服务功能。例如,再次参照结合图1描述的示例,服务节点110B确定哪个服务节点110将对分组101执行第三服务功能。服务节点110B基于将被执行的服务功能、与服务节点110中的每个服务节点相关联的预期RTT值以及由分组101的网络服务报头指定的50毫秒的剩余SLA RTT时间来做出该确定。在所描述的示例中,服务节点110B通过咨询与服务节点110中的每个服务节点相关联的RTT时间表来确定服务节点110C预期要消耗40毫秒的RTT(由链路时延和服务时延两者组成)。服务节点110B进一步确定服务节点110B满足用于选择用于执行第三网络功能的服务节点的其他要求(例如本地策略)。因此,在所描述的示例中,服务节点110B选择服务节点110C以执行第三网络服务功能。
服务节点110B更新分组101的网络服务报头,以指示在由服务节点110C进行处理之后,在100毫秒的原始RTT SLA要求中预期将剩余10毫秒。服务节点110B将分组101(其中更新后的RTT SLA信息被包括在网络服务报头内)转发到服务节点110C。服务节点110C执行第三网络功能。服务节点110C确定服务节点110C是终端节点,并且确定服务链已完成。服务节点110C将分组101转发回网关108。网关108将分组101转发到公共网络112。
本文中所描述的技术可以提供一个或多个技术优点。例如,将关于SLA要求的信息包括在网络分组内帮助确保了可以鉴于SLA要求更有效地对网络服务功能路由或路径进行适合的选择。包括关于SLA要求的信息并且通过服务链动态地更新这种信息是一种用来帮助确保正确地选择网络服务功能节点来满足SLA要求的更简单、更高效且更准确的方式。与用于帮助确保遵从SLA的现有技术相比,在网络服务报头内维护这种信息是更简单、更高效且更准确的。另外,将动态更新的SLA信息包括在每个分组内还帮助确保关于满足针对给定分组的SLA要求的进展的最新信息是可获得的。
图2是图示了根据本公开的一个或多个方面的示例接入网络与示例公共网络之间的服务链中的示例网络分组的处理的概念图。图2的示例图示了分组101,该分组起源于接入网络106(或来自被连接到接入网络106的设备),并且在被输出到公共网络112之前被服务复合体109处理。分组101是根据由服务复合体109实现的服务链来处理的。如图2中所图示,服务复合体109包括服务节点210A至210F(“服务节点210”),这些服务节点中的每个服务节点都能够执行服务链内的一个或多个服务功能。表202图示了示例RTT值,针对如本文中所描述的服务链中的各个跳,示例RTT值可以被包括在与分组101相关联的网络服务报头内。
一般而言,本文中的图中所图示的系统、设备、分组或数据项和/或组件(例如图2中的分组101、接入网络106、公共网络112)可以对应于相同编号的系统、设备、分组或数据项和/或本文中的其他位置所图示的组件(例如图1中的分组101、接入网络106、公共网络112)。可以按与结合这些其他图示提供的描述一致的方式描述这些相同编号的系统、设备、分组或数据项和/或组件。然而,在一些示例中,这些系统、设备、分组或数据项和/或组件可以涉及在不同图中具有更多、更少和/或不同能力的备选实现。另外,即使这些系统、设备、分组或数据项和/或组件不具有相同的附图标记,一个或多个系统、设备、分组或数据项和/或组件也可以表示和/或被描述为另一图中所图示的系统、设备、分组或数据项和/或组件的示例或备选实现。例如,图2中的服务节点210中的一个或多个服务节点可以对应于图1的服务节点110中的一个或多个服务节点,并且服务节点210中的每个服务节点可以表示和/或被描述为图1或其他位置中的服务节点110中的一个或多个中服务节点的一者的示例或备选实现。
在图2中,图示了各种服务节点210以及各种服务节点210与关联于这些连接的IP地址之间的连接。另外,在图2中示出了与服务节点210之间的连接中的每个连接相关联的往返时间(RTT)值。例如,服务节点210A与服务节点210B之间的RTT的值是10毫秒,其可以是预期往返时间(观察到的往返时间)或可以是基于探测机制或过程被确定的或以另一方式被确定的值。类似地,服务节点210B与服务节点210E之间的RTT值为40毫秒,其又可以是预期往返时间或可以是基于探测过程或基于其他信息被确定的值。在使用探测过程的情况下,可以收集和分析足以定期地或不定期地更新节点之间的RTT值的信息。
在图2的示例中,服务节点210中的每个服务节点都可以维护其自身的关于与其相邻节点相关联的RTT值的信息集。服务节点210中的每个服务节点可以使用这种信息来选择服务链中的下一跳。通过使用关于相邻节点的RTT值的信息,服务节点210中的每个服务节点都可以帮助确保符合或满足服务链性能约束,诸如与给定分组相关联的RTT SLA。因此,由于服务节点210中的每个服务节点可以选择服务节点210之一来执行任何后续服务功能,因此特定分组的服务路径可以被视为是动态的,并且在完成服务链之前可能是未知的。
根据本公开的一个或多个方面,服务节点210A可以确定应用于分组101的往返时间服务链性能约束或SLA。例如,在图2中,接入网络106接收分组101,并且将分组101输出到服务节点210A。服务节点210A评估分组101并标识与分组101相关联的应用。服务节点210A进一步标识将针对所标识的应用而被应用于分组的一个或多个策略、和/或可以按其他方式应用于分组101的一个或多个策略。基于该策略信息或基于其他信息,服务节点210A确定与应用于分组101的SLA相关联的总往返时间的最大持续时间。在一个示例中,服务节点210A确定SLA指示服务链所消耗的时间应不超过50毫秒(参见表202)。
服务节点210A可以标识能够执行服务功能同时符合服务链性能约束(即,RTTSLA)的一个或多个节点。例如,在可以参照图2描述的示例中,标识应该对分组101执行的服务功能。服务节点210A标识能够执行所需功能的服务节点210。服务节点210A还评估关于与应用于分组101的SLA相关联的总往返时间的最大持续时间的信息,并标识能够在RTT SLA(即,50毫秒)内执行所需功能的服务节点210。在一些示例中,多个相邻服务节点210可能能够在所需RTT内执行相关服务功能(例如在图2中,服务节点210B、服务节点210C、服务节点210F可以各自能够在50毫秒内执行所需功能)。
服务节点210A可以选择节点来执行所需服务功能。例如,在参照图2描述的示例中,服务节点210A可以基于一个或多个标准从若干合格节点中进行选择。在一个示例中,服务节点210A选择具有最小RTT值的节点。然而,在其他示例中,服务节点210A可以基于其他考虑和/或本地策略在多个合格服务节点210中进行选择。因此,服务节点210A可能未必会选择具有最小RTT值的节点,而是可以使用相邻节点的RTT值来标识要视为下一跳的一组节点。从要考虑的该组节点中,可以应用本地策略或其他考虑来从这组节点中选择一个节点。在所描述的示例中,服务节点210A选择服务节点210B,该服务节点预期要消耗10毫秒的往返时间。
服务节点210A可以更新分组101以包括RTT SLA信息。例如,在参照图2描述的示例中,一旦服务节点210A选择了服务节点210B,服务节点210A就将关于服务链的总往返时间的SLA要求的信息添加到分组101。在一些示例中,服务节点210A将信息添加到分组101的网络服务报头,并且这种信息可以反映在服务节点210B进行处理之后预期要在RTT SLA上剩余的时间量。在这种示例中,服务节点210A包括指示在执行适合的服务功能时在考虑到预期将被服务节点210B消耗的RTT之后预期从原始RTT SLA要求剩余40毫秒的信息。服务节点210A通过路径201A将分组101输出到服务节点210B。分组101在通过路径201A行进时包括指示在SLA中剩余40毫秒的信息(参见表202)。
服务节点210B在为服务链中的新服务功能选择节点时可以使用RTT信息。例如,在所描述的示例中,服务节点210B从服务节点210A接收分组101,并执行适合的服务功能。服务节点210B选择服务节点210中的一个来执行服务链中的下一服务功能。服务节点210B通过评估关于存储在分组101的网络服务报头中的剩余RTT SLA的信息来做出这种确定。服务节点210B将其对可用服务节点210的选择限制于能够在剩余的RTT SLA时间(40毫秒)内执行功能的那些服务节点210。如上文所描述,如果多于一个的服务节点210可以在所需时间内执行所需功能,那么服务节点210B基于其他考虑因素或本地策略来在合格的服务节点210中进行选择。在所描述的示例中,服务节点210B选择服务节点210D,该服务节点是能够在剩余RTT内执行服务链中的下一功能的服务节点210中的一个,如由存储在分组101的网络服务报头内的信息所指示。
服务节点210B可以更新分组101中的RTT SLA信息。例如,继续参考示例并且参照图2,服务节点210B确定服务节点210D预期要消耗5毫秒的剩余RTT SLA。服务节点210B因此更新分组101的网络服务报头以反映在RTT SLA中剩余35毫秒。服务节点210B将分组101输出到服务节点210D(路径210B)。因此,分组101在通过路径201B行进时包括指示在RTT SLA中剩余35毫秒的信息(参见表202)。
服务节点210D可以使用更新后的RTT信息来选择服务链中的下一个节点。例如,仍然继续参考参照图2描述的示例,服务节点210D从服务节点210B接收分组101,并且执行适合的服务功能。服务节点210D选择服务节点210中的一个来执行下一服务功能,并且关于较早服务节点210,服务节点210D通过将其选择限制于能够在剩余RTT SLA内执行适合的服务功能的那些服务节点210来进行选择。在所描述的示例中,服务节点210D选择服务节点210F,这预期要消耗30毫秒。服务节点210D更新分组101的网络服务报头以反映在服务节点210F执行服务功能时所消耗的预期时间之后在RTT SLA中剩余了5毫秒。因此,分组101在通过路径201C行进时包括指示在RTT SLA中剩余5毫秒的信息(参见表202)。服务节点210D将分组101输出到服务节点210F。
服务节点210F可以通过公共网络112输出分组101。例如,在图2的示例中,服务节点210F从服务节点210D接收分组101。服务节点210F执行适合的服务功能。服务节点210F确定其为终端节点。服务节点210F将分组101输出到公共网络112。
图3A和图3B是图示了根据本公开的一个或多个方面的可以用于实现服务功能链的示例网络服务报头(NSH)的概念图。图3A的报头301A和图3B的报头301B图示了与RFC8300一致和/或与RFC 8300的扩展一致的网络服务报头的字段。如图3A和图3B中所示,报头301A和报头301B二者的前64比特相同,并且如RFC 8300中所描述,包括关于如下内容的信息:NSH的版本(“Ver”)、OAM(“O”)比特、TTL字段(指示最大服务功能转发程序针对服务功能路径跳跃)、长度字段、MD类型字段以及下一协议字段。报头301A和报头301B还包括服务路径标识符(唯一地标识服务功能路径)和服务索引(提供服务功能路径内的位置)。
从前64比特之后开始,图3A的报头包括字段303A。字段303A包括可选的固定或可变长度上下文报头,同样在RFC 8300中被描述。
在一些示例中,图3B的字段303B(其可以跨越图3A的字段303A的对应部分中的一些或全部)可以用于存储下一跳SLA信息。具体地,字段303B可以用于与网络分组一起承载关于该分组的RTT SLA度量的信息。在一些示例中,字段303B可以包括关于与网络分组相关联的剩余RTT SLA的数据。当网络分组由服务链处理时,字段303B可以按本文中所描述的方式由一个或多个节点(例如服务节点210)更新。在其他示例中,存储在字段303B内的信息不仅可以包括关于往返时间的信息,而且还可以或备选地包括关于也可以受到SLA要求限制的其他度量的信息。这些度量可以包括抖动或关于可允许的分组损失的信息(例如基于指定分组丢失的最大百分比的SLA)。
图4是图示了根据本公开的一个或多个方面的可以为一个或多个服务节点提供操作环境的示例主机设备的框图。在图4的示例中,主机设备400包括底层物理计算硬件,其包括电源401、一个或多个处理器403以及一个或多个网络适配器405。网络适配器405可以接收在服务链(诸如本文中所描述的其他服务链中的任何服务链(例如图1的服务链128))中被处理的分组。主机设备400的设备、模块、存储区域或其他组件中的一个或多个可以被互连以实现组件间通信(物理上、通信上和/或可操作地)。在一些示例中,这种连接性可以通过通信信道(通信信道402)、系统总线、网络连接、过程间通信数据结构或用于传送数据的任何其他方法来提供。
管理程序409可以用作虚拟机监测器,该虚拟机监测器实例化、创建和/或执行底层主机硬件设备上的虚拟机411A至411N(“虚拟机411”,其表示任何数量的虚拟机)。在一些示例中,服务节点410A、410B至410N(“服务节点410”,并且表示任何数量的服务节点)中的每个服务节点都可以通过一个或多个虚拟机411来实现。在一些上下文中,管理程序409可以被称为虚拟机管理器(VMM)。管理程序409可以在由主机设备400内的存储设备和一个或多个处理器403提供的执行环境内或在操作系统内核(例如内核408)顶部执行。在一些示例中,管理程序409是在硬件平台(例如主机设备400)上执行的操作系统级组件,以便为虚拟机和/或其他类型的虚拟计算实例提供虚拟化操作环境和编排控制器。在其他示例中,管理程序409可以是软件和/或固件层,其提供轻量级内核并且操作以提供用于虚拟机的虚拟化操作环境和编排控制器和/或其他类型的虚拟计算实例。管理程序409可以包含内核408的功能性(例如作为“类型1管理程序”),或可以在内核上执行(例如作为“类型2管理程序”)。
在图4中所图示的示例中,服务节点410A包括虚拟机411A以及下一跳选择表413A、SLA模块414A和一个或多个服务功能模块415A。类似地,服务节点410B包括虚拟机411B、下一跳选择表413B、SLA模块414B以及一个或多个服务功能模块415B。并且一般而言,服务节点410N包括虚拟机411N、下一跳选择表413N、SLA模块414N以及一个或多个服务功能模块415N。
例如,下一跳选择表413A可以表示虚拟机411A用于选择下一跳或节点来执行服务链中的功能的信息表。下一跳选择表413A可以包括服务路径索引列451和服务索引列452,该服务路径索引列和服务索引列标识与各种服务路径相关联的服务路径索引和服务索引。给定服务路径索引的可能的下一跳可以各自被地址(下一跳地址列453)和度量信息标识,该度量信息能够实现用于从可能的下一跳中选择的本地或其他策略(度量列454)。
另外,针对每个相应服务节点410,下一跳选择表413可以包括指定可以用于帮助确保符合一个或多个SLA要求的附加度量信息的列。服务节点410A的下一跳选择表413A例如包括SLA度量列455,在图4中所示的示例中,其可以包含关于与给定服务链的每个可能的下一跳相关联的往返时间的信息。在其他示例中,SLA度量列455可以包括其他信息,诸如与属于抖动或分组损失的SLA相关的信息。虚拟机411中的每个虚拟机或服务节点410中的每个服务节点都可以维护包括其自己的下一跳选择表413,该下一跳选择表反映与关联于相应服务节点410的相邻节点中的每个相邻节点相关联的SLA信息(例如RTT信息)。下一跳选择表413可以由相应SLA模块414维护,可以被包括在相应虚拟机411内和/或存储在相应虚拟机411内,并且可以在RTT或其他信息改变时由虚拟机411或由SLA模块414动态地更新。这种信息可以随着例如网络上的负载的改变而改变。
SLA模块414中的每个SLA模块可以执行与选择服务节点来执行服务链中的功能相关的功能。例如,服务节点410A的SLA模块414A可以作为在虚拟机411A上执行的应用或服务而操作。SLA模块414A可以评估下一跳选择表413A中的信息,并且基于给定服务路径索引和SLA度量列455中与该服务路径索引相关联的信息来确定要选择哪些下一跳地址来执行服务链中的功能。在一些示例中,SLA模块414中的每个SLA模块可以将其对服务路径(即,下一跳)的选择限制于使得能够满足关于RTT时间(即,RTT SLA)的任何可应用的服务链性能约束的那些RTT值。如果多个下一跳可用于执行给定功能同时还满足可应用的RTT SLA,那么给定SLA模块414可以基于其他信息(诸如本地网络策略或适合的下一跳选择表413的度量列454中的信息)来选择下一跳。
服务节点410中的每个服务节点包括服务功能模块415中的一个或多个,其可以作为在相应虚拟机411上执行的应用或服务而操作,并且可以执行服务链内的服务中的每个服务。在一些示例中,服务功能模块415中的一个或多个可以应用于给定分组(例如分组101)或网络业务、防火墙和安全性服务、电信级网络地址转换(CG-NAT)、媒体优化(语音/视频)、IPSec/VPN服务、深度分组检测(DPI)、HTTP过滤、分组流的计数、计费、收费以及负载平衡和/或其他类型的服务。
尽管图4中所图示的服务节点410被示出为在单个主机设备400上执行,但在其他示例中,服务节点410中的一个或多个可以在分布在一个或多个数据中心中和/或分布在一个或多个地理区域中的多个主机设备上执行。另外,尽管服务节点410中的每个服务节点被图示为由单个虚拟机411实现,但在其他示例中,单个虚拟机411可以实现多个服务节点410,或单个服务节点410可以由多个虚拟机411实现。类似地,尽管服务节点410中的每个服务节点被图示为在虚拟机环境中实现,但服务节点410中的一个或多个可以根据其他虚拟化布置(例如通过容器化环境)或通过一个或多个裸金属服务器来实现。
根据本公开的一个或多个方面,主机设备400可以接收分组101以在服务链中进行处理。例如,在可以参照图4描述的示例中,网络适配器405检测输入并且将对输入的指示输出到管理程序409。管理程序409确定对应于根据服务链428接收到的分组101的输入。管理程序409进一步确定分组101以服务节点410A为目的地。管理程序409将分组101输出到与服务节点410A相关联的虚拟机411A。
服务节点410中的一个或多个可以执行服务链中的功能。例如,继续参考所描述的示例并且参照图4,管理程序409根据服务链428标识要对分组101执行的服务功能。服务节点410A的虚拟机411A使服务功能模块415A中的一个或多个执行所标识的服务功能。
服务节点410A可以选择服务节点来执行附加服务功能。例如,再次参考所描述的示例并且参照图4,虚拟机411A确定服务链428需要对分组101执行一个或多个附加服务。虚拟机411A将关于所需附加服务的信息输出到SLA模块414A。SLA模块414A确定服务链428与服务路径索引10和服务索引3(即,下一跳选择表413A的第一行)相关联。SLA模块414A评估关于可以被存储在分组101的网络服务报头中的SLA要求的信息,并且在一个示例中,确定在分组101的RTT SLA中仅剩余8毫秒。SLA模块414A将地址203.0.113.2标识为适合的下一跳,这是由于该地址处的服务节点预期要在5毫秒的RTT内完成服务功能(请参见下一跳选择表413A)。另一方面,与地址203.0113.1相关联的服务节点预期需要10毫秒的RTT,并且超出了分组101的RTT SLA,如分组101的网络服务报头所指示。因此,SLA模块414A在选择了服务节点来执行服务链428中的下一功能时从考虑中移除了203.0.11.3。SLA模块414A在203.0.113.2处选择了服务节点来执行下一服务功能。
主机设备400可以执行服务链428中的下一功能。例如,再次参考所描述的示例并且参照图4,服务节点410A的SLA模块414A更新分组101(例如分组101的网络服务报头)以反映在执行了下一服务功能之后,期望从分组101的RTT SLA中剩余3毫秒。(如由分组101的网络服务报头所指示,该3毫秒的值是通过从RTT SLA中剩余的8毫秒中减去预期要被下一服务功能消耗的5毫秒的RTT而计算得出的。)虚拟机411A将关于适合的下一跳的信息输出到管理程序409。管理程序409确定地址203.0.113.1对应于由主机设备400托管的服务节点410B。管理程序409将分组101输出到服务节点410B的虚拟机411B。虚拟机411B使服务功能模块415B中的一个或多个在分组101的RTT SLA中剩余的时间内执行适合的服务功能。
在结合图4描述的示例中,分组101由相同主机设备400内的连续服务节点处理。然而,在其他示例中,可以由不同主机设备400,在不同数据中心中和/或在不同地理区域中对分组101执行不同服务功能。
图2中所图示的和/或本公开的其他位置所图示或描述的模块(例如虚拟机411A至411N和/或SLA模块414A至414N)可以使用在一个或多个计算设备中驻留和/或在一个或多个计算设备处执行的软件、硬件、固件或硬件、软件和固件的混合来执行所描述的操作。例如,计算设备可以用多个处理器或多个设备执行这些模块中的一个或多个。计算设备可以执行这些模块中的一个或多个作为在底层硬件上执行的虚拟机。这些模块中的一个或多个可以作为操作系统或计算平台的一个或多个服务而执行。这些模块中的一个或多个可以作为计算平台的应用层处的一个或多个可执行程序而执行。在其他示例中,由模块提供的功能性可以通过专用硬件设备来实现。
尽管可以分别图示包括在一个或多个存储设备内的某些模块、数据存储库、组件、程序、可执行程序、数据项、功能单元和/或其他项,但这些项中的一个或多个可以被组合并且作为单个模块、组件、程序、可执行程序、数据项或功能单元而操作。例如,一个或多个模块或数据存储库可以被组合或部分地组合,使得其作为单个模块而操作或将功能性提供为单个模块。另外,一个或多个模块可以彼此交互和/或彼此结合操作,使得例如一个模块充当另一模块的服务或扩展。此外,存储设备内图示的每个模块、数据存储库、组件、程序、可执行程序、数据项、功能单元或其他项可以包括多个组件、子组件、模块、子模块、数据存储库和/或未图示的其他组件或模块或数据存储库。
另外,可以以各种方式实现存储设备内图示的每个模块、数据存储库、组件、程序、可执行程序、数据项、功能单元或其他项。例如,存储设备内图示的每个模块、数据存储库、组件、程序、可执行程序、数据项、功能单元或其他项可以被实现为可下载或预安装的应用或“app”。在其他示例中,存储设备内图示的每个模块、数据存储库、组件、程序、可执行程序、数据项、功能单元或其他项可以被实现为在计算设备上执行的操作系统的一部分。
图5是图示了根据本公开的一个或多个方面的由示例服务节点执行的操作的流程图。本文中在服务复合体109和图2的服务节点210中的一个或多个服务节点的上下文内描述了图5。在其他示例中,可以通过一个或多个其他组件、模块、系统或设备来执行图5中所描述的操作。另外,在其他示例中,结合图5描述的操作可以被合并,以不同顺序执行,被省略或可以涵盖未具体图示或描述的附加操作。
在图5中所图示的过程中,并且根据本公开的一个或多个方面,服务复合体109可以接收分组(501)。例如,在一些示例中,接入网络106接收分组101。接入网络106将分组101输出到服务复合体109内的服务节点210A。
服务复合体109可以标识服务链约束(502)。例如,在一些示例中,服务节点210A评估分组101并且标识将被应用于分组101的服务链。服务节点210A基于将被应用于分组101的服务链来确定性能约束可应用于分组101,并且将在处理分组101时得以满足。这种约束可以是服务水平协议,该服务水平协议规定通过服务链在不超过指定时间段或指定往返时间(RTT)(诸如50毫秒)内处理分组101。
服务复合体109可以标识服务节点以执行服务功能(503)。例如,在一些示例中,服务节点210A标识哪些服务节点210能够执行第一服务功能。从能够执行第一服务功能的服务节点210,服务节点210A标识哪些这种服务节点210能够在由服务水平协议规定的时间内执行第一服务功能。在所描述的示例中,服务节点210A确定服务节点210B既能够执行第一服务功能,又可以在由服务水平协议规定的50毫秒内完成服务链操作。
服务复合体109可以确定执行服务功能将具有的预期影响(504)。例如,在一些示例中,服务节点210A基于由服务节点210A维护的信息(例如图4的下一跳选择表413的SLA度量列455)来确定服务节点210B将在往返时间内消耗10毫秒来执行第一服务功能。10毫秒的值可以包括服务节点210A与服务节点210B之间的往返链路时延以及服务节点210B中执行服务功能的时延。因此,服务节点210A确定执行第一服务功能的服务节点210B将影响由服务水平协议规定的最大RTT,时长为10毫秒。具体地,服务节点210A确定在服务节点210B执行服务功能之后,在遵守服务水平协议的同时将剩下40毫秒来完成服务链。如果服务节点210B执行服务功能的预期时间过长并且消耗了服务水平协议上剩余的所有RTT,那么服务节点210A可以选择不同服务节点(505的“否”路径)。否则,服务节点210A选择服务节点210B来执行第一服务功能(505的“是”路径)。
服务复合体109可以修改分组以反映预期影响(506)。例如,在一些示例中,服务节点210A将指示剩余40毫秒来完成服务链以遵守服务水平协议的信息插入到分组101的网络服务报头中。在服务节点210B执行第一服务功能之后,该信息可以由较晚服务节点用来选择适合的服务节点以沿着链进一步执行服务功能。
服务复合体109可以使得服务节点210B能够执行服务功能(507)。例如,在一些示例中,服务节点210A将分组101输出到服务节点210B。服务复合体109使得服务节点210B能够执行第一服务功能。
在一些示例中,服务复合体109可以继续执行服务链中的剩余服务功能(508)。例如,在一些示例中,服务节点210B可以在执行第一服务功能之后选择服务节点210中的另一个来执行服务链中的下一服务功能。在做出这种选择时,服务节点210B可以将其选择限制于能够在分组101的网络服务报头中指定的时间(即,现在为40毫秒)内执行下一服务功能的那些服务节点210。服务节点210B然后可以更新网络服务报头以反映预期要被执行下一服务功能的下一服务节点210消耗的时间量(例如RTT)。在一些示例中,更新网络服务报头以反映该时间量可以涉及从由分组101当前反映的40毫秒中减去用以执行下一服务功能的预期RTT时间。因此,服务节点210B可以更新网络服务报头以反映剩余少于40毫秒的时间量来完成服务链。每个附加服务节点210可以对服务链中的每个功能执行类似过程,从而与分组101一起维护信息,该信息在每个服务节点210处反映了剩余多少时间来完成服务链。
针对本文中所描述的包括在任何流程图或流程图中的过程、装置以及其他示例或说明,本文中所描述的任何技术中所包括的某些操作、动作、步骤或事件可以按不同顺序被执行,可以被完全添加、合并或省去(例如并非所有描述的动作或事件对于实践这些技术都是必需的)。此外,在某些示例中,可以例如通过多线程处理、中断处理或多个处理器来同时而不是顺序地执行操作、动作、步骤或事件。其他某些操作、动作、步骤或事件可以被自动执行,即使他们并未被具体地标识为自动执行。此外,备选地,被描述为自动执行的某些操作、动作、步骤或事件可以不被自动执行,而是在一些示例中,可以响应于输入或另一事件来执行这些操作、动作、步骤或事件。
为了便于说明,在图内和/或在本文中所引用的其他说明中仅示出了有限数量的设备(例如数据源210、客户端设备220、计算系统240、管理员设备290以及其他设备)。然而,可以用更多的这些系统、组件、设备、模块和/或其他项来执行根据本公开的一个或多个方面的技术,并且对这些系统、组件、设备、模块和/或其他项的共同引用可以表示任何数量的这些系统、组件、设备、模块和/或其他项。
本文中所包括的附图分别图示了本公开的方面的至少一个示例实现。然而,本公开的范围不限于这些实现。因此,在图中所图示的系统、方法或技术之外的本文中所描述的系统、方法或技术的其他示例或备选实现在其他实例中可能是适合的。这些实现可以包括图中所包括的设备和/或组件的子集和/或可以包括图中未示出的附加设备和/或组件。
上文阐述的详细描述旨在作为对各种配置的描述,而非旨在仅表示可以实践本文中所描述的概念的配置。详细描述包括具体细节,以便提供对各种概念的充分理解。然而,这些概念可以在不具有这些具体细节的情况下被实践。在一些实例中,为了避免混淆这些概念,在所参考的图中以框图的形式示出了众所周知的结构和组件。
因此,尽管可以参照特定图描述各种系统、设备和/或组件的一种或多种实现,但可以以多种不同方式来实现这些系统、设备和/或组件。例如,在本文中的附图(例如图1和/或图2)中被图示为分离设备的一个或多个设备可以备选地被实现为单个设备;被图示为分离组件的一个或多个组件可以备选地被实现为单个组件。此外,在一些示例中,在本文中的附图中被图示为单个设备的一个或多个设备可以备选地被实现为多个设备;被图示为单个组件的一个或多个组件可以备选地被实现为多个组件。这些多个设备和/或组件中的每个设备和/或组件可以经由有线或无线通信被直接耦合和/或经由一个或多个网络被远程耦合。此外,可以在本文中的各个图中被图示的一个或多个设备或组件可以备选地被实现为在这些图中未示出的另一设备或组件的一部分。以这种和其他方式,可以经由通过两个或更多个设备或组件进行的分布式处理来执行本文中所描述的一些功能。
另外,某些操作、技术、特征和/或功能在本文中可以被描述为由特定组件、设备和/或模块执行。在其他示例中,这些操作、技术、特征和/或功能可以由不同组件、设备或模块执行。因此,在其他示例中,在本文中可以被描述为归于一个或多个组件、设备或模块的一些操作、技术、特征和/或功能可以归于其他组件、设备和/或模块,即使在本文中并未以这种方式具体地描述。
尽管已经结合对一些示例的描述标识了特定优点,但各种其他示例可以包括一些所列举的优点、不包括所列举的优点或包括所有所列举的优点。根据本公开,技术上或其他方面的其他优点对于本领域的普通技术人员而言可以变得明显。另外,尽管本文中已经公开了特定示例,但可以使用任何数量的技术(无论目前是否已知)来实现本公开的各个方面,并且因此,本公开不限于本公开中具体描述和/或图示的示例。
在一个或多个示例中,可以利用硬件、软件、固件或其任何组合来实现所描述的功能。如果利用软件来实现,那么功能可以作为一个或多个指令或代码被存储在计算机可读介质上和/或通过计算机可读介质来传输并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于诸如数据存储介质等有形介质的计算机可读存储介质、或包括促进将计算机程序从一个地方传递至另一地方(例如根据通信协议)的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非瞬态的有形计算机可读存储介质或(2)诸如信号或载波等通信介质。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以取回用于实现在本公开中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
通过示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备、闪速存储器或可以用于以指令或数据结构的形式存储期望程序代码以及可以由计算机访问的任何其他介质。同样,任何连接被适当地称为计算机可读介质。例如,如果通过使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或诸如红外、无线电和微波等无线技术来从网站、服务器或其他远程源传输指令,那么同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波等无线技术被包括在介质的定义中。然而,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是涉及非瞬态的有形存储介质。如所使用的磁盘和光盘包括压缩式光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光光学地复制数据。上面的组合还应该被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路装置。因此,如本文中所使用的术语“处理器”或“处理电路装置”可以分别指任何前述的结构或适用于实现所描述的技术的任何其他结构。此外,在一些示例中,可以将所描述的功能性提供在专用硬件模块和/或软件模块内。同样,可以在一个或多个电路或逻辑元件中充分地实现该技术。
本公开的技术可以被实现在各种设备或装置中,包括无线手机、移动或非移动计算设备、可穿戴或不可穿戴计算设备、集成电路(IC)或IC集合(例如芯片集)。在本公开中,将各种组件、模块或单元描述为用于强化被配置为执行所公开的技术的设备的功能方面,但并不一定需要通过不同硬件单元实现。相反,如上文所描述,结合合适的软件和/或固件,可以将各种单元组合在硬件单元中或可以通过交互操作的硬件单元的集合(包括如上文所描述的一个或多个处理器)来提供。
Claims (20)
1.一种计算系统,包括处理电路装置和多个服务节点,其中所述处理电路装置被配置为:
接收分组;
标识与服务链相关联的性能约束,所述服务链表示将由所述服务节点中的一个或多个服务节点对所述分组执行的一系列服务功能;
确定服务功能的执行将对满足所述性能约束产生的预期影响,其中所述服务功能是将对所述分组执行的所述一系列服务功能中的一个服务功能;以及
修改所述分组以反映所述服务功能的执行将对满足所述性能约束产生的所述预期影响。
2.根据权利要求1所述的计算系统,其中所述处理电路装置进一步被配置为:
基于所述服务链性能约束,标识服务节点以对所述分组执行所述服务功能;以及
使得所述服务节点能够对所述分组执行所述服务功能。
3.根据权利要求2所述的计算系统,其中所述服务功能是第一服务功能,并且其中所述处理电路装置进一步被配置为:
确定第二服务功能的执行将对满足所述性能约束产生的预期影响,其中所述第二服务功能是将对所述分组执行的所述一系列服务功能中的另一个服务功能;以及
修改所述分组以反映所述第二服务功能的执行将对满足所述性能约束产生的所述预期影响。
4.根据权利要求3所述的计算系统,其中所述处理电路装置进一步被配置为如下,以修改所述分组以反映所述第一服务功能的执行将对满足所述性能约束产生的所述预期影响:
将数据添加到所述分组内所包括的报头。
5.根据权利要求4所述的计算系统,其中所述处理电路装置进一步被配置为如下,以修改所述分组以反映所述第二服务功能的执行将对满足所述性能约束产生的所述预期影响:
更新被添加到所述分组内所包括的所述报头的所述数据。
6.根据权利要求5所述的计算系统,其中所述服务节点是第一服务节点,并且其中所述处理电路装置进一步被配置为如下,以确定所述第二服务功能的执行将对满足所述性能约束产生的所述预期影响:
基于所述服务链性能约束标识第二服务节点以对所述分组执行所述第二服务功能;以及
在所述第一服务功能已被执行之后,确定第二服务功能的执行将对满足所述性能约束产生的预期影响。
7.根据权利要求6所述的计算系统,其中所述处理电路装置进一步被配置为如下,以标识所述第二服务节点:
标识使得所述第二服务功能能够在所述性能约束内被执行的服务节点。
8.根据权利要求1至7中任一项所述的计算系统,其中所述多个服务节点横跨多个数据中心被定位。
9.根据权利要求1至7中任一项所述的计算系统,其中所述处理电路装置进一步被配置为如下,以修改所述分组:
修改所述分组内所包括的网络服务报头。
10.根据权利要求1至7中任一项所述的计算系统,其中所述服务链性能约束涉及以下中的一个或多个:
往返时间、抖动或分组丢失。
11.一种服务链处理方法,包括:
由包括多个服务节点的计算系统接收与服务链相关联的分组,所述服务链表示将对所述分组执行的一系列服务;
由所述计算系统标识与所述服务链相关联的性能约束;
由所述计算系统确定服务功能的执行将对满足所述性能约束产生的预期影响,其中所述服务功能是将对所述分组执行的所述一系列服务中的一个服务;以及
由所述计算系统修改所述分组以反映所述服务功能的执行将对满足所述性能约束产生的所述预期影响。
12.根据权利要求11所述的方法,进一步包括:
由所述计算系统并且基于所述服务链性能约束,标识服务节点以对所述分组执行所述服务功能;以及
使得所述服务节点能够对所述分组执行所述第一服务功能。
13.根据权利要求12所述的方法,其中所述服务功能是第一服务功能,所述方法进一步包括:
确定第二服务功能的执行将对满足所述性能约束产生的预期影响,其中所述第二服务功能是将对所述分组执行的所述一系列服务中的另一个服务;以及
修改所述分组以反映所述第二服务功能的执行将对满足所述性能约束产生的所述预期影响。
14.根据权利要求13所述的方法,其中修改所述分组以反映所述第一服务功能的执行将对满足所述性能约束产生的所述预期影响包括:
将数据添加到所述分组内所包括的报头。
15.根据权利要求14所述的方法,其中修改所述分组以反映所述第二服务功能的执行将对满足所述性能约束产生的所述预期影响包括:
更新被添加到所述分组内所包括的所述报头的所述数据。
16.根据权利要求15所述的方法,其中所述服务节点是第一服务节点,并且其中确定所述第二服务功能的执行将对满足所述性能约束产生的所述预期影响包括:
基于所述服务链性能约束标识第二服务节点以对所述分组执行所述第二服务功能;以及
在所述第一服务功能已被执行之后,确定第二服务功能的执行将对满足所述性能约束产生的预期影响。
17.根据权利要求16所述的方法,其中标识所述第二服务节点包括:
标识使得所述第二服务功能能够在所述性能约束内被执行的服务节点。
18.根据权利要求11至17中任一项所述的方法,其中修改所述分组包括:
修改所述分组内所包括的网络服务报头。
19.根据权利要求11至17中任一项所述的方法,其中所述服务链性能约束涉及以下中的一个或多个:
往返时间、抖动或分组丢失。
20.一种包括指令的计算机可读存储介质,所述指令在被执行时使计算系统的处理电路装置执行以下动作:
接收分组;
标识与服务链相关联的性能约束,所述服务链表示将由一个或多个服务节点对所述分组执行的一系列服务功能;
确定服务功能的执行将对满足所述性能约束产生的预期影响,其中所述服务功能是将对所述分组执行的所述一系列服务功能中的一个服务功能;以及
修改所述分组以反映所述服务功能的执行将对满足所述性能约束产生的所述预期影响。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/824,523 US11329897B2 (en) | 2020-03-19 | 2020-03-19 | SLA packet steering in network service function chaining |
US16/824,523 | 2020-03-19 | ||
CN202010495576.5A CN113497759B (zh) | 2020-03-19 | 2020-06-03 | 网络服务功能链中的sla分组操纵 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010495576.5A Division CN113497759B (zh) | 2020-03-19 | 2020-06-03 | 网络服务功能链中的sla分组操纵 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116647501A true CN116647501A (zh) | 2023-08-25 |
Family
ID=70977885
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310648663.3A Pending CN116647501A (zh) | 2020-03-19 | 2020-06-03 | 计算系统、服务链处理方法以及存储介质 |
CN202010495576.5A Active CN113497759B (zh) | 2020-03-19 | 2020-06-03 | 网络服务功能链中的sla分组操纵 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010495576.5A Active CN113497759B (zh) | 2020-03-19 | 2020-06-03 | 网络服务功能链中的sla分组操纵 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11329897B2 (zh) |
EP (1) | EP3883187A1 (zh) |
CN (2) | CN116647501A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11329897B2 (en) | 2020-03-19 | 2022-05-10 | Juniper Networks, Inc. | SLA packet steering in network service function chaining |
US11258691B2 (en) * | 2020-07-09 | 2022-02-22 | Verizon Patent And Licensing Inc. | Systems and methods for tracking and calculating granular network performance metrics based on user traffic |
US11296953B1 (en) * | 2020-12-18 | 2022-04-05 | Cloudbrink Inc. | Modifying data packet transmission characteristics by an intermediate node on a communication path |
WO2024006426A1 (en) * | 2022-06-30 | 2024-01-04 | Intel Corporation | Methods and arrangements for service function chaining and packet steering |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491129B (zh) * | 2013-07-05 | 2017-07-14 | 华为技术有限公司 | 一种业务节点配置方法、业务节点池注册器及系统 |
US9413634B2 (en) * | 2014-01-10 | 2016-08-09 | Juniper Networks, Inc. | Dynamic end-to-end network path setup across multiple network layers with network service chaining |
EP3110081B1 (en) * | 2014-03-14 | 2019-06-05 | Huawei Technologies Co., Ltd. | Methods for controlling service chain of service flow |
US9548919B2 (en) | 2014-10-24 | 2017-01-17 | Cisco Technology, Inc. | Transparent network service header path proxies |
CN104318407B (zh) * | 2014-11-19 | 2017-10-03 | 武汉大学 | 网络环境下城市事件驱动的决策信息聚焦服务方法及系统 |
US10116553B1 (en) * | 2015-10-15 | 2018-10-30 | Cisco Technology, Inc. | Application identifier in service function chain metadata |
US10158568B2 (en) * | 2016-02-12 | 2018-12-18 | Huawei Technologies Co., Ltd. | Method and apparatus for service function forwarding in a service domain |
US10637597B2 (en) * | 2017-04-07 | 2020-04-28 | Luminous Cyber Corporation | Time determination of distributed events without distribution of reference time, phase, or frequency |
US10530632B1 (en) | 2017-09-29 | 2020-01-07 | Equinix, Inc. | Inter-metro service chaining |
US10637770B2 (en) * | 2018-03-29 | 2020-04-28 | Wipro Limited | Method and system for optimizing service function paths associated with common service functions |
US11329897B2 (en) | 2020-03-19 | 2022-05-10 | Juniper Networks, Inc. | SLA packet steering in network service function chaining |
-
2020
- 2020-03-19 US US16/824,523 patent/US11329897B2/en active Active
- 2020-06-03 CN CN202310648663.3A patent/CN116647501A/zh active Pending
- 2020-06-03 CN CN202010495576.5A patent/CN113497759B/zh active Active
- 2020-06-04 EP EP20178385.9A patent/EP3883187A1/en active Pending
-
2022
- 2022-03-30 US US17/657,322 patent/US11689431B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3883187A1 (en) | 2021-09-22 |
US11329897B2 (en) | 2022-05-10 |
CN113497759B (zh) | 2023-06-06 |
US11689431B2 (en) | 2023-06-27 |
US20220224607A1 (en) | 2022-07-14 |
CN113497759A (zh) | 2021-10-12 |
US20210297327A1 (en) | 2021-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11831520B2 (en) | Dynamic application SLA metric generation, distribution, and intent-based SD-WAN link selection | |
CN113497759B (zh) | 网络服务功能链中的sla分组操纵 | |
Jasmine et al. | DSQLR-A distributed scheduling and QoS localized routing scheme for wireless sensor network | |
US20210136142A1 (en) | Task offloading and routing in mobile edge cloud networks | |
CN111682952B (zh) | 针对体验质量度量的按需探测 | |
JP7456057B2 (ja) | 強化されたsd-wanパスの品質測定および選択 | |
US9876723B2 (en) | Methods and systems for evaluating network performance of an aggregated connection | |
NO335151B1 (no) | Mekanismer for regelbasert styring av UMTS QoS og IP QoS i mobile IP-nettverk | |
US20160261504A1 (en) | Methods and systems for transmitting data packets | |
JP2012526433A (ja) | データトランスポートのためのリソースドメインをわたるトラフィックエンジニアリングされた接続の確立 | |
CN112202930B (zh) | 一种移动设备接入sd-wan网络方法、pop和系统 | |
US20070130046A1 (en) | Quality of service for transmission of digital content | |
Bhattacharya et al. | SDN based architecture for QoS enabled services across networks with dynamic service level agreement | |
US10805219B2 (en) | Methods and systems for evaluating network performance of an aggregated connection | |
US20190190835A1 (en) | Methods and systems for evaluating network peformance of an aggregated connection | |
US8817638B2 (en) | Method and system for network communications utilizing shared scalable resources | |
WO2024068725A1 (fr) | Procédé de gestion du trafic de données entre une entité source et une entité destinataire, entité et programme d'ordinateur correspondants |
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 |