CN115769556A - 服务链数据流的路径可见性、分组丢失和时延测量结果 - Google Patents
服务链数据流的路径可见性、分组丢失和时延测量结果 Download PDFInfo
- Publication number
- CN115769556A CN115769556A CN202180047118.8A CN202180047118A CN115769556A CN 115769556 A CN115769556 A CN 115769556A CN 202180047118 A CN202180047118 A CN 202180047118A CN 115769556 A CN115769556 A CN 115769556A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- leaf switch
- flow
- service chain
- 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
Images
Classifications
-
- 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/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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
- 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/0852—Delays
-
- 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/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文公开了用于确定与联网计算环境的数据流相关联的分组路径可见性、分组丢失和时延测量结果的技术。这些技术可以包括接收与联网计算环境的数据流相关联的流数据并确定与该数据流相关联的分组路径。分组路径可以指示第一叶交换机被配置为向服务链设备发送分组,以及第二叶交换机被配置为从服务链设备接收分组。这些技术还可以包括接收时间戳数据,该时间戳数据指示第一叶交换机向服务链设备发送分组的第一时间和第二叶交换机从服务链设备接收分组的第二时间。至少部分地基于时间戳数据,可以计算与服务链设备相关联的时延。
Description
相关申请
本申请要求于2020年7月1日提交的、申请号为16/918,658的美国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开总体上涉及确定与联网计算环境(例如,数据中心交换结构)的数据流相关联的分组路径可见性、分组丢失和时延测量结果,其中该联网计算环境的数据流利用服务链。
背景技术
联网计算环境(例如,数据中心交换结构)常包括各种硬件和软件设备,例如交换机、路由器、服务器计算机、网络节点等。这些设备可以用于在联网计算环境内建立数据流,以用于将数据分组从一个网络路由到另一网络。此外,这些联网计算环境常托管关键应用,例如物联网(IOT)应用、连接的汽车、游戏、高带宽互联网等。随着这些应用开始利用更快的网络速度,例如5G,确定数据流的特定节点和/或设备是否导致应用的分组丢失和/或时延是至关重要的。然而,因为这些应用通常具有非常复杂的服务链要求(包括向位于联网计算环境外部的服务链设备发送分组),所以难以计算特定节点和/或设备的时延,以及难以确定特定节点和/或设备是否丢失分组。
附图说明
下面参考附图给出详细说明。在附图中,附图标记的最左边的(一个或多个)数字表示附图标记首次出现的附图。在不同附图中使用相同的附图标记表示相似或相同的项目。附图中所示的系统不是按比例绘制的,并且附图中的组件可以彼此不按比例绘制。
图1示出了示例联网计算环境的系统架构图。如图所示,联网计算环境的数据流利用服务链。
图2A-2C共同示出了用于确定利用服务链的联网计算环境数据流的路径可见性、分组丢失和/或时延的示例过程的流程图。
图3示出了用于确定与遍历利用服务链的联网计算环境的数据流的分组相关联的时延的示例方法的流程图。
图4示出了用于确定与服务链设备相关联的时延的示例方法的流程图。
图5示出了可以用于实现本文所公开的技术的各方面的数据中心的示例配置的计算系统图。
图6示出了计算机架构图,该计算机架构图显示用于实现网络设备的示例计算机硬件架构,该网络设备可以用于实现本文所呈现的各种技术的各方面。
具体实施方式
概述
本发明的各方面在独立权利要求中阐述,优选特征在从属权利要求中阐述。一个方面的特征可以单独地或与其他方面组合地应用于任何方面。
本公开描述了用于确定与利用服务链的联网计算环境的数据流相关联的分组路径可见性、分组丢失和时延测量结果的技术。本公开中描述的一些技术可以包括从联网计算环境的一个或多个叶交换机接收与数据流相关联的流数据(例如,5元组流数据、虚拟路由和转发表(VRF)、入口和/或出口物理接口数据、入口和/或出口逻辑接口数据、服务链配置数据等)。至少部分地基于流数据,可以确定与数据流相关联的分组路径。其中,分组路径可以指示一个或多个叶交换机中的第一叶交换机被配置为向服务链设备发送分组,并且一个或多个叶交换机中的第二叶交换机被配置为从服务链设备接收分组。在示例中,服务链设备位于联网计算环境的外部。以此方式,通过使用从一个或多个叶交换机接收的流数据,可以为利用服务链的联网计算环境的数据流确定分组路径可见性,从而产生了与网络可见性和故障查找(troubleshooting)相关的计算技术的改进。
此外,本公开中描述的技术可以包括接收指示第一叶交换机向服务链设备发送分组的第一时间的第一时间戳数据。该技术还可以包括接收指示第二叶交换机从服务链设备接收分组的第二时间的第二时间戳数据。以此方式,可以至少部分地基于第一时间戳数据和第二时间戳数据来计算与服务链设备相关联的时延。因此,通过利用本文所描述的技术中的至少一些,可以为不位于联网计算环境(例如,数据中心交换结构)内的设备确定时延。
本文描述的技术还可以包括从联网计算环境的入口叶交换机接收指示分组进入联网计算环境的第一时间的第一时间戳数据。此外,可以从联网计算环境的出口叶交换机接收指示分组退出联网计算环境的第二时间的第二时间戳数据。以此方式,可以至少部分地基于第一时间戳数据和第二时间戳数据来计算与遍历联网计算环境的分组相关联的时延。
本公开中所描述的技术可以作为一种方法来执行和/或由具有存储计算机可执行指令的非暂时性计算机可读介质的系统来执行,所述计算机可执行指令在由一个或多个处理器执行时,执行上文所描述的技术。
示例实施例
如上所述,当联网计算环境托管关键应用(例如5G)时,确定数据流的特定节点和/或设备是否导致应用的分组丢失和/或时延是至关重要的。然而,因为这些应用通常具有非常复杂的服务链要求,其包括向位于联网计算环境外部的服务链设备(例如,防火墙、传输控制协议(TCP)优化器、运营商级网络地址转换(CGNAT)、家长控制(parental control)、深度分组检查(DPI)、负载平衡器等)发送分组,所以难以计算特定节点和/或设备的时延,以及难以确定特定节点和/或设备是否丢失分组。
例如,如果数据流中的任何设备引起更多的时延或分组丢失,则它可能引起联网计算环境所托管的5G应用的停机时间,从而对服务提供商造成收入影响。传统上,时延和/或分组丢失可以至少部分地基于在特定分组遍历联网计算环境的数据流时使用该特定分组的分组报头来确定。分组报头可以包括时间戳数据、5元组流数据(包括例如源互联网协议(IP)地址、目的地IP地址、协议、源层4(L4)端口和目的地L4端口)、TCP序列号、标识字段等。然而,当数据流包括外部服务链设备时,该分组报头在以下情况下丢失:当分组在联网计算环境(例如,数据中心交换结构)之外被发送到服务链设备时。此外,仅使用存储在分组报头中的流信息,无法确定分组是第一次进入联网计算环境还是它从服务链设备返回到联网计算环境中,从而增加了确定端到端时延、服务设备时延和分组丢失的难度。
因此,本公开描述了用于确定与利用服务链的联网计算环境的数据流相关联的分组路径可见性、分组丢失和时延测量结果的技术。如本文所使用的,术语“联网计算环境”可以包括数据中心结构、云计算网络等。此外,联网计算环境可以包括建筑物、建筑物内的专用空间、或单个物理位置中的一组建筑物、或在多个物理位置之间展开的一组建筑物,这些建筑物用于容纳计算机系统和相关联的组件,例如电信和存储系统。联网计算环境可以包括一个或多个叶交换机、脊交换机、计算资源、数据存储装置、路由器、网关等。
如本文所使用的,术语“数据流”是指通过将分组路由通过联网计算环境的一个或多个特定设备(例如,叶交换机、脊交换机等)来遍历联网计算环境的分组路径。此外,数据流的分组路径可以将数据中心交换结构外部的分组路由到一个或多个服务链设备,所述一个或多个服务链设备位于数据中心结构外部。在各种示例中,联网计算环境可以包括各自遍历通过一个或多个不同设备的多个数据流。例如,第一数据流可以包括将分组接收到数据中心结构中的第一入口叶交换机,并且第二数据流可以包括也将分组接收到数据中心结构中的第二入口叶交换机。此外,第一数据流可以包括向位于数据中心结构外部的服务链设备发送分组的第三出口叶交换机,而第二数据流可以包括也向位于数据中心结构外部的服务链设备发送分组的第四出口叶交换机。
此外,如文本所使用的,术语“流数据”可以包括与数据流相关联的遥测数据。例如,流数据可以包括以下项中的一项或多项:5元组流数据、虚拟路由和转发表(VRF)、交换机入口物理接口数据、交换机出口物理接口数据、交换机入口逻辑接口数据、交换机出口逻辑接口数据等。在各种示例中,并且如下面进一步讨论的,流数据可以用于标识联网计算环境的一个或多个数据流的分组路径(例如,通过在接收到分组时确定数据流相对于特定设备的下一跳)。
作为示例而非限制,根据本文所述技术的方法可以包括从联网计算环境的第一叶交换机接收与数据流相关联的第一流数据。联网计算环境可以包括一个或多个叶交换机、一个或多个脊交换机、一个或多个计算资源等。此外,数据流可以遍历或以其他方式通过联网计算环境的一个或多个物理设备和/或逻辑设备,以便通过联网计算环境来路由分组。在一些示例中,第一流数据可以包括以下项中的一项或多项:五元组流数据、虚拟路由和转发表(VRF)、入口和/或出口物理接口数据、入口和/或出口逻辑接口数据等。此外,该方法还可以包括从联网计算环境的第二叶交换机接收与数据流相关联的第二流数据。与上述第一流数据类似,第二流数据可以包括以下项中的一项或多项:5元组流数据、VRF、入口和/或出口物理接口数据、入口和/或出口逻辑接口数据等。
在一些示例中,至少部分地基于第一流数据和第二流数据,该方法可以包括确定与数据流相关联的分组路径。其中,分组路径可以指示第一叶交换机被配置为向服务链设备发送分组,并且第二叶交换机被配置为从服务链设备接收分组。在各种示例中,服务链设备可以位于联网计算环境的外部,并且可以包括防火墙、TCP优化器、CGNAT、家长控制、DPI、负载平衡器等。此外,分组路径可以指示与数据流相关联的一个或多个其他叶交换机、一个或多个脊交换机和/或一个或多个其他设备。
在一些示例中,可以为第一叶节点和第二叶节点以及联网计算环境的其他交换机和/或设备接收服务链配置数据。例如,如果以应用中心基础结构(ACI)模式配置联网计算环境,则服务链配置数据可以包括从应用策略基础结构控制器(APIC)接收的合同、过滤器和服务图配置数据。附加地或替代地,如果以非ACI模式配置联网计算环境,则服务链配置数据可以包括为给定数据流定义服务链路径的基于策略的路由(PBR)和路由协议配置数据。在至少一个示例中,确定与数据流相关联的分组路径可以进一步至少部分地基于服务链配置数据。服务链配置可以指示第一叶交换机被配置为将分组导出到服务链设备,并且第二叶交换机被配置为将分组从服务链设备接收到联网计算环境中。
该方法还可以包括从第一叶交换机接收指示分组被发送到服务链设备的第一时间的第一时间戳数据。第一时间戳数据可以被包括在分组的第一分组报头中。第一分组报头可以附加地包括与分组相关联的分组标识数据,例如5元组数据、TCP序列号等。在一些示例中,该方法可以包括接收与分组相关联的分组标识数据。以此方式,当分组从服务链设备重新进入联网计算环境时,可以跟踪该分组,如下面进一步讨论的。
在各种示例中,该方法包括从第二叶交换机接收指示从服务链设备接收分组的第二时间的第二时间戳数据。第二时间戳数据可以被包括在分组的第二分组报头中,其中第二分组报头不同于第一分组报头。例如,如上所述,当分组在由第一叶交换机发送到服务链设备而离开联网计算环境时,该分组可能丢失原始(例如,第一)分组报头,该分组报头包括第一时间戳数据。此外,当分组从服务链设备重新进入联网计算环境时,它可以包括新的(例如,第二)分组报头,该分组报头包括第二时间戳数据。因此,在一些示例中,该方法包括至少部分地基于分组标识数据来确定第二叶交换机从服务链设备接收到分组,以及将第二时间戳数据与分组相关联。
在一些示例中,该方法包括至少部分地基于第一时间戳数据和第二时间戳数据来计算与服务链设备相关联的时延。例如,可以计算与第一时间戳数据相关联的第一时间点和与第二时间戳数据相关联的第二时间点之间的差值,并且该差值可以指示与服务链设备相关联的时延。在各种示例中,与服务链设备相关联的时延可以包括第一时延,并且该方法还可以包括计算与遍历联网计算环境的数据流的分组相关联的端到端时延。例如,计算端到端时延可以至少部分地基于与服务链设备相关联的第一时延,以及接收(i)指示与第一叶交换机相关联的第二时延的第三时间戳数据,(ii)指示与第二叶交换机相关联的第三时延的第四时间戳数据。以此方式,端到端时延可以是第一时延、第二时延和第三时延之和。此外,预期可以为包括多个叶交换机、脊交换机、服务链设备等中的每一者的数据流计算数据流的端到端时延以及与数据流的特定设备相关联的各个时延。
本文所描述的技术(包括上文所描述的示例方法)可以由软件、硬件或其组合来执行。例如,本文所描述的技术可以由以下项来执行:在联网计算环境的中央代理(例如,计算资源、服务器计算机等)上执行的软件、联网计算环境的交换机(例如,脊交换机和/或叶交换机等)。通过执行本公开中描述的一些或全部技术,可以更容易地确定与联网计算环境的数据流相关联的分组路径可见性、时延和分组丢失。以此方式,服务提供商可以使用这些各种技术以通过至少减少时延并确定可能在何处发生故障来增强其系统的可靠性和效率,从而产生对利用服务链的联网计算环境的系统监视技术的改进。
现在将在下文中参考附图更全面地描述本公开的某些实现方式和实施例,在附图中示出了各个方面。然而,各个方面可以以许多不同的形式来实现,并且不应当被解释为限于本文阐述的实现方式。本公开包括如本文所描述的实施例的变体。相同的附图标记始终表示相同的元件。
图1示出了示例联网计算环境102的系统架构图。如图所示,联网计算环境的数据流106利用服务链。通常,联网计算环境102可以包括容纳或位于一个或多个数据中心104中的设备,一个或多个数据中心104可以位于不同的物理位置。例如,联网计算环境102可以由公共云计算平台、专用/企业计算平台、和/或其任何组合中的设备的网络来支持。一个或多个数据中心104可以是位于被指定存储作为联网计算环境102的一部分的联网设备的地理区域上的物理设施或建筑物。数据中心104可以包括各种联网设备,以及用于电源、数据通信连接、环境控制和各种安全设备的冗余或备份组件和基础设施。在一些示例中,数据中心104可以包括一个或多个虚拟数据中心,这些虚拟数据中心是为企业需要和/或基于云的服务提供商需要而专门设计的云基础设施资源的池或集合。通常,数据中心104(物理的和/或虚拟的)可以提供诸如处理器(CPU)、存储器(RAM)、存储装置(磁盘)和联网(带宽)之类的基本资源。然而,在一些示例中,联网计算环境102中的设备可以不位于明确定义的数据中心104中,而是可以位于其他位置或建筑物中。
联网计算环境102包括各种计算设备,例如叶交换机层108、脊交换机层110以及计算资源层112,其中叶交换机层108包括一个或多个叶交换机108A-108N(其中N表示大于或等于1的任何数),脊交换机层110包括一个或多个脊交换机110A-110N(其中N表示大于或等于1的任何数),计算资源层112包括一个或多个计算资源112A-112N(其中N表示大于或等于1的任何数)。叶交换机108A-108N、脊交换机110A-110N和计算资源112A-112N可以经由一个或多个有线和/或无线连接彼此通信地耦合。以此方式,数据可以在叶交换机层108、脊交换机层110和计算资源层112的各种计算设备之间来回传送。此外,一个或多个叶交换机108A-108N、一个或多个脊交换机110A-110N和/或一个或多个计算资源112A-112N能够与服务链114的一个或多个服务链设备114A-114N通信。
在一些示例中,在计算资源层112上执行的软件可以确定与数据流106相关联的分组路径,如图1中以虚线所示。例如,计算资源层可以从叶交换机层108和脊交换机层110的各种计算设备接收流数据116。该流数据116可以包括以下项中的一项或多项:VRF、5元组流数据、入口和/或出口物理接口数据、入口和/或出口逻辑接口数据等。至少部分地基于流数据116,在计算资源层116上执行的软件可以确定与数据流106相关联的分组路径。作为示例,并且如图1所示,在计算资源层112上执行的软件可以确定叶交换机108A被配置为从分组网关120接收数据流106的分组,例如分组118,然后将这些分组转发到脊交换机110A。接下来,脊交换机110A将接收数据流106的分组,然后将这些分组转发到叶交换机108B。此外,至少部分地基于流数据116和服务链配置数据,在计算资源层112上执行的软件可以确定叶交换机108B被配置为向服务链设备114A发送数据流106的分组,并且叶交换机108C被配置为从服务链设备114A接收数据流106的分组。当叶交换机108C接收到数据流106的分组时,则它被配置为向服务链设备114B发送那些分组。在计算资源层112上执行的软件还可以确定叶交换机108D被配置为从服务链设备114B接收数据流106的分组,然后将这些分组转发到脊交换机110B。最后,软件可以确定脊交换机110B被配置为从叶交换机108D接收数据流106的分组,将这些分组转发到叶交换机108N,然后叶交换机108N被配置为将这些分组转发到一个或多个网络122,例如互联网。以此方式,在计算资源层112上执行的软件可以确定联网计算环境中的数据流的分组路径。此外,虽然在图1中示出了软件在计算资源层112上执行以确定数据流的分组路径,但是可以设想,软件可以在联网计算环境的其他硬件资源上执行,例如叶交换机层108、脊交换机层110、未示出的其他设备和/或其组合。
在一些示例中,在计算资源层112上执行的软件可以确定与遍历联网计算环境102的数据流106的分组(例如,分组118)相关联的时延和/或分组丢失。例如,至少部分地基于如上所述确定数据流106的分组路径,在计算资源层112上执行的软件可以在每次叶交换机108A-108N和/或脊交换机110A-110N之一接收和/或发送分组118时接收与分组118相关联的分组数据124。该分组数据124可以包括时间戳数据和以下项中的至少一项:TCP序列号、5元组流(例如,包括源IP地址、目的地IP地址、协议、源L4端口和目的地L4端口)、IP报头标识字段等。使用该分组数据124,软件可以在分组118遍历联网计算环境的数据流106时跟踪该分组118,并且计算发送和/或接收分组118的每个设备的时延,即使分组118的IP报头在分组118被发送到服务链114时改变。
例如,当叶交换机108B向服务链设备114A发送分组118时,分组118将丢失其IP报头,包括时间戳数据。以此方式,当叶交换机108C从服务链设备114A接收回分组118时,分组118IP报头的时间戳数据将不同。然而,TCP序列号、和/或IP报头标识字段中的至少一个将保持相同。因此,将该分组数据124导出到计算资源层112允许软件识别分组118何时重新进入联网计算环境102。例如,当叶交换机108B向服务链设备114A发送分组118时,叶交换机108B还将向计算资源层112发送包括出口时间戳数据的分组数据124。此外,当叶交换机108C从服务链设备114A接收到分组118时,叶交换机108C将向计算资源层112发送包括入口时间戳数据的分组数据124。以此方式,通过使用出口时间戳数据和入口时间戳数据,可以计算与向服务链设备114A发送分组相关联的时延。每当分组118被发送到服务链114的设备时,可以执行该类似操作。
此外,可以为联网计算环境102的每个设备确定时延,该时延作为数据流106的一部分。在一些示例中,确定与联网计算环境的设备相关联的时延可以至少部分地基于确定数据流106的分组路径、分组数据124、流数据116、其组合等中的至少一者。通过计算作为数据流106的一部分的联网计算环境的每个设备的时延以及也作为数据流106的一部分的每个服务链设备的时延,可以通过对与数据流106的各个设备相关联的所有时延求和来计算遍历数据流106的分组118的端到端时延。
在一些示例中,可以通过经由服务链设备从源叶交换机向目的地叶交换机(例如,从叶交换机108B到服务链设备114A,然后从服务链设备114A到叶交换机108C)发送具有特殊TCP端口的唯一分组来确定服务链设备114A-114N的时延。可以以规则的时间间隔发送(例如,每秒、每10秒、每30秒、每分钟、每10分钟等发送一次)该唯一分组,以确保服务链设备不会丢失分组或导致比预期的时延更长。在各种示例中,唯一分组可以包括所有交换机都能够处理以测量时延并确定数据流的分组路径的分组配置。连接到服务链设备的每个出口和入口交换机可以导出该唯一分组的流信息和时间戳。由于这是唯一的注入分组,因此在中央代理(例如,计算资源)上执行的软件可以在将该分组发送到服务链设备之前从出口交换机收集该分组的时间戳。类似地,在入口交换机从服务链设备接收到分组之后,该软件可以从入口交换机收集该分组的时间戳。在示例中,这些时间戳之间的时间差将是由每个服务链设备引起的时延。
图2A-2C共同示出了用于确定利用服务链的联网计算环境数据流的路径可见性、分组丢失和/或时延的示例过程的流程图。
该过程开始于图2A,其中叶交换机108A-108E和脊交换机110A和110B向计算资源112A发送流数据116A-116G。在一些示例中,流数据116A-116G可以包括以下项中的一项或多项:与每个设备相关联的VRF表、5元组流数据、与每个设备相关联的入口和/或出口物理接口数据、与每个设备相关联的入口和/或出口逻辑接口数据、下一跳信息等。此外,在基于ACI的联网计算环境102结构的情况下,计算资源112A还可以从APIC控制器接收为给定流定义ACI模式下的服务链路径的服务链合同、过滤器和服务图。或者,在基于非ACI的联网计算环境102结构的情况下,计算资源112A可以接收为给定流定义服务链路径的PBR和路由协议配置数据。
因此,使用上述流数据116A-116G信息中的一些或全部,在图2B中,数据流210的分组路径(以虚线示出)由在计算资源112A上执行的软件和/或硬件来确定。在该示例中,数据流210的分组路径在叶交换机108A处开始,在叶交换机108A处可以从分组网关120接收分组。接下来,叶交换机108A将与数据流210相关联的分组转发到脊交换机110A,而脊交换机110A进而将数据流210的分组转发到叶交换机108B。一旦在叶交换机108B处,数据流210的分组将在联网计算环境102的外部被发送到服务链设备114A,并且叶交换机108C将从服务链设备114A接收返回到联网计算环境中的数据流210的分组。接下来,一旦数据流210的分组在叶交换机108C处,则分组将再次在联网计算环境102外部被发送到服务链设备114B,并且稍后由叶交换机108D接收回联网计算环境102中。接下来,叶交换机108D然后将数据流210的分组转发到脊交换机110B,而脊交换机110B进而将这些分组转发到叶交换机108E。最后,叶交换机108E将数据流210的分组在联网计算环境102外部发送到一个或多个目的地网络122,例如互联网。
在一些示例中,计算资源112A可以包括(一个或多个)处理器202和存储器204。(一个或多个)处理器202可以包括一个或多个核心。此外,(一个或多个)处理器可以包括单个处理器或一个或多个处理器。作为示例而非限制,存储器204可以包括以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质的计算机可读存储介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪存或其他固态存储器技术、压缩盘ROM(“CD-ROM”)、数字多功能盘(“DVD”)、高清晰度DVD(“HD-DVD”)、BLU-RAY、或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或可以用于以非暂时性方式存储所需信息的任何其他介质。存储器204可以存储一个或多个数据流206,包括数据流210以及服务链配置208。
转到图2C,至少部分地基于确定数据流210的分组路径,现在可以为数据流210的各个分段和/或设备(包括多个分段和/或设备)计算一个或多个时延。
在“1”,叶交换机108A从分组网关120接收数据流210的分组212,并将分组212转发到脊交换机110A。在各种示例中,叶交换机108A可以向计算资源112A发送与分组212相关联的分组数据214A。计算资源112A可以存储分组数据214A。分组数据214A可以包括时间戳数据(例如,叶交换机108A的入口和出口时间戳数据)以及以下项中的至少一项:TCP序列号、5元组流、IP报头标识字段等。至少使用时间戳数据,可以计算叶交换机108A的时延。时延可以指示叶交换机108A处理分组并将分组转发到脊交换机110A所花费的时间量。
在“2”,脊交换机110A从叶交换机108A接收数据流210的分组212,并将分组212转发到叶交换机108B。在各种示例中,脊交换机110A可以向计算资源112A发送与分组212相关联的分组数据214B。计算资源112A可以存储分组数据214B。分组数据214B可以包括时间戳数据(例如,脊交换机110A的入口和出口时间戳数据)以及以下项中的至少一项:TCP序列号、5元组流、IP报头标识字段等。至少使用时间戳数据,可以计算脊交换机110A的时延。时延可以指示脊交换机110A处理分组并将其转发到叶交换机108B所花费的时间量,和/或可以包括自从分组在叶交换机108A上进入联网计算环境以来的时间量。可以通过确定脊交换机110A接收到分组时的本地时间与分组在叶交换机108A上进入联网计算环境时的时间戳值之间的差来计算时延。
在“3”,叶交换机108B从脊交换机110A接收数据流210的分组212,并将分组212在联网计算环境外部导出到服务链设备114A。在各种示例中,叶交换机108B可以向计算资源112A发送与分组212相关联的分组数据214C。计算资源112A可以存储分组数据214C。分组数据214C可以包括时间戳数据(例如,叶交换机108B的入口和出口时间戳数据)以及以下项中的至少一项:TCP序列号、5元组流、IP报头标识字段等。至少使用时间戳数据,可以计算叶交换机108B的时延。时延可以指示叶交换机108B处理分组并将其导出到服务链设备114A所花费的时间量,和/或可以包括自从分组在叶交换机108A上进入联网计算环境以来的时间量。可以通过确定叶交换机108B接收到分组时的本地时间与分组在叶交换机108A上进入联网计算环境时的时间戳值之间的差来计算时延。
在“4”,叶交换机108C从服务链设备114A接收数据流210的分组212,并将分组212在联网计算环境102外部导出到服务链设备114B。在各种示例中,叶交换机108C可以向计算资源112A发送与分组212相关联的分组数据214D。计算资源112A可以存储分组数据214D。分组数据214D可以包括时间戳数据(例如,叶交换机108B的入口和出口时间戳数据)以及以下项中的至少一项:TCP序列号、5元组流、IP报头标识字段等。
当分组212由叶交换机108C接收时,分组212可以包括不具有原始时间戳信息的新的分组报头。然而,至少部分地基于所存储的分组数据214C和所存储的分组数据214D,计算资源112A可以确定由叶交换机108C接收的分组212是由叶交换机108B导出的相同分组212,即使IP报头已经改变。因此,至少使用来自所存储的分组数据214C的出口时间戳(叶交换机108B的出口时间戳)和来自所存储的分组数据214D的入口时间戳(叶交换机108C的入口时间戳),计算资源112A可以为分组212确定与服务链设备114A相关联的路径的时延。此外,至少使用来自分组数据214D的时间戳数据,可以计算叶交换机108C的时延。时延可以指示叶交换机108C处理分组并将其导出到服务链设备114B所花费的时间量。
在“5”,叶交换机108D从服务链设备114B接收数据流210的分组212,并将分组212转发到脊交换机110B。在各种示例中,叶交换机108D可以向计算资源112A发送与分组212相关联的分组数据214E。计算资源112A可以存储分组数据214E。分组数据214E可以包括时间戳数据(例如,叶交换机108B的入口和出口时间戳数据)以及以下项中的至少一项:TCP序列号、5元组流、IP报头标识字段等。
当分组212由叶交换机108D接收时,分组212可以包括新的分组报头,并且不容易被计算资源112A识别为由叶交换机108C导出的相同分组212。然而,至少部分地基于所存储的分组数据214D和所存储的分组数据214E,计算资源112A可以确定由叶交换机108D接收的分组212是由叶交换机108C导出的相同分组212,即使IP报头已经改变。因此,至少使用来自所存储的分组数据214D的出口时间戳(叶交换机108C的出口时间戳)和来自所存储的分组数据214E的入口时间戳(叶交换机108D的入口时间戳),计算资源112A可以确定与处理分组212的服务链设备114B相关联的时延。此外,至少使用来自分组数据214E的时间戳数据,可以计算叶交换机108D的时延。时延可以指示叶交换机108D处理分组212并将其转发到脊交换机110B所花费的时间量。
在“6”,脊交换机110B从叶交换机108D接收数据流210的分组212,并将分组212转发到叶交换机108E。在各种示例中,脊交换机110B可以向计算资源112A发送与分组212相关联的分组数据214F。计算资源112A可以存储分组数据214F。分组数据214F可以包括时间戳数据(例如,脊交换机110A的入口和出口时间戳数据)以及以下项中的至少一项:TCP序列号、5元组流、IP报头标识字段等。至少使用时间戳数据,可以计算脊交换机110B的时延。时延可以指示脊交换机110B处理分组并将其转发到叶交换机108E所花费的时间量,和/或可以包括自从分组在叶交换机108D上进入联网计算环境以来的时间量。可以通过确定脊交换机110A接收到分组时的本地时间与分组在叶交换机108D上进入联网计算环境时的时间戳值之间的差来计算时延。
在“7”,叶交换机108E从脊交换机110B接收数据流210的分组212,并将分组212在联网计算环境102外部导出到一个或多个网络122(例如,互联网)。在各种示例中,叶交换机108E可以向计算资源112A发送与分组212相关联的分组数据214G。计算资源112A可以存储分组数据214G。分组数据214G可以包括时间戳数据(例如,叶交换机108A的入口和出口时间戳数据)以及以下项中的至少一项:TCP序列号、5元组流、IP报头标识字段等。至少使用时间戳数据,可以计算叶交换机108E的时延。时延可以指示叶交换机108E处理分组并将其导出到一个或多个网络122所花费的时间量,和/或可以包括自从分组在叶交换机108D上进入联网计算环境以来的时间量。可以通过确定叶交换机108E接收到分组时的本地时间与分组在叶交换机108D上进入联网计算环境时的时间戳值之间的差来计算时延。
此外,计算资源112A可以计算与遍历联网计算环境102的整个数据流210的分组212相关联的端到端时延。可以至少部分地基于对如上所述为数据流210的各个设备和/或分段计算的所有时延求和来计算端到端时延。附加地或替代地,可以通过确定叶交换机108A何时接收到分组212的入口时间戳与叶交换机108E何时将分组212导出到一个或多个网络122的出口时间戳之间的差来计算端到端时延。
图3和图4示出了示例方法的流程图,该示例方法示出了至少部分地由图1-2C中描述的各种设备执行的功能的各方面。本文参考图3和图4描述的逻辑操作可以被实现为(1)在计算系统上运行的计算机实现的动作的序列或程序模块,和/或(2)计算系统内的互连的机器逻辑电路或电路模块。
本文描述的各种组件的实现方式是取决于计算系统的性能和其他要求的选择问题。因此,本文描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任意组合来实现。还应当理解,可以执行比图3和图4所示以及本文所述更多或更少的操作。这些操作也可以并行执行,或者以与本文描述的顺序不同的顺序来执行。这些操作中的一些或全部也可以由不同于那些具体标识的组件来执行。尽管本公开中所描述的技术是参考特定组件的,但在其他示例中,可以通过较少组件、较多组件、不同组件或组件的任何配置来实现这些技术。
图3示出了用于确定与遍历利用服务链的联网计算环境的数据流的分组相关联的时延的示例方法300的流程图。
方法300开始于步骤302,在步骤302期间,从联网计算环境的入口叶交换机接收第一时间戳数据。第一时间戳数据可以指示分组进入联网计算环境的数据流的第一时间。在各种示例中,入口叶交换机可以对应于图1-2C中的叶交换机108A。第一时间戳数据可以由诸如计算资源112A之类的联网计算环境的计算资源接收。附加地或替代地,第一时间戳数据可以由联网计算环境的另一设备接收,例如交换机、路由器、计算机或能够执行软件以确定数据流的分组路径和时延的其他设备。
在304,方法300包括从联网计算环境中的第一中间叶交换机接收与数据流相关联的第一流数据。在一些示例中,第一中间叶交换机可以对应于图1-2C的叶交换机108B或108C。第一流数据可以包括以下项中的一项或多项:VRF表、5元组流数据、入口和/或出口物理接口数据、入口和/或出口逻辑接口数据、服务链配置数据、下一跳信息、TCP序列号、IP报头标识字段等。第一流数据可以由诸如计算资源112A之类的联网计算环境的计算资源接收。
在306,方法300包括至少部分地基于第一流数据来确定第一中间叶交换机被配置为将分组导出到位于联网计算环境外部的服务链设备。例如,第一流数据可以指示与由第一中间叶交换机接收的数据流相关联的分组将被导出到服务链设备。在一些示例中,服务链设备可以对应于图1-2C的服务链设备114A或114B。服务链设备可以包括防火墙、TCP优化器、CGNAT、家长控制、DPI、负载平衡器等。
在308,方法300包括从联网计算环境中的第二中间叶交换机接收与数据流相关联的第二流数据。在一些示例中,第二中间叶交换机可以对应于图1-2C的叶交换机108C或108D。第二流数据可以包括以下项中的一项或多项:VRF表、5元组流数据、入口和/或出口物理接口数据、入口和/或出口逻辑接口数据、服务链配置数据、下一跳信息、TCP序列号、IP报头标识字段等。第二流数据可以由诸如计算资源112A之类的联网计算环境的计算资源接收。
在310,方法300包括至少部分地基于第二流数据来确定第二中间叶交换机在分组从服务链设备返回到联网计算环境时接收到该分组。例如,第二流数据可以指示与由第二中间叶交换机接收的数据流相关联的分组是由服务链设备发送的。附加地或可选地,第二流数据可以包括与第一流数据相对应的数据,例如TCP序列号、5元组流数据、IP报头标识字段等。以此方式,确定第二中间叶交换机接收到分组可以至少部分地基于与第二流数据的第二数据相对应的第一流数据的第一数据。例如,第一数据和第二数据可以包括相同的IP报头标识字段、相同的TCP序列号等。
在312,方法300包括从联网计算环境的出口叶交换机接收指示分组退出联网计算环境的数据流的第二时间的第二时间戳数据。在各种示例中,出口叶交换机可以对应于图1-2C中的叶交换机108N和/或108E。第二时间戳数据可以由诸如计算资源112A之类的联网计算环境的计算资源接收。附加地或替代地,第二时间戳数据可以由联网计算环境的另一设备接收,例如交换机、路由器、计算机或能够执行软件以确定数据流的分组路径和时延的其他设备。
在314,方法300包括至少部分地基于第一时间戳数据和第二时间戳数据来计算与遍历联网计算环境的数据流的分组相关联的时延。例如,可以计算第一时间戳数据和第二时间戳数据之间的差来确定时延。附加地或替代地,与数据流的各种设备和/或分段相关联的各个时延可以被确定,并将其相加在一起以计算时延。
在一些示例中,如果时延大于阈值时延,则导致延长的时延的数据流的一个或多个设备可以被标识。以此方式,可以调整数据流的分组路径以排除导致延长的时延的一个或多个设备,或者可以修复或替换一个或多个设备。
图4示出了用于确定与服务链设备相关联的时延的示例方法400的流程图。方法400可以由以上参考图1-2C所述的一个或多个设备以及图1-2C中未示出的其他设备来实现。
在402,方法400包括从联网计算环境的第一叶交换机接收与数据流相关联的第一流数据。第一流数据可以包括以下项中的一项或多项:VRF表、5元组流数据、入口和/或出口物理接口数据、入口和/或出口逻辑接口数据、服务链配置数据、下一跳信息、TCP序列号、IP报头标识字段等。第一流数据可以指示通过第一叶交换机路由的分组的一个或多个下一跳。
在404,方法400包括从联网计算环境的第二叶交换机接收与数据流相关联的第二流数据。与第一流数据类似,第二流数据可以包括以下项中的一项或多项:VRF表、5元组流数据、入口和/或出口物理接口数据、入口和/或出口逻辑接口数据、服务链配置数据、下一跳信息、TCP序列号、IP报头标识字段等。第二流数据可以指示通过第二叶交换机路由的分组的一个或多个下一跳。
在406,方法400包括至少部分地基于第一流数据和第二流数据来确定与数据流相关联的分组路径,该分组路径指示第一叶交换机被配置为向服务链设备发送分组以及第二叶交换机被配置为从服务链设备接收分组。在一些示例中,服务链设备位于联网计算环境的外部。服务链设备可以包括防火墙、TCP优化器、CGNAT、家长控制、DPI、负载平衡器等。
在408,方法400包括从第一叶交换机接收指示分组被发送到服务链设备的第一时间的第一时间戳数据。例如,第一时间戳数据可以对应于与发送分组的第一叶交换机相关联的出口时间。在410,方法400包括从第二叶交换机接收指示从服务链设备接收分组的第二时间的第二时间戳数据。例如,第二时间戳数据可以对应于与接收分组的第二叶交换机相关联的入口时间。
在412,方法400包括至少部分地基于第一时间戳数据和第二时间戳数据来计算与服务链设备相关联的时延。例如,可以计算第一时间戳数据和第二时间戳数据之间的差,以便确定时延。此外,计算时延还可以至少部分地基于与数据流相关联的分组路径。例如,当分组被第二叶交换机接收时,该分组可以包括新的分组报头,并且IP报头标识字段、TCP序列号等可以用于确定所接收的分组是由第一叶交换机发送到服务链设备的相同分组。此外,计算时延还可以至少部分地基于从第一叶交换机和第二叶交换机接收与分组相关联的分组标识数据。在一些示例中,分组标识数据可以包括5元组流数据、TCP序列号、IP报头标识字段等。
图5的计算系统图示出了可以用于实现本文所公开的技术的各方面的数据中心500的配置。图5所示的示例数据中心500包括用于提供计算资源的若干个服务器计算机502A-502F(其在本文中可以以单数形式称为“服务器计算机502”或以复数形式称为“服务器计算机502”)。在一些示例中,资源和/或服务器计算机502可以包括或对应于本文所述的任何类型的计算设备。尽管被描述为服务器,但是服务器计算机502可以包括任何类型的联网设备,例如服务器、交换机、路由器、集线器、网桥、网关、调制解调器、中继器、接入点等。
服务器计算机502可以是被适当地配置用于提供计算资源的标准塔式、机架安装式或刀片式服务器计算机。在一些示例中,服务器计算机502可以提供包括数据处理资源(例如,VM实例或硬件计算系统、数据库集群、计算集群、存储集群、数据存储资源、数据库资源、网络资源、VPN等)的计算资源504。一些服务器502还可以被配置为执行能够实例化和/或管理计算资源的资源管理器506。例如,在VM实例的情况下,资源管理器506可以是管理程序或被配置为使得能够在单个服务器计算机502上执行多个VM实例的其他类型的程序。数据中心500中的服务器计算机502还可以被配置为提供网络服务和其他类型的服务。
在图5所示的示例数据中心500中,还利用适当的LAN 508来互连服务器计算机502A-502F。应当理解,本文描述的配置和网络拓扑已经被大大简化,并且可以利用更多的计算系统、软件组件、网络和联网设备来互连本文公开的各种计算系统并提供上述功能。还可以利用适当的负载平衡设备或其他类型的网络基础设施组件来平衡数据中心500之间、每个数据中心500中的每个服务器计算机502A-502F之间以及潜在地每个服务器计算机502中的计算资源之间的负载。应当理解,参考图5描述的数据中心500的配置仅仅是说明性的,并且可以利用其他实现方式。
在某些情况下,数据中心500可以永久地或按需地提供计算资源,如分组路径可见性、分组丢失、时延测量结果、VM实例、VPN实例和存储。在其他类型的功能中,由云计算网络提供的计算资源可以用于实现上述各种服务和技术。由云计算网络提供的计算资源504可以包括各种类型的计算资源,例如像租户容器和VM实例的数据处理资源、数据存储资源、联网资源、数据通信资源、网络服务、VPN实例等。
由云计算网络提供的每种类型的计算资源504可以是通用的,或者可以在多个特定配置中可用。例如,数据处理资源可以用作多种不同配置中的物理计算机或VM实例。VM实例可以被配置为执行应用,包括web服务器、应用服务器、介质服务器、数据库服务器、上述网络服务中的一些或全部、和/或其他类型的程序。数据存储资源可以包括文件存储设备、块存储设备等。云计算网络还可以被配置为提供本文未具体提及的其他类型的计算资源504。
由云计算网络提供的计算资源504在一个实施例中可以由一个或多个数据中心500(其在本文中可以以单数形式称为“数据中心500”或以复数形式称为“数据中心500”)启用。数据中心500是用于容纳和操作计算机系统和相关组件的设施。数据中心500通常包括冗余和备用电源、通信、冷却和安全系统。数据中心500也可以位于地理上不同的位置。以下将参考图6来描述可以用于实现本文所公开的技术的数据中心500的一个说明性实施例。
图6的计算机架构图示出了用于实现计算设备的示例计算机硬件架构600,该计算设备可以用于实现本文所呈现的各种技术的各方面。图6所示的计算机硬件架构600示出了常规服务器计算机502、计算资源112A-112N、网络设备(例如,叶交换机108A-108N、脊交换机110A-110N、服务链设备114A-114N等)、工作站、台式计算机、膝上型计算机、平板计算机、网络装备、电子阅读器、智能电话或其他计算设备,并且可以用于执行本文所呈现的任何软件组件。在一些示例中,计算机600可以对应于本文所描述的网络设备102,并且可以包括诸如服务器、交换机、路由器、集线器、网桥、网关、调制解调器、中继器、接入点等之类的联网设备。
计算机600包括基板602或“母板”,其为印刷电路板,多个组件或设备可以通过系统总线或其他电通信路径连接到上述印刷电路板。在一种说明性配置中,一个或多个中央处理单元(“CPU”)604与芯片组606一起操作。CPU 604可以是执行计算机600的操作所需的算术和逻辑操作的标准可编程处理器。
CPU 604通过经由操纵在这些状态之间区分并改变这些状态的开关元件从一个离散的物理状态转变到下一个状态来执行操作。开关元件通常包括维持两个二进制状态之一的电子电路,例如触发器,以及基于一个或多个其他开关元件(例如,逻辑门)的状态的逻辑组合来提供输出状态的电子电路。这些基本开关元件可以被组合以创建更复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。
芯片组606提供CPU 604与基板602上的剩余组件和设备之间的接口。芯片组606可以提供到RAM 608的接口,RAM 608用作计算机600中的主存储器。芯片组606还可以提供到诸如只读存储器(“ROM”)610或非易失性RAM(“NVRAM”)之类的计算机可读存储介质的接口,这些介质用于存储帮助启动计算机600并在各种组件和设备之间传送信息的基本例程。根据本文所述的配置,ROM 610或NVRAM还可以存储计算机600的操作所需的其他软件组件。
计算机600可以在使用通过网络(例如,网络106)到远程计算设备和计算机系统的逻辑连接的网络化环境中操作。芯片组606可以包括用于通过网络接口控制器(NIC)612(例如,千兆以太网适配器)提供网络连接的功能。NIC 612能够通过网络106将计算机600连接到其他计算设备。应当理解,多个NIC 612可以存在于计算机600中,将计算机连接到其他类型的网络和远程计算机系统。在一些示例中,NIC 612可以被配置为执行本文所述的技术中的至少一些,例如分组重定向和/或本文所述的其他技术。
计算机600可以连接到为计算机提供非易失性存储的存储设备618。存储设备618可以存储操作系统620、程序622和数据,本文已经对其进行了更详细的描述。存储设备618可以通过连接到芯片组606的存储控制器614连接到计算机600。存储设备618可以包括一个或多个物理存储单元。存储控制器614可以通过以下接口与物理存储单元相对接:串行连接SCSI(“SAS”)接口、串行高级技术连接(“SATA”)接口、光纤信道(“FC”)接口或用于在计算机和物理存储单元之间进行物理连接和传送数据的其他类型的接口。
计算机600可以通过转换物理存储单元的物理状态以反映所存储的信息来将数据存储在存储设备618上。在本说明书的不同实施例中,物理状态的特定转换可以取决于各种因素。这些因素的示例可以包括但不限于用于实现物理存储单元的技术、存储设备618是被表征为主存储装置还是辅助存储装置等。
例如,计算机600可以通过经由存储控制器614发出指令来将信息存储到存储设备618,以改变磁盘驱动单元内的特定位置的磁特性、光存储单元中的特定位置的反射或折射特性、或固态存储单元中的特定电容器、晶体管或其他分立组件的电特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他变换也是可能的,提供前述示例仅是为了便于说明。计算机600还可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来从存储设备618读取信息。
除了上述大容量存储设备618之外,计算机600还可以访问其他计算机可读存储介质以存储和检索信息,例如程序模块、数据结构或其他数据。本领域技术人员应当理解,计算机可读存储介质是提供数据的非暂时性存储并且可以由计算机600访问的任何可用介质。在一些示例中,由网络106和/或其中包括的任何组件执行的操作可以由类似于计算机600的一个或多个设备所支持。换句话说,由网络106和/或其中包括的任何组件执行的一些或全部操作可以由在基于云的布置中操作的一个或多个计算机设备600来执行。
作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪存或其他固态存储器技术、压缩盘ROM(“CD-ROM”)、数字多功能盘(“DVD”)、高清晰度DVD(“HD-DVD”)、BLU-RAY、或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或可以用于以非暂时性方式存储所需信息的任何其他介质。
如上简述,存储设备618可以存储用于控制计算机600的操作的操作系统620。根据一个实施例,操作系统包括LINUX操作系统。根据另一实施例,操作系统包括来自华盛顿州雷蒙德市的MICROSOFT公司的SERVER操作系统。根据另外的实施例,操作系统可以包括UNIX操作系统或其变体之一。应当理解,也可以使用其他操作系统。存储设备618可以存储计算机600所使用的其他系统或应用程序和数据。
在一个实施例中,存储设备618或其他计算机可读存储介质被编码有计算机可执行指令,这些指令在被加载到计算机600中时,将计算机从通用计算系统转换为能够实现本文所述实施例的专用计算机。如上所述,这些计算机可执行指令通过指定CPU 604如何在各状态之间转换来转换计算机600。根据一个实施例,计算机600可访问存储计算机可执行指令的计算机可读存储介质,这些计算机可执行指令在由计算机600执行时,执行以上关于图1-4描述的各种过程。计算机600还可以包括其上存储有指令的计算机可读存储介质,这些指令用于执行本文所述的任何其他计算机实现的操作。
计算机600还可以包括一个或多个输入/输出控制器616,用于接收和处理来自诸如键盘、鼠标、触摸板、触摸屏、电子指示笔或其他类型的输入设备之类的多个输入设备的输入。类似地,输入/输出控制器616可以向诸如计算机监视器、平板显示器、数字投影仪、打印机或其他类型的输出设备之类的显示器提供输出。应当理解,计算机600可以不包括图6所示的所有组件,可以包括图6中未明确示出的其他组件,或者可以利用与图6所示完全不同的架构。
如本文所述,计算机600可以包括客户端设备106或网络设备(例如,服务器计算机502、计算资源114、路由器110等)中的一个或多个。计算机600可以包括被配置为执行一个或多个存储的指令的一个或多个硬件处理器604(处理器)。(一个或多个)处理器604可以包括一个或多个核心。此外,计算机600可以包括一个或多个网络接口,这些网络接口被配置为提供计算机600和其他设备之间的通信,例如本文描述的由客户端设备106和计算资源114执行的通信。网络接口可以包括被配置为耦合到个人局域网(PAN)、有线和无线局域网(LAN)、有线和无线广域网(WAN)等的设备。例如,网络接口可以包括与以太网、Wi-FiTM等兼容的设备。
程序622可以包括执行本公开中描述的技术的任何类型的程序或过程,用于确定与利用服务链的联网计算环境的数据流相关联的分组路径可见性、分组丢失和时延测量结果。程序622可以使得叶交换机108、脊交换机110和/或计算资源112能够执行各种操作。
综上所述,本文公开了用于确定与联网计算环境的数据流相关联的分组路径可见性、分组丢失和时延测量结果的技术。这些技术可以包括接收与联网计算环境的数据流相关联的流数据并确定与该数据流相关联的分组路径。分组路径可以指示第一叶交换机被配置为向服务链设备发送分组,以及第二叶交换机被配置为从服务链设备接收分组。这些技术还可以包括接收时间戳数据,该时间戳数据指示第一叶交换机向服务链设备发送分组的第一时间和第二叶交换机从服务链设备接收分组的第二时间。至少部分地基于时间戳数据,可以计算与服务链设备相关联的时延。
虽然本发明是参考具体示例来描述的,但是应当理解,本发明的范围不限于这些具体示例。由于对于本领域的技术人员来说,为适应特定的操作要求和环境而改变的其他修改和变化将是显而易见的,因此本发明不被认为限于出于公开的目的而选择的示例,而是覆盖不构成背离本发明的真实精神和范围的所有变化和修改。
尽管本申请描述了具有特定结构特征和/或方法动作的实施例,但是应当理解,权利要求不一定限于所描述的特定特征或动作。相反,特定特征和动作仅是落在本申请的权利要求的范围内的说明性的一些实施例。
Claims (25)
1.一种方法,包括:
从联网计算环境的入口叶交换机接收第一时间戳数据,所述第一时间戳数据指示分组进入所述联网计算环境的数据流的第一时间;
从所述联网计算环境中的第一中间叶交换机接收与所述数据流相关联的第一流数据;
至少部分地基于所述第一流数据,确定所述第一中间叶交换机被配置为将所述分组导出到位于所述联网计算环境外部的服务链设备;
从所述联网计算环境中的第二中间叶交换机接收与所述数据流相关联的第二流数据;
至少部分地基于所述第二流数据,确定所述第二中间叶交换机在所述分组从所述服务链设备返回到所述联网计算环境时接收到所述分组;
从所述联网计算环境的出口叶交换机接收第二时间戳数据,所述第二时间戳数据指示所述分组退出所述联网计算环境的数据流的第二时间;以及
至少部分地基于所述第一时间戳数据和所述第二时间戳数据,计算与所述分组遍历所述联网计算环境的数据流相关联的时延。
2.根据权利要求1的方法,还包括:
从所述入口叶交换机接收与所述数据流相关联的第三流数据;
从所述出口叶交换机接收与所述数据流相关联的第四流数据;
至少部分地基于所述第一流数据、所述第二流数据、所述第三流数据和所述第四流数据,确定与所述分组遍历所述联网计算环境的数据流相关联的分组路径;并且
其中,计算所述时延还至少部分地基于所述分组路径。
3.根据权利要求1或2所述的方法,还包括:
从所述第一中间叶交换机接收第三时间戳数据,所述第三时间戳数据指示所述第一中间叶交换机将所述分组导出到所述服务链设备的第三时间;
从所述第二中间叶交换机接收第四时间戳数据,所述第四时间戳数据指示所述第二中间叶交换机从所述服务链设备接收到所述分组的第四时间;以及
计算与将所述分组导出到所述服务链设备相关联的第二时延。
4.根据权利要求1至3中任一项所述的方法,其中,所述第一流数据和所述第二流数据包括以下项中的至少一项:TCP序列号、互联网协议(IP)报头标识字段或5元组流。
5.根据权利要求1至4中任一项所述的方法,其中,所述第一流数据和所述第二流数据包括以下项中的至少一项:虚拟路由和转发表(VRF)、入口接口或出口接口,所述方法还包括至少部分地基于所述第一流数据和所述第二流数据来确定与所述分组遍历所述联网计算环境的数据流相关联的分组路径。
6.根据权利要求1至5中任一项所述的方法,其中,所述第一流数据包括第一服务链配置,并且所述第二流数据包括第二服务链配置,所述第一服务链配置指示所述第一中间叶交换机被配置为将所述分组导出到所述服务链设备,并且所述第二服务链配置指示所述第二中间叶交换机被配置为从所述服务链设备接收所述分组。
7.一种系统,包括:
一个或多个处理器;以及
一个或多个非暂时性计算机可读介质,所述一个或多个非暂时性计算机可读介质存储指令,所述指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器执行操作,所述操作包括:
从联网计算环境的第一叶交换机接收与数据流相关联的第一流数据;
从所述联网计算环境的第二叶交换机接收与所述数据流相关联的第二流数据;
至少部分地基于所述第一流数据和所述第二流数据,确定与所述数据流相关联的分组路径,所述分组路径指示所述第一叶交换机被配置为向服务链设备发送分组,并且所述第二叶交换机被配置为从所述服务链设备接收所述分组,其中,所述服务链设备位于所述联网计算环境的外部;
从所述第一叶交换机接收第一时间戳数据,所述第一时间戳数据指示分组被发送到所述服务链设备的第一时间;
从所述第二叶交换机接收第二时间戳数据,所述第二时间戳数据指示从所述服务链设备接收到所述分组的第二时间;以及
至少部分地基于所述第一时间戳数据和所述第二时间戳数据,计算与所述服务链设备相关联的时延。
8.根据权利要求7所述的系统,所述操作还包括:
从所述第一叶交换机接收与所述分组相关联的标识数据;
至少部分地基于所述标识数据,确定所述第二叶交换机从所述服务链设备接收到所述分组;以及
至少部分地基于确定所述第二叶交换机接收到所述分组,将所述第二时间戳数据与所述分组相关联。
9.根据权利要求8所述的系统,其中,所述标识数据包括以下项中的至少一项:TCP序列号、互联网协议(IP)报头标识字段或5元组流。
10.根据权利要求7至9中任一项所述的系统,其中,所述分组在由所述第一叶交换机发送到所述服务链设备时包括第一分组报头,所述第一分组报头包括所述第一时间戳数据,并且其中,所述分组在由所述第二叶交换机从所述服务链设备接收时包括不同于所述第一分组报头的第二分组报头,所述第二分组报头包括所述第二时间戳数据。
11.根据权利要求7至10中任一项所述的系统,其中,所述时延包括第一时延,所述操作还包括:
从所述第一叶交换机接收第三时间戳数据,所述第三时间戳数据指示与所述第一叶交换机相关联的第二时延;
从所述第二叶交换机接收第四时间戳数据,所述第四时间戳数据指示与所述第二叶交换机相关联的第三时延;以及
至少部分地基于所述第一时延、所述第二时延和所述第三时延,计算与所述分组遍历所述数据流相关联的端到端时延。
12.根据权利要求7至11中任一项所述的系统,其中,所述第一流数据或所述第二流数据中的至少一者包括以下项中的至少一项:虚拟路由和转发表(VRF)、入口接口、出口接口或5元组流。
13.根据权利要求7至12中任一项所述的系统,其中,所述第一流数据包括第一服务链配置,并且所述第二流数据包括第二服务链配置,所述第一服务链配置指示所述第一叶交换机被配置为向所述服务链设备发送所述分组,并且所述第二服务链配置指示所述第二叶交换机被配置为从所述服务链设备接收所述分组。
14.一种方法,包括:
从联网计算环境的一个或多个叶交换机接收与数据流相关联的流数据;
至少部分地基于所述流数据来确定与所述数据流相关联的分组路径,所述分组路径指示所述一个或多个叶交换机中的第一叶交换机被配置为向服务链设备发送分组,以及所述一个或多个叶交换机中的第二叶交换机被配置为从所述服务链设备接收所述分组,其中,所述服务链设备位于所述联网计算环境的外部;
接收第一时间戳数据,所述第一时间戳数据指示所述第一叶交换机向所述服务链设备发送分组的第一时间;
接收第二时间戳数据,所述第二时间戳数据指示所述第二叶交换机从所述服务链设备接收到所述分组的第二时间;以及
至少部分地基于所述第一时间戳数据和所述第二时间戳数据,计算与所述服务链设备相关联的时延。
15.根据权利要求14所述的方法,还包括:
从所述第一叶交换机接收与所述分组相关联的标识数据;
至少部分地基于所述标识数据,确定所述第二叶交换机从所述服务链设备接收到所述分组;以及
至少部分地基于确定所述第二叶交换机接收到所述分组,将所述第二时间戳数据与所述分组相关联。
16.根据权利要求15所述的方法,其中,所述标识数据包括以下项中的至少一项:TCP序列号、互联网协议(IP)报头标识字段或5元组流。
17.根据权利要求14至16中任一项所述的方法,其中,所述分组在由所述第一叶交换机发送到所述服务链设备时包括第一分组报头,所述第一分组报头包括所述第一时间戳数据,并且其中,所述分组在由所述第二叶交换机从所述服务链设备接收时包括不同于所述第一分组报头的第二分组报头,所述第二分组报头包括所述第二时间戳数据。
18.根据权利要求14至17中任一项所述的方法,其中,所述时延包括第一时延,所述方法还包括:
确定与所述第一叶交换机相关联的第二时延;
确定与所述第二叶交换机相关联的第三时延;以及
至少部分地基于所述第一时延、所述第二时延和所述第三时延,计算与所述分组遍历所述数据流相关联的端到端时延。
19.根据权利要求14至18中任一项所述的方法,其中,所述流数据包括以下项中的至少一项:虚拟路由和转发表(VRF)、入口接口、出口接口或5元组流。
20.根据权利要求14至19中任一项所述的方法,其中,所述流数据包括与所述一个或多个叶交换机相关联的服务链配置,所述服务链配置指示所述第一叶交换机被配置为向所述服务链设备发送所述分组以及所述第二叶交换机被配置为从所述服务链设备接收所述分组。
21.一种装置,包括:
用于从联网计算环境的入口叶交换机接收第一时间戳数据的模块,所述第一时间戳数据指示分组进入所述联网计算环境的数据流的第一时间;
用于从所述联网计算环境中的第一中间叶交换机接收与所述数据流相关联的第一流数据的模块;
用于至少部分地基于所述第一流数据来确定所述第一中间叶交换机被配置为将所述分组导出到位于所述联网计算环境外部的服务链设备的模块;
用于从所述联网计算环境中的第二中间叶交换机接收与所述数据流相关联的第二流数据的模块;
用于至少部分地基于所述第二流数据来确定所述第二中间叶交换机在所述分组从所述服务链设备返回到所述联网计算环境时接收到所述分组的模块;
用于从所述联网计算环境的出口叶交换机接收第二时间戳数据的模块,所述第二时间戳数据指示所述分组退出所述联网计算环境的数据流的第二时间;以及
用于至少部分地基于所述第一时间戳数据和所述第二时间戳数据来计算与所述分组遍历所述联网计算环境的数据流相关联的时延的模块。
22.根据权利要求21所述的装置,还包括用于实现根据权利要求2至6中任一项所述的方法的模块。
23.一种装置,包括:
用于从联网计算环境的一个或多个叶交换机接收与数据流相关联的流数据的模块;
用于至少部分地基于所述流数据来确定与所述数据流相关联的分组路径的模块,所述分组路径指示所述一个或多个叶交换机中的第一叶交换机被配置为向服务链设备发送分组,以及所述一个或多个叶交换机中的第二叶交换机被配置为从所述服务链设备接收所述分组,其中,所述服务链设备位于所述联网计算环境的外部;
用于接收第一时间戳数据的模块,所述第一时间戳数据指示所述第一叶交换机向所述服务链设备发送分组的第一时间;
用于接收第二时间戳数据的模块,所述第二时间戳数据指示所述第二叶交换机从所述服务链设备接收到所述分组的第二时间;以及
用于至少部分地基于所述第一时间戳数据和所述第二时间戳数据来计算与所述服务链设备相关联的时延的模块。
24.根据权利要求23所述的装置,还包括用于实现根据权利要求15至20中任一项所述的方法的模块。
25.一种包括指令的计算机程序、计算机程序产品或计算机可读介质,所述指令在由计算机执行时,使得所述计算机执行根据权利要求1至6或权利要求14至20中任一项所述的方法的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/918,658 US11418453B2 (en) | 2020-07-01 | 2020-07-01 | Path visibility, packet drop, and latency measurement with service chaining data flows |
US16/918,658 | 2020-07-01 | ||
PCT/US2021/038947 WO2022005873A1 (en) | 2020-07-01 | 2021-06-24 | Path visibility, packet drop, and latency measurement with service chaining data flows |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115769556A true CN115769556A (zh) | 2023-03-07 |
Family
ID=77338752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180047118.8A Pending CN115769556A (zh) | 2020-07-01 | 2021-06-24 | 服务链数据流的路径可见性、分组丢失和时延测量结果 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11418453B2 (zh) |
EP (1) | EP4176570A1 (zh) |
CN (1) | CN115769556A (zh) |
WO (1) | WO2022005873A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10897420B1 (en) * | 2018-12-28 | 2021-01-19 | Juniper Networks, Inc. | Service chaining among devices of interconnected topology |
US11418453B2 (en) * | 2020-07-01 | 2022-08-16 | Cisco Technology, Inc. | Path visibility, packet drop, and latency measurement with service chaining data flows |
CN114710424B (zh) * | 2022-03-10 | 2024-05-14 | 福州大学 | 基于软件定义网络的主机侧数据包处理延时测量方法 |
US11665131B1 (en) | 2022-09-13 | 2023-05-30 | Cisco Technology, Inc. | Stateful redundancy for deterministic carrier-grade network address translation (NAT) services |
US20240098007A1 (en) * | 2022-09-20 | 2024-03-21 | T-Mobile Usa, Inc. | On-device latency detection |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8116200B2 (en) * | 2007-03-16 | 2012-02-14 | Cisco Technology, Inc. | Source routing approach for network performance and availability measurement of specific paths |
JP6134622B2 (ja) * | 2013-09-24 | 2017-05-24 | 株式会社日立製作所 | 通信システム及び時刻同期方法 |
US9491094B2 (en) | 2013-09-25 | 2016-11-08 | Cisco Techonology, Inc. | Path optimization in distributed service chains in a network environment |
US9876711B2 (en) * | 2013-11-05 | 2018-01-23 | Cisco Technology, Inc. | Source address translation in overlay networks |
WO2015072898A1 (en) * | 2013-11-13 | 2015-05-21 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and devices for media processing in distributed cloud |
US9479409B2 (en) * | 2014-08-18 | 2016-10-25 | Telefonaktiebolaget L M Ericsson (Publ) | Passive reachability measurement for inline service chaining |
US9705775B2 (en) * | 2014-11-20 | 2017-07-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Passive performance measurement for inline service chaining |
US9667518B2 (en) * | 2015-09-11 | 2017-05-30 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for delay measurement of a traffic flow in a software-defined networking (SDN) system |
US10177995B2 (en) * | 2016-07-26 | 2019-01-08 | Cisco Technology, Inc. | Scalable service level agreement (SLA) verification and action using a data plane |
US20190349268A1 (en) * | 2017-02-13 | 2019-11-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for dynamic service chaining with segment routing for bng |
CN110914051A (zh) | 2017-03-13 | 2020-03-24 | 韩华阿兹代尔股份有限公司 | 包括增强的热塑性表面层和芯层的多层配件 |
US10277493B2 (en) * | 2017-05-12 | 2019-04-30 | Ciena Corporation | Packet throughput and loss ratio measurements of a service function chain |
US10742532B2 (en) * | 2017-12-18 | 2020-08-11 | Futurewei Technologies, Inc. | Non-intrusive mechanism to measure network function packet processing delay |
US11418453B2 (en) * | 2020-07-01 | 2022-08-16 | Cisco Technology, Inc. | Path visibility, packet drop, and latency measurement with service chaining data flows |
-
2020
- 2020-07-01 US US16/918,658 patent/US11418453B2/en active Active
-
2021
- 2021-06-24 CN CN202180047118.8A patent/CN115769556A/zh active Pending
- 2021-06-24 WO PCT/US2021/038947 patent/WO2022005873A1/en unknown
- 2021-06-24 EP EP21755104.3A patent/EP4176570A1/en active Pending
-
2022
- 2022-07-13 US US17/863,672 patent/US20220353191A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11418453B2 (en) | 2022-08-16 |
WO2022005873A1 (en) | 2022-01-06 |
US20220006747A1 (en) | 2022-01-06 |
US20220353191A1 (en) | 2022-11-03 |
EP4176570A1 (en) | 2023-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115769556A (zh) | 服务链数据流的路径可见性、分组丢失和时延测量结果 | |
US10374900B2 (en) | Updating a virtual network topology based on monitored application data | |
US10257066B2 (en) | Interconnect congestion control in a storage grid | |
US11716274B2 (en) | Determining node behavior in deterministic networks | |
US20140086065A1 (en) | Disjoint multi-paths with service guarantee extension | |
WO2014166385A1 (en) | Fabric multipathing based on dynamic latency-based calculations | |
CN117716675A (zh) | 用动态软件定义云互连(sdci)隧道选择端到端路径 | |
US20180167337A1 (en) | Application of network flow rule action based on packet counter | |
CN116391350A (zh) | 使用安全参数索引值维护分组的服务质量处理 | |
CN112242986B (zh) | 用于视频流的流级切换的装置、系统和方法 | |
US11979284B2 (en) | Orchestrated reconnect for client-unaware rolling of network nodes | |
US11991084B2 (en) | AI-assisted WAN link selection for SD-WAN services | |
WO2022119749A1 (en) | Telemetry data optimization for path tracing and delay measurement | |
CN111131319A (zh) | 安全能力扩展方法、装置、电子设备及存储介质 | |
EP4262150A1 (en) | Layer-3 policy enforcement for layer-7 data flows | |
US11888752B2 (en) | Combining networking technologies to optimize wide area network traffic | |
US11996981B2 (en) | Options template transport for software defined wide area networks | |
US20240214319A1 (en) | Proxy state signaling for network optimizations | |
US20240146643A1 (en) | Virtual testing of network resiliency | |
WO2017058137A1 (en) | Latency tracking metadata for a network switch data packet | |
EP4397008A1 (en) | Orchestrated reconnect for client-unaware rolling of network nodes | |
WO2024118945A1 (en) | Service optimization in networks and cloud interconnects | |
WO2024019889A1 (en) | Workload migration for multipath routed network sessions | |
CN116615898A (zh) | 使用安全参数索引值维护分组的服务质量处理 | |
WO2024035845A1 (en) | Options template transport for software defined wide area network |
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 |