保持端到端性能的跨网段主动优化
背景技术:
1.今天,从企业中的设备到云中的服务器的端到端网络路径包括多个网段和筒仓(silo),比如无线局域网(wlan)、有线lan(例如,企业中的交换机、路由器)、广域网(wan)(例如,互联网)和服务器侧lan。每一段都有动态更改参数的策略,以解决该段中发生的网络问题。然而,这些策略都是被动响应,无法主动防止潜在的不良网络性能和糟糕的用户体验。
技术实现要素:
2.本发明的一些实施例提供了一种用于在活动网络流(即,源和目的地之间的当前且活动的分组交换)期间主动优化软件定义的广域网(sd-wan)的网络性能的方法,该软件定义的广域网连接在多个网段中操作的多个设备。该方法针对与活动网络流相关的网络事件(即,与和活动网络流量关联的网络元件相关的网络事件)监视sd-wan。当在sd-wan中的第一网段中的第一设备处检测到特定网络事件时,该方法至少对活动网络流将穿过的sd-wan中的第二网段中的第二设备进行主动动作,以便减轻所述特定网络事件对sd-wan的性能的潜在负面影响,从而改善总体网络性能。
3.在一些实施例中,sd-wan的中央控制器接收来自第一设备的指示在第一设备处检测到了特定网络事件的信号。在一些实施例中,检测到的网络事件是由除第一设备以外的设备表现出的不良性能的结果。例如,在一些实施例中,第一设备是sd-wan边缘转发元件,并且网络事件是sd-wan边缘转发元件为其转发分组的客户端设备性能不良的结果。在接收到该信号之后,一些实施例的中央控制器分析该信号,确定至少要对第二设备实施的主动动作,以改善活动网络流的性能,并向第二设备发出信号以实施主动动作。
4.在一些实施例中,中央控制器从sd-wan中的所有设备收集指标,比如丢失、延迟和抖动,并使用这些收集的指标来进行附加的判定,以改善总体网络性能和用户体验。在一些实施例中,这些指标被称为反应性指标,因为它们是在实施主动动作之后收集的。在一些实施例中,所收集的反应性指标中的至少一些涉及已经针对其实施了主动动作的特定设备,并且指定该特定设备的性能退化。
5.可替选地或结合地,在一些实施例中,在sd-wan中的每个设备上执行的控制平面代理实现分布式控制平面,用于针对网络事件监视sd-wan,并基于检测到的网络事件的分析实施主动动作。在一些实施例中,控制平面代理与sd-wan中的每个其他设备上的每个其他控制平面代理通信,从而形成通信网格。在一些实施例中,控制平面代理被配置为往来于彼此发送和接收网络事件相关信号。在一些实施例中,控制平面代理使用所接收的信号来判定是否修改它们各自的设备以改善设备性能和总体网络性能,以及减轻额外的潜在网络事件。
6.在一些实施例中,网络事件是设备相关网络事件、局域网(lan)相关事件、广域网(wan)相关事件或无线lan(wlan)相关网络事件。一些实施例的设备相关网络事件的例子包括(1)由在设备上运行的应用的不良行为导致的设备性能不良,(2)贯穿内联网链路的性能
持续不良,或(3)设备的网络、计算和/或存储性能不良。在一些实施例中,lan相关网络事件和wan相关网络事件的例子包括(1)设备重启(例如,交换机/路由器重启),(2)来自环境监视器(例如,风扇、电源、温度等)的阈值警告,或(3)设备表现出的网络、计算和/或存储性能不良。在一些实施例中,wlan相关网络事件的例子包括(1)设备漫游,(2)高干扰(例如,低信噪比(snr)),(3)软件停机(例如,用于软件升级),以及(4)设备表现出的网络、计算和存储性能不良。
7.在一些实施例中,主动动作基于网络事件类型以及设备类型(例如,边缘节点、交换机、边缘网关等)而变化。主动动作的例子可以包括提高网络中其他设备/点处的网络流的服务质量(qos)(例如,提高边缘节点上的qos以弥补不可靠的无线设备连接),选择用于转发网络流的替代wan链路、将网络流标记为高优先级流(例如,通过在流的分组上设定标志),复制网络流的分组,以及为一个或多个设备主动高速缓存分组。除了主动动作之外,一些实施例还对已经经历了网络事件的设备进行校正动作,以防止这些设备上进一步的网络事件并提高性能。
8.上述发明内容旨在作为本发明的一些实施例的简要介绍。这并不意味着是本文中公开的所有发明主题的介绍或概述。下面的具体实施方式和在具体实施方式中提到的附图将进一步说明在发明内容中说明的实施例以及其他实施例。因而,为了理解本文所述的所有实施例,需要对发明内容、具体实施方式、附图和权利要求书进行全面审查。此外,要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节限制。
附图说明
9.在所附的权利要求书中陈述了本发明的新颖特征。然而,出于解释的目的,在以下附图中陈述了本发明的几个实施例。
10.图1概念性地图解说明按照一些实施例的sd-wan的例子,该sd-wan将多个网段中的多个设备相互连接、连接到控制器以及连接到至少一个云数据中心。
11.图2概念性地图解说明按照一些实施例的总体用户体验的表示。
12.图3图解说明一些实施例的扩展了lan/wlan/设备的sd-wan部署的例子。
13.图4图解说明按照一些实施例的用于主动缓解网络性能不良和优化用户体验的处理。
14.图5图解说明按照一些实施例的用于响应于与一组流、一组转发节点和/或一组租户相关的网络事件而主动优化网络性能并减轻额外的潜在网络事件的处理。
15.图6图解说明按照一些实施例的基于当前指标和在一段时间内接收到的指标来优化网络性能的处理。
16.图7图解说明按照一些实施例的用于在sd-wan中的设备处应用主动动作的处理。
17.图8图解说明按照一些实施例在扩展了lan/wlan/设备的sd-wan部署中经历的网络事件的表示。
18.图9图解说明在一些实施例中响应于接收到指示出站lan/wlan性能不良的信号而进行的处理。
19.图10图解说明在一些实施例中响应于接收到指示入站和出站lan/wlan性能不良的信号而进行的处理。
20.图11图解说明在一些实施例中响应于接收到指示出站wan性能不良的信号而进行的处理。
21.图12图解说明在一些实施例中响应于接收到指示设备性能不良的信号而进行的处理。
22.图13概念性地图解说明实现本发明的一些实施例的计算机系统。
具体实施方式
23.在本发明的以下详细说明中,陈述并说明了本发明的众许多细节、例子和实施例。然而,对本领域技术人员来说,清楚并且明显的是本发明不限于所述的实施例,并且可以在没有一些所讨论的具体细节和例子的情况下实践本发明。
24.本发明的一些实施例提供了一种用于在活动网络流(即,源和目的地之间的当前且活动的分组交换)期间主动优化软件定义的广域网(sd-wan)的网络性能的方法,该软件定义的广域网连接在多个网段中操作的多个设备。该方法针对与活动网络流相关的网络事件监视sd-wan。当在sd-wan中的第一网段中的第一设备处检测到特定网络事件时,该方法至少对活动网络流将穿过的sd-wan中的第二网段中的第二设备进行主动动作,以便减轻所述特定网络事件对sd-wan的性能的潜在负面影响,从而改善总体网络性能。
25.在一些实施例中,sd-wan的中央控制器接收来自第一设备的指示在第一设备处检测到了特定网络事件的信号。在一些实施例中,检测到的网络事件是由除第一设备以外的设备表现出的不良性能的结果。例如,在一些实施例中,第一设备是sd-wan边缘转发元件,并且网络事件是sd-wan边缘转发元件为其转发分组的客户端设备性能不良的结果。在接收到该信号之后,一些实施例的中央控制器分析该信号,确定至少要对第二设备实施的主动动作,以改善活动网络流的性能,并向第二设备发出信号以实施主动动作。
26.在一些实施例中,中央控制器从sd-wan中的所有设备收集指标,比如丢失、延迟和抖动,并使用这些收集的指标来进行附加的判定,以改善总体网络性能和用户体验。在一些实施例中,这些指标被称为反应性指标,因为它们是在实施主动动作之后收集的。在一些实施例中,所收集的反应性指标中的至少一些涉及已经针对其实施了主动动作的特定设备,并且指定该特定设备的性能退化。
27.可替选地或地合地,在一些实施例中,在sd-wan中的每个设备上执行的控制平面代理实现分布式控制平面,用于针对网络事件监视sd-wan,并基于检测到的网络事件的分析实施主动动作。在一些实施例中,控制平面代理与sd-wan中的每个其他设备上的每个其他控制平面代理通信,从而形成通信网格。在一些实施例中,控制平面代理被配置为往来于彼此发送和接收网络事件相关信号。在一些实施例中,控制平面代理使用所接收的信号来判定是否修改它们各自的设备以改善设备性能和总体网络性能,以及减轻额外的潜在网络事件。
28.在一些实施例中,网络事件是设备相关网络事件、局域网(lan)相关事件、广域网(wan)相关事件或无线lan(wlan)相关网络事件。一些实施例的设备相关网络事件的例子包括(1)由在设备上运行的应用的不良行为导致的设备性能不良,(2)贯穿内联网链路的性能持续不良,或(3)设备的网络、计算和/或存储性能不良。在一些实施例中,lan相关网络事件和wan相关网络事件的例子包括(1)设备重启(例如,交换机/路由器重启),(2)来自环境监
视器(例如,风扇、电源、温度等)的阈值警告,或(3)设备表现出的网络、计算和/或存储性能不良。在一些实施例中,wlan相关网络事件的例子包括(1)设备漫游,(2)高干扰(例如,低信噪比(snr)),(3)软件停机(例如,用于软件升级),以及(4)设备表现出的网络、计算和存储性能不良。
29.在一些实施例中,主动动作基于网络事件类型以及设备类型(例如,边缘节点、交换机、边缘网关等)而变化。主动动作的例子可以包括提高网络中其他设备/点处的网络流的服务质量(qos)(例如,提高边缘节点上的qos以弥补不可靠的无线设备连接),选择用于转发网络流的替代wan链路,将网络流标记为高优先级流(例如,通过在流的分组上设定标志),复制网络流的分组,以及为一个或多个设备主动高速缓存分组。除了主动动作之外,一些实施例还对已经经历了网络事件的设备进行校正动作,以防止这些设备上进一步的网络事件并改善总体网络性能。
30.图1图解说明sd-wan(本文中也称为虚拟网络)的示例实施例,该sd-wan将多个网段中的多个设备相互连接、连接到控制器以及连接到至少一个云数据中心。如图所示,sd-wan 100包括控制器110(即,cc 110)、分别包括边缘节点130-134(即,en 130、en 132和en 134)的三个分支站点120-124、公共云数据中心105中的网关140(即,gw 140)、以及包括中枢节点136(即,hn 136)和一组资源138的数据中心(公共或私有)145。
31.在一些实施例中,边缘节点130-134是边缘机器(例如,虚拟机(vm)、容器、在计算机上执行的程序等)和/或在特定实体的多计算机位置(例如,在实体的办公室或数据中心)操作以将在其相应位置处的计算机连接到虚拟网络中的其他节点、中枢等的独立设备。在一些实施例中,边缘节点是在每个分支站点的节点集群。在其他实施例中,边缘节点作为高可用性对而被部署到每个分支站点,使得所述对中的一个节点是活动节点,而所述对中的另一个节点是在故障时可以接任作为活动节点的备用节点。在一些实施例中,每个分支站点和数据中心在地理上分散在不同的物理位置(例如,不同的建筑物、不同的城市、不同的州等)。
32.可以为其建立此类虚拟网络的实体的例子包括商业实体(例如,公司)、非营利实体(例如,医院、研究机构等)和教育实体(例如,大学、学院等)或任何其他类型的实体。公共云提供商的例子包括亚马逊网络服务(aws)、谷歌云平台(gcp)、微软azure等,而实体的例子包括企业(例如,公司、j9九游会真人的合作伙伴等)、组织(例如,学校、非营利组织、政府实体等)等等。在其他实施例中,类似于中枢节点136的中枢也可以部署在托管中枢以便为不同实体建立sd-wan的虚拟wan提供商的私有云数据中心中。
33.在示例sd-wan 100中,中枢136是部署在数据中心145的场所的多租户转发元件。中枢136可以用于与在特定实体的多计算机站点(比如分支站点120-124、第三方数据中心(未示出)等)处的边缘节点建立安全连接链路(例如,隧道)。例如,中枢136可用于提供从每个分支站点120-124对每个其他分支站点120-124(例如,经由终止于中枢136的任何连接链路160)以及对数据中心145的资源138的访问。按照一些实施例,这些多计算机站点通常位于不同的物理位置(例如,不同的建筑物、不同的城市、不同的州等)。在一些实施例中,中枢可以部署为物理节点或虚拟节点。另外,在一些实施例中,中枢可以部署在云上(例如,作为配置为集群的一组虚拟边缘)。
34.在sd-wan 100中,如上所述,中枢136还提供对数据中心145的资源138的访问。在
一些实施例中,资源包括微服务容器(例如,豆荚(pod))内的一组一个或多个服务器(例如,web服务器、数据库服务器等)。结合地或可替选地,一些实施例包括多个这样的微服务容器,每个微服务容器都可以通过数据中心的一组不同的一个或多个中枢(未示出)进行访问。按照一些实施例,资源以及中枢位于数据中心场所内。虽然未示出,但是按照一些实施例,一些实施例包括多个不同的saas数据中心,每个saas数据中心可以经由不同组的中枢而被访问。在一些实施例中,saas数据中心包括用于视频会议saas提供商的数据中心、用于中间设备(例如,防火墙)服务提供商的数据中心、用于存储服务提供商的数据中心等。
35.在一些实施例中,经由中枢136可访问的资源的其他例子包括计算机器(例如,提供服务器操作的虚拟机和/或容器)、存储机器(例如,数据库服务器)和中间设备服务操作(例如,防火墙服务、负载均衡服务、加密服务等)。在一些实施例中,分支站点120-124、网关140和中枢136之间的连接160是对在分支站点的边缘节点130-134和中枢136之间交换的分组进行加密的安全加密连接。在一些实施例中使用的安全加密连接的例子包括vpn(虚拟专用网络)连接或者安全ipsec(网际协议安全)连接。
36.在一些实施例中,在边缘节点和中枢136之间可以建立多个安全连接链路(例如,多个安全隧道)。在一些实施例中,当在节点和中枢之间定义多个这样的链路时,每个安全连接链路与节点和外部网络之间的不同物理网络链路关联。例如,在一些实施例中,为了访问外部网络,节点具有一个或多个用于访问因特网的商用宽带因特网链路(例如,电缆模式和光纤链路)、无线蜂窝链路(例如,5g lte网络)等。边缘节点、中枢、网关、控制器以及边缘节点、中心、网关和控制器之间的安全连接的集合(collection)形成sd-wan 100。
37.在一些实施例中,控制器110与每个边缘节点130-134通信,以经由连接链路150a-150c发送诸如配置信息之类的信息,和接收诸如与设备和/或网络性能相关的指标之类的信息。除了与边缘节点130-134通信之外,在一些实施例中,控制器110还经由连接链路150d与网关140通信,并且经由连接链路150e与中枢136通信,以提供信息(例如,配置信息)和接收性能相关指标。虽然被图示为单独的连接链路,但是在一些实施例中,链路150a-150e是多个连接链路的集合。
38.在一些实施例中,sd-wan中的设备被配置为向sd-wan的控制器(或控制器集群)提供与设备和网络性能相关的指标,并发送指示网络的一部分中即将出现的负面网络体验的信号。在一些实施例中,指标包括丢失、延迟和抖动,并用于计算其他指标,比如链路的性能。在一些实施例中,这些指标被称为反应性指标,因为它们是在实施主动动作之后收集的。在一些实施例中,所收集的反应性指标中的至少一些涉及已经针对其实施了主动动作的特定设备相关,并且指定该特定设备的性能退化。在一些实施例中,指示即将出现的负面网络体验的信号可以包括与wlan问题、lan问题、wan问题和设备问题相关的信号。
39.在一些实施例中,可以监视的wlan问题的例子包括设备漫游(例如,归因于与接入点的连接的丢失),高干扰(例如,低snr),软件重启(例如,归因于升级、维护、故障等),以及不良的网络、计算和/或存储性能(例如,cpu、ram、网络速度、端口错误等)。在一些实施例中,可以监视的lan问题和wan问题的例子包括路由器或交换机重启(例如,归因于升级、维护、故障等),来自环境监视器(例如,风扇、电源、温度等)的阈值警告,以及不良的网络、计算和/或存储性能(例如,cpu、ram、网络速度、端口错误等)。最后,可以监视的设备问题的例子包括由不良应用行为导致的设备性能持续不良,内联网链路上的性能(例如吞吐量、丢
失)持续不良,以及由设备系统日志指示的网络、计算和存储性能不良。
40.在一些实施例中,当活动分组流穿过sd-wan时,控制器实时从sd-wan中的设备接收指标和信号,并基于这些指标和信号做出优化网络性能和总体用户体验以及减轻潜在网络事件的确定。在一些实施例中,控制器甚至可以在网络流完成之前做出这些确定,并基于这些确定实施动作。
41.在一些实施例中,总体用户体验可以被定义为因特网和内联网上的用户体验的总和。例如,图2图解说明一些实施例中这种总体用户体验的表示。该表示200从左到右包括设备210、第一边缘节点220、第二边缘节点230和数据中心240。如图所示,设备210和第一边缘节点220之间以及数据中心240和第二边缘节点230之间的连接被标记为lan体验,而边缘节点220和230之间的连接被标记为wan体验。
42.在一些实施例中,lan体验是lan和wlan上的组合网络体验,而wan体验是wan上的网络体验。因此,在一些实施例中,总体用户体验是企业lan体验、wan体验和数据中心lan体验(即,端到端)的总和。因而,在一些实施例中,控制器例如可以响应于检测到不良wlan/lan性能来提高和优化wan性能。下面将进一步详细说明在一些实施例中控制器响应于不同类型的网络事件而采取的主动动作和校正动作的类型的例子。
43.图3图解说明扩展了lan/wlan/设备的sd-wan部署的示例实施例。sd-wan 300由控制器集群310、网关320、云数据中心325和用于lan/wlan 305的边缘节点330组成。
44.除了这里说明的其他功能之外,在一些实施例中,控制器集群310起管理(例如,定义和修改)配置数据的中心点的作用,所述配置数据被提供给边缘节点和/或网关以配置一些或所有操作。在一些实施例中,控制器集群310具有定义和修改配置数据的一组管理器服务器,以及将配置数据分发到边缘转发元件和/或网关的一组控制器服务器。在一些实施例中,控制器集群310指导边缘转发元件使用某些网关(即,向边缘转发元件分配网关)。
45.在一些实施例中,控制器驻留在多个不同的公共云数据中心和/或私有云数据中心中。此外,一些实施例将一个或多个网关部署在一个或多个私有云数据中心(例如,部署网关的实体的数据中心)中,并提供用于配置网关以实现虚拟网络的控制器。
46.边缘节点330可以是边缘机器(例如,vm、容器、在计算机上执行的程序等)和/或在lan操作以将在lan/wlan 305的其他设备连接到虚拟网络中的其他节点、中枢等(比如经由网关320连接到云数据中心325的独立设备。lan/wlan 305包括交换机340、无线lan控制器342、接入点344、无线设备346、有线设备348和服务器350。按照一些实施例,服务器350可以包括dhcp(动态主机配置协议)服务器、dns(域名系统)服务器和radius(远程认证拨入用户服务)服务器。
47.当边缘节点330将lan/wlan的设备连接到外部网络和设备(例如,云数据中心325)时,交换机340将边缘节点330、无线lan控制器342、有线设备348和服务器350相互连接。无线lan控制器342管理接入点,比如包括无线设备346在内的无线设备通过其连接到lan 305的接入点344。例如,源于无线设备346且目的地为云数据中心325的分组将沿着通过接入点344、无线lan控制器342、交换机340、边缘节点330,穿过sd-wan到达边缘网关320,最后到达云数据中心325的路径而行。
48.如上所述,在一些实施例中,sd-wan的设备被配置为当已经检测到网络事件时向控制器发出信号,使得控制器可以在潜在问题发生之前尝试缓解这些问题,以及甚至在流
完成之前优化网络性能并改善总体用户体验。另外,当在延长的持续时间内监视信号时,一些实施例得出与网络性能和总体用户体验相关的其他了解。可以为集中式控制器监视和收集数据的sd-wan设备的例子包括sd-wan边缘节点(例如,通过流式传输收集的指标)、无线控制器和/或交换机(即,使用简单网络管理协议(snmp))、radius服务器(例如,使用系统日志)、以及运行在客户端设备或服务器上的应用和/或代理(例如,经由api(应用编程接口))。可替选地或结合地,一些实施例实现本地(on-premise)设备以从多个数据源收集数据,并将该数据发送到集中式控制器。
49.在一些实施例中,所述本地设备是爬虫,并且可以是独立设备、虚拟机(vm)或内置于sd-wan边缘设备中。在一些实施例中,爬虫设备位于中央数据中心(例如,数据中心105)或分支位置(例如,分支站点120-124)。在一些实施例中,多个爬虫设备可以一起工作以收集数据以及清除任何重叠数据。与上述其他设备一样,爬虫设备可以从诸如交换机、路由器、wlan控制器、radius服务器、应用之类的各种设备收集数据,所述数据然后被提供给集中式控制器。
50.图4图解说明在一些实施例中进行的处理,以在活动网络流期间主动优化网络性能并减轻额外的潜在网络事件。在一些实施例中,处理400由集中式控制器或控制器集群进行,而在其他实施例中,处理400由分布式控制器进行,其中代理以全互联或部分互联模式(full or partial mesh)部署在sd-wan中。
51.通过针对与和活动网络流量关联的网络元件相关的网络事件监视sd-wan,处理400开始于410。在一些实施例中,网络元件可以包括转发元件(例如,边缘转发节点、中枢转发节点等)、中间设备服务元件(例如,防火墙服务元件、负载均衡服务元件、加密服务元件等),以及源设备和目的地设备(例如,客户端计算机)。另外在一些实施例中,网络元件可以包括流所经过的数据中心或网络提供商,而在其他实施例中,网络元件不包括数据中心或网络提供商。
52.在一些实施例中,当处理400由集中式控制器进行时,集中式控制器沿着活动网络流所经过的路径监听来自设备(例如,边缘节点、中枢、网关等)的信号。或者,在一些实施例中,当处理400改为由分布式控制器进行时,由分布式控制器部署的代理分别监听来自其他代理的指示由其他代理检测到的异常的信号。
53.接下来,该处理从网段中的设备接收(在420)与网络事件相关的信号。例如,在一些实施例中,当集中式控制器进行处理400时,集中式控制器从设备接收指示网络事件的检测的信号。或者,当分布式控制器进行处理400时,多个不同设备上的多个代理可以从另一个代理接收指示网络事件的检测的信号。设备和/或代理针对其发送信号的网络事件的例子包括(1)设备重启(例如,交换机/路由器重启),(2)来自环境监视器(例如,风扇、电源、温度等)的阈值警告,(3)设备性能(例如,网络、计算和/或存储性能)不良,(4)设备漫游,(5)高干扰(例如,低信噪比(snr)),以及(6)软件停机(例如,用于软件升级、计划维护等)。
54.在接收到网络事件相关信号之后,该处理在430判定是否需要主动动作来减轻额外的网络事件和/或优化性能以弥补由网络事件引起的任何延迟。当处理判定(在430)不需要主动动作时,处理返回到410以针对与活动网络流相关的网络事件监视sd-wan。否则,当处理判定(在430)需要主动动作时,处理转移到440以识别要在另一个网段中的另一个设备处应用以改善总体网络性能和减轻额外的潜在网络事件的主动动作。
55.一旦已经识别了主动动作和应用主动动作的其他设备,处理400就向其他网段中的其他设备发出信号(在450)以应用主动动作。例如,在一些实施例中,当集中式控制器接收到指示设备性能不良的信号时,控制器可以识别活动网络流的路径中的边缘节点,并指导该边缘节点提升活动网络流的qos。类似地,按照一些实施例,部署在边缘节点的代理可以接收来自另一个代理的信号,判定该边缘节点是否在活动网络流的路径上,并在需要时指导该边缘节点提升活动网络流的qos。在450之后,处理400返回410以继续针对与活动网络流相关的网络事件监视sd-wan。
56.在一些实施例中,用户(例如,网络管理员)可以指定一组或多组用户、网络流、网段和/或设备来监视网络事件。例如,医院的网络管理员可以指定要针对网络事件进行监视的多组关键医疗设备,以确保优化的网络和设备性能。在集中式情况下,被指定用于监视的各组中的设备将性能数据传给控制器(例如,控制器310),该控制器将判定是否需要以及需要什么主动和/或校正动作来确保优化的性能。在分布式情况下,在一些实施例中,如上所述,网络管理员将向每个医疗设备部署代理以使代理形成通信网格,以便将性能数据传给彼此,从而基于在其他设备检测到的弱点来识别潜在的设备修改。
57.虽然针对源和目的地之间的活动流说明了处理400的步骤,使得该流先前没有终止,但是本发明的其他实施例可以分析非活动流。例如,一些实施例分析先前终止的流,和/或在监视处理开始时是活动的,但是随后在监视处理可以进行任何主动动作之前结束的流。
58.图5图解说明一些实施例的用于响应于与一组流、一组转发节点和/或一组租户相关的网络事件,主动优化网络性能并减轻额外的潜在网络事件的处理500。与上述处理400类似,在一些实施例中,处理500可以由集中式控制器或分布式控制器实现。通过针对与所述一组流、一组转发节点和/或一组租户相关的网络事件监视sd-wan,处理500开始于510。例如,按照一些实施例,在医院的网络管理员可以选择监视提供关键患者信息的一组医疗设备。
59.接下来,在520,该处理接收关于与所述一组流、转发节点和/或租户相关的检测到的事件的网络事件相关信号。在一些实施例中,接收到的网络事件相关信号可以与来自被监视组中的单个流、转发节点和/或租户(例如,经历连接问题的单个设备)相关,或者与来自被监视组中的两个以上的流、转发节点和/或租户相关(例如,在沿着特定流所穿过的路径的多个点处经历的分组丢失)。
60.响应于接收到网络事件相关信号,该处理在530判定是否需要主动动作。当该处理判定不需要主动动作时,处理返回510以继续针对信号监视sd-wan。否则,当该处理在530判定需要主动动作时,该处理转移到540以识别要在一个或多个设备处应用以改善总体网络性能并减轻额外的潜在网络事件的一个或多个主动动作。在一些实施例中,主动动作的例子可以包括提高qos、为特定设备高速缓存分组以及选择在其上转发分组的备用链路。
61.在识别要在一个或多个设备处应用的主动动作之后,该处理然后在550向所述一个或多个设备发出信号以应用主动动作。然后,处理返回510,以针对所述一组流、转发节点和/或租户相关的网络事件监视sd-wan。
62.图6图解说明基于实时指标(即,针对一个或多个活动流接收到的指标)和在一段时间(例如,几小时、几天等)内收集和接收到的指标来优化网络性能的处理600。与上述处
理400和500类似,按照一些实施例,处理600可以由集中式控制器或分布式控制器进行。
63.通过在一段时间内针对与一组流、一组转发节点和/或一组租户相关的网络事件监视sd-wan,处理600开始于605。在610,处理600从sd-wan中的设备接收在该段时间内与所述一组流、一组转发节点和/或一组租户相关的网络事件相关信号和网络指标。在一些实施例中,所述指标包括关于明显的(patent)丢失、延迟和抖动的反应性指标。在一些实施例中,所收集的指标中的至少一些与已经针对其实施了主动动作的设备相关。
64.接下来,在615,该处理分析接收到的网络事件相关信号和网络指标,以识别影响活动流的任何网络事件,以及如来自所述一段时间的指标所指示的在一个或多个设备处重复出现的网络事件。在一些实施例中,影响活动流的网络事件的例子可以包括交换机或路由器重启,而重复出现的网络事件的例子可以包括故障链路频繁经历分组丢失。
65.基于615中的分析,处理600在620基于接收到的网络事件相关信号,判定是否需要主动动作。当该处理判定不需要主动动作时,该处理转移到635,以判定响应于接收到的网络指标是否需要校正动作。否则,当该处理在620判定需要主动动作时,该处理转移到625以识别要在网络中的一个或多个设备处应用以改善总体网络性能并减轻额外的潜在网络事件的一个或多个主动动作。然后,在630,处理600向一个或多个设备发出信号以应用所述一个或多个主动动作。
66.接下来,处理600在635判定响应于任何识别的重复出现的网络事件是否需要校正动作。当处理600判定不需要校正动作时,该处理返回605以监视sd-wan。否则,当该处理在635判定需要校正动作时,该处理转移到640以识别要在经历重复出现的网络事件的一个或多个设备处应用以减轻未来网络事件的一个或多个校正动作。例如,在一些实施例中,如果特定网络流在特定链路上经历频繁的分组丢失,则校正动作可以包括为该特定网络流找到替代链路。
67.在640识别校正动作之后,该处理在645向所述一个或多个设备发出信号以应用校正动作。处理600然后返回605以监视sd-wan。在一些实施例中,在已经实施一个或多个主动动作之后,基于从sd-wan中的设备收集的反应性指标(例如,抖动、丢失、延迟等)应用校正动作。使用上面的分组丢失例子,在一些实施例中,在应用主动动作之后控制器从sd-wan中的设备接收指标,并且基于所接收到的指标,判定需要校正动作形式的附加动作,以减轻预期的额外分组丢失并进一步改善总体网络性能。
68.图7图解说明按照一些实施例的由已被识别用于应用主动动作的sd-wan中的非控制器设备进行的处理700。虽然将针对一组流、一组转发节点和/或一组租户来说明处理700,但是本发明的一些实施例针对单个流、转发节点和和/或租户实现处理700。
69.通过针对与一组流、一组转发节点和/或一组租户相关的信号收集sd-wan监视数据,处理700开始于710。例如,sd-wan边缘节点可以收集与一组流相关的监视数据。然后,在720,处理700分析收集的数据,以检测与所述一组流、一组转发节点和/或一组租户相关的网络性能不良。
70.在730,该处理基于所收集的数据的分析来判定是否检测到任何性能不良。如果没有检测到性能不良,则该处理转移到750以判定是否已经接收到任何主动动作请求。否则,当该处理在730判定检测到性能不良时,该处理转移到740以报告性能不良。例如,sd-wan边缘节点可以判定特定客户端设备表现出性能不良,并向集中式控制器发信号以指示该特定
客户端设备的性能不良,从而允许集中式控制器判定是否需要主动动作(例如,如处理400、500和600所述)。
71.接下来,处理700在750判定是否已经接收到任何主动动作请求。在一些实施例中,可以从集中式控制器或从分布式控制器(即,分布式控制器的代理)接收主动动作。当处理700判定没有接收到主动动作请求时,该处理返回710以收集sd-wan监视数据。否则,当该处理在750判定已经接收到至少一个主动动作请求时,该处理转移到760,以基于在另一个设备处检测到的性能不良来应用主动动作以优化总体网络性能和/或减轻潜在网络事件。在760之后,该处理返回710以收集sd-wan监视数据。
72.图8图解说明在扩展了lan/wlan/设备的sd-wan部署中经历的网络事件。与sd-wan 300类似,sd-wan 800包括控制器集群810、网关820、云数据中心825和用于lan/wlan 805的边缘节点830。lan/wlan 805包括交换机840、无线lan控制器842、接入点844、无线设备846、有线设备848和服务器850。
73.在该例子中,接入点844以及接入点844和无线设备846之间的连接都是用虚线边界示出的,指示该接入点以及无线设备到该接入点的连接不可用。结果,无线设备846是带有伴随的漫游符号860地示出的,在指示该设备正在漫游。在一些实施例中,无线设备846和接入点844之间的连接的丢失导致数据丢失,从而需要重传,并且由于在建立新会话时分组在无线设备846上排队而导致延迟。
74.如上所述,按照一些实施例,控制器810针对关于性能相关网络事件的信号监视sd-wan。在一些实施例中,当控制器810接收到指示归因于无线设备846和接入点844之间的连接的丢失无线设备846正在漫游的信号时,控制器基于网络事件的类型及其发生位置来判定是否需要主动动作以及需要什么主动动作。
75.在示例sd-wan 800中,控制器810向边缘节点830发送指令870,以指导边缘节点选择对于来自无线设备846的一些分组具有更高吞吐量的替代wan链路。例如,sd-wan边缘830包括一组wan链路880和885。为了表示其更高的吞吐量,链路885看起来比链路880更粗。因而,响应于来自控制器集群810的指令870,边缘节点830将选择链路885以转发源自无线设备846的至少一些分组。在一些实施例中,控制器将指令870发送到来自无线设备846的分组流可以穿过的每个设备,比如网关820。
76.可替选地或结合地,在一些实施例中,控制器可以响应于检测到设备正在漫游,指示边缘节点830提高来自无线设备846的分组的转发路径上的qos,和/或指示数据中心lan对到应用服务器(未示出)的路径上的受影响流进行优先化。在每种情况下,所述主动动作至少提供对无线设备846的性能的暂时提升。
77.图9-图12图解说明在一些实施例中由集中式控制器或分布式控制器进行的一组过程,用于响应于不同类型的网络事件来优化总体网络性能。图9图解说明在一些实施例中当网络事件指示出站lan/wlan性能不良时,由集中式或分布式控制器进行的处理900。
78.通过针对网络事件相关信号监视sd-wan,处理900开始于910。在920,该处理接收来自sd-wan中的一个或多个设备的指示出站lan/wlan性能不良的网络事件相关信号。例如,类似于图8的例子,在一些实施例中,控制器接收指示无线设备和接入点之间的连接丢失的信号。
79.响应于接收到指示出站lan/wlan性能不良的信号,该处理在930识别要在一个或
多个设备处应用以优化wan性能,从而弥补出站lan/wlan性能不良的一个或多个主动动作。如在图8的例子中所述,在一些实施例中,控制器可以指示设备(比如sd-wan边缘节点)提高来自无线设备的分组的转发路径上的qos,和/或对于来自无线设备的一些分组选择具有更高吞吐量的替代wan链路。可替选地或结合地,控制器可以指示数据中心lan对到应用服务器的路径上的受影响流进行优先化。
80.在930之后,处理900在940向一个或多个设备发出信号以应用一个或多个主动动作,以便优化wan性能和/或减轻额外的潜在网络事件。然后,处理900返回900以继续针对网络事件相关信号监视sd-wan。
81.图10图解说明在一些实施例中当网络事件指示入站和出站lan/wlan性能不良时,由集中式或分布式控制器进行的处理1000。通过针对网络事件相关信号监视sd-wan,处理1000开始于1010。然后在1020,该处理接收来自sd-wan中的一个或多个设备的指示入站和出站lan/wlan性能不良的网络事件相关信号。入站和出站lan/wlan问题的例子可以包括设备漫游、高干扰、交换机和/或软件重启等。
82.响应于接收到指示入站和出站lan/wlan性能不良的信号,处理1000在1030识别要在一个或多个设备处应用以优化lan性能的一个或多个主动动作。例如,控制器可以(1)指示lan/wlan为遇到问题的流提高qos,以确保流的分组得到提升,(2)指示边缘节点复制lan上的分组,以避免由丢弃引起的重传流,(3)指示边缘节点主动高速缓存打算用于经历lan/wlan问题的设备或设备组的分组,并且只有应对重发请求才将它们传回,(4)指示数据中心的lan网络对到应用服务器的路径上的受影响网络流进行优先化,以及(5)指示网络流经过的另一个边缘节点上的lan优先化该网络流。
83.接下来,处理1000在1040向一个或多个设备发信号以应用一个或多个主动动作,以便优化lan性能和/或减轻额外的潜在网络事件。然后,该处理返回1010以继续针对网络事件相关信号监视sd-wan。
84.图11图解说明在一些实施例中当网络事件指示出站wan性能不良时,由集中式或分布式控制器进行的处理1100。通过针对网络事件相关信号监视sd-wan,处理1100开始于1110。然后在1120,该处理接收来自一个或多个设备的指示出站wan性能不良的网络事件相关信号。例如,按照一些实施例,所述信号可以指示路由器重启(即,归因于软件升级、维护、故障等)、来自环境监视器(例如,风扇、电源、温度等)的阈值警告和/或网络、计算和存储性能不良。
85.响应于接收到的信号,处理1100在1130基于检测到的出站wan性能不良,识别要在一个或多个设备处应用以优化lan性能的一个或多个主动动作。在一些实施例中,用于优化lan性能的主动动作的例子可以包括提高活动流的qos以确保分组得到提升,和/或数据中心lan对到应用服务器的路径上的受影响流进行优先化。
86.在已经识别了一个或多个主动动作之后,处理1100然后在1140向所识别的一个或多个设备发信号以应用所述一个或多个主动动作,以便优化lan性能和/或减轻额外的潜在网络事件。处理1100然后返回1110以继续监视sd-wan。
87.图12图解说明在一些实施例中当网络事件指示设备性能不良时,由集中式或分布式控制器进行的处理1200。通过针对网络事件相关信号监视sd-wan,处理1200开始于1210。然后在1220,该处理接收来自一个或多个设备的指示特定设备性能不良的网络事件相关信
号。例如,所述信号可以指示由不良应用行为导致的设备性能持续不良,内联网链路中的性能(例如,关于吞吐量和丢失)持续不良,和/或基于设备系统日志的网络、计算和/或存储性能不良。
88.基于接收到的信号,该处理在1230基于检测到的设备性能不良,识别要在一个或多个设备处应用以优化lan和wan性能的一个或多个主动动作。响应于设备性能不良的主动动作可以包括调整lan、wlan和wan上的qos,从而不管设备的性能如何,都能提供更好的用户体验。
89.在1230之后,该处理然后在1240向一个或多个设备发信号以应用一个或多个主动动作,以便优化lan和wan性能和/或减轻额外的潜在网络事件。然后,处理1200返回1210,以针对网络事件相关信号监视sd-wan。
90.上述的许多特征和应用是作为软件处理实现的,所述软件处理被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令。当这些指令由一个或多个处理单元(例如,一个或多个处理器、处理器的核心或其他处理单元)执行时,它们使所述一个或多个处理单元进行在指令中指示的动作。计算机可读介质的例子包括但不限于cd-rom、闪存驱动器、ram芯片、硬盘驱动器、eprom等。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。
91.在本说明书中,术语“软件”意味着包括驻留在只读存储器中的固件或存储在磁存储器中的应用,它们可以被读入存储器中以便由处理器处理。另外,在一些实施例中,多个软件发明可以作为较大程序的子部分来实现,同时保留不同的软件发明。在一些实施例中,多个软件发明也可以作为单独的程序来实现。最后,共同实现本文中所述的软件发明的独立程序的任何组合都在本发明的范围之内。在一些实施例中,软件程序当被安装成在一个或多个电子系统上操作时,定义执行和进行软件程序的操作的一个或多个特定的机器实现。
92.图13概念性地图解说明实现本发明的一些实施例的计算机系统1300。计算机系统1300可以用于实现上述主机、控制器、网关和边缘转发元件中的任何一个。因此,它可以用于执行上述处理中的任何一个。该计算机系统包括各种类型的非临时性机器可读介质和用于各种其他类型的机器可读介质的接口。计算机系统1300包括总线1305、处理单元1310、系统存储器1325、只读存储器1330、永久存储设备1335、输入设备1340和输出设备1345。
93.总线1305共同表示通信地连接计算机系统1300的众多内部设备的所有系统总线、外围总线和芯片集总线。例如,总线1305通信连接处理单元1310与只读存储器1330、系统存储器1325和永久存储设备1335。
94.处理单元1310从这些各种存储单元中检索要执行的指令和要处理的数据,以便执行本发明的处理。在不同的实施例中,处理单元可以是单个处理器或多核处理器。只读存储器(rom)1330存储处理单元1310和计算机系统的其他模块所需的静态数据和指令。另一方面,永久存储设备1335是读写存储设备。该设备是即使在计算机系统1300关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(比如磁盘或光盘及其相应的磁盘驱动器)作为永久存储设备1335。
95.其他实施例使用可移动存储设备(比如软盘、闪存驱动器等)作为永久存储设备。与永久存储设备1335类似,系统存储器1325是读写存储器设备。然而,与存储设备1335不
同,系统存储器是易失性读写存储器,比如随机存取存储器。系统存储器存储处理器在运行时所需的一些指令和数据。在一些实施例中,本发明的处理被存储在系统存储器1325、永久存储设备1335和/或只读存储器1330中。处理单元1310从这些各种存储单元中检索要执行的指令和要处理的数据,以便执行一些实施例的处理。
96.总线1305还连接到输入设备1340和输出设备1345。输入设备使用户能够向计算机系统传送信息和选择命令。输入设备1340包括字母数字键盘和指示设备(也称为“光标控制设备”)。输出设备1345显示由计算机系统生成的图像。输出设备包括打印机和显示设备,比如阴极射线管(crt)或液晶显示器(lcd)。一些实施例包括诸如起输入设备和输出设备两者作用的触摸屏之类的设备。
97.最后,如图13中所示,总线1305还通过网络适配器(未示出)将计算机系统1300耦接到网络1365。这样,计算机可以是计算机网络(比如局域网(“lan”)、广域网(“wan”)或内联网)的一部分,或者是网络(比如因特网)的网络。计算机系统1300的任何或所有组件可以与本发明结合使用。
98.一些实施例包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子组件,比如微处理器、存储装置和存储器。此类计算机可读介质的一些例子包括ram、rom、只读光盘(cd-rom)、可记录光盘(cd-r)、可重写光盘(cd-rw)、只读数字通用光盘(例如,dvd-rom、双层dvd-rom)、各种可记录/可重写dvd(例如,dvd-ram、dvd-rw、dvd rw等)、闪存(例如,sd卡、迷你sd卡、微型sd卡等)、磁性和/或固态硬盘驱动器、只读和可记录的光盘、超密度光盘、任何其他光学或磁性介质、以及软盘。所述计算机可读介质可以存储可由至少一个处理单元执行,并且包括用于进行各种操作的指令集的计算机程序。计算机程序或计算机代码的例子包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件或微处理器使用解释器执行的高级代码的文件。
99.虽然上面的讨论主要涉及执行软件的微处理器或多核处理器,但是一些实施例是通过一个或多个集成电路,比如专用集成电路(asic)或现场可编程门阵列(fpga)进行的。在一些实施例中,此类集成电路执行存储在电路本身上的指令。
100.在本说明书中使用的术语“计算机”、“服务器”、“处理器”和“存储器”均指电子或其他技术设备。这些术语将人或人群排除在外。对本说明书而言,术语“显示”意味着在电子设备上显示。如本说明书中使用的术语“计算机可读介质”、“计算机可读媒体”和“机器可读介质”完全限于以计算机可读的形式存储信息的有形物理对象。这些术语将任何无线信号、有线下载信号和任何其他短暂或临时性的信号排除在外。
101.虽然参考众多具体细节说明了本发明,但是本领域普通技术人员将认识到可以以其他具体形式来体现本发明,而不脱离本发明的精神。例如,几个上述实施例将网关部署在公共云数据中心中。然而,在其他实施例中,网关部署在第三方的虚拟私有云数据中心(例如,第三方用于为不同实体部署云网关以便为这些实体部署虚拟网络的数据中心)中。因此,本领域普通技术人员会理解,本发明不受前述说明性细节的限制,而是由所附的权利要求书限定。