CN116569531A - 用于路径跟踪和延迟测量的遥测数据优化 - Google Patents
用于路径跟踪和延迟测量的遥测数据优化 Download PDFInfo
- Publication number
- CN116569531A CN116569531A CN202180080806.4A CN202180080806A CN116569531A CN 116569531 A CN116569531 A CN 116569531A CN 202180080806 A CN202180080806 A CN 202180080806A CN 116569531 A CN116569531 A CN 116569531A
- Authority
- CN
- China
- Prior art keywords
- node
- packet
- network
- telemetry data
- timestamp
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文描述了用于优化与网络路径跟踪和网络延迟测量相关的技术的技术。一些技术可以包括使用IPv6报头选项和/或分段列表的分段标识符字段或分段路由报头的TLV作为遥测数据载体。这些技术还可以包括使用SRv6微分段(uSID)指令向网络的节点指示该节点将执行一个或多个路径跟踪动作以及对分组进行封装和转发。另外,这些技术可以包括使用与节点接口对应的短接口标识符来跟踪通过网络的分组路径。此外,这些技术可以包括使用短时间戳来确定与发送分组通过网络相关联的延迟测量。在各种示例中,以上和本文描述的技术可以彼此一起使用,以优化网络路径跟踪和延迟测量技术。
Description
相关申请的交叉引用
本申请要求于2021年6月10日提交的第17/344,443号美国专利申请的优先权,该申请要求于2020年12月1日提交的第63/119,938号、第63/119,964号、第63/119,992号及第63/120,002号美国临时专利申请的优先权。以上列出的每个临时申请的全部内容通过引用并入本文,并用于所有目的。
技术领域
本公开总体而言涉及改进的网络路径跟踪和延迟测量技术。
背景技术
路径跟踪解决方案和数据平面监视技术可以改进网络运营商对其底层网络的可见性。这些解决方案从流量流中的每个节点收集当分组遍历节点时与节点相关联的各种信息,例如设备标识符、端口标识符等。当分组穿越网络时,收集的信息可以作为遥测数据与分组一起传播,并且可以用于确定分组通过网络的实际路径。常规的网络遥测解决方案通常使用从24位到128位的任何位来表示设备或节点标识符(例如,IP地址、分段标识符等),以及使用16位来表示设备或节点的入口/出口端口。
类似地,延迟测量解决方案允许网络运营商表征遍历网络的分组所经历的延迟。这些延迟测量解决方案可以提供端到端以及每跳延迟测量。提供端到端和每跳延迟测量的传统延迟测量解决方案通常需要从通过网络接收和/或转发分组的每个节点收集时间戳。与上述类似,当分组穿越网络时,所收集的时间戳也可以作为遥测数据与分组一起传输。然而,这些传统的延迟测量解决方案通常使用具有64位结构的标准时间戳格式,其中32个最高有效字节表示自纪元(epoch)以来的秒,而32个最低有效位表示精确到纳秒或皮秒的秒内分数。
然而,这些传统的网络遥测和延迟测量解决方案所使用的位数远远高于实际需要的位数。此外,遥测数据通常从接收和/或转发分组的每个节点收集,因此导致许多问题,例如显著的开销、超过设备或节点硬件限制、网络利用的增加、至少部分基于大的最大传输单元(MTU)大小的分组丢失等等。此外,用于在分组内承载上述收集的信息和时间戳作为遥测数据的传统解决方案在不同类型的网络设备上可能不同。
附图说明
下面参考附图给出详细说明。在附图中,附图标记的最左边的(一个或多个)数字表示附图标记首次出现的附图。在不同附图中使用相同的附图标记来表示相似或相同的项。在附图中描绘的系统不是按比例绘制的,并且在附图中的组件可能彼此未按比例绘制。
图1示出了网络的示例系统架构的示意图,在该架构中可以实现本文描述的技术。
图2A和图2B是示出示例分组结构的框图,这些示例分组结构可用于承载遥测数据和/或对节点编程以执行路径跟踪动作。
图3A是示出正在被用于承载压缩中点数据(CMD)的分组的示例遥测数据载体的框图。
图3B示出了示例64位完整时间戳。本文描述的示例性短时间戳可以包括完整时间戳的一个或多个位,并且图3B中所示的短时间戳是8位时间戳。
图4A和4B共同示出了网络节点和/或设备之间的示例流量流,以执行本文描述的用于优化遥测数据收集的一些技术。
图5是示出可以至少部分地由网络节点执行以将遥测数据附加到分组的示例方法的逻辑流程图。
图6是示出可以至少部分地由网络节点执行以执行一个或多个路径跟踪动作的示例方法的逻辑流程图。
图7是示出示例方法的逻辑流程图,该方法可以至少部分地由网络的控制器或收集器执行以确定分组遍历网络的路径。
图8是示出示例性方法的逻辑流程图,该示例性方法可至少部分地由网络的控制器或收集器执行以确定与发送分组通过网络相关联的延迟测量。
图9是可以用于实现本文所公开的技术的各方面的数据中心的示例配置的系统架构图。
图10是计算机架构图,示出了可被利用来实现本文提出的各种技术的各方面的节点和/或计算设备的示例计算机硬件架构。
具体实施方式
概述
本发明的各方面在独立权利要求中阐述,优选特征在从属权利要求中阐述。一个方面的特征可以单独地或与其他方面结合地应用于每个方面。
本公开描述的系统和方法,除其他外,改进了与网络路径跟踪和网络延迟测量相关的技术的系统和方法。作为示例而非限制,根据本公开中所描述的各种技术的方法可以包括在网络的第一节点处接收要发送到网络的至少第二节点的分组。在各种示例中,分组可以包括第一指示,该第一指示指明第一节点要附加到分组(例如,插入、更新等)的特定类型的遥测数据(例如,接口标识数据、时间戳数据、节点标识数据等)。分组还可以包括第二指示,该第二指示指明分组的分段路由报头的分段标识符(SID)列表内的第一位置,其中第一节点在该第一位置处要附加特定类型的遥测数据。附加地或替代地,分组可以包括对分组的逐跳(HbH)选项报头内的位置的指示,其中第一节点要在该位置处附加特定类型的遥测数据。附加地或替代地,分组可以包括对分组的分段路由报头(SRH)的TLV内的位置的指示,其中第一节点要在该位置处附加特定类型的遥测数据。该方法还可以包括由第一节点并且至少部分地基于第一指示来确定与第一节点相关联的特定类型的第一遥测数据。此外,该方法可以包括由第一节点并且至少部分地基于第二指示,在分组的SRH的SID列表或IPv6逐跳选项和/或TLV内的第一位置处附加第一遥测数据。在一些示例中,第一节点可以修改分组的第二指示以指示SID列表内的第二位置,其中第二节点要在该位置处附加与第二节点或分组的SRH的逐跳选项和/或TLV相关联的特定类型的第二遥测数据。此外,第一节点可以将分组发送到第二节点,该分组包括第一遥测数据和指示第二位置的第二指示。在一些示例中,第一节点还可以发送指示遥测数据的格式的指示。
在一些示例中,该方法可以包括在网络的第二节点处接收分组,并且由第二节点确定该分组包括IPv6微分段(uSID)指令的分段路由,该指令被配置为提示第二节点执行路径跟踪动作。因此,该方法还可包括由第二节点至少部分地基于读取SRv6 uSID指令来执行路径跟踪动作,在一些示例中,路径跟踪动作包括确定与第二节点相关联的特定类型的第二遥测数据以及在分组的SRH的SID列表或逐跳选项和/或TLV内的第二位置处附加(插入或更新)第二遥测数据。例如,路径跟踪动作可以包括确定时间戳数据或接口标识数据和/或将时间戳数据或接口标识数据附加到分组,将新的封装添加在分组上,以及将分组发送到被配置为执行操作、管理和维护(OAM)动作的网络控制器或收集器。
在一些示例中,该方法可以包括在控制器或收集器处接收遥测数据。在一些示例中,遥测数据可包括与网络的第一节点相关联的第一接口标识符。第一接口标识符可以指示用来接收分组和/或将分组发送到第二节点的第一节点的第一接口。在一些示例中,遥测数据还可以包括与网络的第二节点相关联的第二接口标识符。第二接口标识符可以指示用来从第一节点接收分组和/或发送分组的第二节点的第二接口。该方法还可以包括至少部分地基于遥测数据确定通过网络的路径,根据该路径发送了分组,该路径至少包括第一节点和第二节点。至少部分地基于路径,该方法可以包括确定网络中是否存在异常。
在一些示例中,遥测数据可以附加地或替代地包括第一完整时间戳,该第一完整时间戳指示分组被第一节点处理(例如,接收、发送、修改等)的第一时间。此外,遥测数据还可以包括表示第二完整时间戳的一部分的短时间戳,该第二完整时间戳指示分组被第二节点处理的第二时间。该方法还可以包括至少部分地基于第一完整时间戳和短时间戳来确定第二完整时间戳,以及至少部分地基于第一完整时间戳和第二完整时间戳来计算与发送分组通过网络相关联的时延。
另外,本文描述的技术可以作为一种方法和/或由具有存储计算机可执行指令的非暂时性计算机可读介质的系统来执行,所述计算机可执行指令当由一个或多个处理器执行时,执行本文描述的技术。
示例实施例
如上所述,路径跟踪解决方案和数据平面监视技术可以改进网络运营商对其底层网络的可见性。然而,用于表示重要路径跟踪和延迟测量数据(例如,时间戳、设备/节点标识符等)的位数可能比可能实际需要的要高得多。因为遥测数据通常从接收和/或转发分组的每个节点收集,所以现有技术通常与许多问题相关联,例如显著的开销、超过设备或节点硬件限制、网络利用的增加、至少部分基于大的最大传输单元(MTU)大小的分组丢失等等。此外,用于在分组内承载上述收集的信息和时间戳作为遥测数据的传统解决方案在不同类型的网络设备上可能不同,因此需要在某些网络中进行特殊编程,以便执行期望的技术。
相应地,本公开涉及用于改进路径跟踪和延迟测量解决方案的各种技术。本文所公开的各种技术的一个方面包括使用短(例如,8位、12位等)接口标识符(ID)来跟踪通过网络的分组路径。使用短接口ID解决了许多与遥测数据开销过高和处理效率相关的根本原因。相对于上述传统的路径跟踪和数据平面监视技术,本文描述的短接口ID解决方案允许通过仅收集例如在每个节点处接收分组的输入接口或在每个节点处发送分组的输出接口的短ID来跟踪分组路径。因此,使用这种技术可能不需要收集传统的长的(例如32位、128位等)节点/交换机标识符。另外,收集遥测数据所需的开销较少,并且硬件复杂度可以在分组报头的深度(将由硬件在分组报头中读取和写入遥测数据)方面被简化。
在一些示例中,网络的集中式控制器可以具有网络的拓扑信息,并且网络的每个节点可以将其配置输出到集中式控制器。具有网络拓扑的完整视图的控制器然后可以为每个节点分配与节点的每个接口对应的标识符(接口ID)。例如,如果网络中的单个节点具有10个不同的通信接口,则该节点可以接收10个接口ID;也就是说,一个接口ID用于标识每个接口。这还可以包括将接口ID分配给能够进行路径跟踪的节点,这将允许收集器/分析器/控制器识别隐藏节点(例如,在棕色地带网络中)。
在各种示例中,表示单个接口ID所需的位数可以以路由器上的最大接口数为上限。这样,分配给接口的接口ID在其自己的路由器/节点中是唯一的。在一些示例中,对于任何给定路由器的最大接口等于2n的网络,控制器将最多需要n位来表示接口ID。在至少一个示例中,使用3元组(iPE_OUT、ePE_IN、<ID_seq>)来唯一地标识分组路径,其中iPE_OUT是发送路径跟踪分组的入口提供商边缘节点(源节点)的传出接口的接口ID,ePE_IN是接收路径跟踪分组的出口提供商边缘节点(汇聚节点)的传入接口的接口ID,并且ID_seq是从将分组从入口提供商边缘节点转发到出口提供商边缘节点的从任何中间节点收集并表示任何中间节点的接口ID序列。
本公开的另一方面包括使用短(例如,8位等)硬件时间戳来确定网络延迟测量的技术。与使用短接口标识符类似,可以在每个节点处收集短时间戳,以解决与过多的遥测数据开销和处理效率相关联的许多根本原因。相对于现有的延迟测量技术,该解决方案提供了一种在转发分组的每个中间节点处记录短时间戳的机制。另外,该机制是通用的,并且可以基于网络类型、所需的时延精度或可用于记录时间戳的最大位数进行适配。该解决方案导致较小的遥测数据(例如,8位时间戳相对于例如64位时间戳),同时仍然保持各种类型的网络的时间戳精度要求。
传统的遥测解决方案通常记录完整的64位时间戳,以作为在每一跳附加到分组的遥测数据。然而,考虑到分组在网络中的短暂生命周期,在每个节点处记录的64位包含许多冗余位。另外,考虑到所需的时间精度,64位时间戳还包含不必要的位。例如,在分组的生命周期小于1秒并且所需时间精度以微秒为单位的网络中,由每一跳编码的时间戳的32位秒是相同的,并且将是冗余的,并且编码微秒分数的位也是不必要的。换句话说,在上述示例中,超过三分之二的64位是不需要的。
然而,在一些示例中,根据本文描述的短时间戳技术,在分组的生命周期大于一秒的网络中,短时间戳可以包括完整时间戳的秒部分的最低有效位中的几个位,并且其余位可以从完整时间戳的分数部分获取。另一方面,在分组寿命小于一秒的网络中,短时间戳可以包括仅来自分数部分的位。当确定应该为短时间戳选择完整时间戳的哪些位时,位数及其选择的位置给出了翻转和精度。例如,必须选择位位置的选择,使得翻转大于源节点到汇聚节点之间的单向延迟,和/或该翻转大于网络中任何两个时间戳节点之间的单向延迟。
当分组在源节点处进入网络时,源节点可以将完整的时间戳记录为要在分组中承载的遥测数据。当分组遍历网络时,每个中间(例如,中转)节点以及在一些情况下的汇聚节点可以将短时间戳记录为遥测数据。汇聚节点还可以将完整时间戳(而不是短时间戳)记录为要在分组中承载的遥测数据。这样,控制器或收集器可以计算每个中间节点的完整时间戳。这可以由控制器或收集器通过组合(例如,添加)所记录的短时间戳和为先前节点确定的完整时间戳的最高有效字节来完成。对于第一中间节点,完整时间戳的最高有效字节可以取自源节点的时间戳。
本公开的另一方面包括用于不同网络和/或不同硬件的分组遥测载体的技术。第一解决方案包括使用IPv6逐跳(HBH)报头,其紧接在IPv6报头之后且在分分段路由报头(SRH)之前。这些技术定义了承载遥测数据的新的HBH选项类型。然而,一些硬件不能处理HBH+SRH,并且这种硬件假定SRH是IPv6报头之后的下一个报头。第二个解决方案包括使用SRH TLV,它位于SRH的末尾。这些技术定义了具有承载遥测数据的空间的新的SRH TLV。
本公开的另一技术包括用于SRv6网络的遥测数据载体,其中,其中遥测载体可以作为紧接在基本SRH报头之后的新SID被添加。新的SID可以仅用于遥测收集的目的,并且可以不影响任何SRv6部署服务。相对于上面描述的现有解决方案,本文描述的用于使用SID列表作为遥测载体的技术允许分组承载遥测数据作为SRH的一部分,而不是在分组中非常深,因为位置在分组中是靠前的。此外,所公开的技术避免了在IPv6报头和SRH报头之间具有HBH报头,从而解决了硬件不能处理具有HBH+SRH报头的分组的问题。此外,由于遥测载体紧接在SRH基础HDR之后编码,遥测数据收集对硬件(对它们可以写入分组的深度有限制)没有影响,并且对SRv6流量工程(TE)/端点节点是透明的。总之,所公开的技术提供了一种收集遥测数据的改进方法,该方法在对分组中的写入深度有限制的硬件以及不能处理HBH的硬件上工作。本文所述的遥测数据载体可以用于承载本文所述的短时间戳和短接口ID以及其它类型的遥测数据。
本公开的又一方面包括用于定义路由器上的路径跟踪动作的SRv6微分段标识符(uSID)网络编程指令的技术。在一些示例中,节点可以通过在下一个SRv6 uSID网络编程路径跟踪指令中指定特定的路径跟踪动作来触发它。该SRv6 uSID路径跟踪指令可以是公知的值,在域内的网络中被全局地定义,和/或在每个节点上被编程。此SRv6 uSID指令可以是节点上的本地指令,并通告到网络。例如,第一SRv6 uSID路径跟踪指令可以提示节点插入短时间戳或完整时间戳、短接口ID,并用SR策略/IPv6报头封装分组,包括IPv6逐跳选项和/或SRH,其中TLV包含节点上的附加遥测信息。另外,第二SRv6 uSID路径跟踪指令可以提示节点克隆分组、插入短时间戳或完整时间戳、短接口ID,并用SR策略/IPv6报头封装分组,包括IPv6逐跳选项和/或SRH,其中TLV包含节点上的附加遥测信息。这些SRv6 uSID路径跟踪指令可以在任何中间节点以及汇聚节点上启用。用SRv6 uSID指令定义的这些行为也可以在节点上由特定的逐跳选项类型或SRH TLV类型或报头中的一些其他指示或通过在节点上使用本地策略来触发。
作为使用这些SRv6 uSID路径跟踪指令的示例,控制器可以请求网络的源节点生成路径跟踪探测消息,并且控制器还可以以SRv6 uSID载体的形式提供探测端点地址。另外,控制器还可以提供客户数据业务的源地址、DSCP、分组大小和用于ECMP跟踪的流标签值范围。然后,网络的源节点可以制作一个或多个IPv6路径跟踪探测消息,这些消息包含承载短接口ID和/或短时间戳的逐跳选项,以及承载短时间戳信息,然后在发送消息时插入其传送短时间戳或完整时间戳和短传出接口标识符的SRH元数据,然后,源节点可以发送(一个或多个)路径跟踪探测消息并扫描IPv6报头中的流标签范围,以遍历所有ECMP以到达汇聚节点。它还可以扫描一系列DSCP值。在一些示例中,每个中间节点可以在路径跟踪消息的逐跳选项中插入其传入或传出短接口ID及其接收或发送短时间戳,或者在该消息的SRH中或在该消息的SRH TLV中插入分段标识符,然后将该消息转发到下游。然后,汇聚节点可以添加其接收和/或发送短时间戳或完整时间戳、短接口标识符,添加具有SRv6/IPv6报头的新封装,可选地添加具有新的逐跳选项和/或新的SRH TLV,并基于SRv6 uSID网络编程指令将路径跟踪消息转发到控制器。
根据本文描述的技术,可以实现与计算机相关的技术的改进。例如,通过将短接口标识符和短时间戳用于分组路径跟踪和确定网络延迟测量,可能需要较少的开销。另外,硬件复杂度可以在分组报头(遥测数据将由硬件写入分组报头中)的深度方面被简化,从而允许SRv6网络中的不同类型的硬件设备执行路径跟踪和网络延迟测量,否则那些硬件设备不能执行路径跟踪和网络延迟测量。上面的讨论仅仅是根据本公开中描述的技术可以实现的多种改进的一些示例。本领域普通技术人员将容易理解和认识到这些和其它改进。
作为示例而非限制,根据由本公开所描述的各种技术的方法可以包括在网络的第一节点处接收要发送到网络的至少第二节点的分组。在各种示例中,分组可以包括第一指示,该第一指示指明第一节点要附加(插入或更新)到分组的特定类型的遥测数据(例如,短接口ID、短时间戳、完整时间戳、节点标识数据等)。在至少一个示例中,分组还可以包括第二指示,该第二指示指明分组的分段路由报头的分段标识符(SID)列表内的第一位置,第一节点在该第一位置处要附加(插入或更新)特定类型的遥测数据。在另一示例中,节点可以将特定类型的遥测数据附加到分组的逐跳选项。在另一示例中,节点可以将特定类型的遥测数据附加到分组的SRH TLV。在一些示例中,第一指示和/或第二指示可以被包括在分组的分段路由报头的第一字段(例如,标记字段)内。在一些示例中,第一指示和/或第二指示可以被包括在分组的IPv6逐跳选项中。在一些示例中,第一指示和/或第二指示可以被包括在分组的SRH的TLV中。在至少一个示例中,第一节点是源节点,而在另一示例中,第一节点是中间节点。
在一些示例中,该方法还可以包括由第一节点确定与第一节点相关联的特定类型的第一遥测数据。在一些情况下,特定类型的遥测数据可以包括以下项中的一个或多个:指示用于发送分组或接收分组之一的第一节点的接口的短接口ID、表示分组被第一节点处理(例如,发送、接收、修改等)的时间的时间戳数据、或表示与分组被第一节点处理的时间相关联的完整时间戳的一部分的短时间戳数据。在一些示例中,第一节点可以至少部分地基于第一指示来确定第一遥测数据。例如,第一节点可以确定分段路由报头的标志字段被启用,并且至少部分地基于被启用的标志字段,第一节点可以读取第一指示和第二指示。在至少一个示例中,第一指示和第二指示可以被包括在分组的分段路由报头的同一字段中(例如,被包括在16位标记字段中,其中16位标记字段的前8位表示第一指示,并且16位标记字段的后8位表示第二指示),或者在IPv6逐跳选项中被指示(例如,选项数据中的前16位),或者在SRH TLV(例如,TLV数据中的前16位)字段中被指示。该指示可以包括要附加的遥测数据的位置、格式和类型。
另外,在一些示例中,该方法可以包括由第一节点在SID列表内的第一位置处附加第一遥测数据。例如,至少部分地基于第二指示,第一节点可以确定SID列表中要附加第一遥测数据的第一位置。在一些示例中,第一位置可以与SID列表的第一SID字段内的8位的位置对应。附加地或替代地,指示位置的第二指示可以指示第一节点将遥测数据写入SID列表的第一SID字段中的n位偏移,其中“n”表示遥测数据将偏移的位数。在一些示例中,出于这些目的,使用IPv6逐跳选项,而不是使用SID列表。不但如此,而且逐跳选项由于其灵活的能力而被提供。在一些其它示例中,出于这些目的,使用SRH TLV而不是使用SID列表。
在一些示例中,第一节点可以修改分组的第二指示以指示SID列表内的第二位置,第二节点在该第二位置处要附加与第二节点相关联的特定类型的第二遥测数据。也就是说,例如,在附加第一遥测数据之后,第一节点可以指示SID列表中第二节点将要开始附加遥测数据的位的位置。如上所述,第二位置可以位于SID列表的第一SID字段内。另外,第一节点可以将分组发送到第二节点,该分组包括第一遥测数据和指示第二位置的第二指示。在一些示例中,出于这些目的,使用IPv6逐跳选项而不是使用SID列表。不但如此,而且逐跳选项由于其灵活的能力而被提供。在一些其它示例中,出于这些目的,使用SRH TLV而不是使用SID列表。
在各种示例中,第二节点可以至少部分地基于第一指示来接收分组,该分组确定与第二节点相关联的特定类型的第二遥测数据。另外,第二节点可以至少部分地基于指示第二位置的第二指示,在SID列表内的第二位置处附加第二遥测数据。在至少一个示例中,第二节点可以是中间节点,并且第二节点可以修改分组的第二指示以指示SID列表内的第三位置,其中第三节点在第三位置处要附加与第三节点相关联的特定类型的第三遥测数据。另外,第二节点可以将分组发送到第三节点,该分组包括第一遥测数据、第二遥测数据和指示第三位置的第二指示。在一些示例中,出于这些目的,使用IPv6逐跳选项而不是使用SID列表。不但如此,而且逐跳选项由于其灵活的能力而被提供。在一些其它示例中,出于这些目的,使用SRH TLV而不是使用SID列表。
在一些示例中,第二节点可以是网络的汇聚节点(例如,出口提供商边缘节点),并且该方法可以包括由第二节点确定分组包括SRv6微分段(uSID)指令。SRv6 uSID指令可以与一个或多个路径跟踪指令相关联。在一些示例中,SRv6 uSID指令可以被包括在分组的目的地地址字段内(例如,在分组的分段路由报头的分段列表内、在分组的IPv6目的地地址字段内等)。在一些情况下,第二节点可以通过对分组的目的地地址字段进行移位来确定下一个SRv6 uSID指令,从而确定分组包括SRv6 uSID指令。也就是说,目的地地址字段可以用于承载SRv6 uSID指令(与路径跟踪动作相关联)和一个或多个其它SRv6 uSID指令(指示分组要被发送到的下一分段)。因此,第二节点可以默认地对目的地地址字段进行移位以确定下一个SRv6 uSID指令(例如,下一个SRv6 uSID指示分组要被发送到的下一分段),但是下一个uSID指令可以与路径跟踪动作相关联,而不是与分组的下一跳相关联。
在一些示例中,SRv6 uSID指令可以被配置为提示第二节点执行一个或多个路径跟踪动作。因此,该方法还可以包括由第二节点至少部分地基于读取SRv6 uSID指令来执行路径跟踪动作。在至少一个示例中,路径跟踪动作可以包括确定与第二节点相关联的特定类型的第二遥测数据,并且在SID列表内的第二位置处附加第二遥测数据。例如,路径跟踪动作中的一个路径跟踪动作可以包括确定和/或附加表示第二节点接收分组的时间的时间戳数据(例如,短时间戳、完整时间戳等)。附加地或替代地,路径跟踪动作可以包括将接口标识数据附加到分组,该分组指示用于接收分组的第二节点的接口。另一路径跟踪动作可以包括在现有报头及其TLV扩展的顶部添加新封装,并将分组发送到网络的控制器或收集器,该控制器或收集器被配置为执行操作、管理和维护(OAM)动作(例如,跟踪分组用于遍历网络的路径,确定与发送分组通过网络相关联的时延,等等)。
在一些示例中,SRv6 uSID指令可以指示第二节点克隆分组,并将经克隆的分组发送到网络的控制器或收集器。经克隆的分组可以包括由第一节点和第二节点附加的遥测数据。在一些示例中,第二节点可以在包括其TLV的现有报头之上添加新的封装,以将包括遥测数据的分组发送到网络的控制器或收集器。
在各种示例中,该方法可以包括在控制器或收集器处接收遥测数据。在一些示例中,遥测数据可以包括多个接口标识符(例如,短接口ID),这些标识符指示发送或接收分组的网络节点的接口。例如,遥测数据可以包括与网络的第一节点相关联的第一接口标识符。第一接口标识符可以指示用来接收分组和/或将分组发送到第二节点的第一节点的第一接口。在一些示例中,遥测数据还可以包括与网络的第二节点相关联的第二接口标识符。第二接口标识符可以指示用来从第一节点接收分组和/或发送分组的第二节点的第二接口。
在一些示例中,控制器或收集器可至少部分地基于遥测数据确定通过网络的路径,根据该路径发送了分组,该路径至少包括第一节点和第二节点。例如,路径可以包括网络的发送或接收分组的每个节点的指示。在一些情况下,控制器或收集器可以接收与网络相关联的拓扑数据,并且至少部分地基于拓扑数据来确定路径。另外,控制器或收集器可以至少部分地基于3元组来确定路径,该3元组包括第一接口标识符、第二接口标识符以及指示一系列中间节点的一个或多个接口标识符,在第一节点和第二节点之间的这些中间节点转发分组。
至少部分地基于路径,该方法可以包括确定网络中是否存在异常。例如,控制器或收集器可以确定网络中是否存在异常。在一些情况下,异常可以包括:路径是错误的通过网络的最短路径、路径是错误的等成本多路径(ECMP)路由、网络包括故障链路、故障节点等、和/或类似的内容。
在一些示例中,遥测数据可以附加地或替代地包括指示分组被第一节点处理(例如,接收、发送、修改等)的第一时间的第一完整时间戳。另外,遥测数据还可以包括表示第二完整时间戳的一部分的短时间戳,第二完整时间戳指示分组被第二节点处理的第二时间。该方法还可以包括至少部分地基于第一完整时间戳和短时间戳来确定第二完整时间戳,以及至少部分地基于第一完整时间戳和第二完整时间戳来计算与发送分组通过网络相关联的时延。
在一些示例中,遥测数据可以包括表示分组被源节点处理的时间的第一完整时间戳,并且遥测数据还可以包括表示分组被网络的其它节点处理的相应时间的多个短时间戳。控制器或收集器可以至少部分地基于第一完整时间戳以及根据短时间戳确定的其他完整时间戳来确定多个短时间戳中的每个短时间戳的完整时间戳。在一些情况下,时延可以包括网络的各个节点之间的链路(或跳)延迟、网络的源节点和汇聚节点之间的端到端时延等中的一个或多个。
现在将在下面参考附图更全面地描述本公开的某些实施方式和实施例,在附图中示出了各个方面。然而,各个方面可以以许多不同的形式实现,并且不应被理解为限于本文阐述的实现方式。如本文所述,本公开涵盖实施例的变型。相同的附图标记始终表示相似的元素。
图1示出了网络102的示例系统架构100的示意图,在该架构中可以实现本文描述的技术。一般而言,网络102可以包括被安置或位于一个或多个数据中心104中的设备,这些数据中心104可以位于不同的物理位置。例如,网络102可以由公共云计算平台、私有/企业计算平台和/或其任何组合中的设备的网络来支持。一个或多个数据中心104可以是位于地理区域中的物理设施或建筑物,这些数据中心被指定为存储作为网络102的一部分的联网设备。数据中心104可以包括:各种联网设备、以及用于供电、数据通信连接、环境控制的冗余或备份组件和基础设施、以及各种安全设备。在一些示例中,数据中心104可以包括一个或多个虚拟数据中心,这些虚拟数据中心是专门为企业需求和/或基于云的服务提供商需求而设计的云基础设施资源池或集合。一般而言,(物理的和/或虚拟的)数据中心104可以提供诸如处理器(CPU)、存储器(RAM)、存储装置(磁盘)和联网(带宽)之类的基本资源。然而,在一些示例中,网络102中的设备可能不位于明确定义的数据中心104中,而是可能位于其他位置或建筑物中。
网络102可以包括由诸如有线和/或无线方式和/或技术之类的任何可行的通信技术实现的一个或多个网络。网络102可以包括集中式和/或分布式的以下项的任意组合:个域网(PAN)、局域网(LAN)、校域网(CAN)、城域网(MAN)、外联网、内联网、互联网、短程无线通信网络(例如,ZigBee、蓝牙等)、虚拟专用网(VPN)、广域网(WAN),和/或可以包括这些项的任意组合、排列和/或聚合。网络102可以包括将分组从一个网段中继到另一个网段的设备、虚拟资源或其它节点。
网络102可以包括控制平面106和数据平面108(例如,网络结构),或者以其他方式(物理地或逻辑地)分布在控制平面106和数据平面108(例如,网络架构)上。控制平面106可以包括控制器110、应用编程接口112、一个或多个数据库114和收集器116。数据平面108可以包括一个或多个节点(节点118(1)至节点118(4),以下统称为“节点118”)。
在一些示例中,控制器110可以将不同的接口标识符(ID)分配给节点118的相应接口。例如,控制器110可以将第一接口ID分配给节点118(1)的第一接口,将第二接口ID分配给节点118(1)的第二接口,将第三接口ID分配给节点118(2)的接口,等等。控制器110可以向节点118(1)(其可以被配置为源节点(例如,源提供商边缘节点))发送路径跟踪指令120,以指示节点118(1)使用注入的探针、带状通信流(in band data traffic flow),或通过对通信流进行采样来开始遥测收集会话(telemetry collection session),以用于路径跟踪和/或延迟测量。在一些示例中,控制器110可以用一些位和完整时间戳的特定位来配置中间节点118(2)和中间节点118(3),这些位将用于在收到的路径跟踪分组122中编码短时间戳。控制器110还可以配置节点118(4)(其可以被配置为汇聚节点(例如,出口提供商边缘节点)),以将收集到的遥测数据124报告给收集器116。在一些示例中,控制器110可以访问网络102的拓扑信息,并且节点118可以将其配置输出到控制器110。
在图1中,节点118(1)被配置为源节点(或头端节点),例如入口提供商边缘路由器、机架顶部交换机、SmartNIC等。源节点118(1)可以从控制器110接收路径跟踪指令120,并且开始遥测收集会话。例如,源节点118(1)可以在路径跟踪分组122的遥测收集分组/报头中为路径跟踪指令120中指定的跳数分配空间。作为对路径跟踪分组122的遥测收集分组/报头中的空间进行分配的一部分,源节点118(1)可以在分组中包括指示下游节点118(2)-118(4)关于下游节点118(2)-118(4)要添加到分组中的遥测数据的类型的指示,以及下游节点118(2)-118(4)要在分组中附加遥测数据的特定位置。这可以使下游节点118(2)-118(4)要完成的工作量最小化,从而使延迟最小和/或延迟测量更精确。在一些示例中,源节点118(1)可以记录其传出接口的短接口ID,该接口用于发送路径跟踪分组122。附加地或替代地,源节点118(1)可以记录其完整时间戳,然后该完整时间戳可以由收集器116使用以确定下游节点118(2)-118(4)的完整时间戳,这些完整时间戳可以附加它们的短时间戳。在一些情况下,源节点118(1)可以在遥测数据载体的末端记录接口ID和/或时间戳,使得下游节点118(2)-118(4)可以不必在分组中写入那么深的内容来记录它们的遥测数据。
在一些示例中,源节点118(1)可以用分段路由报头封装路径跟踪分组122,使得遥测数据可以在分段路由报头的分段列表的最后分段标识符字段中承载。例如,源节点118(1)可以用分段路由报头封装路径跟踪分组122,并且设定分段路由报头“T”标志的值,以使下游节点118(2)-118(4)能够读取分段路由报头的标记字段。另外,源节点118(1)可以对分段路由报头的标记字段进行编码,以指示下游节点118(2)-118(4)将对何种类型的遥测数据进行编码,以及下游节点118(2)-118(4)应当写入其遥测数据的遥测载体内的偏移(分段列表的分段标识符字段)。源节点可以在IPv6逐跳选项中编码遥测数据,而不是在SRH中的分段列表中编码。在另一示例中,源节点可以在SRH中的TLV中编码遥测数据,而不是在SRH中的分段列表中编码。
中间节点118(2)和中间节点118(3)可以接收路径跟踪分组122。进而,中间节点118(2)和中间节点118(3)可以在路径跟踪分组122内记录它们的遥测数据(例如,短时间戳、短接口ID等)。在一些示例中,中间节点118(2)和中间节点118(3)可以接收路径跟踪分组122,读取分段路由报头的“T”标志值,并且如果“T”被启用,则读取分段路由报头的标记字段以确定在路径跟踪分组122中记录哪种类型的遥测数据,以及在标记字段中的指示所指定的位置记录遥测数据。例如,标记字段可以包括指示遥测数据的类型的第一指示(例如,“动作”位)和指示遥测数据将在路径跟踪分组122的遥测载体内被记录的偏移的第二指示(例如,“偏移”位)。中间节点118(2)和118(3)可依次向下游转发路径跟踪分组122。中间节点可以使用来自IPv6逐跳选项的指示(动作/偏移位)并对遥测数据进行编码,而不是在SRH中的分段列表中进行编码。在另一示例中,中间节点可以使用来自SRH中的TLV的指示(动作/偏移位)并且在SRH中的TLV内编码遥测数据,而不是在SRH中的分段列表中编码。
在一些示例中,汇聚节点118(4)(或尾端节点)可以从中间节点118(3)接收路径跟踪分组122,记录其自己的遥测数据(例如,短时间戳、完整时间戳、接口ID等),并且将所有遥测数据124(例如,由节点118(1)-118(4)添加的所有遥测数据)转发到收集器116。在一些示例中,如果汇聚节点118(4)在接收到路径跟踪分组122时确定“T”标志被启用并且剩下的分段等于1,则汇聚节点118(4)可以将遥测数据124导出到收集器116,添加新的分段路由报头和IPv6封装,和/或将包括其报头的整个分组转发到其目的地(例如,收集器)。在一些示例中,路径跟踪分组122可以包括提示汇聚节点118(4)执行这些路径跟踪动作中的一些或全部路径跟踪动作的uSID指令。在一些情况下,与特定uSID指令相关联的路径跟踪动作可以在网络102内被全局地定义和/或在各个节点118上被本地地定义。汇聚节点118(4)可以对路径跟踪分组122的目的地地址字段进行移位(例如,移位16个位)以确定路径跟踪分组122包括SRv6 uSID指令。例如,SRv6 uSID指令可以被包括在路径跟踪分组122的uSID块中,uSID块指示分组将被发送到的相应的分段。
在一些示例中,网络102的收集器116可以接收遥测数据124,并且使用每个节点118附加到路径跟踪分组122的短接口ID来确定路径跟踪分组122通过网络102所走的路径。在一些情况下,除了短接口ID之外,收集器116还可以使用网络拓扑信息来确定路径。在一些示例中,收集器116还可以将所确定的路径存储在一个或多个数据库114中,以供诸如控制器110之类的其它组件分析。例如,控制器110可以分析所存储的路径以检测网络102中的异常,例如错误的短路径、错误的ECMP、故障链路和/或节点等。
附加地或替代地,收集器116可以确定中间节点118(2)和中间节点118(3)中的每一个的完整时间戳。可以通过组合所记录的短时间戳和在前一节点处构建的完整时间戳的最高有效字节来确定中间节点118(2)和中间节点118(3)中的每一个的完整时间戳。例如,对于第一中间节点118(2),可以通过将由第一中间节点118(2)记录的短时间戳和由源节点118(1)记录的完整时间戳的最高有效字节组合(例如,相加)来确定完整时间戳。
用于计算完整时间戳的示例算法可以被定义为:(1)其中TS(k)是节点k的N位完整时间戳;(2)其中TS_short(k)是在节点k处收集到的短时间戳;以及(3)对于所记录的分组路径中的每个节点k:(a)在节点k的配置处检索所记录的短时间戳的位置(P)和位数(M),该节点k的配置来自被输出到控制器的节点配置;(b)TS(k)[N:P]=TS(k-1[N:P];(c)TS(k)[P:P-M]=TS_short(k);(d)TS(k)[P-M:0]=0。在上述算法中,对于在所记录的分组路径中的第一个节点k,节点k-1是源节点;在操作(b)中,从前一个节点的完整时间戳复制最高有效字节;在操作(c)中,从路径跟踪分组复制短时间戳;以及在操作(d)中,最低有效位被设置为零。
在一些示例中,网络102的收集器116、控制器110或分析器可以分析所收集的时间戳以确定各种用例。这些用例中的一些可以包括计算每个链路的延迟,以及利用每个链路的延迟来计算给定延迟SLA的路径。附加地或替代地,用例可以包括计算边缘到边缘的延迟(例如,源节点118(1)和汇聚节点118(4)之间的延迟),如果源节点118(1)和汇聚节点118(4)两者都将其完整时间戳添加到路径跟踪分组122中,则该延迟可以精确到纳秒。附加地或替代地,可以基于所收集的时间戳来监视给定路径的延迟。
图2A和2B是示出示例分组结构的框图,这些示例分组结构可用于承载遥测数据和/或对节点编程以执行路径跟踪动作。分组200包括:IPv6报头204、逐跳(HBH)报头206(可以用于承载遥测数据)、分段路由报头208,分段列表(包括能够承载分段标识符或uSID的一个或多个分段列表字段210(1)至210(N)(其中N表示大于或等于1的任何数))、以及有效载荷212。HBH报头206还可以包括如下面进一步详细描述的“动作”和“偏移”。
分组202还包括:IPv6报头204、分段路由报头208、分段列表(包括一个或多个分段列表字段210(1)至210(N))、以及有效载荷212。然而,与分组200相比,分组202包括分段路由报头(segment routing header,SRH)类型长度值(type length value,TLV)字段214(可以用作遥测载体)。
在图2B中,分组216还包括:IPv6报头204、分段路由报头208、分段列表(包括一个或多个分段列表字段210(1)至210(N))、以及有效载荷212。然而,在分组216中,最后的段列表字段210(1)用作遥测数据载体,而其它段列表字段210(2)至210(N)用作常规的SID或SRv6 uSID载体。分段路由报头208可以包括可以用于启用路径跟踪行为的(一个或多个)标志字段218。例如,通过启用标志“T”,接收分组216的节点可以识别遥测数据将被添加到分组,并且相应地读取标记字段220。标记字段220可以是16位字段,其中16个位中的8个位用于指示“动作”,16个位中所剩余的其它8个位用于指示“偏移”。如本文所述,动作位可以指示节点要附加到分组216的遥测数据类型(例如,短时间戳数据、短接口ID等)。偏移位可以指示分组216的分段列表[0]字段210(1)内的特定位置(例如,位的位置),其中节点将附加(插入或更新)遥测数据至该位置处。在一些情况下,第一节点在分段列表[0]字段210(1)内的偏移位置处附加遥测数据之后,第一节点可以修改偏移位以指向分段列表[0]字段210(1)内的下一个可用位置(例如,下一个位的位置),第二节点将在该下一个可用位置处开始附加遥测数据。在使用逐跳选项时,偏移和遥测数据在逐跳选项中承载。偏移字段标识选项中第二节点附加遥测数据的位置。
图3A是示出正在被用于承载压缩中点数据(CMD)的分组的示例遥测数据载体部分300的框图。压缩中点数据可以包括短接口标识符、短时间戳等。在一些示例中,遥测数据载体300的相应行(例如,包括CMD 302(1)至CMD 302(4)的第一行)可以与HBH字段、SRH TLV字段、分段列表字段等对应。遥测数据载体300可以承载CMD 302(1)至CMD 302(N)(其中N表示大于或等于1的任何数)。CMD 302(1)-302(N)可以对应于中间节点的接口,例如中间节点118(2)和118(3)。另外,遥测数据载体300还可以承载源节点完整时间戳304和汇聚节点完整时间戳306。这些时间戳可以与分组被源节点和汇聚节点处理(例如,发送、接收等)的时间相关联。在一些示例中,如果CMD 302表示短接口ID,则表示接口ID所需的位数的上限可以是节点/路由器上的最大接口数。在这种情况下,分配到接口的接口ID在其自己的节点/路由器内是唯一的。例如,在任何给定路由器的最大接口等于2n的网络中,接口ID的长度最多需要n个位以表示接口ID。接口ID在网络中或在节点上可能不需要是唯一的。
图3B示出了示例64位完整时间戳320。本文描述的示例性短时间戳322可以包括完整时间戳320的一个或多个位324,并且图3B中所示的短时间戳322是8位时间戳。64位完整时间戳320可以包括表示完整时间戳320的秒部分326的32位和表示完整时间戳320的纳秒部分328的32位。短时间戳322相对于位324的定位可以表示用于5G部署的短时间戳。在一些示例中,短时间戳322可以与2.097微秒的精度(如值为2.097毫秒的短时间戳322的最低有效位所示)和536.86毫秒的翻转(如通过将值为268.43毫秒的最高有效字节的值加倍所示)相关联。换句话说,短时间戳322对于在其中源节点和汇聚节点之间的延迟时间小于536.86毫秒并且各个节点之间的延迟时间大于2.097微秒的网络中使用可能是最佳的。在至少一个示例中,网络的不同节点可以选择完整时间戳320的不同位324用于短时间戳322。换句话说,对于沿给定路径的每个节点,位选择不需要相同。
图4A和4B共同示出了网络节点和/或设备之间的示例流量流,以执行本文描述的用于优化遥测数据收集的一些技术。在图4A中,在“1”处,网络的控制器110可以将接口标识符402分配到节点118的相应的接口。例如,控制器110可以将第一接口ID分配到节点118(1)的第一接口,将第二接口ID分配到节点118(1)的第二接口,将第三接口ID分配到节点118(2)的接口,等等。在一些示例中,控制器110可以在不同时间或基本上同时将接口标识符402的指示发送到节点118。控制器110可以基于接收到与节点118中的每个节点相关联的配置数据而将接口标识符402分配给节点118。
关于图4B,在“2”处,控制器110可以将路径跟踪指令404发送到源节点118(1),以指示节点118(1)使用注入的探针、带状通信流,或通过对流量流进行采样来启动(用于路径跟踪和/或延迟测量的)遥测收集会话。源节点118(1)可以从控制器110接收路径跟踪指令404并且启动遥测收集会话。例如,源节点118(1)可以在路径跟踪启用分组406的遥测收集分组/报头中为路径跟踪指令404中指定的跳数分配空间。作为对启用路径跟踪的分组404的遥测收集分组/报头中的空间进行分配的一部分,源节点118(1)可以在分组中包括指示下游节点118(2)-118(4)关于下游节点118(2)-118(4)要添加到分组中的遥测数据的类型的指示,以及在分组中下游节点118(2)-118(4)要附加遥测数据的特定位置。例如,源节点118(1)可以指定中间节点118(2)要在遥测数据载体410(1)内的第一位置处附加其遥测数据,中间节点118(3)要在遥测数据载体410(2)内的第二位置处附加其遥测数据,汇聚节点118(4)要在遥测数据载体410(3)内的第三位置处附加其遥测数据。这可以使下游节点118(2)-118(4)要完成的工作量最小化,从而使延迟最小和/或延迟测量更精确。在一些示例中,源节点118(1)可以将其用于发送路径跟踪启用分组406的传出接口的短接口ID记录为路径跟踪启用分组406内的遥测数据408(1)。附加地或替代地,源节点118(1)可以记录其完整时间戳,然后该完整时间戳可以用于确定下游节点118(2)-118(4)的完整时间戳(其可以附加它们的短时间戳)。在一些情况下,源节点118(1)可以在遥测数据载体的末端记录接口ID和/或时间戳,使得下游节点118(2)-118(4)可以不必在分组中写入那么深的内容来记录它们的遥测数据。
在“3”处,源节点118(1)可以将包括节点118(1)遥测数据408(1)的路径跟踪启用分组406发送到中间节点118(2)。中间节点118(2)可以接收路径跟踪启用分组406并且将其自己的遥测数据408(2)附加在路径跟踪使能的分组406的遥测数据载体字段410(1)内。节点118(2)遥测数据408(2)可以包括由中间节点118(2)用来接收或发送路径跟踪启用分组406的短时间戳和/或短接口标识符。
在“4”处,中间节点118(2)可以将包括节点118(1)遥测数据408(1)和节点118(2)遥测数据408(2)的路径跟踪启用分组406转发到中间节点118(3)。中间节点118(3)可以接收路径跟踪启用分组406并将其自己的遥测数据408(3)附加在路径跟踪启用分组406的遥测数据载体字段410(2)内。节点118(3)遥测数据408(3)可以包括由中间节点118(3)用来接收或发送路径跟踪启用分组406的短时间戳和/或短接口标识符。
在“5”处,中间节点118(3)可以将包括节点118(1)遥测数据408(1)、节点118(2)遥测数据408(2)和节点118(3)遥测数据408(3)的路径跟踪启用分组406转发到汇聚节点118(4)。汇聚节点118(4)可以接收路径跟踪启用分组406并将其自己的遥测数据408(4)附加在路径跟踪启用分组406的遥测数据载体字段410(3)内。节点118(4)遥测数据408(4)可以包括由汇聚节点118(4)用来接收路径跟踪启用分组406的完整时间戳和/或短接口标识符。
在“6”处,汇聚节点118(4)可以将所有遥测数据410发送到控制器110。遥测数据410可以包括节点118(1)遥测数据408(1)、节点118(2)遥测数据408(2)、节点118(3)遥测数据408(3)和节点118(4)遥测数据408(4)。在一些情况下,汇聚节点118(4)可以在检测到路径跟踪启用分组406包括与一个或多个路径跟踪动作相关联的SRv6 uSID指令时将遥测数据410发送到控制器110。一个或多个路径跟踪动作可以在网络内被全局地定义,或在每个节点118上被本地地定义。路径跟踪动作可以包括将遥测数据410发送到控制器110。另外,路径跟踪动作可包括复制路径跟踪启用分组406并且将所复制的分组发送到控制器110,所复制的分组包括遥测数据410。在一些示例中,节点118(4)可以封装遥测数据410以将其发送到控制器110。
图5至图8示出了与本文所呈现技术相关联的用于优化用于路径跟踪和延迟测量技术的遥测数据收集的各种示例方法的逻辑流程图。本文参考图5至图8描述的逻辑操作可以被实现为(1)在计算系统上运行的一系列计算机实现的动作或程序模块和/或(2)互连的机器逻辑电路或计算系统内的电路模块。
本文描述的各个组件的实现取决于计算系统的性能和其它要求的选择问题。相应地,本文描述的逻辑操作被不同地称为操作、结构化设备、动作或模块。这些操作、结构化设备、动作和模块可以在软件、固件、专用数字逻辑及其任意组合中实现。还应当理解,可以执行比图5-图8中所示的和在本文中描述的更多或更少的操作。这些操作也可以被并行执行,或者以不同于本文所描述的顺序来执行。这些操作中的一些或全部操作也可以由除了那些特别标识的组件以外的组件来执行。虽然本公开中描述的技术参考了特定组件,但是在其他示例中,这些技术可以由更少组件、更多组件、不同的组件或组件的任何配置来实现。
图5是示出可以至少部分地由网络节点执行以将遥测数据附加到分组的示例方法500的逻辑流程图。方法500开始于操作502,其包括在网络的第一节点处接收要发送到网络的至少第二节点的分组,该分组包括(i)第一指示,该第一指示指明第一节点要附加到分组的特定类型的遥测数据,以及(ii)第二指示,该第二指示指明第一节点要将特定类型的遥测数据附加到的分组的分段路由报头的分段标识符(SID)列表内的第一位置。例如,第一指示和第二指示可以被包括在分段路由报头208的标记字段220内。第一指示可以指示“动作”,第二指示可以指示“偏移”。
在操作504处,方法500包括由第一节点并且至少部分地基于第一指示来确定与第一节点相关联的特定类型的第一遥测数据。例如,第一节点可以确定短时间戳,该短时间戳包括表示分组被第一节点处理的时间的完整时间戳的一部分(例如,一个或多个单独的位)。附加地或替代地,第一节点可以确定短接口ID,该ID指示用于接收分组的第一节点的接口。
在操作506处,方法500包括由第一节点并且至少部分地基于第二指示在SID列表内的第一位置处附加(例如,插入、更新等)第一遥测数据。例如,第一节点可以在SID列表内的第一位置处附加短接口ID和/或短时间戳。
在操作508处,方法500包括由第一节点修改分组的第二指示以指示SID列表内的第二位置,第二节点在SID列表内的第二位置处要附加与第二节点相关联的特定类型的第二遥测数据。在操作510处,方法500可以包括将分组发送到第二节点,该分组包括第一遥测数据和指示第二位置的第二指示。
图6是示出可以至少部分地由网络节点执行以执行一个或多个路径跟踪动作的示例方法600的逻辑流程图。方法600开始于操作602,其包括在网络的第一节点处接收分组。例如,分组可以由网络102的汇聚节点118(4)接收。
在操作604处,方法600包括由第一节点确定分组包括与一个或多个路径跟踪动作相关联的SRv6微分段(uSID)指令。例如,第一节点可以对分组的目的地地址字段进行移位以确定分组包括SRv6 uSID指令。
在操作606处,方法600包括由第一节点至少部分地基于读取SRv6uSID指令来执行第一路径跟踪动作,该第一路径跟踪动作包括确定指示第一节点接收到分组的时间的时间戳数据。在一些情况下,时间戳数据可以包括完整时间戳,而在其他情况下,时间戳数据可以包括短时间戳,该短时间戳包括完整时间戳的一部分。
在操作608处,方法600包括由第一节点至少部分地基于读取SRv6uSID指令来执行第二路径跟踪动作,第二路径跟踪动作包括确定与第一节点的用于接收分组的接口相关联的接口标识符。例如,第一节点可以确定与第一节点的接口对应的短接口ID,并且将该短接口ID附加到分组。
在操作610处,方法600包括由第一节点至少部分地基于读取SRv6uSID指令来执行第三路径跟踪动作,该第三路径跟踪动作包括将分组发送到被配置为执行操作、管理和维护(OAM)动作的网络控制器,该分组包括时间戳数据和接口标识符。
图7是示出示例方法700的逻辑流程图,该方法700可以至少部分地由网络的控制器或收集器执行以确定分组遍历网络的路径。在操作702处,方法700开始于接收与发送分组通过网络相关联的遥测数据。例如,遥测数据可以由网络102的控制器110或收集器116接收。
在操作704处,方法700包括确定遥测数据包括与网络的第一节点相关联的第一接口标识符,该第一接口标识符指示用来向第二节点发送了分组的第一节点的第一接口。例如,遥测数据可以包括第一短接口标识符,该标识符指示用来发送分组的源节点118(1)的接口。
在操作706处,方法700包括确定遥测数据包括与网络的第二节点相关联的第二接口标识符,该第二接口标识符指示用来接收了来自第一节点的分组的第二节点的第二接口。例如,遥测数据可以包括第二短接口标识符,该标识符指示汇聚节点118(4)的用来接收分组的接口。
在操作708处,方法700包括至少部分地基于遥测数据确定通过网络的路径,根据该路径发送了分组,该路径至少包括第一节点和第二节点。例如,控制器110或收集器116可以至少部分地基于第一接口标识符和第二接口标识符来确定分组是通过至少第一节点和第二节点被发送的。
在操作710处,方法700包括至少部分地基于路径来确定网络中是否存在异常。例如,控制器110可以确定分组通过网络的路径是错误的最短路径、错误的ECMP路径、网络102中存在故障链路或节点、和/或类似内容。
图8是示出示例性方法800的逻辑流程图,该示例性方法800可至少部分地由网络的控制器或收集器执行以确定与发送分组通过网络相关联的延迟测量。方法800开始于操作802,其包括接收与发送分组通过网络相关联的遥测数据。例如,遥测数据可以由网络102的控制器110或收集器116接收。
在操作804处,方法800包括确定遥测数据包括第一完整时间戳,该第一完整时间戳指示第一时间,分组在第一时间被网络的第一节点处理。例如,遥测数据可以包括与网络102的源节点118(1)接收或发送分组的时间相对应的第一完整时间戳。
在操作806处,方法800包括确定遥测数据包括表示第二完整时间戳的一部分的短时间戳,该第二完整时间戳指示分组被网络的第二节点接收的第二时间。例如,遥测数据可以包括表示第二完整时间戳的一部分的短时间戳,该第二完整时间戳指示网络102的中间节点118(2)接收分组的第二时间。
在操作808处,方法800包括至少部分地基于第一完整时间戳和短时间戳来确定第二完整时间戳。例如,控制器110或收集器116可以通过组合短时间戳和第一完整时间戳的最高有效字节来确定第二完整时间戳。
在操作810处,方法800包括至少部分地基于第一完整时间戳和第二完整时间戳来计算与发送分组通过网络相关联的时延。例如,时延可以对应于第一节点和第二节点之间的链路延迟测量。
图9是示出数据中心900的配置的系统架构图,该配置可用于实现本文公开的技术的各方面。图9中所示的示例数据中心900包括用于提供计算资源的若干服务器计算机902A至902F(在本文中可以被单数地称为“一个服务器计算机902”或被复数地称为“多个服务器计算机902”)。在一些示例中,资源和/或服务器计算机902可以包括或对应于本文描述的任何类型的计算设备。虽然被描述为服务器,但是服务器计算机902可以包括任何类型的联网设备,例如服务器、交换机、路由器、集线器、网桥、网关、调制解调器、转发器、接入点等。
服务器计算机902可以是为提供计算资源而适当配置的标准塔式、机架式或刀片服务器计算机。在一些示例中,服务器计算机902可以提供计算资源904,这些计算资源包括数据处理资源,这些数据处理资源例如VM实例或硬件计算系统、数据库集群、计算集群、存储集群、数据存储资源、数据库资源、联网资源、VPN等。一些服务器902也可以被配置为执行资源管理器906,该资源管理器能够实例化和/或管理计算资源。例如,在VM实例的情况下,资源管理器906可以是管理程序或被配置为能够在单个服务器计算机902上执行多个VM实例的另一类型的程序。数据中心900中的服务器计算机902还可以被配置为提供网络服务和其他类型的服务。
在图9所示的示例数据中心900中,还利用适当的LAN 908来互连服务器计算机902A至902F。应当理解,本文描述的配置和网络拓扑已经被大大简化,并且可以利用更多的计算系统、软件组件、网络和联网设备来互连本文公开的各种计算系统并提供上述功能。还可以利用适当的负载平衡设备或其他类型的网络基础设施组件来平衡数据中心900之间、每个数据中心900中的每个服务器计算机902A至902F之间以及潜在地在每个服务器计算机902中的计算资源之间的负载。应当理解,参考图9描述的数据中心900的配置仅仅是说明性的,并且可以使用其他实施方式。
在一些情况下,数据中心900可以在永久或按需的基础上提供计算资源,如应用、VM实例和存储。在其他类型的功能中,由云计算网络提供的计算资源可以用于实现上述各种服务和技术。由云计算网络提供的计算资源904可以包括各种类型的计算资源,例如,数据处理资源(例如,租户容器和VM实例)、数据存储资源、联网资源、数据通信资源、网络服务、VPN实例等。
由云计算网络提供的每种类型的计算资源904可以是通用的,或者可以在若干特定配置中可用。例如,数据处理资源可以以多种不同配置的形式用作物理计算机或VM实例。VM实例可以被配置为执行应用,这些应用包括web服务器、应用服务器、媒体服务器、数据库服务器、上述的网络服务中的一些或全部、和/或其他类型的程序。数据存储资源可以包括文件存储设备、块存储设备等。云计算网络还可以被配置为提供本文未具体提及的其他类型的计算资源904。
在一个实施例中,由云计算网络提供的计算资源904可以由一个或多个数据中心900(在本文中可以被单数地称为“一个数据中心900”或被复数地称为“多个数据中心900”)启用。数据中心900是用于容纳和操作计算机系统和相关组件的设施。数据中心900通常包括冗余和备用电源、通信、冷却和安全系统。数据中心900也可以位于地理上不同的位置。下面将结合图10对可用于实施本文所公开技术的数据中心900的一个说明性实施方案进行描述。
图10是计算机架构图,示出了可被利用来实现本文提出的各种技术的各方面的节点和/或计算设备的示例计算机硬件架构。图10所示的计算机架构图示了传统的服务器计算机、网络设备、工作站、台式计算机、膝上型电脑、平板计算机、网络应用、电子阅读器、智能电话和/或其他计算设备。计算机1000可以包括联网的设备,例如服务器、交换机、路由器、集线器、桥接器、网关、调制解调器、中继器、接入点,等等。
计算机1000包括基板1002,或者“主板”,它是印刷电路板,许多组件或设备可以通过系统总线或者其他电气通信路径的方式连接到它。在一个说明性配置中,一个或多个中央处理单元(central processing unit,“CPU”)1004结合芯片组1006一起操作。CPU 1004可以是标准的可编程处理器,它执行计算机1000的操作所必需的算术和逻辑操作。
CPU 1004通过从一个离散的物理状态转变到下一个状态来执行操作,其中状态转变是通过对区分和改变这些状态的切换元件的操纵来实现的。切换元件一般包括维持两个二元状态之一的电子电路,例如触发器,以及基于一个或多个其他切换元件的状态的逻辑组合来提供输出状态的电子电路,例如逻辑门。这些基本的切换元件可以被组合以创建更复杂的逻辑电路,包括寄存器、加减器、算术逻辑单元、浮点单元,等等。
芯片组1006在CPU 1004和基板1002上的其余组件和设备之间提供了接口。芯片组1006可以提供与RAM 1008的接口,该RAM被用作计算机1000中的主存储器。芯片组1006可以进一步提供与计算机可读存储介质的接口,所述介质例如是只读存储器(read-onlymemory,“ROM”)1010或者非易失性RAM(non-volatile RAM,“NVRAM”),用于存储有助于启动计算机1000和在各种组件和设备之间传送信息的基本例程。ROM 1010或NVRAM还可以存储根据本文描述的配置进行的计算机1000的操作所必需的其他软件组件。
计算机1000可以在联网环境中操作,使用通过网络(例如,网络102和/或(一个或多个)网络1024)与远程计算设备和计算机系统的逻辑连接。芯片组1006可包括用于通过NIC 1012(例如千兆以太网适配器)来提供网络连通性的功能。NIC 1012能够通过网络将计算机1000连接到其他计算设备。应当明白,计算机1000中可以存在多个NIC 1012,将计算机连接到其他类型的网络和远程计算机系统。在一些示例中,NIC 1012可以被配置为执行本文描述的至少一些技术,并且可以包括用于执行本文所述的技术的组件。
计算机1000可以连接到为计算机提供非易失性存储的存储设备1018。存储设备1018可以存储操作系统1020、程序1022和数据,这些在本文中已被更详细地描述。存储设备1018可以通过与芯片组1006相连接的存储控制器1014来连接到计算机1000。存储设备1018可以由一个或多个物理存储单元组成。存储控制器1014可以通过串行附接SCSI(serialattached SCSI,“SAS”)接口、串行先进技术附件(serial advanced technologyattachment,“SATA”)接口、光纤通道(fiber channel,“FC”)接口或者其他类型的用于在计算机和物理存储单元之间物理连接和传送数据的接口与物理存储单元相对接。
计算机1000可以通过变换物理存储单元的物理状态以反映被存储的信息,从而在存储设备1018上存储数据。在本说明书的不同实施例中,物理状态的具体变换可以取决于各种因素。这种因素的示例可包括但不限于用于实现物理存储单元的技术、存储设备1018是被表征为主存储还是次存储,等等。
例如,计算机1000可以通过如下方式来将信息存储到存储设备1018:通过存储控制器1014发出指令以更改磁盘驱动单元内的特定位置的磁特性、光学存储单元中的特定位置的反射或折射特性、或者固态存储单元中的特定电容器、晶体管或者其他分立组件的电特性。在不偏离本说明书的范围和精神的情况下,物理介质的其他变换是可能的,提供前述示例只是为了方便本说明书。计算机1000可以通过检测物理存储单元内的一个或多个特定位置的物理状态或者特性,进一步从存储设备1018读取信息。
除了上述的大容量存储设备1018以外,计算机1000还可以访问其他计算机可读存储介质以存储和取回信息,例如程序模块、数据结构或者其他数据。本领域的技术人员应当明白,计算机可读存储介质是提供数据的非暂态存储并且可由计算机1000访问的任何可用介质。在一些示例中,由系统架构100和或其中包括的任何组件执行的操作可由一个或多个类似于计算机1000的一个或多个设备支持。换句话说,由系统架构100和或其中包括的任何组件执行的一些或所有操作,可以由在基于云的布置中操作的一个或多个计算机设备1000执行。
作为示例,而不是限制,计算机可读存储介质可包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除的介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程ROM(erasable programmable ROM,“EPROM”)、电可擦除可编程ROM(electrically-erasable programmable ROM,“EEPROM”)、闪存或者其他固态存储器技术、致密盘ROM(compact disc ROM,“CD-ROM”)、数字多功能光盘(digital versatile disk,“DVD”)、高清晰度DVD(high definition DVD,“HD-DVD”)、BLU-RAY或者其他光学存储、盒式磁带、磁带、磁盘存储或者其他磁性存储设备、或者任何其他可用于以非暂态方式存储所需信息的介质。
如上文简要提及的,存储设备1018可以存储被利用来控制计算机1000的操作的操作系统1020。根据一个实施例,该操作系统包括LINUX操作系统。根据另一实施例,该操作系统包括来自华盛顿州雷德蒙的MICROSOFT公司的SERVER操作系统。根据另外的实施例,该操作系统可包括UNIX操作系统或者其变体之一。应当明白,也可以利用其他操作系统。存储设备1018可以存储由计算机1000利用的其他系统或者应用程序和数据。
在一个实施例中,存储设备1018或者其他计算机可读存储介质被编码有计算机可执行指令,这些指令在被加载到计算机1000中时,将计算机从通用计算系统变换为能够实现本文描述的实施例的专用计算机。如上所述,这些计算机可执行指令通过指定CPU 1004如何在状态之间转变来变换计算机1000。根据一个实施例,计算机1000能够访问存储计算机可执行指令的计算机可读存储介质,这些指令在被计算机1000执行时,执行上文关于图1-图9描述的各种过程。计算机1000还可包括计算机可读存储介质,该介质上存储有用于执行本文描述的任何其他由计算机实现的操作的指令。
计算机1000还可包括一个或多个输入/输出控制器1016,用于接收和处理来自若干个输入设备的输入,例如键盘、鼠标、触摸板、触摸屏、电子手写笔、或者其他类型的输入设备。类似地,输入/输出控制器1016可以向显示器提供输出,例如计算机监视器、平板显示器、数字投影仪、打印机、或者其他类型的输出设备。将会明白,计算机1000可能不包括图10中所示的所有组件,可包括图10中没有明确示出的其他组件,或者可能利用与图10中所示完全不同的架构。
如本文所述,计算机1000可以包括数据节点、控制节点、防火墙节点、边缘路由器和/或键值存储中的一个或多个。计算机1000可包括被配置为执行一个或多个存储的指令的一个或多个硬件处理器1004(处理器)。(一个或多个)处理器1004可包括一个或多个核心。另外,计算机1000可包括一个或多个网络接口(例如,NIC 1012),这些网络接口被配置为通过诸如网络102和/或网络1024之类的网络在计算机1000和其他设备之间提供通信。网络接口可包括被配置为耦合到个人区域网络(PAN)、有线和无线局域网(LAN)、有线和无线广域网(WAN)等等的设备。例如,网络接口可包括与以太网、Wi-FiTM等等兼容的设备。
程序1022可包括任何类型的程序或进程,以执行本公开中描述的用于优化分组路径跟踪和/或延迟测量技术的遥测数据的技术。
综上所述,本文描述了用于优化与网络路径跟踪和网络延迟测量相关的技术的技术。一些技术可以包括使用IPv6报头选项和/或分段列表的分段标识符字段或分段路由报头的TLV作为遥测数据载体。这些技术还可以包括使用SRv6微分段(uSID)指令向网络的节点指示该节点将执行一个或多个路径跟踪动作以及对分组进行封装和转发。另外,这些技术可以包括使用与节点接口对应的短接口标识符来跟踪通过网络的分组路径。此外,这些技术可以包括使用短时间戳来确定与通过网络发送分组相关联的延迟测量。在各种示例中,以上和本文描述的技术可以彼此一起使用,以优化网络路径跟踪和延迟测量技术。
虽然是针对具体示例来描述本发明的,但要理解,本发明的范围并不限于这些具体示例。例如,虽然许多示例相对于IPsec协议而被描述,但是应当理解,所描述的技术可应用于其它协议。由于为适应特定的操作要求和环境而进行的其他修改和变化对于本领域的技术人员而言是显而易见的,因此本发明不被认为限于为公开目的而选择的示例,并且覆盖了所有不构成偏离本发明的真正精神和范围的变化和修改。
虽然本申请描述了具有具体结构特征和/或方法动作的实施例,但要理解,权利要求书不一定限于所描述的具体特征或动作。更确切地说,具体特征和动作只是说明了属于本申请的权利要求的范围内的一些实施例。
Claims (25)
1.一种方法,包括:
接收与发送分组通过网络相关联的遥测数据,所述遥测数据至少包括:
与所述网络的第一节点相关联的第一接口标识符,所述第一接口标识符指示用来向第二节点发送了所述分组的所述第一节点的第一接口;以及
与所述网络的第二节点相关联的第二接口标识符,所述第二接口标识符指示用来接收了来自所述第一节点的所述分组的所述第二节点的第二接口;
至少部分地基于所述遥测数据确定通过所述网络的路径,其中根据所述路径发送了所述分组,所述路径至少包括所述第一节点和所述第二节点;以及
至少部分地基于所述路径来确定所述网络中是否存在异常。
2.根据权利要求1所述的方法,还包括接收与所述网络相关联的拓扑数据,其中,确定所述路径还至少部分地基于所述拓扑数据。
3.根据权利要求1或2所述的方法,其中,所述遥测数据还包括与沿所述第一节点和所述第二节点之间的路径布置的所述网络的一个或多个中间节点相关联的一个或多个中间接口标识符,所述一个或多个中间接口标识符至少包括第一中间接口标识符,所述第一中间接口标识符对应于将所述分组从所述第一节点转发到所述第二节点的第三节点的第三接口。
4.根据权利要求3所述的方法,其中,所述路径是至少部分地基于3元组确定的,所述3元组包括所述第一接口标识符、所述第二接口标识符、以及一系列的所述一个或多个中间接口标识符。
5.根据权利要求1至4中任一项所述的方法,其中,所述异常包括以下项中的一个或多个:所述路径包括错误的通过所述网络的最短路径、所述路径包括错误的等成本多路径(ECMP)路由、或所述网络包括至少一个故障链路或故障节点。
6.根据权利要求1至5中任一项所述的方法,其中,所述遥测数据还包括:
第一完整时间戳,指示所述分组被所述第一节点处理的第一时间;以及
第一短时间戳,表示第二完整时间戳的一部分,所述第二完整时间戳指示所述分组被所述第二节点接收到的第二时间。
7.根据权利要求6所述的方法,还包括:
至少部分地基于所述第一完整时间戳和所述第一短时间戳来确定所述第二完整时间戳;以及
至少部分地基于所述第一完整时间戳和所述第二完整时间戳来计算与沿所述路径发送所述分组相关联的时延。
8.一种系统,包括:
一个或多个处理器;以及
一个或多个存储有指令的非暂态计算机可读介质,所述指令在由所述一个或多个处理器执行时,使所述系统执行包括以下动作的操作:
接收与发送分组通过网络相关联的遥测数据,所述遥测数据至少包括:
第一完整时间戳,指示所述分组被所述网络的第一节点处理的第一时间;以及
第一短时间戳,表示第二完整时间戳的一部分,所述第二完整时间戳指示所述分组被所述网络的第二节点接收到的第二时间;
至少部分地基于所述第一完整时间戳和所述第一短时间戳来确定所述第二完整时间戳;以及
至少部分地基于所述第一完整时间戳和所述第二完整时间戳来计算与发送所述分组通过所述网络相关联的时延。
9.根据权利要求8所述的系统,其中,所述第一节点是入口提供商边缘(PE)节点,所述网络的第二节点是中间节点,并且所述遥测数据还包括指示所述分组被所述网络的出口PE节点接收到的第三时间的第三完整时间戳。
10.根据权利要求9所述的系统,其中,所述时延是所述入口PE节点和所述中间节点之间的第一链路延迟、所述中间节点和所述出口PE节点之间的第二链路延迟、或所述入口PE节点和所述出口PE节点之间的端到端时延中的任一者。
11.根据权利要求8至10中任一项所述的系统,其中,确定所述第二完整时间戳包括将所述第一短时间戳与所述第一完整时间戳的最高有效字节(MSB)组合。
12.根据权利要求8至11中任一项所述的系统,其中,所述第一短时间戳包括比所述第一完整时间戳更少的位或字节。
13.根据权利要求8至12中任一项所述的系统,其中,当所述分组被发送通过所述网络时,所述遥测数据被承载在所述分组的分段路由报头(SRH)的分段标识符(SID)字段内。
14.根据权利要求8至13中任一项所述的系统,其中,所述遥测数据还包括:
与所述第一节点相关联的第一接口标识符,所述第一接口标识符指示用来发送了所述分组的所述第一节点的第一接口;以及
与所述第二节点相关联的第二接口标识符,所述第二接口标识符指示用来接收了所述分组的所述第二节点的第二接口。
15.根据权利要求14所述的系统,其中,所述操作还包括至少部分地基于所述第一接口标识符和所述第二接口标识符来确定通过所述网络的路径,其中根据所述路径发送了所述分组,所述路径至少包括所述第一节点和所述第二节点,其中计算所述时延还至少部分地基于确定所述路径。
16.一种方法,包括:
在网络的第一节点处接收要被发送到所述网络的至少第二节点的分组,所述分组包括:
第一指示,所述第一指示指明所述第一节点要附加到所述分组的特定类型的遥测数据;以及
第二指示,所述第二指示指明所述分组的报头内的第一位置,所述第一节点要在所述第一位置处附加所述特定类型的遥测数据;
由所述第一节点并且至少部分地基于所述第一指示,来确定与所述第一节点相关联的所述特定类型的第一遥测数据;
由所述第一节点并且至少部分地基于所述第二指示,来在所述报头内的所述第一位置处附加所述第一遥测数据;
由所述第一节点修改所述分组的所述第二指示,以指示所述报头内的第二位置,所述第二节点要在所述报头内的第二位置处附加与所述第二节点相关联的所述特定类型的第二遥测数据;以及
将所述分组发送到所述第二节点,所述分组包括所述第一遥测数据和指示所述第二位置的所述第二指示。
17.根据权利要求16所述的方法,其中,所述报头是所述分组的分段路由报头,并且所述第一指示和所述第二指示被包括在所述分段路由报头的第一字段内,所述方法还包括:
由所述第一节点确定所述分段路由报头的标志字段被启用;以及
至少部分地基于所述标志字段被启用,由所述第一节点读取包括所述第一指示和所述第二指示的所述第一字段。
18.根据权利要求16或17所述的方法,其中,所述特定类型的遥测数据包括以下项中的至少一者:
接口标识符,所述第一节点用来发送所述分组或接收所述分组,或
时间戳数据,表示所述第一节点处理所述分组的时间,所述时间戳数据包括完整时间戳或表示所述完整时间戳的一部分的短时间戳中的至少一个。
19.根据权利要求16至18中任一项所述的方法,还包括:
在所述第二节点处接收所述分组;
由所述第二节点并且至少部分地基于所述第一指示来确定与所述第二节点相关联的所述特定类型的第二遥测数据;
由所述第二节点并且至少部分地基于指示所述第二位置的所述第二指示,在所述报头内的所述第二位置处附加所述第二遥测数据;
由所述第二节点修改所述分组的所述第二指示以指示所述报头内的第三位置,第三节点要在所述第三位置处附加与所述第三节点相关联的所述特定类型的第三遥测数据;以及
将所述分组发送到所述第三节点,所述分组包括所述第一遥测数据、所述第二遥测数据和指示所述第三位置的所述第二指示。
20.根据权利要求16至19中任一项所述的方法,其中,所述第二节点是汇聚节点,所述方法还包括:
在所述第二节点处接收所述分组;
由所述第二节点将所述遥测数据发送到与所述网络相关联的收集器;以及
由所述第二节点将所述分组发送到目的地。
21.一种装置,包括:
用于接收与发送分组通过网络相关联的遥测数据的模块,所述遥测数据至少包括:
与所述网络的第一节点相关联的第一接口标识符,所述第一接口标识符指示用来向第二节点发送了所述分组的所述第一节点的第一接口;以及
与所述网络的第二节点相关联的第二接口标识符,所述第二接口标识符指示用来接收了来自所述第一节点的所述分组的所述第二节点的第二接口;
用于至少部分地基于所述遥测数据确定通过所述网络的路径的模块,其中根据所述路径发送了所述分组,所述路径至少包括所述第一节点和所述第二节点;以及
用于至少部分地基于所述路径来确定所述网络中是否存在异常的模块。
22.根据权利要求21所述的装置,还包括用于实现根据权利要求2至7中任一项所述的方法的模块。
23.一种计算机程序、计算机程序产品或计算机可读介质,包括指令,所述指令在由计算机执行时使所述计算机执行根据权利要求1至7或权利要求16至20中任一项所述的方法的步骤。
24.一种装置,包括:
用于在网络的第一节点处接收要被发送到所述网络的至少第二节点的分组的模块,所述分组包括:
第一指示,所述第一指示指明所述第一节点要附加到所述分组的特定类型的遥测数据;以及
第二指示,所述第二指示指明所述分组的报头内的第一位置,所述第一节点要在所述第一位置处附加所述特定类型的遥测数据;
用于由所述第一节点并且至少部分地基于所述第一指示来确定与所述第一节点相关联的所述特定类型的第一遥测数据的模块;
用于由所述第一节点并且至少部分地基于所述第二指示来在所述报头内的所述第一位置处附加所述第一遥测数据的模块;
用于由所述第一节点修改所述分组的所述第二指示以指示所述报头内的第二位置的模块,所述第二节点要在所述第二位置处附加与所述第二节点相关联的所述特定类型的第二遥测数据;以及
用于将所述分组发送到所述第二节点的模块,所述分组包括所述第一遥测数据和指示所述第二位置的所述第二指示。
25.根据权利要求24所述的装置,还包括用于实现根据权利要求17至20中任一项所述的方法的模块。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/119,992 | 2020-12-01 | ||
US63/120,002 | 2020-12-01 | ||
US63/119,964 | 2020-12-01 | ||
US63/119,938 | 2020-12-01 | ||
US17/344,443 US11716268B2 (en) | 2020-12-01 | 2021-06-10 | Telemetry data optimization for path tracing and delay measurement |
US17/344,443 | 2021-06-10 | ||
PCT/US2021/060738 WO2022119749A1 (en) | 2020-12-01 | 2021-11-24 | Telemetry data optimization for path tracing and delay measurement |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116569531A true CN116569531A (zh) | 2023-08-08 |
Family
ID=87486589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180080806.4A Pending CN116569531A (zh) | 2020-12-01 | 2021-11-24 | 用于路径跟踪和延迟测量的遥测数据优化 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116569531A (zh) |
-
2021
- 2021-11-24 CN CN202180080806.4A patent/CN116569531A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11716268B2 (en) | Telemetry data optimization for path tracing and delay measurement | |
US11711288B2 (en) | Centralized error telemetry using segment routing header tunneling | |
US12088483B2 (en) | Telemetry data optimization for path tracing and delay measurement | |
US11418453B2 (en) | Path visibility, packet drop, and latency measurement with service chaining data flows | |
US11716274B2 (en) | Determining node behavior in deterministic networks | |
US10003522B2 (en) | Routing with flow over shared risk link groups | |
CN113300868A (zh) | 故障网络设备节点的定位方法、装置和网络通信方法 | |
US20240022500A1 (en) | Performance measurement, telemetry, and oam in mpls networks using entropy labels | |
US20200252332A1 (en) | Method, electronic device and computer-readable medium for processing data generated by service | |
CN116569531A (zh) | 用于路径跟踪和延迟测量的遥测数据优化 | |
CN112787933B (zh) | 用于从观察域卸载ipfix查找和转换操作的装置、系统和方法 | |
CN113055240B (zh) | 报文传输方法、装置及计算机可读存储介质 | |
US20240297838A1 (en) | Hardware accelerated path tracing analytics | |
US20230164063A1 (en) | Network path detection and monitoring | |
US20240146643A1 (en) | Virtual testing of network resiliency | |
US11962473B1 (en) | Virtual network function proof of transit | |
WO2024186615A1 (en) | Optimizing path tracing to enable network assurance in existing network hardware | |
WO2024186628A1 (en) | Hardware accelerated path tracing analytics | |
US20240163179A1 (en) | Virtual network function proof of transit | |
WO2023091380A1 (en) | Network path detection and monitoring | |
Barbecho Bautista et al. | Evaluating scalability, resiliency, and load balancing in software-defined networking | |
WO2023009314A1 (en) | Performance measurement, telemetry, and oam in mpls networks using entropy labels |
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 |