一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于SD-WAN隧道的遥测数据收集和分析的制作方法

2022-08-28 06:34:29 来源:中国专利 TAG:

用于sd-wan隧道的遥测数据收集和分析
1.相关申请的交叉引用
2.本技术要求jean-philippe vasseur于2020年1月15日提交的、题为“telemetry collection and analysis for sd-wan tunnels(用于sd-wan隧道的遥测数据收集和分析)”的、申请号为16/743,064的美国实用新型专利申请的优先权,其内容通过引用并入本文。
技术领域
3.本公开总体上涉及计算机网络,更具体地涉及用于软件定义广域网(sd-wan)隧道的遥测数据(telemetry)的收集和分析。


背景技术:

4.软件定义广域网(sd-wan)代表将软件定义网络(sdn)原理应用于wan连接,例如到蜂窝网络、互联网和多协议标签交换(mpls)网络的连接。sd-wan的强大之处在于能够跨各种传输质量的各种下层隧道透明地为重要应用流量提供一致的服务水平协议(sla),并且允许基于可以匹配应用sla的隧道性能指标进行无缝隧道选择。
5.目前,sd-wan隧道使用双向转发检测(bfd)探测进行监视。这允许sd-wan监视隧道的性能(例如,在延迟、抖动等方面)。这样的信息可以用于启用应用感知路由,由此经由针对满足应用的sla而选择的隧道来路由特定应用的流量。此外,bfd探测还用于使用保持活动机制来检测隧道故障。在这种方法下,如果bfd探测的接收器(例如,隧道的后端路由器)在特定时间量内没有确认探测,则可能认为隧道发生故障,并且其流量被重新路由到另一个隧道。
6.测试表明,sd-wan中的bfd探测在网络上产生了不可忽略的开销量,尤其是在隧道的前端路由器上。虽然这种开销相对较少,但也会导致bfd会话超时和抖动(flapping)。此外,这种开销还可能导致bfd探测隧道被错误分类为无法满足流量的sla,即使流量本身没有遇到这种违规。
附图说明
7.图1a-图1b示出了示例通信网络;
8.图2示出了示例网络设备/节点;
9.图3示出了网络中的隧道的示例;
10.图4示出了用于收集和分析隧道的遥测数据的示例架构;
11.图5示出了用于使用机器学习在网络中实现主动路由的示例架构;
12.图6a-图6c示出了用于隧道故障预测的反馈的示例;以及
13.图7示出了用于收集关于网络隧道的遥测数据的示例简化程序。
具体实施方式
14.概述
15.本发明的各方面在独立权利要求中阐述,并且优选特征在从属权利要求中阐述。一个方面的特征可以单独应用于任何方面或与其他方面相组合。
16.根据本公开的一个或多个实施例,网络中的设备沿着与该设备相关联的网络隧道发送双向转发检测(bfd)探测,以收集关于该网络隧道的遥测数据。该设备监视与沿着网络隧道发送bfd探测相关联的开销。该设备确定与沿着网络隧道发送bfd探测相关联的开销是不可接受的。基于该确定,设备从沿着网络隧道发送bfd探测切换到修改经由网络隧道发送的数据流量,以收集关于该网络隧道的遥测数据。
17.下文描述了其他实施例,并且该概述并不意味着限制本公开的范围。
18.描述
19.计算机网络是地理上分布的节点的集合,这些节点通过通信链路和区段进行互连,以用于在端部节点(例如,个人计算机和工作站)或其他设备(例如,传感器等)之间传输数据。有许多类型的网络是可用的,其中这些类型的范围为从局域网(lan)到广域网(wan)。lan通常通过位于相同的一般物理位置(例如,建筑物或园区)内的专用私有通信链路来连接节点。在另一方面,wan通常通过远程通信链路来连接地理上分散的节点,该远程通信链路例如为公共载波电话线、光路径、同步光网络(sonet)或同步数字层次(sdh)链路或电力线通信(plc),例如ieee 61334、ieee p1901.2等。互联网是连接全世界不同网络的wan的示例,其在各种网络上的节点之间提供全局通信。节点通常通过根据预定义协议(例如,传输控制协议/互联网协议(tcp/ip))交换离散帧或数据分组来通过网络进行通信。在该上下文中,协议由一组规则组成,这些规则限定了节点如何相互交互。计算机网络可以通过中间网络节点(例如,路由器)进一步互连,以扩展每个网络的有效“大小”。
20.智能对象网络(例如,传感器网络)具体而言是具有空间分布的自主设备(例如,传感器、执行器等)的特定类型的网络,这些设备协同监视不同位置处的物理或环境条件,例如能量/功耗、资源消耗(例如,先进计量基础设施或“ami”应用的水/气等)温度、压力、振动、声音、辐射、运动、污染物等。其他类型的智能对象包括执行器,例如,负责打开/关闭引擎或执行任何其他动作。传感器网络(一种类型的智能对象网络)通常是共享媒体网络,例如无线或plc网络。也就是说,除了一个或多个传感器之外,传感器网络中的每个传感器设备(节点)通常可以配备有无线电收发器或其他通信端口,例如plc、微控制器和能源(例如电池)。智能对象网络常常被视为场域网(fan)、邻域网(nan)、个域网(pan)等。通常,智能对象节点(例如,传感器)的大小和成本约束导致对资源(例如,能量、内存、计算速度和带宽)的相应约束。
21.图1a是示例计算机网络100的示意框图,该计算机网络100示意性地包括节点/设备,例如通过链路或网络进行互连的多个路由器/设备,如图所示。例如,客户边缘(ce)路由器110可以与提供商边缘(pe)路由器120(例如,pe-1、pe-2和pe-3)互连,以便在核心网络(例如,说明性网络主干130)上通信。例如,路由器110、120可以通过公共互联网、多协议标签交换(mpls)虚拟私有网络(vpn)等进行互连。可以使用预定义网络通信协议(例如,传输控制协议/互联网协议(tcp/ip)、用户数据报协议(udp)、异步传输模式(atm)协议、帧中继协议或任何其他合适的协议)通过链路在计算机网络100的节点/设备之间交换数据分组
140(例如,流量/消息)。本领域技术人员将理解,可以在计算机网络中使用任何数量的节点、设备、链路等,并且本文所示的视图是为了简单起见。
22.在一些实现方式中,路由器或一组路由器可以经由表现出非常不同的网络和服务水平协议特性的一个或多个链路连接到私有网络(例如,专用租用线路、光网络等)或虚拟私有网络(vpn)(例如,归因于载波网络的mpls vpn)。为了便于说明,给定的客户站点可能属于以下任何类别:
23.1.)站点类型a:使用单个ce路由器和单个链路(例如,经由私有或vpn链路)连接到网络的站点,该站点可能具有备份链路(例如,3g/4g/5g/lte备份连接)。例如,网络100中所示的特定ce路由器110可以支持给定客户站点,该给定客户站点也可能具有备份链路,例如无线连接。
24.2.)站点类型b:使用两个mpls vpn链路(例如,来自不同服务提供商)连接到网络的站点,该站点可能具有备份链路(例如,3g/4g/5g/lte连接)。b型站点本身可能有不同的类型:
25.2a.)站点类型b1:使用两个mpls vpn链路(例如,来自不同服务提供商)连接到网络的站点,该站点可能具有备份链路(例如,3g/4g/5g/lte连接)。
26.2b.)站点类型b2:使用一个mpls vpn链路和连接到公共互联网的一个链路连接到网络的站点,该站点可能具有备份链路(例如,3g/4g/5g/lte连接)。例如,特定客户站点可以经由pe-3和经由单独的互联网连接而连接到网络100,该站点也可能具有无线备份链路。
27.2c.)站点类型b3:使用连接到公共互联网的两个链路连接到网络的站点,该站点可能具有备份链路(例如,3g/4g/5g/lte连接)。
28.值得注意的是,mpls vpn链路通常与承诺的服务水平协议关联,而互联网链路可能根本没有服务水平协议,也可能没有松散的服务水平协议(例如,保证客户站点达到一定性能水平的“金包(gold package)”互联网服务连接)。
29.3.)站点类型c:b型站点(例如bl、b2或b3型),但具有多于一个ce路由器(例如,第一ce路由器连接到一个链路,而第二ce路由器连接到另一链路),并且可能具有备份链路(例如,无线3g/4g/5g/lte备份链路)。例如,特定客户站点可以包括连接到pe-2的第一ce路由器110和连接到pe-3的第二ce路由器110。
30.图1b更详细地示出了根据各种实施例的网络100的示例。如图所示,网络主干130可以提供位于不同地理区域和/或不同类型的本地网络中的设备之间的连接。例如,网络100可以包括本地/分支网络160、162以及数据中心/云环境150,本地/分支网络160、162分别包括设备/节点10-16和设备/节点18-20,数据中心/云环境150包括服务器152-154。值得注意的是,本地网络160-162和数据中心/云环境150可以位于不同的地理位置。
31.在各种实施例中,服务器152-154可以包括网络管理服务器(nms)、动态主机配置协议(dhcp)服务器、受约束应用协议(coap)服务器、停机管理系统(oms)、应用策略基础设施控制器(apic)、应用服务器等。将意识到,网络100可以包括任何数量的本地网络、数据中心、云环境、设备/节点、服务器等。
32.在一些实施例中,本文中的技术可以应用于其他网络拓扑和配置。例如,本文中的技术可以应用于具有高速链路的对等点、数据中心等。
33.根据各种实施例,可以在网络100中使用软件定义的wan(sd-wan)来连接本地网络
160、本地网络162和数据中心/云150。通常,sd-wan使用基于软件定义网络(sdn)的方法以在物理网络的顶部上实例化隧道,并且相应地控制路由决策。例如,如上所述,一个隧道可以通过主干130中的mpls或基于互联网的服务提供商网络将本地网络160的边缘处的路由器ce-2连接到数据中心/云150的边缘处的路由器ce-1。类似地,第二隧道也可以通过4g/5g/lte蜂窝服务提供商网络来连接这些路由器。sd-wan技术允许wan功能虚拟化,从而基本上在各种下层连接的顶部上在本地网络160和数据中心/云150之间形成虚拟连接。sd-wan的另一特征是由监督服务进行集中管理,该监督服务可以根据需要来监视和调整各种连接。
34.图2是示例节点/设备200的示意框图,该示例节点/设备200可以与本文所述的一个或多个实施例一起使用,例如,作为图1a-图1b中所示的任何计算设备,尤其是pe路由器120、ce路由器110、节点/设备10-20、服务器152-154(例如,位于数据中心中的网络控制器/监督服务等)、支持网络100的操作的任何其他计算设备(例如,交换机等)或下文提及的任何其他设备。设备200还可以是任何其他合适类型的设备,这取决于所处的网络架构的类型,例如iot节点等。设备200包括由系统总线250互连并由电源260供电的一个或多个网络接口210、一个或多个处理器220和存储器240。
35.网络接口210包括用于通过耦合到网络100的物理链路来传送数据的机械、电气和信令电路。网络接口可以被配置为使用各种不同的通信协议来发送和/或接收数据。值得注意的是,物理网络接口210还可以用于实现本领域技术人员已知的一个或多个虚拟网络接口,例如用于虚拟私有网络(vpn)接入。
36.存储器240包括能够由(一个或多个)处理器220和网络接口210寻址的多个存储位置,以用于存储与本文所述的实施例相关联的软件程序和数据结构。处理器220可以包括适用于执行软件程序并操作数据结构245的必要元件或逻辑。操作系统242(例如,cisco systems公司的互联操作系统或其他操作系统等),其部分通常驻留在存储器240中并由(一个或多个)处理器执行,该操作系统242通过调用网络操作等方式在功能上组织节点,以支持在设备上执行的软件处理器和/或服务。如本文所述,这些软件处理器和/或服务可以包括隧道探测过程248和/或路由过程249,其中任何进程都可以替代地位于各个网络接口内。
37.对于本领域技术人员来说,显而易见的是,其他处理器和存储器类型(包括各种计算机可读介质)可以用于存储和执行与本文所述技术有关的程序指令。此外,虽然描述示出了各种过程,但可以明确预见各种过程可以体现为被配置为根据本文中的技术(例如,根据类似过程的功能)进行操作的模块。此外,虽然过程可以被单独示出和/或描述,但本领域技术人员将意识到,过程可以是其他过程中的例程或模块。
38.如上所述,sd-wan中的隧道通常使用双向转发检测(bfd)探测进行监视。例如,图3示出了网络300中的隧道306的示例。如图所示,假设网络300包括前端路由器302和后端路由器304(例如,边缘设备)。在操作期间,前端路由器302可以与后端路由器304建立隧道306,前端路由器302可以经由该隧道306来路由流量。
39.为了监视隧道306的状态和性能,前端路由器302可以沿着隧道306向后端路由器304发送bfd探测308(例如,通过执行隧道探测过程248),然后由后端路由器304经由确认310对bfd探测308进行确认。这样的bfd探测308既用于维护隧道306的状态,又用于监视隧
道306的性能/服务水平协议(sla)特性。例如,bfd探测308可以用于确定沿着隧道306的抖动量、延迟量等。通常,在滑动时间窗口(例如,10分钟长的滑动时间窗口)内对这些测量值取平均值。
40.在一些实现方式中,可以使用从bfd探测中学习的隧道的性能指标来实现应用感知路由。例如,假设前端路由器302为视频会议应用发送流量。此外,假设视频会议应用的sla要求(例如,流量经历的抖动必须低于阈值x,流量经历的延迟必须低于阈值y等)由策略指定。在这种情况下,在将流量路由到隧道306上之前,前端路由器302可以将视频应用流量的sla要求与从bfd探测308的发送中学习到的隧道306的性能指标进行比较,以确定隧道306是否可以满足流量的sla要求。该过程也可以随着时间的推移而重复,以确保隧道306仍然满足流量的sla要求。如果不是,则前端路由器302可以将应用流量重新路由到预期满足其sla要求的另一隧道上。
41.除了评估隧道306的性能以外,前端路由器302还可以使用bfd探测308来检测隧道306何时发生故障。更具体地,如果后端路由器304未能在预定义窗口内用相应的确认310对bfd探测308进行确认,则前端路由器302可以确定隧道306已发生故障。前端路由器302进而可以将隧道306上的流量重新路由到仍然活跃的不同隧道上。
42.在大规模部署中,已经观察到,维护bfd会话和发送bfd流量的开销在cpu消耗方面对前端路由器造成了不可忽略的负载,从而可能导致会话抖动,以及对沿着隧道的其他路由器造成了不可忽略的负载,尤其是在全网格环境下的低端路由器上。更具体地,测试表明,每个隧道每月的故障中位数通常在2-9之间,具有非常高的第75百分位数和最大故障数。平均而言,每天约有0-20%的隧道发生故障。此外,测试表明,高达83%的故障是由约1%的隧道引起的。
43.虽然bfd超时不是隧道故障的唯一原因,但由于bfd探测的额外开销而导致的bfd超时确实会导致隧道故障。此外,由于额外的开销,bfd探测隧道可能不会用与隧道承载的分组相同的颜色进行标记,从而导致为隧道测量的性能指标(例如,延迟、损失、抖动等)不能反映流量的实际体验。换句话说,隧道的测量性能可能表明sla违规,而流量经历的实际性能可能是可以接受的。这可能会导致流量被不必要地重新路由到备份/辅助隧道,并且对流量产生负面影响。
44.用于sd-wan隧道的遥测数据采集与分析
45.本文中的技术介绍了一种用于监视sd-wan隧道的活力和性能的基于流量的方法,该方法解决了传统基于bfd的探测的缺点。在一些方面,本文中的技术指定用于切换到基于流量的探测的若干触发器。在另一方面,本文中引入了一种用于在隧道的前端处的数据分组中插入控制信息的机制,该控制信息由前端用于测量流量的各种性能指标,例如延迟、损失和抖动。本文中还引入了一种反馈回路,该反馈回路允许中央机器学习组件通过基于训练模型的性能而动态调整遥测数据收集(例如,根据性质、频率等)来计算网络的机器学习模型(例如,预测隧道故障、sla违规等)。例如,反馈机制的一个目标可以用于最小化遥测数据收集,同时仍至少达到模型性能的阈值程度。
46.具体地,根据本文中的一个或多个实施例,网络中的设备沿着与该设备相关联的网络隧道来发送双向转发检测(bfd)探测,以收集关于该网络隧道的遥测数据。该设备监视与沿着网络隧道发送bfd探测相关联的开销。该设备确定与沿着网络隧道发送bfd探测相关
联的开销是不可接受的。基于该确定,设备从沿着网络隧道发送bfd探测切换到修改经由网络隧道发送的数据流量,以收集关于网络隧道的遥测数据。
47.说明性地,本文所述的技术可以通过硬件、软件和/或固件来执行,例如根据隧道探测过程248和/或路由过程249,其可以包括由处理器220(或接口210的独立处理器)执行的计算机可执行指令,以执行与本文所述的技术相关的功能。
48.在操作上,图4示出了根据各种实施例的用于收集和分析隧道的遥测数据的示例架构400。继续图3的示例,假设前端路由器302执行隧道探测过程248和路由过程249。如图所示,隧道探测过程248可以包括以下任何组件或所有组件:基于bfd的探测器402、开销分析器404和/或基于流量的探测器406。在另外的实施例中,这些组件402-406可以按分布式方式实现,或者作为其自身的独立服务实现,或者作为被观察的网络的一部分或作为远程服务实现。此外,架构400的组件的功能可以根据需要进行组合、省略或作为其他过程的一部分实现。
49.前端路由器302还可以执行路由过程249,该路由过程249被配置为针对其数据流量作出路由决策。更具体地,路由过程249可以基于通过隧道探测过程248对隧道306进行探测,来确定特定数据流量是否应经由隧道306或另一隧道来路由。在一个实施例中,路由过程249可以被配置为执行应用感知路由,这意味着如果对隧道306的探测指示隧道306将满足应用的指定sla,则路由过程249可以经由隧道306来路由特定应用的数据流量。如果不满足,则路由过程249可以经由辅助/备份隧道来重新路由应用流量。
50.路由过程249还可以使用由隧道探测过程248获得的探测信息来反应性地或主动地重新路由隧道306上的流量。例如,如果隧道探测过程248确定隧道306已发生故障(例如,基于bfd会话超时等),则路由过程249可以将隧道306上的流量反应性地重新路由到辅助/备份隧道上。在另外的实施例中,如下文进一步详述的,路由过程249还可以基于指示隧道306可能发生故障的探测信息,将隧道306上的流量主动地重新路由到另一隧道上。这种预测可以通过路由器402本地执行基于机器学习的预测模型408来进行,或替代地,可以通过与进行这种故障预测并监视路由器302-304的操作的监督服务/控制器414协调来进行。路由过程249可以支持的另一种形式的预测路由依赖于预测模型408,该预测模型408基于通过隧道探测过程248的探测来预测隧道306的性能。如果预测隧道306未来无法满足流量的sla,则这种预测允许路由过程249主动地重新路由隧道306上的数据流量的至少一部分。
51.为了简单起见,图4中仅示出了前端路由器302的组件。然而,在各种实施例中,后端路由器304还可以执行前端路由器302的任何组件或所有组件,例如本文所述的过程248-249的各种组件。
52.如前所述,在操作期间,基于bfd的探测器402可以进行与后端路由器304的隧道306的bfd探测410。在各种实施例中,前端路由器302还可以执行开销分析器404,该开销分析器404负责评估与由基于bfd的探测器402进行的bfd探测410相关联的开销。为此,开销分析器404可以评估由前端路由器302消耗的资源,例如其当前cpu负载、内存使用率、(一个或多个)队列长度、(一个或多个)队列处理时间、(子)接口带宽使用率等。此外,开销分析器404还可以评估由前端路由器302维护的隧道(例如,隧道306)的性能指标。例如,开销分析器404还可以评估隧道306在延迟、损失、抖动、流量负载等方面的变化,这些变化可归因于由基于bfd的探测器402进行的bfd探测410。
53.如果开销分析器404确定与bfd探测410相关联的开销超过特定阈值,则其可以发出警报。在简单实施例中,这样的阈值可以是静态的(例如,cpu使用率的百分比、队列长度、队列处理时间、带宽使用率等)。在更高级的实施例中,开销分析器404可以利用机器学习来确定与由基于bfd的探测器402进行的bfd探测410相关联的开销是不可接受的。例如,开销分析器404可以执行异常检测器,该异常检测器被配置为使用皮尔逊相关系数等来检测何时高速率的bfd抖动与路由器302消耗的资源相关。尽管相关性并不一定意味着因果关系,但如果开销分析器404确定隧道抖动与路由器302为执行bfd探测410而消耗的资源的峰值高度相关,则开销分析器404仍然可以发出警报。
54.在另外的实施例中,开销分析器404可以基于bfd探测410消耗的资源的异常程度的度量来触发警报。为此,开销分析器404可以对与执行bfd探测410的基于bfd的探测器402相关联的“正常”资源消耗进行建模。反过来,如果观察到的资源消耗偏离该模型达到阈值量,则开销分析器404可以发出警报。例如,如果预期bfd探测410将使路由器302的cpu使用率增加10%,则观察到的cpu使用率增加30%可能会导致开销分析器404认为这一增加是异常的并发出警报。
55.本文介绍的技术的关键方面涉及基于流量的探测的构思,该构思可用作探测前端路由器302的隧道(例如,隧道306)的替代机制。为此,隧道探测过程248还可以包括基于流量的探测器406,该基于流量的探测器406被配置为执行隧道306的基于流量的探测412。一般来说,基于流量的探测器406可以由开销分析器404激活,该开销分析器404针对由执行bfd探测410的基于bfd的探测器402施加的开销发出警报。换句话说,基于开销分析器404确定与bfd探测410相关联的开销是不可接受的,隧道探测过程248可以从执行bfd探测410切换到执行基于流量的探测412。
56.隧道探测过程248可以自动执行探测机制切换(例如,当开销分析器404发出警报时),并且也可以根据定义的策略来做到这一点。例如,这样的策略可以指定由开销分析器404使用的开销阈值,以及它们相应的动作(例如,用于调整基于bfd的探测器402的参数的较小开销阈值,用于切换到基于流量的探测412的较大开销阈值等)。此外,隧道探测过程248也可以使用这种策略来控制在切换到基于流量的探测412之后何时恢复bfd探测410以及是否恢复bfd探测410。
57.为了启动基于流量的探测412,基于流量的探测器406可以向后端路由器304发送定制消息,该定制消息请求激活对隧道306的基于流量的探测412,或针对路由器302-304之间的一组隧道激活基于流量的探测412。例如,这样的消息可以向后端路由器304指定以下任何属性或所有属性:将使用基于流量的探测的隧道组(例如,一组隧道标识符)、将收集的度量类型(例如,损失、延迟、抖动等)和/或每种类型的度量/变量的特定属性。一旦被启用,基于流量的探测412允许后端路由器304监视沿着(一个或多个)隧道的数据流量的指定性能指标。
58.在各种实施例中,基于流量的探测器406可以部分通过修改与隧道306相关联的隧道封装以添加序列信息来执行基于流量的探测412。例如,在ipv6中,基于流量的探测器406可以将序列信息置于在外部(隧道)封装内并受ipsec保护的目标对象中。当基于流量的探测412被启用时,基于流量的探测器406可以将序列信息添加到由前端路由器302封装并经由隧道306发送的所有数据分组。在一个实施例中,基于流量的探测器406也可以向分组添
加时间戳。在另外的实施例中,基于流量的探测器406还可以包括其从隧道306的另一侧(后端路由器304)接收的最新序列号。
59.基于插入到由前端路由器302经由隧道306发送的数据分组中的信息,后端路由器304可以计算流量的性能度量。例如,后端路由器304可以通过识别序列计数器中的间隙来推断流量的丢失率。类似地,后端路由器304可以评估其本地时间与由基于流量的探测器406添加的时间戳所指示的时间之间的差的任何变化。假设隧道306大致对称,后端路由器304还可以通过将观察到的往返行程一分为二来计算流量的时延。将意识到,这些计算只涉及简单的算法,使得它们的资源消耗相对较低,甚至可以直接在硬件中实现。为了进一步节省资源,后端路由器304可以定期或在检测到性能指标超过预定义阈值时向前端路由器302报告这些指标。例如,如果后端路由器304在其本地时间和数据流量的时间戳之间的差中识别出尖峰,则后端路由器304可以向前端路由器302发信号通知流量应被重新路由到不同的隧道上。
60.更具体地,一旦后端路由器304计算出经由隧道306发送的数据流量的(一个或多个)性能度量,则其可以将该信息报告回前端路由器302。在各种实施例中,后端路由器304可以通过将计算出的损失和抖动聚合为统计值来做到这一点,这些统计值由后端路由器304报告回前端路由器302。例如,在x秒数的时间段或y个数据分组之后(以先到者为准),后端路由器304可以报告经由隧道306发送的流量的以下任何或所有性能指标:误差之间的最小成功数据分组递送、误差之间的最小时间、上述项的平均值和/或均方根值,一行中损失的最大数量、其组合等。
61.将意识到,经由隧道306发送的流量的延迟(或时延)只能按照往返行程的一半来观察。由于路由器302-304之间的路径可能是不对称的,因此无法单独测量一个方向。然而,在非平行链路上观察到的时延变化(例如,它同时发生在链路a-b和b-c上)指示实际上“靠近”公共端的具有膨胀的位置(在这种情况下为b),这意味着b的其他传输也可能受到影响。在各种实施例中,可以确定平行隧道之间甚至非平行隧道之间的相关性,以建立相互依赖的度量。该信息可以用于确定例如:是否存在在多个隧道上造成膨胀的公共物理链路,是否存在两个隧道同时下降的历史记录,指示共享风险链路组(srlg)等等。
62.根据各种实施例,本文中的技术的另一方面引入了一种用于控制基于流量的隧道探测的反馈机制。这在使用主动路由以在实际问题发生之前做出路由决策的情况下特别有用。
63.图5示出了根据各种实施例的用于使用机器学习在网络中实现主动路由的示例架构500。继续上述示例,假设监督服务/控制器414提供对网络的各种边缘设备(例如,前端路由器302和后端路由器304)的控制。在各种实施例中,监督服务/控制器414可以利用机器学习来预测隧道故障和/或隧道无法满足流量sla。
64.一般来说,机器学习涉及以经验数据(例如,网络统计和性能指标)作为输入并且识别这些数据中的复杂模式的技术的设计和开发。机器学习技术中的一种非常常见的模式是使用下层模型m,在给定输入数据的情况下,对该下层模型m的参数进行优化,以最小化与m相关联的成本函数。例如,在分类的情境中,模型m可以是将数据分为两类(例如,标签)的直线,使得m=a*x b*y c,并且成本函数将是误分类点的数量。然后,学习过程通过调整参数a、b、c进行操作,使得误分类点的数量最小。在这个优化阶段(或学习阶段)之后,可以很
容易地使用模型m对新数据点进行分类。m常常是统计模型,并且在给定输入数据的情况下,成本函数与m的似然成反比。
65.在各种实施例中,监督服务/控制器414可以采用一个或多个监督、无监督或半监督机器学习模型。一般来说,监督学习需要使用训练数据组,如上所述,该训练数据组用于训练模型以将标签应用于输入数据。例如,训练数据可以包括已标记为指示sd-wan隧道发生故障或指示正常隧道操作的样本网络遥测数据。该系列中的另一种是无监督技术,其不需要训练标签组。值得注意的是,监督学习模型可能会寻找先前看到的已被标记为这样的模式,而无监督模型可能会转而寻找行为中是否存在突然的变化或模式。半监督学习模型采用中间方法,其使用大量减少的标记训练数据组。
66.监督服务/控制器414可以采用的示例机器学习技术可以包括但不限于最近邻(nn)技术(例如,k-nn模型、复制器nn模型等)、统计技术(例如,贝叶斯网络等)、聚类技术(例如,k-均值、均值移位等)、神经网络(例如,贮存器网络、人工神经网络等)、支持向量机(svm)、逻辑或其他回归、马尔可夫模型或链、主成分分析(pca)(例如,用于线性模型)、奇异值分解(svd)、多层感知器(mlp)人工神经网络(ann)(例如,用于非线性模型)、复制贮存器网络(例如,用于非线性模型,通常用于时间序列)、随机森林分类等等。
67.机器学习模型的性能可以基于模型的真阳性、假阳性、真阴性和/或假阴性的数量以多种方式进行评估。例如,模型的假阳性可以是指模型错误地预测sd-wan隧道将发生故障的次数。相反,当隧道实际上发生故障时,模型的假阴性可以是指模型预测正常隧道运行的次数。真阴性和真阳性可以分别是指模型正确地预测隧道是正常运行还是发生故障的次数。与这些测量结果相关的是召回率(recall)和精确率(precision)的构思。一般来说,召回率是指真阳性与真阳性和假阴性之和的比率,其量化了模型的敏感性。类似地,精确率是指真阳性与真阳性和假阳性之和的比率。
68.在各种实施例中,监督服务/控制器414可以包括以下任何组件或所有组件:遥测数据收集模块502、机器学习故障预见(mlff)模块504和/或模型再训练模块506。这些组件502-506可以按分布式方式实现,或者作为其自身的独立服务实现,或者作为被观察的网络的一部分或作为远程服务实现。此外,架构500的组件的功能可以根据需要进行组合、省略或作为其他过程的一部分实现。监督服务/控制器414还可以与任何数量的边缘设备(例如,第1到第n个设备)通信,例如先前描述的前端路由器302和后端路由器306。
69.一般来说,在网络中有许多情况可能导致前端路由器和后端路由器之间(例如,路由器302-304等之间)的网络的各个区域中的隧道故障。如下所述,mlff模块504的目标是学习具有一定预测能力的早期迹象(网络行为),从而允许模型预测/预见隧道故障。预期一些故障是可预测的(即,存在即将发生故障的早期迹象),而其他故障是不可预测的(例如,光纤中断、路由器崩溃等)。更具体地,几乎所有故障都表现出早期迹象,但这些迹象可能仅出现在故障(例如光纤切断)之前几毫秒(甚至纳秒),因此预见几乎是不可能的任务。一些不可预测的故障可能是由于没有返回到所涉及的前端路由器302的信令,并且可能局限于服务提供商网络的核心(例如,下层ip、4g、5g等网络),在这种情况下,从前端路由器302的角度来看,故障是不可预测的。
70.架构500的第一方面涉及遥测数据收集模块502,该遥测数据收集模块502通过mlff模块504获得模型训练所需的遥测数据。如本文所用的,术语“相关遥测数据”是指具有
预测隧道故障的预测能力的遥测数据测量结果变量,其可以由mlff模块504动态地确定。事实上,由于缺乏相关遥测数据、模型无法预测故障或遥测数据被采样的时间粒度太粗,故障可能是可预测的,但无法成功预测。在一些实施例中,为了从路由器302-304获得相关遥测数据,监督服务/控制器414可以向路由器302-304中的一个或多个发送定制请求,该定制请求的目的是获得感兴趣的事件列表以及具有预测隧道故障的潜在预测能力的候选遥测数据变量的组。在另外的实施例中,边缘路由器302-304可以替代地在推送的基础上向监督服务/控制器414提供遥测数据(例如,在监督服务/控制器414没有首先请求遥测数据的情况下)。
71.在各种实施例中,如下所述,遥测数据采集模块502可以调整从路由器获得的遥测数据变量的组/参数和/或其采样频率(例如,经由基于bfd的探测和/或基于流量的探测)。例如,如果mlff模块504确定特定遥测数据变量具有较强的预测能力(例如,根据特征重要性、shapley值等),则与预测能力较低的变量相比,可以收集这种变量的频率可能更高。在另外的实施例中,mlff模块504还可以通过评估所涉及的条件概率来确定特定遥测数据变量的预测能力。
72.mlff模块504还可以选择最相关的遥测数据变量的组。遥测数据收集模块502进而可以请求边缘路由器302-304定期测量这些变量并将其发送给监督服务/控制器414,因为预见隧道关闭事件需要这种遥测数据的实时变化。例如,基于上述结论,mlff模块504可以确定支持给定隧道的一个或多个网络设备的cpu和内存利用率应该由边缘路由器302-304定期(例如,每1秒)发送。
73.其他遥测数据变量,例如在当边缘路由器无法与控制器成功交换安全密钥时的密钥更新失败期间,也可以在事件发生时被请求发送给监督服务/控制器414。由于这种事件很少,并且变量的状态在更长的时间段内保持不变,因此遥测数据收集模块502可以请求基于事件的推送请求,而不是周期性消息。换句话说,遥测数据收集模块502可以指示边缘路由器302-304中的一个或多个仅在特定事件发生之后报告特定遥测数据变量。例如,下面的表1显示了一些示例遥测数据变量,以及前端路由器302何时可以将这些遥测数据变量报告给监督服务/控制器414:
[0074][0075]
[0076]
表1
[0077]
在另外的实施例中,mlff模块504还可以尝试优化施加在(向监督服务/控制器414报告遥测数据变量的)路由器302-304上的负载。例如,mlff模块504可以确定应当每分钟测量cpu和内存使用率并将其报告给监督服务/控制器414。
[0078]
mlff模块504的关键功能是训练任何数量的基于机器学习的模型,以预测(一个或多个)sd-wan中的隧道故障。为了简单起见,这样的隧道故障可以是指实际隧道故障(例如,当隧道完全关闭时)和/或隧道满足给定流量sla的故障(例如,预测隧道的延迟大于定义的sla阈值等)。优选地,模型是使用由遥测数据收集模块502收集的遥测数据而集中训练的时间序列模型(例如,在云中)。在mlff模块504的一个实例中,可以基于每个客户或每个sd wan来训练模型。测试表明,模型性能可能受到特定于给定网络实例化的参数的影响,从而促进mlff模块504为特定网络部署训练模型的实现方式。在另外的实施例中,mlff模块504甚至可以基于每个隧道来训练特定模型。尽管这种方法的可扩展性可能有限,但对于承载大量潜在极敏感流量(例如,云间/数据中心流量)的隧道来说,它可能非常有价值。
[0079]
如前所述,对于当前的反应性路由方法,召回率(即,成功预测的故障比例)仅等于0,因为重新路由总是反应性的。换句话说,系统的反应是后验的。因此,任何大于0的召回率都是显著的增益。mlff模块504可以考虑的一个性能指标是由给定精确率》p_min的模型实现的最大召回率(max_recall)。例如,如果在所有数据集上训练单个模型,则mlff模块504可以评估max_recall在数据集上的可变性,以确定是否应当训练sd-wan特定模型,甚至隧道特定模型。
[0080]
在各种实施例中,mlff模块504可以在每个隧道、每个客户/sd-wan和全局(多个sd-wan)方法之间动态地切换以进行模型训练。例如,mlff模块504可以从最小粒度方法(例如,在所有客户/sd-wan上的全局模型)开始,然后评估全局模型相对于每个客户/sd-wan模型的性能。这种模型性能比较可以通过在假设精确率》p_min的情况下比较其相关精确率-召回率曲线(prc)/曲线下面积(auc)或相对max_recall来轻松评估。
[0081]
在一些情况下,如果max_recall值改进大于给定阈值,则mlff模块504可以采用策略来触发每个客户/sd-wan特定的模型训练。在另一实施例中,可以使用类似的策略方法,以根据给定隧道的特性(在路由器a和路由器b之间)、正在执行的流量类型(例如,类型t的敏感流量等)或该隧道的全局或sd-wan特定模型的性能,具体地要求为给定隧道提供专用模型。在这种情况下,边缘路由器302-304可以负责观察路由流量,并且在检测到与策略匹配的流量类型时,请求mlff模块504进行特定模型训练,以开始针对该隧道的每个隧道模型训练。
[0082]
本文中使用基于粗略遥测数据的简单模型和输入特征(例如,1分钟的平均损失、延迟、抖动、流量以及ce路由器的cpu/内存)对技术进行原型化,导致召回率在百分之几的范围内,具有80%或更高的精度。更先进的时间序列模型(例如长短期存储器(lstm),尤其是具有注意力机制的长短期存储器)将实现甚至更好的性能。更重要的是,使用更丰富、更细粒度的遥测数据是预见性能的重要驱动因素。
[0083]
一旦mlff模块504已训练预测模型,其推理位置就存在不同的选项(例如,执行模型以预测隧道故障的位置)。在第一实施例中,模型推理被集中执行(在云中),因此与模型训练位于同一位置。在这种情况下,一旦mlff模块504识别出具有预测能力的遥测数据变量
的组(用于预测),遥测数据收集模块502可以向相应的路由器302-304发送列出变量的组及其采样/报告频率的定制消息。注意,采样是由对mlff模块504使用的动态参数进行计算以针对前端路由器302(将额外数据推送到云中(还在路由器上生成额外数据记录))的额外开销来优化模型的prc。
[0084]
在另一实施例中,mlff模块504可以将推理任务和相应的预测模型推送到特定的前端路由器,例如前端路由器302,从而在内部部署(on-premise)上执行预测。例如,这种方法可以由实现所需模型性能所需的采样频率触发。例如,已知一些故障类型会在故障发生前几秒钟甚至几毫秒发出信号。在这种情况下,在云中执行推理不是一个可行的选择,使模型的内部部署执行成为更好的方法。推理/模型执行通常不是一项昂贵的内部部署任务,尤其是与模型训练相比。也就是说,它可能需要对本地事件进行快速处理,从而影响本地cpu。在又一实施例中,如果前端路由器302上的本地资源足以馈送本地模型,则可以在内部部署上执行一些模型。
[0085]
因此,在一些情况下,本文中的技术支持集中式模型训练(例如,在云中),结合基于所需采样频率、前端路由器302上可用的本地资源以及发送遥测数据以输入到云中模型所需的带宽来执行本地(内部部署)推理的能力。例如,由于具有预测能力的大量输入特征,一个故障预测模型可能需要缓慢的采样率,但需要大量的数据。因此,将这些遥测数据变量报告给云以进行预测可能会消耗太多的网络上的wan带宽。在这种情况下,mlff模块504可以通过根据采样频率评估所需遥测数据的量和在网络上为遥测数据流量分配的wan带宽来考虑该约束。为此,mlff模块504可以分析网络拓扑和用于遥测数据报告的可用带宽(例如,根据qos策略)。如果用于模型推理的遥测数据的可用带宽超过容量,则mlff模块504可以通过将预测模型推送到边缘路由器302-304中的一个或多个来决定激活局部推理。
[0086]
在又一实施例中,mlff模块504可以采取混合方法,借此一些边缘路由器302-304在本地执行推理,而另一些则依赖于监督服务/控制器414来执行预测。
[0087]
本文中的技术的另一实施例引入了一种反馈机制,借此将关于训练模型的预测的反馈提供给模型再训练模块506。在模型在前端路由器302上执行的情况下,前端路由器302可以向模型再训练模块308报告假阳性和/或假阴性的比率。可选地,报告还可以包括关于每个假阳性和/或假阴性的附加上下文信息,例如导致错误预测的遥测数据变量的值。如果模型的性能低于指定阈值,则模型再训练模块506可以触发mlff模块504以重新训练模型,从而也可能增加模型的粒度(例如,通过训练隧道特定模型等)。在mlff模块504训练多个预测模型的情况下,模型再训练模块506可以评估每个模型的性能,并基于它们的性能,决定应该使用这些模型中的特定一个。这种方法允许mlff模块504基于当前观察到的数据模式在模型之间动态地切换。
[0088]
当由监督服务/控制器414在云中预测故障时,模型再训练模块506可以类似地从路由器302-304接收关于预测的反馈。例如,一旦模型m在给定时间预测到隧道的故障,则mlff模块504可以向受影响的前端路由器302发送通知,该通知指示预测有故障的(一个或多个)隧道的(列表)以及故障的预测时间和其他参数,例如故障概率pf(可以是简单标志、分类变量(低、中、高)或实数)。前端路由器302可以使用pf来确定适当的动作,例如主动地将受故障影响的流量重新路由到备份隧道上。在一个实施例中,可以使用用于一个或多个隧道的单播消息或向一组边缘路由器302-304发送预测故障列表的多播消息来向前端路由
器302发送信号。
[0089]
无论模型再训练模块506如何从执行预测模型的前端路由器302或从执行模型的mlff模块504接收其反馈,模型再训练模块506都可以动态地触发mlff模块504以重新训练给定模型。在一个实施例中,模型再训练可以是系统性的。在另一个实施例中,在max_recall或max_precision的改善方面达到稳定期后,模型再训练模块506可以降低模型训练的频率。
[0090]
如前所述,根据各种实施例,本文中的技术的另一方面是一种允许动态调整基于隧道的探测的反馈机制。在这种方法下,在遥测数据收集中所涉及的中央服务和路由器/设备之间使用反馈回路,以实现给定目标。例如,一个目标可能是最小化所收集的遥测数据量,同时仍至少达到模型性能的阈值程度。在这种情况下,可以利用预测模型的结果及其准确性来调整遥测数据收集(例如,收集更多或更少的遥测数据值,以控制收集的频率等)。
[0091]
在隧道故障预测的情况下,监视服务/控制器414可以监视模型的测量召回率(例如,由模型有效检测到的隧道故障百分比)和/或其精确率(例如,正确的隧道故障百分比:tp/tp fp)。一种策略可以是从一组相对保守的参数开始(例如,以相对不频繁的速度收集的少量遥测数据值)。然后,可以增加遥测数据类型和/或其收集频率,直到找到合适的折中方案。例如,在基于隧道的探测被用于将时间戳插入到隧道上的实际数据流量中的情况下,监督服务414可以根据预测模型的性能来动态地调整插入了时间戳的带时间戳数据分组的频率(例如,以测量沿着隧道的丢失、抖动和/或延迟)。
[0092]
图6a-图6c示出了各种实施例中的用于隧道故障预测的反馈的示例。如图6a图-6b中的示例实现方式600所示,假设训练模型由监督服务/控制器414在云中执行。在这种情况下,监督服务/控制器414可以向前端路由器302发送采样请求602,该采样请求602指示要采样和报告的遥测数据变量,以及为这些变量确定的(一个或多个)采样/报告周期。前端路由器302进而可以将所请求的遥测数据604报告给监督服务/控制器414以进行分析。例如,监督服务/控制器414可以请求前端路由器302每分钟向监督服务/控制器414报告沿着隧道测量的抖动,以预测与前端路由器302相关联的隧道是否可能发生故障。更具体地,监督服务/控制器414可以使用遥测数据604作为其训练预测模型的输入,以确定遥测数据604是否指示未来将发生的隧道故障。
[0093]
当监督服务/控制器414确定预测到隧道故障时,其可以向前端路由器302发送预测故障通知606,该预测故障通知606标识预测发生故障的隧道、预期故障发生的时间以及潜在的故障概率。根据故障发生的时间和概率,前端路由器302可以选择将受影响的流量或其一部分重新路由到不同的隧道。前端路由器302进而可以监视预测发生故障的隧道,并且向监督服务/控制器414提供反馈608,该反馈608指示隧道是否实际发生故障,如果是,则反馈何时发生故障。然后,监督服务/控制器414可以使用反馈608来确定是否应当启动模型再训练,例如通过为sd-wan实例或正在审查的特定隧道训练更细粒度的模型。此外,在各种实施例中,监督服务/控制器414还可以使用反馈608来控制由前端路由器302使用的遥测数据捕获参数(例如,通过调整后续采样请求602)。
[0094]
图6c示出了替代的实现方式610,其中监督服务/控制器414将训练预测模型408(先前如图4所示)推送到前端路由器302,以进行本地/内部部署推理。例如,监督服务/控制器414可以选择前端路由器302来执行本地推理,例如当模型408需要太多带宽来将所需的
遥测数据发送到监督服务/控制器414以进行基于云的预测时。前端路由器302进而可以使用相应的遥测数据测量结果作为训练模型408的输入,并且,如果预测隧道将发生故障和/或预测无法满足定义的流量sla,则执行纠正措施,例如主动地将流量重新路由到一个或多个其他隧道。
[0095]
与前一种情况一样,前端路由器302可以向监督服务/控制器414提供反馈612,该反馈612通过预测模型408指示假阳性和/或假阴性。例如,如果前端路由器302将流量从由模型408预测为发生故障的隧道重新路由,并且隧道实际上没有发生故障,则前端路由器302可以通知监督服务/控制器414。监督服务/控制器414可以使用反馈612来确定模型408是否需要重新训练,例如通过调整哪些遥测数据变量用作模型的输入,调整训练的粒度(例如,通过仅使用来自隧道的训练遥测数据等)等等。此外,监督服务/控制器414也可以基于反馈612来调整由前端路由器302执行的遥测数据收集/探测。
[0096]
图7示出了根据本文描述的一个或多个实施例的用于收集关于网络隧道的遥测数据的示例简化程序。例如,网络中的非通用、专门配置的设备(例如,设备200)可以通过执行所存储的指令(例如,进程248和/或进程249)来执行程序700。程序700可以从步骤705开始,并且继续到步骤710,在步骤710,如上文更详细地描述的,设备可以沿着与该设备相关联的网络隧道来发送bfd探测,以收集关于网络隧道的遥测数据。例如,设备可以包括用于隧道的前端路由器。在各种实施例中,网络也可以是sd-wan。
[0097]
在步骤715,如上所述,设备可以确定与沿着网络隧道发送bfd探测相关联的开销。在各种实施例中,设备可以通过测量以下各项中的至少一项来做到这一点:设备的处理器负载、设备的内存使用率、设备的队列处理时间或设备的带宽消耗。
[0098]
在步骤720,如上文更详细地描述的,设备可以确定与沿着网络隧道发送bfd探测相关联的开销是不可接受的。在简单实施例中,设备可以基于开销超过一个或多个预定义阈值来确定开销是不可接受的。例如,如果设备的cpu负载由于发送bfd探测而超过特定阈值,则设备可以确定开销是不可接受的。在另外的实施例中,设备可以通过确定与发送bfd探测相关联的开销和隧道抖动之间的相关性(例如,通过计算皮尔逊相关系数等)来确定开销是不可接受的。
[0099]
在步骤725,如上所述,设备可以基于步骤720中的确定,从沿着网络隧道发送bfd探测切换到修改经由网络隧道发送的数据流量,以收集关于网络隧道的遥测数据。在一些实施例中,设备可以通过在修改经由网络隧道发送的数据流量之前,与网络隧道的后端协调对数据流量的修改来做到这一点。例如,设备可以通过插入序列号和/或时间戳来修改隧道的数据流量,从而允许隧道的后端计算遥测数据,例如沿着隧道的损失、抖动或延迟。设备进而可以从隧道的后端接收关于网络隧道的计算出的遥测数据。在各种实施例中,设备可以使用所收集的关于网络隧道的遥测数据来做出路由决策。例如,设备或与其通信的监督服务可以使用遥测数据作为机器学习预测模型的输入,该机器学习预测模型被配置为预测网络隧道的故障。在另外的实施例中,可以基于与机器学习预测模型相关联的性能度量来调整如何修改经由网络隧道发送的数据流量。然后,程序700在步骤730结束。
[0100]
应该注意的是,虽然程序700中的特定步骤可以如上所述是可选的,但图7中所示的步骤只是用于说明的示例,并且可以根据需要包括或排除特定其他步骤。此外,虽然示出了步骤的特定顺序,但该顺序仅是说明性的,并且可以在不脱离本文实施例的范围的情况
下使用步骤的任何合适排列。
[0101]
因此,本文所述的技术允许使用网络隧道上的实际数据流量来探测隧道。在一些方面,这种基于流量的探测可以代替或补充基于bfd的隧道探测而被使用。例如,如果与发送bfd探测相关联的开销是不可接受的,则隧道的前端可以切换到基于流量的隧道探测。在另外的方面中,关于隧道的遥测数据的收集可以作为反馈回路的一部分进行动态调整,该反馈回路还考虑了机器学习模型的性能,该机器学习模型预测隧道的性能和/或预测隧道是否会发生故障,从而允许将流量主动地从隧道重新路由。
[0102]
虽然已经示出和描述了提供用于收集关于网络隧道的遥测数据的说明性实施例,但应当理解,可以在本文的实施例的精神和范围内进行各种其他适应和修改。例如,虽然本文针对使用特定模型用于预测隧道故障的目的描述了特定实施例,但在其他实施例中,这些模型不限于此,并且可以用于其他类型的预测。此外,虽然示出了特定协议,但是可以相应地使用其他合适的协议。
[0103]
根据本文的实施例,一种方法可以具体包括:由网络中的设备沿着与所述设备相关联的网络隧道来发送双向转发检测(bfd)探测,以收集关于所述网络隧道的遥测数据;由所述设备监视与沿着所述网络隧道发送所述bfd探测相关联的开销;由所述设备确定与沿着所述网络隧道发送所述bfd探测相关联的开销是不可接受的;以及由所述设备基于所述确定,从沿着所述网络隧道发送所述bfd探测切换到修改经由所述网络隧道发送的数据流量,以收集关于所述网络隧道的遥测数据。
[0104]
在一个实施例中,所述设备从所述网络隧道的后端接收关于所述网络隧道的遥测数据,其中,所述网络隧道的后端使用经修改的数据流量来计算关于所述网络隧道的遥测数据。在另一实施例中,在修改经由所述网络隧道发送的所述数据流量之前,所述设备与所述网络隧道的后端协调对所述数据流量的修改。在一个实施例中,修改经由所述网络隧道发送的所述数据流量包括向所述数据流量添加时间戳的序列号。在另一实施例中,使用所收集的关于所述网络隧道的遥测数据作为机器学习预测模型的输入,所述机器学习预测模型被配置为预测所述网络隧道的故障。在一个实施例中,基于与所述机器学习预测模型相关联的性能度量,调整如何修改经由所述网络隧道发送的所述数据流量。在另一实施例中,测量与沿着所述网络隧道发送所述bfd探测相关联的开销包括测量以下项中的至少一项:所述设备的处理器负载、所述设备的内存使用率、所述设备的队列处理时间或所述设备的带宽消耗。在另一实施例中,所述网络是sd-wan。在一个实施例中,确定与沿着所述网络隧道发送所述bfd探测相关联的开销是不可接受的包括:确定与发送所述bfd探测相关联的开销与隧道抖动之间的相关性。
[0105]
根据本文的实施例,一种装置可以包括:一个或多个网络接口,用于与网络进行通信;处理器,耦合到所述网络接口,并且被配置为执行一个或多个进程;以及存储器,被配置为存储可由所述处理器执行的进程,所述进程在被执行时被配置为:沿着与所述装置相关联的网络隧道发送双向转发检测(bfd)探测,以收集关于所述网络隧道的遥测数据;监视与沿着所述网络隧道发送所述bfd探测相关联的开销;确定与沿着所述网络隧道发送所述bfd探测相关联的开销是不可接受的;以及基于所述确定,从沿着所述网络隧道发送所述bfd探测切换到修改经由所述网络隧道发送的数据流量,以收集关于所述网络隧道的遥测数据。
[0106]
根据本文的实施例,一种有形非暂态计算机可读介质,存储有程序指令,所述程序
指令使网络中的设备执行以下进程,包括:由所述网络中的设备沿着与所述设备相关联的网络隧道发送双向转发检测(bfd)探测,以收集关于所述网络隧道的遥测数据;由所述设备监视与沿着所述网络隧道发送所述bfd探测相关联的开销;由所述设备确定与沿着所述网络隧道发送所述bfd探测相关联的开销是不可接受的;以及由所述设备基于所述确定,从沿着所述网络隧道发送所述bfd探测切换到修改经由所述网络隧道发送的数据流量,以收集关于所述网络隧道的遥测数据。
[0107]
上述描述针对具体实施例。然而,显而易见的是,可以对所描述的实施例进行其他变化和修改,以实现其部分或全部优点。例如,可以明确预见,本文所述的组件和/或元件可以被实施为存储在有形(非暂态)计算机可读介质(例如,磁盘/cd/ram/eeprom等)上的软件,该计算机可读介质具有在计算机、硬件、固件或其组合上执行的程序指令。因此,仅通过示例进行该描述,而不是以其他方式限制本文实施例的范围。因此,所附权利要求的目的是涵盖在本文实施例的真正精神和范围内的所有这样的变化和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献