用于计算机网络的方法、控制器及计算机可读介质与流程

文档序号:30221736发布日期:2022-05-31 22:27阅读:64来源:国知局
用于计算机网络的方法、控制器及计算机可读介质与流程

1.本公开涉及计算机网络。


背景技术:

2.在过去的几十年里,互联网已经从由几个节点组成的小型网络呈指数级增长,成为服务于超过10亿用户的全球普及网络。如今,个人用户不再局限于通过网络进行一些语音和/或数据下载的网络会话。相反,用户使用的服务范围从多媒体游戏、音频和视频流、网络服务、ip语音(voip)等广泛变化。随着新技术的渗透,例如物联网(iot)和m2m(机器对机器)通信利用率的提高,给定用户可能需要的网络服务和软件应用也从几个会话变化到具有并发流的多个会话。随着用户越来越多地同时运行多个应用程序、服务和事务,这个数字正在快速增长。用户会话和封包流数量和种类的增加,给网络服务提供商带来了网络性能方面的挑战,例如等待时间、延迟和抖动。


技术实现要素:

3.总体上,本公开描述了用于提供网络监控和故障定位的技术。例如,实现这里描述的技术的诸如软件定义网络(sdn)控制器的控制器,可以通过经由网络发送探测封包来检测网络内的异常,以测量体验质量(qoe)度量,诸如延迟、抖动、封包丢失和任何其他度量。
4.在一些示例中,控制器可以评估业务流以构建网络拓扑,并使用该拓扑来创建在拓扑中实现的增强探测计划,例如通过修整拓扑来停止控制器确定为冗余的一些探测过程(例如,在与多条路径共享的链路上发送探测封包),从而减少网络中的总业务。例如,不是指示网络中的每个节点(例如,计算设备)发送探测封包来测量连接到节点设备的每个链路和/或网络中的每个其他节点的qoe度量,而是控制器可以使用拓扑来选择覆盖所有链路的最小数量的路径,并在路径上配置最小数量的节点来发送探测封包来测量qoe度量。
5.控制器可以使用qoe度量来确定网络中的异常。一些监控机制,例如白盒监控和黑盒监控,在不进行密集处理(例如,通过向网络中的每个节点发送探测器)、容易出错或需要额外的手动故障排除的情况下,无法定位网络中异常的根本原因(例如,特定链路或节点)。
6.根据本文描述的技术,控制器可以根据qoe度量检测一个或多个异常,并执行导致一个或多个异常的节点或链路的故障定位。在一个示例中,控制器可以相对于计算的基线值来评估qoe度量,以检测异常(例如,确定与基线值的偏差)。响应于确定多个探测路径具有异常,控制器可以确定具有异常的探测路径的交叉(例如,重叠链路),并且确定探测路径的交叉是异常的根本原因。在一些示例中,控制器可以确定正在测量的qoe度量的类型,和/或链路的类型(例如,有线或无线链路)。在这些示例中,如果度量是丢失度量,则控制器可以确定路径的无线链路是丢失异常的根本原因。
7.本文描述的技术可以提供一个或多个技术优势。例如,通过实现本文描述的技术,节点发送更少的探测封包来检测异常,同时仍然确定异常的根本原因。这样,可以在不需要手动进行故障排除来确定异常的根本原因的情况下,减少处理器使用、存储器使用和/或功
耗。
8.在本文描述的技术的一个示例中,描述了一种方法,该方法包括:由包括多个节点设备的网络的控制器,接收由穿过包括一个或多个链路的第一路径的第一探测器测量的第一组一个或多个体验质量(qoe)度量;由控制器接收由穿过包括一个或多个链路的第二路径的第二探测器测量的第二组一个或多个qoe度量;由控制器根据第一组一个或多个qoe度量确定第一路径具有异常;由控制器根据第二组一个或多个qoe度量确定第二路径具有异常;由控制器确定第一组一个或多个qoe度量和第二组一个或多个qoe度量的度量类型,以及第一路径的一个或多个链路和第二路径的一个或多个链路的链路类型;以及由控制器响应于确定第一路径和第二路径具有异常,基于度量类型和链路类型,确定第一路径和第二路径之间的交叉是异常的根本原因。
9.在本文描述的技术的另一示例中,描述了用于包括多个节点设备的网络的控制器。该控制器包括可操作地耦接到存储器的一个或多个处理器,其中该一个或多个处理器被配置为:接收由穿过包括一个或多个链路的第一路径的第一探测器测量的第一组一个或多个体验质量(qoe)度量;接收由穿过包括一个或多个链路的第二路径的第二探测器测量的第二组一个或多个qoe度量;根据第一组一个或多个qoe度量确定第一路径具有异常;根据第二组一个或多个qoe度量确定第二路径具有异常;确定第一组一个或多个qoe度量和第二组一个或多个qoe度量的度量类型,以及第一路径的一个或多个链路和第二路径的一个或多个链路的链路类型;以及响应于确定第一路径和第二路径具有异常,基于度量类型和链路类型,确定第一路径和第二路径之间的交叉是异常的根本原因。
10.在本文描述的技术的另一示例中,描述了非瞬时计算机可读存储介质,该非瞬时计算机可读存储介质包括指令,该指令使控制器的一个或多个可编程处理器:接收由穿过包括一个或多个链路的第一路径的第一探测器测量的第一组一个或多个体验质量(qoe)度量;接收由穿过包括一个或多个链路的第二路径的第二探测器测量的第二组一个或多个qoe度量;根据第一组一个或多个qoe度量确定第一路径具有异常;根据第二组一个或多个qoe度量确定第二路径具有异常;确定第一组一个或多个qoe度量和第二组一个或多个qoe度量的度量类型,以及第一路径的一个或多个链路和第二路径的一个或多个链路的链路类型;以及响应于确定第一路径和第二路径具有异常,基于度量类型和链路类型,确定第一路径和第二路径之间的交叉是异常的根本原因。
11.将在附图和以下描述中阐述一个或多个示例的细节。从说明书和附图以及权利要求书中,其他特征、目的和优点将变得显而易见。
附图说明
12.图1是示出根据本公开中描述的技术提供网络监控和故障定位的示例网络系统的框图。
13.图2是示出根据本公开中描述的一种或多种技术的示例软件定义广域网的框图。
14.图3是示出根据本公开中描述的技术的故障定位的示例的框图。
15.图4是示出根据本公开中描述的技术,被配置为执行一个或多个功能以执行网络监控和故障定位的示例控制器的框图。
16.图5是示出根据本公开中描述的技术的故障定位的示例操作的流程图。
17.图6是示出根据本公开中描述的技术的分布式控制器的示例的框图。
具体实施方式
18.图1是示出根据本文描述的技术提供网络监控和故障定位的示例网络系统2(“网络系统2”)的框图。作为一个示例,网络系统2可以代表软件定义网络系统。
19.网络系统2可以作为私有网络运行,以向用户设备16提供基于封包的网络服务。也就是说,网络系统2为用户设备16提供网络接入的认证和建立,使得用户设备可以开始与公共网络12交换数据封包,公共网络12可以是内部或外部基于封包的网络,例如互联网。
20.在图1的示例中,网络系统2包括接入网6,接入网6通过服务提供商软件定义的广域网7(以下称为“sd-wan7”)和路由器8提供到公共网络12的连接。sd-wan 7和公共网络12提供可由用户设备16请求和使用的基于封包的服务。作为示例,sd-wan 7和/或公共网络12可以提供批量数据传送、基于互联网协议的语音(voip)、互联网协议电视(iptv)、短消息服务(sms)、无线应用协议(wap)服务或客户特定应用服务。公共网络12可以包括例如局域网(lan)、广域网(wan)、互联网、虚拟lan(vlan)、企业lan、第三层虚拟专用网(vpn)、由操作接入网6的服务提供商运营的互联网协议(ip)内联网、企业ip网络或其某种组合。在各种示例中,公共网络12连接到公共wan、互联网或其他网络。公共网络12执行一个或多个封包数据协议,例如ip(ipv4和/或ipv6)、x.25或点对点协议(ppp),以实现公共网络12服务的基于封包的传输。
21.一般来说,用户设备16通过接入网6连接到网关路由器8,以接收到由公共网络12或路由器8托管的应用的用户服务的连接。用户可以代表例如企业、住宅用户或移动用户。用户设备16可以是例如个人计算机、笔记本计算机或位于客户设备(ce)11后面的其他类型的计算设备,客户设备可以提供本地路由和交换功能。每个用户设备16可以运行各种软件应用,例如文字处理和其他办公支持软件、网络浏览软件、支持语音呼叫的软件、视频游戏、视频会议和电子邮件等。例如,用户设备16可以是各种支持网络的设备,通常被称为“物联网”(iot)设备,例如相机、传感器(s)、电视、电器等。此外,用户设备16可以包括通过无线接入网(ran)4接入网络系统2的数据服务的移动设备。示例移动用户设备包括移动电话、具有例如无线卡的笔记本或台式计算机、支持无线的上网本、平板电脑、视频游戏设备、寻呼机、智能电话、个人数据助理(pda)等。
22.网络服务提供商操作或在某些情况下租赁接入网6的元件(例如,网络设备),以在用户设备16和路由器8之间提供封包传输。接入网6代表聚集了来自一个或多个用户设备16的数据业务的网络,用于向服务提供商的sd-wan 7传输或从服务提供商的sd-wan 7。接入网6包括网络节点,网络节点执行通信协议来传输控制和用户数据,以便于用户设备16和路由器8之间的通信。接入网6可以包括宽带接入网、无线lan、公共交换电话网(pstn)、用户驻地设备(cpe)网或其他类型的接入网,并且可以包括或以其他方式提供蜂窝接入网的连接,例如无线电接入网(ran),例如ran4。示例包括符合第五代(5g)移动网络、通用移动电信系统(umts)架构、被称为长期演进(lte)的umts演进、由互联网工程任务组(ietf)标准化的移动ip的网络,以及符合由第三代合作伙伴计划(3gpp)、第三代合作伙伴计划2(3ggp/2)和wimax论坛提出的其他标准的网络。
23.sd-wan设备18可以是客户边缘(ce)路由器、提供商边缘(pe)路由器或在接入网6
和sd-wan 7之间提供连接的其他网络设备。sd-wan 7向连接到接入网6的用户设备16提供基于封包的连接,用于接入公共网络12(例如,互联网)。sd-wan 7可以代表由服务提供商拥有和运营的公共网络,以互连可以包括接入网络6的多个网络。在一些示例中,sd-wan 7可以实现多协议标签交换(mpls)转发,并且在这种情况下可以被称为mpls网络或mpls主干网。在某些情况下,sd-wan 7代表多个互连的自主系统,如互联网,提供来自一个或多个服务提供商的服务。公共网络12可以代表互联网。公共网络12可以代表经由中转网络22和一个或多个网络设备(例如,诸如客户边缘交换机或路由器的客户边缘设备)耦接到sd-wan 7的边缘网络。公共网络12可以包括数据中心。在图1的示例中,路由器8可以经由虚拟网络20与服务节点10交换封包,并且路由器8可以经由中转网络22将封包转发到公共网络12。
24.在包括有线/宽带接入网络的网络系统2的示例中,路由器8可以代表宽带网络网关(bng)、宽带远程接入服务器(bras)、mpls pe路由器、核心路由器或网关、或电缆调制解调器终端系统(cmts)。在包括蜂窝接入网作为接入网6的网络系统2的示例中,路由器8可以代表移动网关,例如网关通用封包无线业务(gprs)服务节点(ggsn)、接入网关(agw)或封包数据网(pdn)网关(pgw)。在其他示例中,针对路由器8描述的功能可以在交换机、服务卡或其他网络元件或组件中实现。在一些示例中,路由器8本身可以是服务节点。
25.管理网络系统2的至少一部分的网络服务提供商,通常向与接入网络系统2的设备(例如,用户设备16)相关联的用户提供服务。提供的服务可能包括,例如,传统互联网接入、voip、视频和多媒体服务以及安全服务。如上关于sd-wan 7所述,sd-wan 7可以支持多种类型的接入网络基础设施,这些接入网络基础设施连接到服务提供商网络接入网关,以提供对所提供服务的接入。在一些情况下,网络系统可以包括连接到具有不同架构的多个不同接入网6的用户设备16。
26.一般来说,任何一个或多个用户设备16可以通过向网关设备(如sd-wan设备18或路由器8)发送会话请求,来请求授权和数据服务。接着,sd-wan设备18可以访问中央服务器(未示出),例如认证、授权和计费(aaa)服务器,以认证请求网络接入的用户设备16之一。一旦被认证,任何用户设备16都可以向sd-wan 7发送用户数据业务,以访问和接收由公共网络12提供的服务,并且这样的封包可以作为至少一个封包流的一部分穿过路由器8。在一些示例中,sd-wan设备18可以将所有认证的用户业务转发到公共网络12,并且路由器8可以应用服务15和/或如果用户业务需要服务节点10上的服务则将特定用户业务引导到数据中心9。要应用于用户业务的应用(例如,服务应用)可以托管在服务节点10上。
27.例如,当转发用户业务时,路由器8可以通过在安装在路由器8内的一个或多个服务卡上执行的服务15,引导单个用户封包流。此外,或者可替换地,网络系统2包括具有服务节点10的集合的数据中心9,数据中心9为大部分虚拟化的网络服务提供执行环境。在一些示例中,每个服务节点10代表一个服务实例。每个服务节点10可以向业务流应用一个或多个服务。这样,路由器8可以通过由服务节点10提供的定义的服务集,引导用户封包流。也就是说,在一些示例中,每个用户封包流可以通过由服务节点10提供的服务的特定有序集合来转发,每个有序集合在本文被称为“服务链”。作为示例,服务15和/或服务节点10可以应用状态防火墙(sfw)和安全服务、深度封包检查(dpi)、运营商级网络地址转换(cgnat)、业务目的地功能(tdf)服务、媒体(语音/视频)优化、互联网协议安全(ipsec)/虚拟专用网络(vpn)服务、超文本传输协议(http)过滤、封包流的计数、记账、计费和/或负载平衡、或应用
于网络业务的其他类型的服务。
28.在图1的示例中,用户封包流可以沿着服务链引导,该服务链包括服务15和/或由服务节点10应用的服务中的任何一个。一旦在服务链的终端节点处被处理,即最后一个服务被应用于沿着特定服务路径的封包流,业务可以被导向公共网络12。
29.尽管“服务链”限定了以特定顺序应用的一个或多个服务,以向绑定到服务链的封包流提供应用的复合服务,但是“服务隧道”或“服务路径”是指由服务链处理的封包流所采用的逻辑和/或物理路径,以及根据服务链顺序转发封包流的转发状态。每个服务链可以与相应的服务隧道相关联,并且与每个用户设备16相关联的封包流根据与相应用户相关联的服务配置文件沿着服务隧道流动。例如,给定用户可以与特定服务配置文件相关联,该特定服务配置文件又被映射到与特定服务链相关联的服务隧道。类似地,另一个用户可以与不同的服务配置文件相关联,该服务配置文件又被映射到与不同的服务链相关联的服务隧道。在一些示例中,在sd-wan设备18已经为用户认证并建立接入会话之后,sd-wan设备18或路由器8可以沿着适当的服务隧道为用户引导封包流,从而使得数据中心9为给定用户应用必要的有序服务。在一些示例中,sdn控制器14还可以向sd-wan设备18或路由器8提供转发规则集,用于管理转发路径。在一些示例中,sdn控制器14从路由器8开始管理通过数据中心9中所有元素的转发路径。
30.在一些示例中,服务节点10可以使用内部配置的转发状态来实现服务链,该转发状态沿着服务链引导封包流的封包,以根据所识别的服务节点10的集合进行处理。这种转发状态可以使用网络隧道来指定服务节点10之间的隧道接口,网络隧道诸如ip或通用路由封装(gre)隧道、使用gre的网络虚拟化(nvgre)或通过使用vlan、虚拟可扩展lan(vxlan)、mpls技术等。在一些情况下,互连服务节点10的真实或虚拟交换机、路由器或其他网络元件,可以被配置成根据服务链将封包流导向服务节点10。
31.在图1的示例中,网络系统2包括软件定义网络(sdn)和网络功能虚拟化(nfv)架构。sdn控制器14可以提供用于配置和管理网络系统2的路由和交换基础设施的控制器。虽然本文描述的一些实例涉及执行本文描述的基于边缘的路由技术的sd-wan设备18,但是sdn控制器14也可以为网络系统2执行这些技术。nfv协调器设备13可以提供高级协调器,用于对网络服务虚拟化到数据中心9的服务节点10中进行配置和管理。在一些情况下,sdn控制器14管理数据中心9的操作环境内的虚拟机(vm)的部署。例如,sdn控制器14可以与路由器8交互以指定服务链信息。例如,由sdn控制器14提供的服务链信息可以指定由服务节点10提供的服务的任何组合和排序、用于沿服务路径隧道传送或以其他方式传输封包流的业务工程信息、速率限制、服务类型(tos)标记或封包分类器,其指定了用于将封包流匹配到特定服务链的标准。在2013年6月5日提交的pct国际专利申请pct/us13/44378中描述了sdn控制器的进一步示例细节,其全部内容通过引用结合于此。
32.虽然被示为数据中心9的一部分,但是服务节点10可以是由一个或多个交换机或sd-wan 7的虚拟交换机耦接的网络设备。在一个示例中,每个服务节点10可以在虚拟计算环境中作为虚拟机运行。此外,计算环境可以包括通用计算设备的可扩展集群,例如基于x86处理器的服务器。作为另一个示例,服务节点10可以包括通用计算设备和专用设备的组合。作为虚拟化网络服务,服务节点10提供的单个网络服务可以通过虚拟化内存分配、处理器利用率、存储和网络策略进行缩放,就像在现代数据中心一样,也可以通过添加额外的负
载平衡vm进行横向缩放。在其他示例中,服务节点10可以是网关设备或其他路由器。在进一步的示例中,针对每个服务节点10描述的功能可以在交换机、服务卡或另一个网络元件或组件中实现。
33.如本文所述,网络系统2内的网络元件可以使用各种应用体验质量(qoe)度量功能来执行应用数据监控。示例qoe度量功能包括由诸如终端主机、底层网络节点、虚拟节点或其他类型节点的节点执行的主动或合成探测。例如,位于接入网或数据中心网络边缘的网络设备(例如,sd-wan设备18和路由器8)可以输出探测封包,该探测封包通过覆盖隧道传输到数据中心中的虚拟路由器,并返回到网络设备或另一网络设备。响应于接收到探测封包,沿着探测封包的转发路径的一个或多个网络设备、虚拟路由器和应用可以向sdn控制器14提供探测报告信息,sdn控制器14可以编译和分析探测报告信息,并向客户呈现关于延迟、抖动、封包丢失和数据中心中的任何问题的报告信息,因为它可能与sla有关。
34.在一些示例中,由探测封包携带的度量可以包括用于发送或接收测试封包的时间戳、用于发送或接收测试封包的错误估计、用于发送测试封包的序列号、测试封包的生存时间(ttl)值、保活封包数据单元(pdu)和/或服务封包、字节或用户的计数中的一项或多项。单向和双向网络性能测量可以包括保活或路径连通性、往返时间(rtt)、路径延迟、封包抖动、封包重新排序、封包丢失、服务等待时间测量或基于接收到的度量的服务负载测量。
35.根据节点的类型,sdn控制器14可以为节点配置适当的探测封包类型,例如互联网控制消息协议(icmp)、用户数据报协议(udp)、传输控制协议(tcp)、实时性能监控(rpm)、双向主动测量协议(twamp)、ip服务级别协议(ip sla)、双向转发检测(bfd)等。例如,网络系统2可以包括数据中心9的源端主机设备,该设备通过ipinip隧道将上行路径中的封包路由到核心交换机,核心交换机又将下行路径中的内部ip封包路由到目的端主机。在该示例中,sdn控制器14可以将网络系统2中的终端主机配置为使用例如icmp、udp和/或tcp来发送探测器,以测量终端主机之间的端到端路径的qoe度量。可选地或附加地,网络系统2可以包括底层网络(例如,wan网络中的边缘到边缘、或数据中心环境中的架顶(tor)交换机到tor)中的网络设备(例如,物理交换机)。在该示例中,sdn控制器14可以配置网络系统2中的底层网络节点(例如,路由器8),以使用rpm、twamp、ip sla和/或bfd来发送探测器,以测量底层网络的qoe度量。可选地或附加地,网络系统2可以包括覆盖网络中的虚拟节点(例如,虚拟路由器)。在该示例中,sdn控制器14可以配置网络系统2中的虚拟节点,以使用本地支持的探测器(例如,icmp、udp和/或tcp)来测量覆盖网络的qoe度量。
36.在一些示例中,网络系统2可能包括多个租户。在本例中,每个租户可能有不同的拓扑结构,每个拓扑结构都有不同的探测要求。例如,网络系统2可以包括具有使用tcp发送探测器的终端主机设备的第一租户、具有使用udp发送探测器的终端主机设备的第二租户、具有使用twamp发送探测器的底层网络设备的第三租户、具有使用rpm发送探测器的底层网络设备的第四租户等。
37.在这个示例中,sdn控制器14可以实现分布式探测选择算法,以生成优化的探测计划。sdn控制器14可以基于每个租户策略生成探测计划。例如,网络系统2的每个租户可以具有不同的探测策略。第一租户可能包括测量源和目标终端主机之间的qoe度量的策略,而第二租户可能有不同的策略来测量sd-wan 7中wan链路的丢失。如上所述,取决于所选节点的类型,探测计划可以指定适当类型的探测器(例如,icmp、udp、twamp等)。
38.sdn控制器14可以基于每个租户的探测预算来配置探测计划。例如,探测计划可以指定要发送的探测器数量(例如,探测器计数)、发送探测器的频率、发送探测器的间隔等。发送探测器的频率可以基于探测路径是否包括有线和/或无线链路来确定。例如,如果要探测的路径包括无线链路,则探测计划可以指定以更高的频率发送探测器,因为无线链路发生丢失的可能性更高。探测器的数量和发送探测器的间隔,可以基于网络中探测器的当前负载和每个节点生成的探测器业务。例如,sdn控制器14可以配置要发送的探测器的上限和/或每个节点发送的探测器业务的上限。
39.在2019年3月15日提交的美国专利申请第16/354,402号“planning and managing network probes using centralized controller”中描述了生成优化探测计划的附加示例,其全部内容通过引用结合于此。在2014年3月28日提交的美国专利第9787559号“end-to-end monitoring of overlay networks providing virtualized network services”中描述了覆盖网络的端到端监控的附加示例,其全部内容通过引用结合于此。
40.在一些示例中,sdn控制器14可以实现基于边缘的路由,以更精确地测量网络中的各种qoe度量,同时限制进入系统的探测器的数量。例如,sdn控制器14可以跨网络系统2协调和映射探测过程。例如,对于包括多个不同节点设备的网络系统2,sdn控制器14可以为网络系统2的每个租户构建拓扑表示。拓扑表示可以采取提供特定租户的每个节点设备的指示和连接到节点设备的多个链路的每个链路的指示的任意形式(例如,矩阵、数据库、顶点、图形、文本或任意其他数据结构)。在图1的示例中,sdn控制器14可以创建网络系统2中描述的任意数量的网络的拓扑表示。例如,拓扑表示可以是接入网6中的ce 11、用户设备16、sd-wan 7中的sd-wan设备18的一个或多个实例、数据中心9中的虚拟化环境中的一个或多个虚拟节点、或者sdn系统(例如,网络系统2)中的其任意组合。sdn控制器14可以从网络设备的路由表中确定网络的路由。
41.基于拓扑表示,sdn控制器14可以确定最佳探测器分配。例如,sdn控制器14可以使用网络系统的每个租户的拓扑表示,来确定覆盖所有链路的最小数量的路径,并选择路径内的最小数量的节点来发送探测封包。例如,sdn控制器14可以将优化算法(例如,启发式贪婪算法)应用于拓扑表示,以计算探测路径并选择路径内的节点来发送探测封包。将贪婪算法应用于路径矩阵的示例如下所示和所述:
42.表i.路径矩阵
[0043][0044]
在上面的示例中,sdn控制器14可以应用贪婪算法来确定覆盖链路1、链路2和链路3的最小路径数。在本例中,在路径1和路径2上发送探测器将覆盖网络中的所有链路。sdn控制器14可以确定路径1和路径2内最小节点数以发送探测封包。
[0045]
可选地或附加地,可以基于特定节点的静态配置(例如,用户配置)来选择节点以发送探测器,或者基于静态配置和启发式算法的混合来选择节点。被选择来发送探测封包
的节点在本文可以被称为“探测生成器”,而被选择来响应探测封包的节点在本文可以被称为“探测应答器”。探测生成器可以执行主动或合成探测功能,而未配置为探测生成器的节点不发送探测封包。这样,只有被选择的节点被配置为发送探测封包。
[0046]
在一些示例中,sdn控制器14可以使用探测意图数据模型来配置探测发生器和/或探测应答器。例如,sdn控制器14可以将在高级(例如,更一般地)限定探测意图的高级探测意图数据模型(例如,基于用户意图的网络或数据模型)转换成低级探测配置数据模型,该低级探测配置数据模型限定用于配置特定端点(例如,终端主机、底层网络设备、虚拟节点)以使用适当探测封包的平台特定配置。例如,用户可以限定高级探测意图数据模型来检测sd-wan 7内的wan链路中的等待时间异常。在该示例中,sdn控制器14可以将节点类型识别为底层网络设备(例如,sd-wan设备18),并且可以将高级探测意图数据模型转换为低级探测配置数据模型,以配置sd-wan设备18使用twamp发送探测器,例如,以测量sd-wan 7内的wan链路的等待时间度量。作为另一个示例,用户可以限定高级探测意图数据模型来检测部署虚拟机的数据中心9中的异常。在该示例中,例如,sdn控制器14可以将节点类型识别为虚拟节点(例如,虚拟路由器),并且可以将高级探测意图数据模型转换为低级探测配置数据模型,以将虚拟路由器配置为使用icmp发送探测器。
[0047]
低级探测配置数据模型可以指定例如探测生成器的网络地址(例如,ip地址)和探测应答器的网络地址。低级探测配置数据模型还可以指定要发送的探测器的数量、发送探测器的间隔和/或发送探测器的频率。
[0048]
被配置为探测生成器的选定节点在网络中的各种路径上发送探测器。在一些示例中,可以由节点的各种组件生成和分析探测封包,诸如终端主机和/或虚拟节点的代理。sdn控制器14可以从选定节点接收一个或多个qoe度量,并且可以使用该一个或多个qoe度量来确定网络中的路径是否有任何问题(例如,异常)。
[0049]
现有的监控机制,诸如白盒监控和黑盒监控,无法执行故障定位来查明是问题根源的链路或节点。例如,白盒监控用于监控服务器上运行的应用程序。但是,在白盒监控中,每个网络节点都会被查询其性能度量,这是低效的,因为节点的统计数据在其当前故障状态期间可能容易出错或不可用。同样,黑盒监控发送端到端探测器,这些探测器无法识别是问题根本原因的特定链路或节点,并且需要额外的手动故障排除来查明问题的来源。
[0050]
根据本公开中描述的技术,sdn控制器14可以沿着探测路径检测异常,并执行故障定位以查明引起异常的节点或链路。在图1的示例中,用户可以指定高级探测意图数据模型来检测路由器8和用户设备16之间的等待时间异常。在这个例子中,sdn控制器14可以配置路由器8在路径30上发送探测器31,以测量从路由器8到移动用户设备16的等待时间。类似地,sdn控制器14可以配置路由器8在路径32上发送探测器33,以测量从路由器8到另一个用户设备16的等待时间。同样,sdn控制器14可以配置路由器8在路径34上发送探测器35,以测量从路由器8到另一个用户设备16的等待时间。
[0051]
sdn控制器14可以接收从探测器31、33和35测量的等待时间度量,并且利用计算的基线等待时间值来评估等待时间度量,以检测探测路径中的异常。在一些示例中,sdn控制器14接收网络系统2的每个租户的qoe度量,并聚集每个租户的qoe度量以计算一组qoe度量,并用计算的基线值评估该组qoe度量。
[0052]
基线值可以根据qoe度量的历史数据计算,并且可以随着qoe度量的更新而动态更
新。在其他示例中,基线值可以静态配置。例如,基线等待时间值可以基于先前在路径30、32和34上测量的或者由用户静态配置的等待时间度量来计算。计算的基线值可以是阈值、范围或任何值,以确定度量是否满足基线值或度量是否偏离基线值(即异常)。
[0053]
如果sdn控制器14确定多条路径具有异常,则sdn控制器14可以确定多条路径是否具有交叉,例如任何重叠链路。如果多条路径具有至少一条重叠链路,则sdn控制器14确定该至少一条重叠链路是否是异常的根本原因。根本原因的确定可以取决于所测量的qoe度量的类型和/或路径的链路是否包括无线链路。
[0054]
例如,sdn控制器14可以确定路径32和34每个都具有等待时间异常,并且确定路径32和34具有至少一个重叠链路,例如,sd-wan 7中的wan链路。在该示例中,如果路径32和34中的每一个的等待时间度量都偏离基线等待时间值,则sdn控制器14可以确定重叠的wan链路可能是异常的根本原因。
[0055]
在一些示例中,当确定异常的根本原因时,sdn控制器14可以确定路径是否包括有线或无线链路。例如,路径30可以包括无线链路,并且路径32可以包括有线链路。在该示例中,sdn控制器14可以接收路径30的第一丢失度量和路径32的第二丢失度量,并且确定路径30和32中的每一个都包括异常。在这个示例中,sdn控制器14确定路径30包括无线链路。如果路径30的第一丢失度量偏离路径32的第二丢失度量,则sdn控制器14可以确定无线链路是异常的根本原因的候选,因为无线链路更可能丢弃封包,因此可能是封包丢失的原因。然后sdn控制器14可以将边缘节点配置到无线链路,以在无线链路上发送附加的探测器,例如探测器37,来确定无线链路是否实际上是异常的根本原因。
[0056]
图2是示出根据本公开中描述的一种或多种技术的示例性sd-wan 207的框图。图2中的sd-wan 207可以代表图1中的sd-wan 7的示例。在图2的示例中,sd-wan 207包括三个不同的wan链路:将sd-wan设备218耦接到多协议层交换(mpls)网络250的第一wan链路240、将sd-wan设备218耦接到互联网252的第二wan链路242、以及将sd-wan设备218耦接到移动网络254(例如,lte/5g)的第三wan链路244。在其他示例中,sd-wan 207可以包括用于在客户端(例如,客户端设备216和sd-wan设备218)和应用侧(例如,sd-wan设备256和应用服务器258)之间传输数据流的任意合适类型的任何数量的链路。
[0057]
在图2的示例中,sdn控制器214可以配置任意类型的节点,例如客户端设备216、sd-wan设备218、sd-wan设备256和/或应用服务器258,以发送适当类型的探测封包来测量qoe度量。在该示例中,sdn控制器214可以将客户端设备216配置为能够沿着客户端设备216和应用服务器258之间的端到端路径发送探测器231和233。例如,客户端设备216可以代表终端主机。在该示例中,sdn控制器214可以将客户端设备216配置为发送适当类型的探测器(例如,icmp回应、udp ping或tcp ping),以沿着到应用服务器258的端到端路径测量qoe度量。
[0058]
在这个示例中,sdn控制器214可以检测沿着路径由探测器231、233测量的异常,并执行故障定位以查明引起异常的节点或链路。在该示例中,sdn控制器214可以将客户端设备216配置为使用sd-wan 207中的wan链路在第一端到端路径上向应用服务器258发送探测器231,并且将客户端设备216配置为也使用sd-wan 207中的wan链路在第二端到端路径上向应用服务器258发送探测器233。例如,探测器231,例如tcp ping,在包括将sd-wan设备218耦接到互联网252的wan链路242的第一端到端路径上发送,探测器233在也包括wan链路
242的第二端到端路径上发送。在该示例中,sdn控制器214可以接收从探测器231和233测量的qoe度量,并且利用计算的基线等待时间值来评估等待时间度量,以检测探测路径中的异常。
[0059]
sdn控制器214可以确定每个路径具有等待时间异常,并确定路径具有交叉,例如sd-wan 207中的wan链路242。在该示例中,如果每个路径的等待时间度量偏离基线等待时间值,则sdn控制器214可以确定重叠的wan链路242可能是等待时间异常的根本原因。
[0060]
如下文图3中进一步描述的,在一些示例中,当确定异常的根本原因时,sdn控制器214可以确定被测量的度量类型以及路径是否包括有线或无线链路。例如,由探测器231和233测量的路径之一可以包括无线链路(例如,将sd-wan设备218耦接到客户端设备216)。在该示例中,sdn控制器214可以接收丢失度量,并确定路径之一包括无线链路。sdn控制器214可以确定sd-wan设备218和客户端设备216之间的无线链路是异常的根本原因的候选(作为对wan链路242的补充或替代)。在这个示例中,然后sdn控制器214可以将边缘节点配置到无线链路,例如,sd-wan设备218,以在无线链路上发送附加的探测器,以确定无线链路是否实际上是异常的根本原因。
[0061]
图3是示出根据本公开中描述的技术的故障定位的示例操作的概念图。图3包括节点302a和302b(统称为“节点302”)和用户设备304a至304d(统称为“用户设备304”)。节点302可以代表图1的网络系统2中的任何节点,例如终端主机、底层网络设备和/或虚拟节点。用户设备304可以代表图1的任意用户设备16。在图3的示例中,用户设备304a和304b分别通过无线链路306连接到节点302b。用户设备304c和304d分别通过有线链路308连接到节点302b。
[0062]
在该示例中,控制器320(例如,图1的sdn控制器14的示例实例)可以将节点302a配置为沿着路径向用户设备304发送探测器。例如,节点302a发送探测器310来测量从节点302a到用户设备304a的端到端路径的一个或多个qoe度量。在该示例中,探测器310可以测量丢失度量和/或等待时间度量。类似地,节点302a发送探测器312来测量从节点302a到用户设备304d的端到端路径的一个或多个qoe度量。在该示例中,探测器312还可以测量丢失度量和/或等待时间度量。
[0063]
作为一个示例,sdn控制器320从探测器310和312中的每一个接收等待时间度量,并确定由探测器310和312测量的路径是否具有异常。作为一个示例,sdn控制器320可以计算40毫秒(ms)的基线等待时间值。如果探测器310测量100ms的等待时间,并且探测器312测量120ms的等待时间,则sdn控制器320可以确定每个路径具有异常,因为测量的等待时间偏离基线等待时间值。响应于确定由探测器310和312测量的路径具有异常,sdn控制器320可以确定路径的交叉(例如,重叠链路)。在这个示例中,链路322在路径之间共享。然后sdn控制器320确定链路322是否是等待时间异常的根本原因。在该示例中,如果来自探测器310和312的等待时间度量偏离基线等待时间值,则sdn控制器320确定共享链路322是等待时间异常的根本原因。在一些示例中,sdn控制器320可以基于阈值来确定测量的度量是否偏离基线值。阈值可以是用户定义的或通过机器学习配置的。
[0064]
作为另一个示例,控制器320从探测器310和312接收丢失度量,并确定由探测器310和312测量的路径是否有异常。作为一个示例,sdn控制器320可以计算基线丢失值。如果探测器310和探测器312都测量到偏离基线丢失值的丢失,则假设该度量是丢失度量,sdn控
制器320可以确定由探测器310和312测量的路径是否包括无线链路。由于无线链路是封包丢失的可能原因,sdn控制器320可以确定无线链路(例如,连接节点302b和用户设备304a的无线链路306)是丢失异常的可能根本原因(共享链路322的补充或替代)。为了确定无线链路是否是封包丢失的根本原因,sdn控制器可以配置边缘计算设备,例如节点302b,以发送附加的探测封包,例如探测封包314,来测量无线链路上的丢失度量,以确定无线链路是否是丢失异常的根本原因。
[0065]
图4是示出被配置为实现本文描述的技术的示例性sdn控制器的框图。在图4的示例中,sdn控制器460创建所包含的或由sdn控制器460管理的网络的拓扑表示,以便有效地创建用于探测网络内各种链路的整体过程。sdn控制器460可以作为服务提供商网络的网络服务控制器来操作。在图4所示的示例中,sdn控制器460包括管理单元465、用于控制sdn控制器460的操作的控制单元464、以及用于通过入站链路467和出站链路468与网络设备交换封包的网络接口466。
[0066]
在一些示例中,控制单元464和/或管理单元465可以实现为在一个或多个物理计算设备的一个或多个虚拟机上执行的一个或多个进程。也就是说,虽然通常被示出和描述为在单个sdn控制器460上执行,但是这些单元中的每一个的方面可以被委托给其他计算设备或分布在其他计算设备上。
[0067]
控制单元464和/或管理单元465中的每一个可以包括执行软件指令的一个或多个处理器(未示出),例如用于定义存储到计算机可读存储介质(未示出)的软件或计算机程序的处理器,存储介质例如包括存储设备(例如,磁盘驱动器或光盘驱动器)或存储器(例如闪存或随机存取存储器)或任意其他类型的易失性或非易失性存储器的非瞬时计算机可读介质,其存储指令以使一个或多个处理器执行本文描述的技术。可替代地或附加地,控制单元464和/或管理单元465中的每一个可以包括专用硬件,例如一个或多个集成电路、一个或多个专用集成电路(asic)、一个或多个专用特殊处理器(assp)、一个或多个现场可编程门阵列(fpga)、或专用硬件的一个或多个前述示例的任意组合,用于执行本文描述的技术。图4中示出的sdn控制器460的架构仅出于示例的目的而示出,并且不应限于该架构。在其他示例中,sdn控制器460可以以各种方式实现,例如仅软件、仅硬件或软件和硬件的组合。
[0068]
管理单元465可以包括sdn控制器460的管理层,而控制单元464可以包括sdn控制器460的控制层。管理单元465包括分析单元461和配置单元462。分析单元461可以从sd-wan系统(例如,图1的网络系统2)内的物理和/或虚拟网络元件(例如,图1的网关、服务节点10或每个数据中心9)捕获信息,并分析该信息以用于管理由服务提供商提供的网络服务。信息可能包括统计数据、日志、事件和错误。
[0069]
配置单元462存储sd-wan系统内网络元件的配置信息。在一些示例中,配置信息包括虚拟网络配置。配置单元462可以将预期虚拟网络配置的高级数据模型转换成用于与网络元件交互的低级数据模型。
[0070]
sdn控制器460的控制单元464为sd-wan系统实现了集中控制平面,用于负责保持不断变化的网络状态。控制单元464与sd-wan系统内的网络元件交互,以保持所有网络元件的一致网络状态。控制单元464为命令行接口守护程序475(“cli 475”)提供操作环境,命令行接口守护程序475提供管理员或其他管理实体可以使用基于文本的命令来修改sdn控制器460的配置的接口。控制单元464还为几个协议470提供操作环境,包括边界网关协议
(bgp)472和可扩展消息和存在协议(xmpp)474,如图4的示例所示。这些命令可以改变要测量哪些qoe度量,sdn控制器460如何构建网络拓扑,以及sdn控制器460是否优化了在节点设备上执行的探测过程的分布。用户配置(例如,基于意图的配置)也可以配置探测器本身,提供关于探测器是主动探测器、被动探测器还是其组合的指令。
[0071]
在一些示例中,控制单元464使用xmpp 474通过xmpp接口(未示出)与sd-wan系统内的网络元件(例如,图1的网络系统2内的路由器8、用户设备16或数据中心9的服务节点10)通信。虚拟网络路由数据、统计数据收集、日志和配置信息可以根据xmpp 474作为可扩展标记语言(xml)文档发送,用于sdn控制器460和网络元件之间的通信。控制单元464还可以使用xmpp 474与sdn控制器460的分析单元461和配置单元462中的一者或两者通信。
[0072]
控制单元464还包括设备管理器471、拓扑单元476、探测管理单元477、拓扑数据库478和度量数据库479,这使得控制单元464能够构建节点、链路和探测过程的拓扑表示,以开发跨越网络拓扑的完整探测计划。sdn控制器460可以是网络的云控制器,协调和映射跨网络的探测过程。例如,拓扑单元476可以为包括多个节点设备(例如,用户设备和服务节点)的网络构建网络的拓扑表示。拓扑表示可以采取提供每个节点设备的指示和多个链路的每个链路的指示的任意形式(例如,矩阵、数据库、图形、文本或任何其他数据结构),其中每个链路连接两个节点设备。拓扑表示可以存储在拓扑数据库478中。
[0073]
在一些示例中,拓扑单元476可以将与网络拓扑相关联的高级数据模型转换成适于与网络元件或设备(例如图1至图3所示的网络设备)交互的低级模型。在一些情况下,拓扑单元476可以经由网络接口466从协调引擎和/或管理员接收高级数据模型(例如,基于用户意图的网络或数据模型)。这些模型可能与网络拓扑相关联。拓扑单元476可以使用这些模型和意图来构建拓扑表示,以存储在拓扑数据库478中。
[0074]
在构建网络的拓扑表示时,拓扑单元476可以监控在多个链路的每一个上发送的一个或多个探测封包。例如,当本文描述的技术首次应用于网络时,每个节点设备可以通过每个节点设备各自的链路发送探测封包。然而,拓扑单元476可能不固有地拥有描述网络中哪些节点设备以及每个节点设备链接到哪些其他节点设备的数据结构。通过监控跨网络发送的各种探测封包,拓扑单元476可以用哪些节点设备在网络中以及每个节点设备正在向哪些其他节点设备发送探测封包的指示,来填充数据结构,例如邻接矩阵。由于网络可以被配置成使得每个节点设备对连接到该节点设备的每个链路执行探测功能,该监控功能将向拓扑单元476提供网络内各种连接的完整表示,并且拓扑单元476可以使用图论来导出网络内各种节点设备和链路的拓扑表示。
[0075]
为了优化本文描述的整个系统的效率,探测管理单元477可以基于网络的拓扑表示来确定覆盖所有链路的路径的最小数量和路径内节点的最小数量以发送探测封包。例如,当选择用于在相应链路上探测的节点设备时,探测管理单元477可以执行优化算法(例如,贪婪算法)。
[0076]
虽然上述功能可以是在开始实施本文描述的技术时的初始化技术的一部分,但是当新的节点设备进入网络时,可以重复这些技术。sd-wan本质上是动态的,并且节点设备可以随时进入或离开网络。这意味着在sd-wan的整个存在过程中创建和从系统中移除链路。这样,拓扑单元476和探测管理单元477可以被配置为每当新节点设备进入系统时或者每当当前节点设备离开系统时重复本文描述的过程。
[0077]
响应于选择选定的节点设备来测量路径的一个或多个qoe度量,探测管理单元477可以从选定节点设备接收该路径的一个或多个qoe度量。探测管理单元477可以将qoe度量存储在度量数据库479中,使得qoe度量可以在针对其他链路和/或路径的进一步外推和估计中被参考。
[0078]
设备管理器471可以基于拓扑数据库478和度量数据库479提供的输入来生成与供应商无关的设备信息。与供应商无关的设备信息也可以称为设备抽象配置信息。与供应商无关的设备信息是无关的、网络中每个单独网络设备的每设备配置信息。在一些示例中,与供应商无关的设备信息可以包括可扩展标记语言(xml)模式或又一个下一代(yang)模式信息。
[0079]
然后sdn控制器460可以利用设备管理器471来实现一个或多个转变过程,以将与供应商无关的设备信息转变成供应商特定的设备信息。供应商特定的设备信息也可以被称为供应商特定的或具体的设备配置信息。网络中的每个单独网络设备可以具有与供应商无关的设备信息和供应商特定的设备信息两者。在一些示例中,供应商特定的设备信息可以通过使用例如针对每个不同供应商的jinja2模板来定制。
[0080]
结果,设备管理器471可以被配置成以图4所示的方式生成与供应商无关的设备信息和供应商特定的设备信息两者。与供应商无关的设备信息可以包括与供应商无关的设备配置和/或命令信息(例如,通过cli 475或其他管理接口输入),并且供应商特定的设备信息也可以包括供应商特定的设备配置和/或命令信息(例如,通过网络接口466和/或通过协议470发送)。图4所示的sdn控制器460可以向已经为其生成了供应商特定的设备信息的单个网络设备发送供应商特定的设备信息。例如,sdn控制器460可以经由配置接口向网络设备提供供应商特定的设备配置信息,并且可以经由命令接口向网络设备提供供应商特定的设备命令信息。在该示例中,供应商特定的设备配置信息和供应商特定的设备命令信息可以各自被包括在供应商特定的设备信息中,供应商特定的设备信息是从与供应商无关的设备信息转变而来的。关于将高级配置指令转变成低级设备配置的附加信息可以在于2016年6月30日提交的标题为“translating high-level configuration instructions to low-level device configuration”的美国专利申请序列号15/198,657中找到,其通过引用结合于此。
[0081]
这些技术可以使探测管理单元477能够在拓扑数据库478和度量数据库479中为每个链路和每个可能的连接在所有方向上创建qoe度量的动态表示。例如,探测管理单元477可以将每个链路的接收测量值存储在度量数据库479中。然后,对于拓扑数据库478中指示的每个外推/估计(例如,对于接收的qoe度量的每个反向,对于也通过链路连接的两个节点设备进行连接的每个逻辑路径,以及对于不是通过链路直接连接的两个节点设备之间的最短路径的每个复杂路径),探测管理单元477可以在度量数据库479中存储相应的估计的qoe度量。当探测管理单元477接收到新的度量时,可以更新该信息。通过该信息,每当sdn控制器460必须为应用业务或节点之间的业务做出路由决策时,sdn控制器460可以参考拓扑数据库478和存储在度量数据库479中的qoe度量,来为网络内的业务做出路由决策。
[0082]
sdn控制器460是被配置成执行本公开中描述的技术的控制器的一个示例实例。sdn控制器460可以包括执行各种功能的附加单元,例如警告用户的警报单元(未示出)。
[0083]
根据本公开中描述的技术,sdn控制器460包括故障定位单元480,以查明导致一个
或多个异常的节点或链路。例如,sdn控制器460可以通过网络接口466从网络中的选定节点接收qoe度量。故障定位单元480可以用计算的基线值来评估qoe度量,以检测探测路径中的异常。作为一个示例,所计算的基线值可以根据qoe度量的历史数据计算,例如存储在度量数据库479中的qoe度量,并且可以随着qoe度量的更新而动态更新。在其他示例中,用户可以使用cli 475来静态配置计算的基线值。
[0084]
故障定位单元480可以用计算出的基线值评估接收到的qoe度量,以检测探测路径中的异常。如果故障定位单元480确定多条路径具有异常,则故障定位单元480可以确定多条路径是否具有交叉,例如任何重叠的链路。例如,故障定位单元480可以从拓扑数据库478确定探测路径是否有交叉(例如,重叠链路)。响应于确定探测路径包括重叠链路,故障定位单元480确定至少一个重叠链路是否是异常的根本原因。
[0085]
例如,故障定位单元480可以确定测量路径的qoe度量是否偏离基线值。如果测量路径的每个qoe度量偏离基线值,则故障定位单元480确定重叠链路是异常的根本原因。
[0086]
在一些示例中,当确定异常的根本原因时,故障定位单元480可以确定路径是否包括有线或无线链路。故障定位单元480可以确定qoe度量是丢失度量。在该示例中,故障定位单元480可以从拓扑数据库478确定探测路径是否包括无线链路(例如,链路是否使用无线协议)。如果故障定位单元480确定路径包括丢失异常,则假设度量是丢失度量,故障定位单元480可以确定探测器测量的路径是否包括无线链路。由于无线链路是封包丢失的可能原因,故障定位单元480可以确定无线链路(例如,连接图3的节点302b和用户设备304a的无线链路306)是丢失异常的可能根本原因(共享链路322补充或替代)。为了确定无线链路是否是封包丢失的根本原因,故障定位单元480可以将边缘计算设备配置到无线链路,以在无线链路上发送附加探测封包,从而确定无线链路是否是丢失异常的根本原因。
[0087]
如果sdn控制器14确定多条路径具有异常,则sdn控制器14可以确定多条路径是否具有交叉,例如任何重叠链路。如果多条路径具有至少一条重叠链路,sdn控制器14确定该至少一条重叠链路是否是异常的根本原因。根本原因的确定可以取决于所测量的qoe度量的类型和/或路径的链路是否包括无线链路。
[0088]
例如,sdn控制器14可以确定路径32和34每个都具有等待时间异常,并且确定路径32和34具有至少一个重叠链路,例如,sd-wan 7中的wan链路。在该示例中,如果路径32和34中的每一个的等待时间度量偏离基线等待时间值,则sdn控制器14可以确定重叠的wan链路可能是异常的根本原因。
[0089]
在一些示例中,当确定异常的根本原因时,sdn控制器14可以确定路径是否包括有线或无线链路。例如,路径30可以包括无线链路,路径32可以包括有线链路。在该示例中,sdn控制器14可以接收路径30的第一丢失度量和路径32的第二丢失度量,并且确定路径30和32中的每一个都包括异常。在这个示例中,sdn控制器14确定路径30包括无线链路。如果路径30的第一丢失度量偏离路径32的第二丢失度量,则sdn控制器14可以确定无线链路是异常的根本原因的候选,因为无线链路更可能丢弃封包,因此无线链路可能是封包丢失的原因。然后sdn控制器14可以将边缘节点配置到无线链路,以在无线链路上发送附加的探测器,例如探测器37,来确定无线链路是否实际上是异常的根本原因。
[0090]
图5是示出根据本公开的技术的软件定义广域网系统的示例技术的流程图,该软件定义广域网系统基于网络的拓扑表示来执行探测器分配功能。例如,该示例操作是关于
图3的sdn控制器320描述的,但是可以代表本公开中描述的任何sdn控制器。以下是该过程的步骤,但是在本公开的技术中执行的过程的其他示例可以包括附加步骤或者可以不包括下面列出的一些步骤。
[0091]
根据本文描述的技术,sdn控制器320接收由穿过包括一个或多个链路的第一路径的第一探测器测量的第一组一个或多个qoe度量(502)。例如,sdn控制器320可以将节点302a配置为在节点302a和用户设备304a之间的第一端到端路径上发送探测器310,以测量qoe度量(例如,等待时间和丢失)。sdn控制器320接收节点302a和用户设备304a之间路径的等待时间度量和丢失度量。类似地,sdn控制器320可以将节点302a配置为在节点302a和用户设备304d之间的第二端到端路径上发送探测器312,以测量qoe度量(例如,等待时间和丢失)。
[0092]
sdn控制器320接收由穿过包括一个或多个链路的第二路径的第二探测器测量的第二组一个或多个qoe度量(504)。例如,sdn控制器320可以将节点302a为配置在节点302a和用户设备304d之间的第二端到端路径上发送探测312,以测量qoe度量(例如,等待时间和丢失)。sdn控制器320接收节点302a和用户设备304d之间路径的等待时间度量和丢失度量。
[0093]
sdn控制器320根据第一组qoe度量确定第一路径具有异常(506),并根据第二组qoe度量确定第二路径具有异常(508)。例如,sdn控制器320可以计算40毫秒(ms)的基线等待时间值。如果探测器310测量100ms的等待时间,并且探测器312测量120ms的等待时间,则sdn控制器320可以确定每个路径具有异常,因为测量的等待时间偏离基线等待时间值。
[0094]
响应于确定第一路径具有异常并且第二路径具有异常,sdn控制器320确定第一路径和第二路径之间的交叉(510)。例如,响应于确定由探测器310和312测量的等待时间度量各自偏离基线等待时间值,sdn控制器320确定路径之间的交叉(例如,重叠链路322)是等待时间异常的根本原因。
[0095]
在一些示例中,当确定异常的根本原因时,sdn控制器320可以确定路径是否包括有线或无线链路。作为一个示例,sdn控制器320可以计算基线丢失值。如果探测器310和探测器312都测量到偏离基线丢失值的丢失,则假设该度量是丢失度量,sdn控制器320可以确定由探测器310和312测量的路径是否包括无线链路。由于无线链路是封包丢失的可能原因,sdn控制器320可以确定无线链路(例如,连接节点302b和用户设备304a的无线链路306)是丢失异常的可能根本原因(共享链路322的补充或替代)。为了确定无线链路是否是封包丢失的根本原因,sdn控制器320可以配置边缘计算设备,例如节点302b,以发送附加探测封包,例如探测封包314,来测量无线链路上的丢失度量,以确定无线链路是否是丢失异常的根本原因。
[0096]
图6是示出根据本公开中描述的技术的分布式控制器的示例的框图。在图6的示例中,控制器600可以表示图1的控制器14或多个网络设备的任意控制器。
[0097]
图6示出了示例边缘计算架构,其包括从核心网络602到客户设备的不同类型的边缘节点,每个边缘节点具有不同的度量(例如,等待时间)要求。根据边缘节点的类型,链路可以是有线的,也可以是无线的。在该示例中,客户边缘节点614a至614n(统称为“客户边缘节点614”)可以与用户设备616a至616n(统称为“用户设备616”)具有无线连接。例如,客户边缘节点614可以表示5g网络或电话公司(“电信公司”)网络的边缘设备。在5g网络中,最后一跳可以包括到启用5g的设备(例如用户设备616)的无线链路。
[0098]
不同级的边缘节点有不同的等待时间要求。在该示例中,在核心节点到远边缘网络(例如,远边缘网络606a)中的节点之间存在具有有线链路的路径,然后在基站和客户边缘之间存在无线链路。近边缘网络(例如604a)中的节点可以负责管理给定地理区域中的边缘节点。在大规模网络中(例如,近边缘节点和客户边缘节点在1000和几百万的数量级),分布式探测控制器(例如,控制器600)将被用于将不同节点的探测器配置为探测发生器。在图6的示例中,探测控制器实例可以在不同级的边缘节点处被实例化,探测控制器的每个实例负责为其下游和上游网络路径配置探测器。在该示例中,探测控制器实例,例如近边缘探测控制器610a,可以在近边缘网络604a处被实例化,近边缘探测控制器610n可以在近边缘网络604n处被实例化,并且远边缘探测控制器612可以在远边缘网络606a处实体化。
[0099]
出于可扩展性目的,“近边缘”处的探测控制器实例,例如近边缘探测控制器610a至610n,可以负责为到同一区域中“远边缘”节点的路径配置探测器。类似地,在“远边缘”的控制器实例,例如远边缘探测器控制器612,可以负责配置到客户边缘节点和终端设备的探测器。可以在不同的边缘节点以分布式方式执行对根本原因的探测结果的分析。例如,“远边缘”站点可以对其负责的下游网络中的任何故障执行根本原因分析。这些部分结果可用于更高层的控制器实例,例如“近边缘”和“核心”节点处的控制器实例,用于根本原因分析的进一步聚集。
[0100]
本文描述的技术可以在硬件、软件、固件或其任意组合中实现。描述为模块、单元或组件的各种特征可以在集成逻辑设备中一起实现,或者作为分立但可互操作的逻辑设备或其他硬件设备单独实现。在一些情况下,电子电路的各种特征可以被实现为一个或多个集成电路设备,例如集成电路芯片或芯片组。
[0101]
如果以硬件实现,本公开可以针对诸如处理器或集成电路设备的装置,诸如集成电路芯片或芯片组。可替代地或附加地,如果以软件或固件实现,则这些技术可以至少部分地通过包括指令的计算机可读数据存储介质来实现,这些指令在被执行时使得处理器执行一个或多个上述方法。例如,计算机可读数据存储介质可以存储由处理器执行的这样的指令。
[0102]
计算机可读介质可以形成可以包括封装材料的计算机程序产品的一部分。计算机可读介质可以包括计算机数据存储介质,例如随机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、磁或光数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
[0103]
在一些示例中,计算机可读存储介质可以包括非瞬时介质。术语“非瞬时”可以表示存储介质没有包含在载波或传播信号中。在某些示例中,非瞬时存储介质可以存储随时间而变化的数据(例如,在ram或高速缓存中)。
[0104]
代码或指令可以是由处理电路执行的软件和/或固件,该处理电路包括一个或多个处理器,例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其他等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何前述结构或者适合于实现本文描述的技术的任何其他结构。此外,在一些方面,本公开中描述的功能可以在软件模块或硬件模块中提供。
[0105]
已经描述了各种示例。这些示例和其他示例包括在所附权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1