CN113973077A - 用于提高云应用中的网络弹性的可扩展网络流量工程平台 - Google Patents
用于提高云应用中的网络弹性的可扩展网络流量工程平台 Download PDFInfo
- Publication number
- CN113973077A CN113973077A CN202110805075.7A CN202110805075A CN113973077A CN 113973077 A CN113973077 A CN 113973077A CN 202110805075 A CN202110805075 A CN 202110805075A CN 113973077 A CN113973077 A CN 113973077A
- Authority
- CN
- China
- Prior art keywords
- network
- isp
- application
- updated
- policy
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/26—Route discovery packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
- H04L41/0809—Plug-and-play configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/028—Dynamic adaptation of the update intervals, e.g. event-triggered updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2408—Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Cardiology (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了用于提高云应用中的网络弹性的可扩展网络流量工程平台。在各个示例中,可扩展网络流量工程平台监测网络流量和应用性能以动态地更新网络入口和出口通信路径,用于提高应用的性能——如云游戏应用、云虚拟现实(VR)应用和/或另一种高性能应用类型。在边缘处实施可插拔的、分布式的、以应用为中心的网络监视器、策略引擎和网络配置器,以检测降级的网络和应用性能,并且动态地更新网络路由以将其考虑在内。
Description
背景技术
网络流式传输应用(如云游戏、云虚拟现实(VR)、远程工作站和/或其他应用类型)可能对网络性能参数(如时延、抖动和分组丢失)极其敏感。在互联网上的网络流量路由通常使用边界网关协议(BGP)来促进,但是BGP不是时延、丢失或拥塞感知的,从而导致网络流量频繁地在次优的路径上被引导。例如,在次优网络路径上(例如,经由任意数量的自主***(AS))定向的网络流量可以影响应用体验的质量,从而由于滞后、时延、卡壳、帧丢弃等降低游戏的响应性。
用于流量路由的常规方法是与两个或更多个不同的互联网服务提供商(ISP)进行多重连接,从而使得当一个ISP掉线时,可以利用另一个ISP来维持连接。然而,即使具有多重连接,当两个或更多个ISP表面上在运行时,尽管处于危害条件下,可能无法选择最佳或更好的路径。例如,一些ISP可能导致网络“黑洞”,其中,ISP向网络或AS通告路径,但是当选择所通告的路径时,静默地丢弃ISP的AS内部的消息。在实现混合云的情况下(例如,使用公共和私有云)依赖于混合云的应用和服务可能在这些“黑洞”事件发生的情况下遭受中断。照此,即使在被多重连接的传统***中,这些事件的标识可能未被检测到,并且因此降低网络的弹性。
一些常规***用其个别专有软件定义联网(SDN)控制器实施定制流量工程解决方案。例如,监控器(或代理)可以监控网络流量以确定是否应该对网络路径进行更新。然而,这些网络监视器不是特定应用的,也不是可插拔的,由此降低了它们用于在每个应用的基础上优化网络流量路由的有效性和可扩展性。因此,网络流量更新可以满足监控器标准的方式重新路由流量,但是所述标准实际上可以导致特定应用的服务质量(QoS)的净降低,这是由于监控器没有被定制为处理与应用相关的数据和/或进行有利于所支持的应用类型的网络路由更新。
发明内容
本公开的实施例涉及一种用于提高云应用中的网络弹性的可扩展网络流量工程平台。公开了监测网络流量和应用性能以便动态地更新网络入口和出口通信路径以便提高应用(如云游戏应用、云虚拟现实(VR)应用、远程工作站应用、和/或其他云、流式传输、或高性能应用类型)的性能的***和方法。
与常规***(如以上所描述的那些***)相比,本***和方法利用可插拔的以应用为中心的网络监控器、策略引擎和网络配置器来提高应用性能。所述监视器、策略引擎和/或网络配置器可以在边缘实施,与内部网络的物理拓扑结构无关,从而使得本流量工程解决方案能够是可插拔的和可定制的。例如,网络监视器可以跨网络或在混合云中分布,并且被编程为监视可定制的网络性能度量(例如,丢失、时延、抖动等)和/或应用性能度量(例如,游戏流会话产出、应用服务质量(QoS)度量等)。然后,所监测的数据可以用于检测降级的网络性能、软故障(例如,“黑洞”)、翻转、和/或降级的应用性能。这些性能问题可以由策略引擎进行分析,所述策略引擎被定制用于处理相关联的监测器的输出或确定,以便利用自适应的延迟反馈机制动态地控制网络路由——例如,以避免被互联网服务提供商(ISP)抑制、短时间段内具有多个路径更新的质量问题等。例如,策略引擎可以将某些网络和/或应用性能度量与一个或更多个评估标准(例如,任何数量的替代路径的阈值性能值)进行比较,以确定是否和/或如何更新网络配置设置或标准。响应于策略引擎确定,网络配置器可以更新入口流量路由(例如,将AS信息预先附到分组报头以用于惩罚次优路由)和/或出口流量路由(例如,以更新本地偏好权重来指引流量,而不需要对网络邻居进行外部更新)以便动态地重新配置网络路径以提高目标应用的性能。
附图说明
下面参照附图详细描述用于提高云应用中的网络弹性的可扩展网络流量工程平台的本***和方法,其中:
图1是示出根据本公开的一些实施例的网络流量工程***的框图;
图2是示出根据本公开的一些实施例的用于基于多个通信路径的度量更新网络设置的方法的流程图;
图3A-3C描绘了根据本公开的一些实施例的引起应用或网络性能降级的网络路由问题的示例图示;
图4-5是示出根据本公开的一些实施例的用于基于所监测的网络性能参数来更新网络流量路由的方法的流程图;
图6是示出根据本公开的一些实施例的用于基于所监控的应用性能参数来更新网络流量路由的方法的流程图;
图7是适合用于实现本公开的一些实施例的示例游戏流式***的框图;并且
图8是适合用于实现本公开的一些实施例的示例计算设备的框图。
具体实施方式
公开了涉及用于在高性能应用中提高网络弹性的可扩展网络流量工程平台的***和方法。本文中描述的***和方法可以针对任何应用类型(诸如但不限于流式传输、云游戏、云虚拟现实(VR)、远程工作站应用、共享协作应用、机器学习应用和/或其他应用类型)中的任何提高的网络弹性来实现。例如,应用可能对各个网络性能参数(例如时延、丢失和/或抖动)和/或应用性能参数(例如会话产出和/或应用服务质量(QoS)度量)敏感。照此,在此描述的***和方法可以在任何***中实现,以便针对在网络(如互联网)上执行的任何类型的应用提高网络和应用性能。此外,尽管边界网关协议(BGP)在本文中主要被描述为路由更新或策略所针对的协议,但这不旨在是限制性的,并且可以使用任何合适的协议——例如,路由信息协议(RIP)、安全BGP(sBGP)、安全源BGP(soBGP)等。
在一些实施例中,可扩展框架可以被实现用于使用可插拔网络监控器、网络策略引擎和/或网络配置器来改善数据中心或其他后端***的网络入口和出口路径弹性。这些可插拔组件可以在边缘处管理,并且因此,可以控制或操纵对内部网络拓扑不可知的网络流量。网络监视器可以用于检测降级的网络性能和/或应用性能,并且以网络策略引擎可理解的格式(如网络路径信息(NPI)数据格式)将此信息馈送至网络策略引擎。例如,用于外部监视器的表示性状态转移(REST)接口(例如,API)可以由***暴露以允许外部监视器发布网络路径信息。监视器可以NPI数据格式发布该网络路径信息,和/或该信息可以从监视器的本地输入格式转换为NPI数据格式。照此,任何监视器可被添加到***,并且可发布任何格式的信息,并且数据可被转换成策略引擎可理解的格式而无需对策略引擎本身进行调整。网络策略引擎可以基于来自网络监视器的信息确定是否应当更新对***的(例如,数据中心的一个或更多个核心交换机的)控制策略的更新。例如,网络策略引擎可以评估路径信息以评估网络路径更新(例如,是否应当或可以做出改变),并且向网络配置器插件发布网络策略更新消息。
在一些实施例中,单独的网络策略引擎监视器可以对应于单独的网络策略引擎,从而使得可以在任何时间将附加的、更新的或新的监视器与对应的网络策略引擎一起***到可扩展平台中,以用于基于附加的、更新的或新的网络或应用参数来更新网络路由信息。例如,对于有待由***(例如,由***内的数据中心)支持的新的或不同的应用,不同的网络参数和/或应用参数可能对应用的性能特别重要。照此,特定应用的网络监视器和/或策略引擎可被添加到***,以提高网络性能,并因此提高应用的应用性能。因此,在一些实施例中,可以针对***所支持的不同应用不同地更新路由策略,并且可以针对在***上执行的每个特定或当前应用修改不同的监视器、策略引擎和/或网络配置器。
作为本***的可扩展性的进一步示例,可以向***添加新的或不同的网络监控器,而不需要改变***的其他组件——如策略引擎、网络配置、网络设备(交换机等)和/或类似物。例如,因为网络监视器可以被配置成用于以通用格式向策略引擎输出数据——并且例如使用现有的REST接口——这些新的或附加的监视器可以被添加到***中以测试网络参数,而不需要单独地对应于监视器的新的策略引擎或网络配置器。此外,在一些实施例中,***的可扩展性和灵活性可以通过添加相应的网络配置器来允许***支持新的交换机或其他网络设备类型,不要求对网络监控器和/或策略引擎的更新或改变,这些网络监控器和/或策略引擎将所标识的网络信息或策略更新信息传达至这些网络配置器,进而对网络设备进行更新。结果,可以向***添加新的交换机或网络设备,并且现有的网络监视器和策略引擎可以与对应于新的网络设备的网络配置器进行通信,以实现对导入或导出映射或网络设备的其他路由协议的任何改变。
在一些实施例中,网络策略引擎可以考虑在某个时间窗口(例如,三十分钟、两小时等)上的先前更新,甚至在推荐网络路由信息的变化的情况下。例如,为了避免减轻来自ISP的惩罚,网络策略引擎可以删除或忽略将导致在时间窗口中切换ISP超过阈值次数的动作。为了避免发布超出数据中心的内部网络的网络更新,例如,BGP本地偏好权重可用于指导出口网络流量。然而,在一些示例中,如当要求传入流量更新时——例如,当情况关键的目的地BGP自主***(AS)将包括在网络路径中时——导出路由映射可以被更新以控制来自数据中心的内部网络外部的传入流量。
一旦确定了用于更新网络路由的标准——例如,从当前互联网服务提供商(ISP)切换到另一个ISP,用于更新导出路由映射、用于更新导入路由映射和/或其他更新——此信息可以网络配置器可理解的格式(例如,网络策略更新(NPU)格式)发送至网络配置器。因此,网络配置器可以为一个或更多个网络设备——诸如交换机和/或路由器——确定策略更新,并且可以在目标网络端点处实现路由更新。例如,网络配置器可以对应于核心交换机配置器,所述核心交换机配置器可以用于更新核心交换机的特定出口端口的边界网关协议(BGP)本地偏好值,以迫使流量通过特定或期望的ISP。最终,可更新网络路由选择配置、偏好和/或策略以在所需路径上转移流量,从而提高在终端用户设备上执行的应用的性能。
参见图1,图1是根据本公开的一些实施例的网络流量工程***100(可替代地在此被称为“***100”)的示例框图。应当理解,本文所述的这种和其他布置仅作为示例被阐述。除了所示的那些布置和元件之外或代替所示的那些布置和元件,可以使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),并且一些元件可以一起省略。进一步,本文描述的许多元件是可被实现为分立或分布式组件或结合其他组件、以及在任何合适的组合和位置中实现的功能实体。本文中描述为由实体执行的不同功能可由硬件、固件和/或软件执行。例如,不同功能可由执行存储在存储器中的指令的处理器执行。在一些实施例中,***100的一个或更多个组件、特征和/或功能可以类似于图7的示例游戏流式***700和/或图8的示例计算设备800的那些组件、特征和/或功能。
***100可包括一个或更多个主机设备102、一个或更多个支持设备104和/或一个或更多个客户端设备106,其经由一个或更多个互联网服务提供商(ISP)(诸如转接ISP110A和110B、支持ISP112和/或客户端ISP114)通过互联网108进行通信。在一些实施例中,***100可对应于云计算和/或分布式计算环境。例如,在主机应用126对应于云游戏应用的情况下,图7的示例游戏流式***700可以包括用于支持云游戏应用的一个合适的架构或平台。
转接ISP 110可以为一个或更多个主机设备102提供对互联网(或其他WAN)的访问,支持ISP112可以为一个或更多个支持设备104提供对互联网的访问,并且客户端ISP114可以为一个或更多个客户端设备106提供对互联网的访问。在一些实施例中,转接ISP110、支持ISP112和/或客户端ISP114中的一个或更多个可以是相同的ISP,而在其他实施例中,ISP110、112和/或114中的一个或更多个可以不同。此外,在实现多于一个的主机设备102的情况下,不同的主机设备102可使用不同的转接ISP110,在实现多于一个支持设备104的情况下,不同的支持设备104可以使用不同的支持ISP112,和/或在实现多于一个的客户端设备106的情况下,不同的客户端设备106可以使用不同的客户端ISP114。
虽然被称为互联网108,但这不旨在是限制性的,并且***100可以针对任何网络类型来实现,如广域网(WAN)、局域网(PAN)、其他网络类型或其组合。尽管一个或更多个主机设备102被示出为多重连接的——例如,具有两个转接ISP110——这不旨在是限制性的,并且在一些实施例中,一个或更多个支持设备104和/或一个或更多个客户端设备106也可以是多重连接的。此外,尽管仅示出了通过每个ISP的单个链路,但这并不旨在是限制性的,并且在一些实施例中,单独的ISP(如转接ISP 110A)可以包括用于(一个或更多个)主机设备102的多个单独的路线或边缘路由器接入点或节点。例如,在一些实施例中,当从一个ISP切换到另一ISP时,这可对应于从通过ISP的第一路由(例如,经由ISP的第一边缘路由器)切换到通过同一ISP的第二路由(例如,经由ISP的第二边缘路由器)。
(一个或更多个)主机设备102可以使用例如一个或更多个应用编程接口(API)来托管主机应用126——例如,高性能应用、云游戏流式传输应用、虚拟现实(VR)内容流式传输应用、内容流式传输应用、远程桌面应用等。在一些实施例中,(一个或更多个)主机设备102可对应于数据中心,使得(一个或更多个)主机设备102可包括任何数量的子设备,诸如服务器、网络附加存储(NAS)、API、其他后端设备和/或另一类型的子设备。例如,(一个或更多个)主机设备102可以包括多个计算设备(例如,服务器、存储装置等),所述多个计算设备可以包括或对应于在此描述的图8的示例计算设备800的一些或所有组件。在一些实施例中,主机应用126可以使用一个或更多个图形处理单元(GPU)和/或虚拟GPU来执行以支持在客户端设备106上执行的客户端应用132。在一些实施例中,可以使用一个或更多个并行处理单元(诸如GPU、其核(例如,CUDA核)、专用集成电路(ASIC)、矢量处理器、大规模并行处理器、对称多处理器等)来并行执行(一个或更多个)主机设备102的处理中的至少一些处理。在使用(一个或更多个)主机设备102执行渲染的实施例中,(一个或更多个)主机设备102可以实现一种或更多种光线跟踪和/或路径跟踪技术来提高流中的图像和/或视频的质量(例如,其中,客户端设备106能够显示高清晰度——例如,4K、8K等——图形,和/或当前支持其流式传输的网络特性)。
(一个或更多个)主机设备102可以包括一个或更多个网络设备124,例如,交换机、路由器、网关、集线器、网桥、接入点等——可以被配置成用于将通信量引导到主机设备102的网络内部,来自互联网的直接输入或输入流量、到互联网的直接输出或输出流量,和/或至少部分控制网络流量通过互联网的不同自主***的路由(例如,使用BGP协议经由自主***的边缘路由器)。例如,为了将来自互联网的入口流量和/或出口流量引导到互联网,一个或更多个核心交换机可被实现为用作到互联网(和/或另一WAN)的网关。核心交换机可以包括导入路由映射(例如,用于出口网络流量)和/或导出路由映射(例如,用于入口网络流量),所述导入路由映射和/或导出路由映射可以被配置为帮助路由网络流量来到主机设备102和/或从主机设备102离开。此外,核心交换机或其他网络设备124的路由策略可包括特定出站端口和/或入站端口的本地偏好值,***100可使用这些本地偏好值来沿着特定路径(例如,经由优选转接ISP 110)路由流量。此外,尽管本文主要描述的网络设备124是核心交换机,但这并非旨在进行限制,并且在不背离本公开的范围的情况下,本文中所描述的用于核心交换机的技术可以是针对其他类型的网络设备124的附加的或者可替代地实现的——诸如分配交换机、边缘交换机、路由器、接入点、核心层设备、分发层设备、接入层设备等。在一些实施例中,(一个或更多个)网络监视器116、(一个或更多个)网络策略引擎118和/或(一个或更多个)网络配置器120中的一个或更多个可以直接在核心交换机上执行或部署——例如,在核心交换机或(一个或更多个)其他网络设备124支持容器化应用的情况下。
为了控制或操纵来自(一个或更多个)支持设备104和/或(一个或更多个)客户端设备106的输入和/或输出路线,(一个或更多个)路由注入器122可以更新分布在互联网上的导出路由映射和/或本地管理的导入路由映射,从而使得(一个或更多个)主机设备102、支持设备104和/或客户端设备106偏爱并且因此实施某些网络路径。例如,对于入口流量,路由注入器122可促使添加一个或更多个自主***前缀,或者前置于特定路径(例如,使用BGP报头),从而使得那些路径更新被传播至其他设备——例如,支持设备104和/或客户端设备106——用于在与主机设备102通信时影响由其他设备选择的网络路径。照此,在当前使用转接ISP110A但确定转接ISP110B具有更大的网络和/或应用性能的情况下,通过将一个或更多个附加的自主***前缀预先分配给导出路由映射,可更新导出路由映射,以惩罚转接ISP110A(例如,创建通过转接ISP110A的自主***的路由更差或包括更多跳的表象)。
对于出口流量,可使用本地偏好值来更新导入路由映射以限制外部可见网络消息的数量(例如,通过更新本地偏好值,这些更新不需要传播到***100中的其他设备)。照此,因为导入路由映射不是外部可见的或传播的,所以参数更新可仅影响一组网络路由的传出网络路径。对于主要由传出流量(如流式传输、云游戏等)组成的主机应用126,网络质量可以因此受到做出较大网络未知的内部变化的影响。在其中在主机设备102外部执行的其他服务(诸如在支持设备104上执行的控制平面服务130)的示例中,导入路由映射和导出路由映射两者可被更新以影响针对到主机设备102的入口和出口流量的网络路径选择。照此,在云游戏示例中,可以使用导入路由映射更新来操纵主机设备102和客户端设备106之间的通信路径,同时一个或更多个主机设备102与一个或更多个支持设备104之间的通信路径,例如,执行主机应用126的认证服务可以通过更新导入路由映射和导出路由映射两者来操纵。
为了做出网络路由决策和更新,可以实施一个或更多个网络监控器116A-116C、一个或更多个网络策略引擎118和/或一个或更多个网络配置器120。例如,(一个或更多个)网络监视器116、(一个或更多个)网络策略引擎118和/或(一个或更多个)网络配置器120的组合可以对应于***100的网络监视和流量控制子***。在一些实施例中,(一个或更多个)网络监视器116、(一个或更多个)网络策略引擎118和/或(一个或更多个)网络配置器120可以是可***的和可定制的,使得子***可扩展到任何数量的不同通信耦合的设备(例如,以监视和控制主机设备102与支持设备104之间、主机设备102与客户端设备106之间、主机设备102与其他设备(未示出)之间等的流量),可扩展到任意数量的不同主机应用126(例如,不同网络监视器116和/或网络策略引擎118或其网络策略可以被编程和***到***100中,以监视和控制流量,从而提高特定应用的网络和/或应用性能),可扩展到任意数量的不同网络参数和/或应用参数或其组合。例如,当创建新的一个或更多个网络监视器116、一个或更多个网络策略引擎118和/或(一个或更多个)网络配置器120时,可以确定目标设备或自主***,可以确定与其间的通信相关联的网络和/或应用性能度量,可确定可采取动作的阈值,并且可在达到或超过阈值时确定策略更新。照此,记住这些准则,附加的、以应用为中心的一个或更多个网络监视器116、一个或更多个网络策略引擎118和/或一个或更多个网络配置器120可在***100中实现。
例如,在一些实施例中,(一个或更多个)网络监视器116、(一个或更多个)网络策略引擎118和/或(一个或更多个)网络配置器120可以对应于容器化的应用或服务或其实例。照此,子***可以允许选择、组织和部署(例如,使用主机设备102内的虚拟机(VM))网络和/或应用性能监视和流量路由管线中的容器。所部署的容器可以托管一个或更多个网络监视器116、一个或更多个网络策略引擎118和/或一个或更多个网络配置器120的实例。例如,(一个或更多个)网络监视器116、(一个或更多个)网络策略引擎118、和/或一个或更多个网络配置器120的图像(例如,容器图像)可以在容器注册表中可用,并且一旦被选择(例如,由用户、自动地等)用于部署在管线中,图像可用于生成用于一个或更多个网络监视器116、一个或更多个网络策略引擎118和/或一个或更多个网络配置器120的实例的容器。例如,第一网络监视器116可以适用于需要非常低时延的第一类型的应用,而第二网络监视器116可以更适于需要低分组丢失但其中时延不是那么关注的第二应用类型。如此,当为第一类型的应用配置***100时,在实施例中,除了一个或更多个网络策略引擎118和/或一个或更多个网络配置器120之外,第一网络监视器116可以被实例,以帮助配置网络路由,从而使得时延减少。在相同的示例中,当为第二类型的应用配置***100时,在实施例中,除了一个或更多个网络策略引擎118和/或一个或更多个网络配置器120之外,第二网络监视器116可以被实例,以帮助配置网络路由,从而使得即使时延增加,分组丢失也减少。结果,每种类型的应用可以根据需要执行,从而提供有利的用户体验,而如果执行传统的固定的应用不可知的网络监视,则应用类型中的至少一个应用类型将遭受网络和/或应用性能问题。
在一些实施例中,为了允许一个或更多个网络监视器116、一个或更多个网络策略引擎118和/或一个或更多个网络配置器120的可***和/或容器化实例之间的无缝通信,由子***的每个组件生成的数据可以被格式化——例如,初始地,或在从本地格式翻译之后——这样使得子***的下一个组件理解并且能够摘要数据。此外,在一些实施例中,包括(一个或更多个)网络监视器116、(一个或更多个)网络策略引擎118和/或(一个或更多个)网络配置器120的子***可以包括在任何一个时间在由(一个或更多个)主机设备102内的不同计算设备(例如,服务器)托管的不同VM上的两个或更多个实例以用于高可用性(HA)、聚类和/或冗余。因此,单个节点可作为子***的故障点被移除,使得软件崩溃、硬件故障或失败和/或其他问题可能不会阻止子***的网络监视和控制被执行。在一些示例中,一个或更多个网络监控器116、一个或更多个网络策略引擎118的实例和/或一个或更多个网络配置器120可以是无状态的,从而默认的网络配置和/或策略、和/或更新的网络配置和/或策略可以从配置服务读取,并且子***的当前状态可被存储在另一应用或服务实例(例如,分布式、宽列存储、非关系结构化查询语言(NoSQL)数据库管理服务)中。在一些示例中,监视更新和/或策略可被存储在不同的关键值存储或时间序列数据库中。此外,存储此信息的数据存储区或数据库的位置可以位于(一个或更多个)主机设备102和/或(一个或更多个)支持设备104上。在一些示例中,例如在主机设备102为数据中心的情况下,数据存储区可作为每一主机设备102可存取的全局数据存储区驻留在支持设备104上。在其他示例中,数据存储可以驻留在(一个或更多个)主机设备102上以便提供对网络和/或应用性能度量和/或对网络策略更新的历史(例如,特定于该(一个或更多个)主机设备102)的本地访问。
一个或更多个网络监控器116可以使用网络性能度量(例如,延迟、丢失、抖动、与不同转接ISP 110相关联的成本、与不同转接ISP 110相关联的容量等)和/或应用性能度量(例如,流式传输会话产出、应用QoS度量等)作为输入来监控网络和/或应用性能。这些输入可通过传输测试探针(例如,ping)和/或模拟网络监视器116之间和之中的特定应用网络流量,并且分析所得通信以确定网络和/或应用性能度量来确定。例如,REST接口(例如,API)可以被暴露以使得一个或更多个网络监视器116能够发布网络路径信息,例如实际路径信息(例如,哪些自主***被配置用于与其他自主***通信),网络性能度量(和/或可以被分析以确定相同的数据)和/或应用性能度量(或可以被分析以确定相同的数据)。
网络监视器116可取决于网络流量信息的类型和/或网络流量将在其间被监视的设备分布在***100内。照此,网络监视器116可包括在一个或更多个主机设备102上执行的网络监视器116A(例如,用于监视主机设备102与支持设备104和/或客户端设备106之间的出口和/或入口流量,用于将信息传输回网络监视器116B和/或116C等),在支持设备104上执行的网络监视器116B(例如,用于测试支持设备104与主机设备102和/或客户端设备106之间的流量,用于将信息传输回网络监视器116A和/或116C等),和/或在一个或更多个客户端设备106上执行的网络监视器116C(例如,用于测试客户端设备106与主机设备102和/或支持设备104之间的流量,用于将信息传输回网络监视器116A和/或116B等)。在一些实施例中,单个网络监视器116可在一个或更多个主机设备102、一个或更多个支持设备104和/或一个或更多个客户端设备106中的两个或更多个之间拆分。例如,网络监视器116的第一部分可在一个或更多个主机设备102上执行,且第二部分可在一个或更多个支持设备104上执行,且可在两者之间交换通信以用于监视不同网络路径和测试端对端网络和/或其性能度量。
(一个或更多个)网络监视器116可以以网络路径信息(NPI)数据格式发布网络路径信息和/或可以使用由子***托管的并且对应于(一个或更多个)网络监视器116的特定插件来将本机输入(例如,本机网络路径信息)转换成NPI数据格式。这个以NPI数据格式发布的信息可以由一个或更多个网络策略引擎118进行评估,以评估当前网络路径、其他潜在网络路径和/或对应于其的应用和/或网络性能度量,并且确定是否应该实施网络路径更新和应该实施什么类型的网络路径更新。
一旦确定了更新,网络路由的变化就可以被发布或公布为网络策略更新(NPU)数据格式的消息——例如,在实施例中,在从本地格式转换之后——到(一个或更多个)网络配置器120。(一个或更多个)网络配置器120可以在目标网络端点(例如,(一个或更多个)网络设备124)上实施路由更新,例如,通过更新核心交换机的导入路由映射和/或导出路由映射(例如,通过更新特定出站端口的本地偏好值和/或预先将自主***前缀注册到导出路由映射,以使用路由注入器122控制输入流量)。
在一些实施例中,监控路径信息、监控更新和/或控制策略可存储在一个或更多个主机设备102和/或一个或更多个支持设备104上。例如,信息可作为一个或更多个主机设备102的单个接入点存储在一个或更多个支持设备104中
现在参见图2,在此描述的方法200的每个框包括可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,不同功能可由执行存储在存储器中的指令的处理器执行。方法200还可以体现为存储在计算机存储介质上的计算机可用指令。仅举几例,方法200可由独立应用、服务或托管服务(独立服务或与另一托管服务组合)或另一产品的插件来提供。此外,通过举例的方式,关于图1的***100来描述方法200。然而,此方法可另外或替代地由任一***或***的任何组合执行,所述***包含(但不限于)本文中所描述的***。
图2是示出根据本公开的一些实施例的用于基于多个通信路径的度量更新网络设置的方法200的流程图。在框B202,方法200包括监视通信并生成通信路径的度量。例如,(一个或更多个)网络监视器116可以监视网络路径——包括不同的转接ISP110——并且可以生成网络和/或应用性能度量。在非限制性示例中,监测可以包括跨各个通信路径传输特定应用的流量——例如,在主机设备102和客户端设备106之间传输代表4K视频流和高清音频流的数据,在所述主机设备102和所述支持设备104之间传输认证请求,等等。作为另一个示例,监测可以包括(例如,从(一个或更多个)支持设备104到(一个或更多个)主机设备102)发送探测或者ping以确定转接ISP110A和110B的状态,并且监测随时间的状态改变。
在框B204,方法200包括评估当前通信路径与替换通信路径之间的差是否大于改变阈值。例如,对应于包括转接ISP 110A的当前网络路径的网络路径信息可例如由一个或更多个网络策略引擎118与对应于包括转接ISP 110B的替代网络路径的网络路径信息进行比较,以确定网络和/或应用性能度量中的一个或更多个的差异。在框B204处的确定是差值(例如,在实施例中,两个或更多个度量的加权总差值)不大于变化阈值的情况下,方法200可以返回至框B202以继续监测。
在框B204处的确定是差值大于变化阈值的情况下,方法200可继续至框B206以更新出口网络设置。例如,(一个或更多个)网络策略引擎118可以确定需要进行更新,(一个或更多个)网络配置器120可以使用该信息来生成路由更新信息并将其推送到(一个或更多个)网络设备124(例如,以更新出口流量的导入路由映射)。
在一些示例中,诸如在关键服务(例如,控制平面服务130)是控制平面的一部分但是在主机设备102外部执行的情况下,可能需要双向通信。因此,托管这些服务的自主***可以被分类为关键或特殊目的地自主***(例如,BGP目的地自主***)。在这种示例中,方法200在框B204可继续至框B208以确定目的地自主***是否是关键自主***。在确定目的地自主***不是关键的情况下,方法200可前进至框B202以继续监视。
当在框B208处确定目的地自主***至关重要时,则除了或替代框B206处的更新,方法200可前进至框B210以更新入口网络设置。例如,(一个或更多个)网络策略引擎118可以确定需要进行更新,并且该信息可由一个或更多个网络配置器120用于生成路由更新信息并将其推送给一个或更多个网络设备124(例如,通过预先准备自主***前缀来更新导出路由映射,以惩罚包括转接ISP110A的当前网络路径,使得一个或更多个支持设备104使用包括转接ISP110B的替代网络路径与主机设备102通信)。
再次参见图1,(一个或更多个)支持设备104可以包括一个或更多个计算设备——例如,数据中心、或计算设备(如其服务器、NAS、API等)——其托管网络服务(如控制平面服务130)。例如,(一个或更多个)支持设备104可以执行控制平面服务130——例如,针对混合云平台——所述混合云平台可以使得能够在所述(一个或更多个)主机设备102(例如,多个数据中心)与所述(一个或更多个)支持设备104(例如,托管所述(一个或更多个)控制平面服务130的一个或更多个数据中心)之间传达与所述网络和/或应用相对应的信息。在一些示例中,控制平面服务130可包括用于确定上游/后端服务实例可用的位置的服务发现,对由服务发现返回的上游服务实例是否是健康的健康检查(例如,包括主动ping和/或被动健康检查),路由、负载平衡、认证和授权(例如,以针对传入请求确定调用者是否可以加密地证明、调用者是否被允许调用所请求的端点和/或经认证的响应是否被返回),和/或可观察性(例如,对于每个请求,可以生成详细的统计数据、日志记录和分布式跟踪数据,使得网络监视器116可以在它们发生时理解分布式流量流和调试问题)。
(一个或更多个)客户端设备106可以包括一个或更多个终端用户设备类型,诸如智能电话、膝上型计算机、平板计算机、台式计算机、可穿戴设备、游戏控制台、可以包括AI代理或助理的智能家居设备、虚拟或增强现实设备或***,和/或另一类型的设备。在一些示例中,(一个或更多个)客户端设备106可以包括设备的组合(例如,智能电话和通信地耦合的智能手表或其他可穿戴设备),并且与其相关联的客户端应用132(包括与主机应用126的交互)可以使用设备中的一个或更多个来执行(例如,智能电话应用向智能手表应用推送通知,用户向智能手表提供输入,表示输入的数据经由智能电话被传递到***100的另一设备)。
现在参见图3A-3C,图3A-3C描绘了根据本公开的一些实施例的引起应用或网络性能降级的网络路由问题的示例图示。例如,图3A-3C中示出的网络性能和/或应用性能问题可以关于网络监视器116、网络策略引擎118和/或网络配置器120来描述,网络监视器116、网络策略引擎118和/或网络配置器120可以被定制以解决针对特定应用的特定问题。图3A至图3C的示例不旨在是限制性的,并且描述用于实现图1的***100的合适示例。
参照图3A,图3A可以对应于一个或更多个主机设备102对托管关键共享服务(如控制平面服务130)的一个或更多个支持设备104的可访问性针对跨各个转接ISP110的“黑洞”路由或网络掉线被监测的示例。例如,存在网络路由异常事件,其中给定转接ISP110向给定目的地自主***(例如,向一个或更多个支持设备104,或者也向一个或更多个支持设备104通告路线的自主***)通告路线,但是由于转接ISP的自主***的内部路由问题,会静默丢弃网络流量。这些类型的事件可以在网络中具有广泛影响,因为可以影响具有相同转接IP提供商的多个区。这可能导致问题,尤其是对于混合云环境,其中确保网络弹性对于保证到在不同云中运行的关键网络服务的网络连通性是至关重要的。
例如,转接ISP 110A中的软故障302(例如,“黑洞”事件、网络掉线等)可以使控制平面服务130变得对在一个或更多个主机设备102上执行的服务子集不可达。为了克服该故障,软故障可被***100监视和检测,并且流量可从转接ISP110A路由到例如转接ISP110B。照此,网络监视器116A和116B可分别安装在主机设备102和支持设备104上和/或实例。可以执行测试来探测部署在不同网络中的若干关键网络目标代理,并且可以使用网络监视器116A和116B来监视网络端到端的质量。可使用边缘交换机路由选择配置(例如,配置导出路由映射)和测试协议参数(例如,互联网协议(IP)差分服务代码点(DSCP))的组合在包括转接ISP110A的特定出口路径上强制这些单独的测试探针或ping。还可在其他网络路径上(例如,经由转接ISP110B)单独地强制测试探针或ping,以便测试一个或更多个主机设备102与一个或更多个支持设备104之间的其他端到端网络路径。可以基于诸如丢失、时延、抖动和/或其他性能测量之类的网络性能度量来评估经由测试探针确定的端到端的网络质量。然后可以针对特定阈值设置警报——例如,单独的度量阈值、度量阈值的组合、度量阈值的加权组合等,如在此更详细地描述的。
一个或更多个网络监视器116A和/或116B可监视不同网络路径上的入口和/或出口流量的警报——例如,包括转接ISP 110A的第一网络路径和包括转接ISP 110B的第二网络路径。度量和警报可以由网络监视器116在不同的测试(例如,抖动网络测试、延迟网络测试、丢失网络测试等,其中可以执行不同的测试类型用于不同的度量分析)和不同的网络路径上聚合,和警报的列表可以由网络监视器116提交或发布。在一些实施例中,警报可包括良好网络路径和不良网络路径的度量,使得网络策略引擎118可不仅分析包括转接ISP110A的网络路径的问题,还包括网络路径,所述网络路径包括转接ISP 110B以确定是否已经满足变化阈值(例如,如在图2的方法200的框B204处所描述的)。然后,网络策略引擎118可以基于可配置的网络监控器特定策略来确定是否应当发布或传输改变或更新。当要进行改变时,网络策略引擎118可以生成网络路由更新(例如,以NPU数据格式),该网络路由更新可以被推送到或发送到网络配置器120(其可以是可配置的网络监视器特定的配置器),并且网络配置器120可以更新网络设备124上的策略(例如,通过更新导入路由映射、更新导出路由映射、更新其他策略或其组合)。
作为示例,可基于测试探针来确定使用转接ISP110A的(一个或更多个)支持设备104与(一个或更多个)主机设备102之间的网络路径发生故障。一个或更多个警报可由网络监视器116A和/或116B生成,并且网络策略引擎118可基于一个或更多个警报准备更新的策略。此外,网络策略引擎118可以将警报事件***持久性存储器中,并且将活动标记为“进行中”。网络配置器120可以更新网络设备124上的策略——例如,核心交换机——基于一个或更多个警报,并且可以将持久存储设备中的警报事件状态更新为“完成”和“活跃”(其可由网络策略引擎118用来确定是否应该做出其他更新,以便在短时间段内不发布可能引起抑制转接ISP110的阈值的太多更新)。因此,去往和/或来自(一个或更多个)支持设备104的流量可以通过转接ISP 110B被路由并且远离转接ISP 110A——以避免由测试探针发现的转接ISP 110A的软故障。
针对本示例中的网络策略引擎118,可存在针对测试软故障的特定网络监视器116A和/或116B采取的动作的特定策略规则。此外,网络策略引擎118可以实现对警报的动态自适应控制,并且可以包括对自动删除的支持。在一些示例中,自适应行为可针对具有可配置阈值的特定网络监视器116进行微调或定制。该示例的网络监视器116A和/或116B可以包括活跃事件状态和隐式清除事件状态(例如,网络监视器116可以依赖于警报列表API,并且在周期性警报推送中缺少警报事件ID可以暗示警报被清除或应该被清除和/或从持久状态存储装置移除)。在对于第一网络路径的网络性能度量(例如,抖动、时延、丢失和/或其他度量)比第二网络路径更差和/或第二网络路径具有高于阈值的性能度量的情况下,警报事件可以被认为是可行的。这个网络监视器的路径可以被定义为但不限于{目的地自主***,转接ISP自主***,出口本地-IP,路径名称}。
考虑到在主机设备102与支持设备104之间包括转接ISP110A和转接ISP110B的实现,可为包括转接ISP110A的网络路径生成第一警报。结果,路由偏好可被切换到包括转接ISP110B的网络路径,并且可针对转接ISP110A记录第一警报历史记录以供将来的翻盖检测。
在第一警报仍然活跃时,在包括转接ISP110B的网络路径的第一警报之后,或者在第一警报最近被清除之后,可生成第二警报(例如,在清除之后,警报历史可维持一段时间,诸如30分钟)。因此,网络策略引擎118可检测第一警报动作的潜在副作用,并且可撤销第一警报的先前改变,从而可再次优选包含转接ISP110A的网络路径。
作为另一示例,假定由于第一警报而已做出切换(且假定第二警报未发生),且接着第一警报清除(例如,隐含地,如本文中所描述),可撤销路线改变,使得可青睐包含转接ISP110A的网络路径。还可针对转接ISP110A记录警报历史以供将来的翻转(flap)检测。
假设另一警报对于包括转接ISP110A的网络路径在针对相同路径清除的第二警报的某个时间阈值(例如,15分钟、30分钟等)内是活跃的,则可检测到潜在的翻转。结果,***100可更新路线偏好以有利于转接ISP110B,并且在没有人工清除警报的情况下,不允许进一步清除将回复到包括转接ISP110A的网络路径的警报。照此,***可被用于确保在阈值时间段中不存在两个以上的路径改变。
作为另一个示例,当在包括转接ISP 110A和转接ISP 110B的网络路径上在单个警报列表中提交警报时,可以记录警报,但是不可以执行路由更新事件。
在一些示例中,如当针对(例如,(一个或更多个)支持设备104的)特定自主***在阈值时间量(例如,十二小时、二十四小时等)内针对给定转接ISP 110存在多于阈值数量(例如,四个、五个、十个等)的激活的和/或清除的警报时,这些警报致使导出路由映射被更新并且可见地推送出至网络,可以记录并忽略错误,以避免由转接ISP110列入黑名单和/或抑制。在针对一个或更多个主机设备102和一个或更多个客户端设备106之间的网络路径的阈值数量的警报的示例中,这些限制可以不被实施,因为仅导入映射可以被更新,该导入映射对于主机设备102的网络是本地的并且在外部不可见。
各个阈值可以用于不同的网络性能度量。例如,为了生成警报,可以使用各个阈值,并且一旦生成警报,可以考虑差异或变化阈值(例如,在当前警报的路径和替换的网络路径之间)以确定是否要进行更新。对于要生成的警报,阈值可能必须在阈值时间量(例如,1分钟、2分钟、4分钟等)内满足一定次数(例如,两次、三次、四次等)。关于警报阈值,可以针对大陆内流量以大于50ms、60ms等产生延迟警报,并且针对大陆间或跨洲流量以大于100ms、200ms等产生延迟警报。类似地,对于分组丢失,可以针对大于百分之五、百分之十、百分之十五等的丢失生成丢失警报。关于改变阈值,并且尤其是作为示例的分组丢失,如果分组丢失的百分比比替换网络路径大至少百分之五,则网络路径可被认为更糟糕。照此,如果包括转接ISP110A的网络路径上的丢失是20%,则如果丢失小于或等于15%,则包括转接ISP110B的网络路径可被认为更好。作为另一示例,对于时延,如果时延的百分比比替换网络路径大至少10%,则网络路径可被认为更糟糕。照此,如果包括转接ISP110A的网络路径上的延迟是80ms,则如果延迟小于或等于72ms,则包括转接ISP110B的网络路径可被认为更好。对于进一步实例,对于抖动,如果抖动的百分比比替代网络路径大至少10%,那么网络路径可被视为较差。
在一些实施例中,为了确定网络路径是否比另一个网络路径更差(例如,差异超过变化阈值),可以对两个或更多个度量进行分析和加权。例如,在时延、丢失和抖动之间,丢失可以比抖动更重地加权,并且抖动可以比时延更重地加权。即,具有80%丢失和10ms时延的路径可被认为比具有60%丢失和50ms时延的路径更差。
考虑示例场景,其中,已经针对三条网络路径L1、L2和L3生成警报。L1可以包括20%丢失、10ms时延和5ms抖动,L2可以包括10%丢失、20ms时延和6ms抖动,并且L3可以包括12%丢失、22ms时延和4ms抖动。在这样的示例中,针对丢失,L3和L2可以是比L1更好的路由,并且在L3和L2之间,L2丢失比L3好百分之五。照此,L2可以是最佳网络路径。
考虑另一示例场景,L1可以包括20%丢失、10ms时延和5ms抖动,L2可以包括12%丢失、20ms时延和6ms抖动,并且L3可以包括12%丢失、22ms时延和4ms抖动。在这样的示例中,针对丢失,L3和L2可以是比L1更好的路由,L3和L2可以具有相等的丢失,并且L3具有最好的抖动和仅10%的延迟。照此,L3可以是最佳网络路径。
参见图3B,(一个或更多个)网络监视器116、(一个或更多个)网络策略引擎118、和/或(一个或更多个)网络配置器120可以被实现用于检测包括链路翻转或故障转移流量在内的一类网络故障。例如,在转接ISP110网络内或在转接ISP 110和(一个或更多个)主机设备102之间的网络边缘处,瞬时故障可能在短时间段内重复——被称为链路翻转。这可能不同于可以在网络协议的较低层处理的硬端口故障,并且还对应用网络性能具有更大的影响。例如,链路翻转可能导致流播故障,因为流量在网络路径之间切换。如此,(一个或更多个)网络监视器116可以安装在(一个或更多个)主机设备102的网络外部——诸如网络监视器116B和/或116C——以便通过执行接口的周期性ping304(例如,从网络外部,诸如从(一个或更多个)支持设备104的不同区域)来监视链路翻转。当接口的可达性在特定间隔内改变状态超过阈值次数时,可生成警报并将其存储在持久性存储装置中。(一个或更多个)网络策略引擎118可接收警报(例如,以NPI数据格式)并确定将流量从包括经历链路翻转的转接ISP110的(一个或更多个)网络路径切换离开的策略更新。
该示例的网络监视器116B和/或116C可包括维护活跃事件状态和在校正时发出的警报事件状态的删除。当维护活跃事件状态存在于持久性存储器中时,***100可将(例如,(一个或更多个)网络设备124的)网络策略更新为次要模式转换流量(例如,入口和/或出口),其远离包括转接ISP 110的具有链路翻转的网络路径。例如,导入路由映射和/或导出路由映射可从当前路由映射更新到更新或次要路由映射。此外,一旦链路翻转停止(例如,在一段时间内测试之后),可删除警报,并且可撤销对导入路由映射和/或导出映射的更新以回复到初始或默认映射。
例如,网络监视器116可监视链路上的状态改变,其中状态改变对应于从可探测到不可探测的链路。例如,阈值数量的状态改变可能必须在一段时间内发生以生成警报。阈值可包括半小时、一小时、两小时、三小时等时间段上的两个、三个、五个等状态改变。作为非限制性实例,在两小时窗口内断开两次并且每次返回返回的链路可以被标记为翻转,并且可以生成警报。
现在参见图3C,可实现一个或更多个网络监视器116、一个或更多个网络策略引擎118和/或一个或更多个网络配置器120以用于监视每个转接ISP110的会话产出。会话产出可对应于由于联网问题而没有失败或经历另一错误的成功应用会话的百分比。转接ISP110的内部网络质量问题可能不利地影响应用(如云游戏应用、VR流式传输应用和/或其他高性能应用)的性能。为了解决该问题,(一个或更多个)主机设备102可基于由(一个或更多个)网络监视器116监视的应用会话性能从当前转接ISP110切换到另一转接ISP110。照此,如果应用性能下降到低于阈值,并且在另一转接ISP上的性能更好,则会话收益网络监视器116可提交警报以将网络流量切换到包括更好执行的转接ISP110的网络路径。在一些实施例中,可以由网络监视器116从应用流送度量查询应用性能度量。
该示例的网络监视器116可包括活跃事件状态。当活跃事件状态存在于持久性存储装置中时,***100可将(例如,(一个或更多个)网络设备124的)网络策略更新为从包括具有低会话产出、QoS或其他应用性能问题的转接ISP 110的网络路径转移流量(例如,入口和/或出口)的副模式。例如,导入路由映射和/或导出路由映射可从当前路由映射更新到更新或次要路由映射。
例如,(一个或更多个)网络监视器116可以监视转接ISP上的阈值数量的会话(例如,50、80、100等),并且可以考虑会话的阈值会话产出(例如,小于70%、80%等)。照此,可在阈值会话产出小于阈值并且会话的数量大于阈值数量的情况下生成警报。一旦生成警报,(一个或更多个)网络策略引擎118可基于将当前网络路径与包括不同转接ISP110的另一网络路径进行比较来确定警报是否是可行动的。例如,如果当前网络路径和替换路径之间的差大于改变阈值(例如,5%、10%等),则可将更新推送给网络设备124以更新导出路由映射和/或导入路由映射。
例如,在转接ISP110A的一段时间(例如,30分钟、一小时等)上的所有会话上的会话产出小于80%的情况下,转接ISP 110B在该时间段内具有大于90%的会话产出,并且每个转接ISP存在至少一百个会话,可更新策略以有利于转接ISP110B。
作为其他非限制性示例,并且除了图3A至图3C的网络监控器116、网络策略引擎118和网络配置器120之外,可以存在用于特定客户端ISP114的转接ISP110A/110B测试的网络监控器116、网络策略引擎118和/或网络配置器120。例如,一些转接ISP110可能与某些客户端ISP114具有较差的连接性,因此,***100可以用于确定——即使当前ISP 110可能没有经历任何问题——当前转接ISP 110是否与客户端ISP 114具有差的连接,结果,可能导致切换。作为另一个实例,可存在用于在转接ISP110上的每个客户端ISP114流量优化的网络监视器116、网络策略引擎118和/或网络配置器120。例如,可以基于应用会话数据来生成探索和开发模型,并且可以监视网络性能的改进。然后,客户端ISP114可以在特定转接ISP110上路由,以改善网络质量和用户体验。
在一些实施例中,网络监视器116可以具有瞬态的警报条件并且在非常短的时间段内重复多次。为了防止子***进行频繁的网络路径改变,每个网络监视器116可以有可配置的删除延迟参数。删除延迟参数可恢复或延迟一段时间(例如,20分钟、30分钟等)内网络路径改变的删除。在该时段期间的任何进一步的警报可以重置定时器。在一些示例中,网络监视器116(例如,会话收益网络监视器)可能无法检查其自身并且一旦在警报之后流量从特定路径移出就删除警报。在这样的示例中,子***可以支持可配置的自动删除参数,其可以在特定可配置的时间段之后删除警报。
现在参见图4-6,在此描述的方法400-600的每个块包括可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,不同功能可由执行存储在存储器中的指令的处理器执行。方法400-600还可体现为存储在计算机存储介质上的计算机可用指令。方法400-600可由独立应用、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件来提供,仅举几例。此外,通过举例的方式,关于图1的***100来描述方法400-600。然而,此方法可另外或替代地由任一***或***的任何组合执行,所述***包含(但不限于)本文中所描述的***。
现在参见图4,图4是示出了根据本公开的一些实施例的一种用于基于所监测的网络性能参数来更新网络流量路由的方法400的流程图。在框B402处,方法400包括经由第一ISP在第一网络路径上传输第一测试探针以及经由第二ISP在第二网络路径上传输第二测试探针。例如,可在包括转接ISP110A的网络路径上传输第一测试探针,并可在包括转接ISP110B的网络路径上传输第二测试探针。
在框B404,方法400包括分析表示对应于第一网络路径的第一质量度量和对应于第二网络路径的第二质量度量的第一数据。例如,网络性能和/或应用性能度量可以由网络监视器116监视通过转接ISP110A和110B的网络路径,并且网络策略引擎118可以分析来自其中的数据。
在框B406,方法400包括接收表示警报的第二数据,该警报指示第一网络路径具有比第二网络路径更高的质量。例如,网络监视器116可以生成警报,并且网络策略引擎118可以分析来自对应于每个网络路径的警报的信息以确定第一网络路径好于第二网络路径。
在框B408,方法400包括确定将包括第二ISP的当前网络路径改变为包括第一ISP的更新的网络路径。例如,网络策略引擎118可确定应植入策略更新以切换网络路径。
在框B410,方法400包括确定针对一个或更多个网络设备的更新的策略。例如,(一个或更多个)网络配置器120可以确定(一个或更多个)网络设备124(如核心交换机)的更新以更新路由映射。
在方框B412,方法400包括将表示更新的策略的第三数据传输给网络设备。例如,(一个或更多个)网络配置器120可以向(一个或更多个)网络设备124发送策略更新。
参见图5,图5是示出了根据本公开的一些实施例的一种用于基于所监测的网络性能参数来更新网络流量路由的方法500的流程图。在框B502,方法500包括经由第一ISP将ping从网络监视平台传输到多重连接数据中心。例如,(一个或更多个)网络监视器116B可将ping发送到转接ISP110A。
在框B504,方法500包括确定对应于第一ISP的状态改变的数量大于预定时间段上的状态改变的阈值数量。例如,(一个或更多个)网络监视器116B可以基于在一段时间内超过阈值的状态改变的数量来生成警报。
在框B506处,方法500包括传输表示警报的第一数据,该警报指示状态改变的数量大于状态改变的阈值数量。例如,(一个或更多个)网络监视器可以将警报(例如,以NPI数据格式)传输至(一个或更多个)网络策略引擎118。
在框B508,方法500包括基于警报来确定从第一ISP切换到第二ISP。例如,(一个或更多个)网络策略引擎118可以确定应当进行转接ISP110的交换。
在框B510,方法500包括确定更新的策略以使得从第一ISP切换到第二ISP。例如,(一个或更多个)网络配置器120可以确定应当在(一个或更多个)网络设备124处进行的更新。
在框B512,方法500包括基于表示更新的策略的第二数据将当前策略更新为更新的策略。例如,更新的策略可被推送到网络设备124以使策略被更新。
现在参见图6,图6是示出了根据本公开的一些实施例的用于基于所监测的应用性能参数来更新网络流量路由的方法600的流程图。方法600在块B602处包括:确定在第一ISP上的流传输应用的第一多个会话的第一会话产出和在第二ISP上的流传输应用的第二多个会话的第二会话产出。例如,(一个或更多个)网络监视器116可以确定会话产出和/或包括不同转接ISP110的网络路径上的会话的数量。
在框B604,方法600包含确定第一会话产出低于阈值且第二会话产出大于第一会话产出。例如,(一个或更多个)网络策略引擎118可以基于来自(一个或更多个)网络监视器116的警报来确定当前转接ISP110上的会话产出比阈值差并且另一转接ISP110上的会话产出更好。
在框B606,方法600包括确定更新的BGP导入路由映射和/或更新的BGP导出路由映射。例如,(一个或更多个)网络配置器120可以确定更新的BGP导入路由映射和/或更新的BGP导出路由映射,以使得切换到性能更好的转接ISP110。
在框B608,方法600包括基于更新的BGP导入路由映射和/或更新的BGP导出路由映射来使网络交换机更新内部策略。例如,(一个或更多个)网络配置器120可以使(一个或更多个)网络设备124(例如,(一个或更多个)核心交换机)更新内部策略。
示例游戏流传输***
现在参见图7,图7是根据本公开的一些实施例的游戏流式传输***700的示例***图。图7包括(一个或更多个)游戏服务器702(其可以包括与图8的示例计算设备800类似的组件、特征和/或功能),(一个或更多个)客户端设备704(其可以包括与图8的示例计算设备800类似的组件、特征和/或功能),以及(一个或更多个)网络706(其可以类似于本文描述的(一个或更多个)网络)。在本公开的一些实施例中,可以实现***700。
在***700中,对于游戏会话,(一个或更多个)客户端设备704可以响应于对(一个或更多个)输入设备的输入而仅接收输入数据,将输入数据传输到(一个或更多个)游戏服务器702,从(一个或更多个)游戏服务器702接收编码的显示数据,并且在显示器724上显示该显示数据。如此,将计算上更密集的计算和处理卸载到(一个或更多个)游戏服务器702(例如,渲染——具体为光线或路径跟踪——以供(一个或更多个)游戏服务器702的(一个或更多个)GPU执行游戏会话的图形输出)。换言之,游戏会话从(一个或更多个)游戏服务器702被流式传输到(一个或更多个)客户端设备704,由此降低(一个或更多个)客户端设备704对图形处理和渲染的需求。
例如,参照游戏会话的实例,客户端设备704可基于从游戏服务器702接收显示数据在显示器724上显示游戏会话的帧。客户端设备704可以接收到(一个或更多个)输入设备中的一个的输入,并且作为响应生成输入数据。客户端设备704可经由通信接口720且经由网络706(例如,互联网)将输入数据传输到游戏服务器702,且游戏服务器702可经由通信接口718接收输入数据。CPU可接收输入数据,处理输入数据,并将数据传输到GPU,使得GPU生成游戏会话的渲染。例如,输入数据可以表示在游戏中用户的角色的移动、武器开火、重新装载、传球、车辆转弯等。渲染组件712可以渲染游戏会话(例如,表示输入数据的结果),渲染捕获组件714可以将游戏会话的渲染捕获为显示数据(例如,作为捕获游戏会话的渲染帧的图像数据)。游戏会话的渲染可以包括使用一个或更多个并行处理单元(如GPU)计算的光线或路径跟踪照明和/或阴影效果,该一个或更多个并行处理单元可以进一步采用一个或更多个专用硬件加速器或处理核来执行一个或更多个游戏服务器702的光线或路径跟踪技术。编码器716可接着编码显示数据以生成编码的显示数据,且编码的显示数据可经由通信接口718经由网络706发送到客户端设备704。客户端设备704可经由通信接口720接收编码的显示数据,且解码器722可解码编码的显示数据以生成显示数据。然后,客户端设备704可经由显示器724显示该显示数据。
示例计算设备
图8是适合用于实现本公开的一些实施例的示例计算设备800的框图。计算设备800可包括直接或间接耦合以下设备的互连***802:存储器804,一个或更多个中央处理单元(CPU)806,一个或更多个图形处理单元(GPU)808,通信接口810,输入/输出(I/O)端口812,输入/输出组件814,电源816,一个或更多个呈现组件818(例如,(一个或更多个)显示器)和一个或更多个逻辑单元820。
尽管图8的各个框被示出为经由互连***802与线路连接,但这不旨在是限制性的并且仅是为了清晰起见。例如,在一些实施例中,呈现组件818(诸如显示设备)可被认为是I/O组件814(例如,如果显示器是触摸屏)。作为另一个示例,CPU806和/或GPU808可以包括存储器(例如,存储器804可以表示除了GPU808的存储器、CPU806和/或其他组件之外的存储设备)。换言之,图8的计算设备仅是说明性的。在如“工作站”、“服务器”、“膝上型计算机”、“台式计算机”、“平板”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型的此类类别之间不做区分,因为所有都被考虑在图8的计算设备的范围内。
互连***802可以表示一个或更多个链路或总线,诸如地址总线、数据总线、控制总线或其组合。互连***802可包括一个或更多个总线或链路类型,诸如工业标准体系结构(ISA)总线、扩展工业标准体系结构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、快速***组件互连(PCIe)总线和/或另一类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU806可直接连接到存储器804。进一步,CPU806可直接连接到GPU808。在组件之间存在直接或点对点连接的情况下,互连***802可以包括PCIe链路以执行连接。在这些示例中,PCI总线不需要被包括在计算设备800中。
存储器804可以包括各种计算机可读介质中的任何计算机可读介质。计算机可读介质可为可由计算设备800访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器804可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作***)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备800访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
CPU 806可以被配置为执行计算机可读指令以便控制计算设备800的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 806中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 806可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备800的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备800的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备800还可以包括一个或更多个CPU 806。
除了CPU806之外或替代CPU806,GPU808可经配置以执行计算机可读指令中的至少一些以控制计算设备800的一个或更多个组件执行本文所描述的方法和/或过程中的一个或更多个。GPU808中的一个或更多个可为集成GPU(例如,与CPU806中的一个或更多个和/或GPU808中的一个或更多个可为离散GPU)。在实施例中,(一个或更多个)GPU808中的一个或更多个可以是(一个或更多个)CPU806中的一个或更多个的协处理器。GPU808可由计算设备800使用以渲染图形(例如,3D图形)或执行通用计算。例如,GPU808可用于GPU上的通用计算(GPGPU)。GPU808可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU808可响应于渲染命令(例如,经由主机接口从CPU806接收的渲染命令)而生成输出图像的像素数据。GPU808可包含图形存储器,例如显示存储器,用于存储像素数据或任何其他合适的数据,例如GPGPU数据。显示存储器可作为存储器804的一部分被包括。GPU808可包含并行操作(例如,经由链路)的两个或两个以上GPU。链路可以直接连接GPU(例如,使用NVLINK)或可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每一GPU808可生成输出的不同部分或不同输出的像素数据或GPGPU数据(例如,第一图像的第一GPU和第二图像的第二GPU)。每一GPU可包含其自己的存储器,或可与其他GPU共享存储器。
除了或替代CPU806和/或GPU808,逻辑单元820可经配置以执行计算机可读指令中的至少一些以控制计算设备800的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。在实施例中,(一个或更多个)CPU806、(一个或更多个)GPU808和/或(一个或更多个)逻辑单元820可以离散地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元820中的一个或更多个可为CPU806和/或GPU808中的一个或更多个和/或集成在CPU806和/或GPU808中的一个或更多个,和/或逻辑单元820中的一个或更多个可为离散组件或以其他方式在CPU806和/或GPU808外部。在实施例中,逻辑单元820中的一个或更多个逻辑单元可以是CPU 806中的一个或更多个CPU和/或GPU 808中的一个或更多个GPU的协处理器。
逻辑单元820的示例包括一个或更多个处理核和/或其组件,诸如张量核(TC)、张量处理单元(TPU)、像素视觉核(PVC)、视觉处理单元(VPU)、图形处理群集(GPC)、纹理处理群集(TPC)、流多处理器(SM)、树横向单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、***组件互连(PCI)或快速***组件互连(PCIe)元件和/或类似物。
通信接口810可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备800能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口810可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如,Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或无限带通信)、低功率广域网(例如,LoRaWAN、SigFox等)和/或互联网。
I/O端口812可以使计算设备800能够逻辑地耦合至包括I/O组件814、呈现组件818和/或其他组件在内的其他设备,这些组件中的一些组件可以被内置到(例如,集成到)计算设备800中。说明性I/O组件814包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等。I/O组件814可提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、报头和眼睛跟踪以及与计算设备800的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备800可以包括诸如立体照相机***之类的深度照相机、红外照相机***、RGB照相机***、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备800可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备800用来渲染沉浸式增强现实或者虚拟现实。
电源816可以包括硬接线电源、电池电源或其组合。电源816可以向计算设备800供电以使得计算设备800的组件能够操作。
呈现组件818可以包括显示器(例如,监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或其组合)、扬声器和/或其他呈现组件。呈现组件818可接收来自其他组件(例如,GPU808、CPU806等)的数据,且输出所述数据(例如,作为图像、视频、声音等)。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的***配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。进一步,“元素A和元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
Claims (26)
1.一种方法,包括:
经由数据中心的第一互联网服务提供商(ISP)在第一网络路径上传输第一测试探针,并且经由所述数据中心的不同于所述第一ISP的第二ISP在第二网络路径上传输第二测试探针,所述第一网络路径和所述第二网络路径将所述数据中心与执行服务的一个或更多个计算设备耦合,所述服务支持使用所述数据中心执行的应用;
使用在所述数据中心和所述一个或更多个计算设备中执行的监控代理来分析表示对应于所述第一网络路径的第一质量度量的第一数据和表示对应于所述第二网络路径的第二质量度量的第二数据;
使用网络策略引擎并且至少部分地基于所述第一数据与所述第二数据之间的比较来确定将包括所述第二ISP的当前网络路径改变为包括所述第一ISP的更新的网络路径;
使用网络配置器确定用于所述数据中心的一个或更多个核心交换机的更新的策略以使所述当前网络路径切换到所述更新的网络路径;以及
将表示所述更新的策略的第三数据传输到所述一个或更多个核心交换机。
2.根据权利要求1所述的方法,其中,经由所述第一ISP在所述第一网络路径上传输所述第一测试探针和经由所述第二ISP在所述第二网络路径上传输所述第二测试探针至少部分地基于边缘交换机网络路由配置和互联网协议(IP)差分服务代码点(DSCP)参数。
3.根据权利要求1所述的方法,其中,所述第一质量度量和所述第二质量度量各自对应于丢失、时延或抖动中的一个或更多个。
4.根据权利要求3所述的方法,其中,针对所述第一网络路径和所述第二网络路径中的每一者计算所述丢失、所述时延或所述抖动中的一个或更多个的加权平均,并且至少部分地基于比较所述第一网络路径和所述第二网络路径中的每一者的所述加权平均来生成警报。
5.根据权利要求3所述的方法,其中,针对所述第一网络路径和所述第二网络路径中的每一者计算所述丢失、所述时延或所述抖动中的一个或更多个的加权平均,其中所述丢失比所述抖动更重地被加权,且所述抖动比所述时延更重地被加权。
6.根据权利要求1所述的方法,其中,所述网络策略引擎和所述网络配置器至少部分地在所述数据中心中执行。
7.根据权利要求1所述的方法,其中,至少部分地使用边界网关协议(BGP)来执行经由所述第一ISP在所述第一网络路径上传输所述第一测试探针以及经由所述第二ISP在所述第二网络路径上传输所述第二测试探针。
8.根据权利要求1所述的方法,还包括:
在预定时间段内接收高于警报的阈值数量的多个警报,至少部分地基于所述第二ISP表现优于所述第一ISP或者所述第一ISP表现优于所述第二ISP中的一个生成所述多个警报中的每个警报;以及
在所述多个警报中的警报之后忽略附加警报以避免被所述第一ISP或所述第二ISP中的一个或更多个阻尼。
9.根据权利要求1所述的方法,还包括:在从接收到警报而没有接收到对应于所述第二ISP的附加警报的阈值时间段之后,恢复到包括所述第二ISP的另一网络路径。
10.根据权利要求1所述的方法,其中,所述监控代理为以下各项中的至少一项:
插件;
特定应用;或
容器化应用的实例化。
11.根据权利要求1所述的方法,其中,所述监控代理、所述网络策略引擎或所述网络配置器中的至少一个对应于容器化应用的实例。
12.一种***,包括:
网络监控代理,用于:
经由多重连接数据中心的第一互联网服务提供商(ISP)将ping从网络监控平台传输到所述多重连接数据中心;
至少部分地基于所述ping确定对应于所述第一ISP的状态改变的数量大于预定时间段内的状态改变的阈值数量;以及
传输第一数据,所述第一数据表示指示在所述预定时间段内所述状态改变的数量大于状态改变的所述阈值数量的警报;
网络策略引擎,用于:
接收所述第一数据;以及
至少部分基于所述警报确定从所述第一ISP切换至所述多重连接数据中心的第二ISP;
网络配置器,用于:
确定更新的策略以使从所述第一ISP切换到所述第二ISP;以及
传输第二数据,所述第二数据表示所述更新的策略;以及
所述多重连接数据中心的一个或更多个核心交换机,用于:
接收所述第二数据;以及
至少部分地基于所述第二数据将当前策略更新为所述更新的策略。
13.根据权利要求12所述的***,其中,所述网络策略引擎和所述网络配置器在所述多重连接数据中心中执行。
14.根据权利要求12所述的***,其中,使用相对于所述多重连接数据中心位于远程的一个或更多个计算设备执行所述网络监控代理,进一步地,其中在到达所述第一ISP的自主***之前,经由一个或更多个中间自主***从所述一个或更多个计算设备传输所述ping。
15.根据权利要求12所述的***,其中,所述更新的策略执行以下中的至少一个:使当前导入路由映射变成更新的导入路由映射、或者使当前导出路由映射变成更新的导出路由映射。
16.根据权利要求15所述的***,其中,通过将一个或更多个自主***路径前置到边界网关协议(BGP)报头来生成所述更新的导出路由映射。
17.根据权利要求12所述的***,其中,所述网络监控代理、所述网络策略引擎和所述网络配置器对应于容器化应用的实例化。
18.根据权利要求12所述的***,其中,所述网络监控代理为以下各项中的至少一项:
插件;
特定应用;或
容器化应用的实例化。
19.根据权利要求12所述的***,其中所述网络监控代理、所述网络策略引擎或所述网络配置器中的至少一个对应于容器化应用的实例化。
20.一种方法,包括:
使用监控代理插件并且在一段时间内确定流媒体应用在第一互联网服务提供商(ISP)上的第一多个会话的第一会话产出以及所述流媒体应用在第二ISP上的第二多个会话的第二会话产出;
使用所述监控代理插件确定所述第一会话产出低于阈值并且所述第二会话产出大于所述第一会话产出;
使用网络策略插件并且至少部分地基于所述第一会话产出低于所述阈值并且所述第二会话产出大于所述第一会话产出来确定更新的边界网关协议(BGP)导入路由映射或更新的BGP导出路由映射中的至少一个;以及
使用网络配置器插件促使网络交换机至少部分地基于所述更新的BGP导入路由映射或所述更新的BGP导出路由映射中的至少一个来更新内部策略。
21.根据权利要求20所述的方法,其中,所述流媒体应用是云游戏应用,并且在托管所述云游戏应用的数据中心中执行所述监控代理插件、所述网络策略插件和所述网络配置器插件。
22.根据权利要求20所述的方法,其中,确定所述更新的导出BGP路由映射使所述网络交换机将一条或更多条自主***路径前置到BGP报头。
23.根据权利要求20所述的方法,其中,确定所述更新的边界网关协议(BGP)导入路由映射或所述更新的BGP导出路由映射中的至少一个进一步至少部分地基于所述第二会话产出大于另一阈值。
24.根据权利要求20所述的方法,其中,所述监控代理插件、所述网络策略插件和所述网络配置器插件对应于至少部分地托管所述第一多个会话和所述第二多个会话的数据中心中执行的容器化应用的实例化。
25.根据权利要求20所述的方法,其中,使用所述监控代理插件确定所述第一会话产出和所述第二会话产出包括:使用所述第一ISP和所述第二ISP在互联网上传输对应于所述流媒体应用的特定于应用的数据。
26.根据权利要求20所述的方法,其中,所述监控代理插件、所述网络策略插件或所述网络配置器插件中的至少一个对应于容器化应用的实例化。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/938,184 | 2020-07-24 | ||
US16/938,184 US11456941B2 (en) | 2020-07-24 | 2020-07-24 | Extensible network traffic engineering platform for increasing network resiliency in cloud applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113973077A true CN113973077A (zh) | 2022-01-25 |
CN113973077B CN113973077B (zh) | 2023-06-02 |
Family
ID=79179612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110805075.7A Active CN113973077B (zh) | 2020-07-24 | 2021-07-16 | 用于提高云应用中的网络弹性的可扩展网络流量工程平台 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11456941B2 (zh) |
CN (1) | CN113973077B (zh) |
DE (1) | DE102021119015A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10560326B2 (en) * | 2017-09-22 | 2020-02-11 | Webroot Inc. | State-based entity behavior analysis |
US20220368622A1 (en) * | 2021-05-11 | 2022-11-17 | Jpmorgan Chase Bank, N.A. | Systems and methods for network optimization using end user telemetry |
US11611566B2 (en) * | 2021-06-25 | 2023-03-21 | Microsoft Technology Licensing, Llc | Automatic verification of safety for virtualized networks |
US11706130B2 (en) * | 2021-07-19 | 2023-07-18 | Cisco Technology, Inc. | Root-causing user experience anomalies to coordinate reactive policies in application-aware routing |
US20230022959A1 (en) * | 2021-07-20 | 2023-01-26 | Cisco Technology, Inc. | Detecting critical regions and paths in the core network for application-driven predictive routing |
US11570058B1 (en) * | 2021-10-05 | 2023-01-31 | Bank Of America Corporation | Auto simulation of connectivity checks from the client side |
US11711279B2 (en) * | 2021-10-26 | 2023-07-25 | Juniper Networks, Inc. | Application records using session information |
US20230198878A1 (en) * | 2021-12-20 | 2023-06-22 | Tibit Communications, Inc. | Method and system for network segment performance monitoring |
US11805048B1 (en) * | 2022-04-27 | 2023-10-31 | At&T Intellectual Property I, L.P. | Dynamic network metric sharing and application metric based network path selection |
US20230362083A1 (en) * | 2022-05-03 | 2023-11-09 | Microsoft Technology Licensing, Llc | Monitoring for inconsistent latency in data centers |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523850A (zh) * | 2003-02-19 | 2004-08-25 | ���ǵ�����ʽ���� | 用于分布式处理边界网关协议的设备和方法 |
US20060182034A1 (en) * | 2002-12-13 | 2006-08-17 | Eric Klinker | Topology aware route control |
US20060193247A1 (en) * | 2005-02-25 | 2006-08-31 | Cisco Technology, Inc. | Disaster recovery for active-standby data center using route health and BGP |
CN101350817A (zh) * | 2007-05-18 | 2009-01-21 | 辉达公司 | 网络业务的智能负载平衡和故障转移 |
US20140173090A1 (en) * | 2012-12-14 | 2014-06-19 | Kevin Eugene DAVIS | Method and system for detecting network topology change |
CN104521196A (zh) * | 2012-06-06 | 2015-04-15 | 瞻博网络公司 | 针对虚拟网络分组流的物理路径确定 |
CN105052083A (zh) * | 2013-03-15 | 2015-11-11 | 思科技术公司 | 用于网络的可编程管理引擎 |
US20150333953A1 (en) * | 2014-05-13 | 2015-11-19 | Cisco Technology, Inc. | Soft rerouting in a network using predictive reliability metrics |
CN105141469A (zh) * | 2014-05-16 | 2015-12-09 | 思科技术公司 | 多站点环境中的性能监测 |
US20160142274A1 (en) * | 2014-11-14 | 2016-05-19 | Bigleaf Networks, Llc | Circuit-aware load balancing with dynamic quality of service |
US20160294681A1 (en) * | 2015-04-06 | 2016-10-06 | Verizon Digital Media Services Inc. | Application Controlled Path Selection Based on Type-of-Service |
US20160337212A1 (en) * | 2015-05-13 | 2016-11-17 | Cisco Technology, Inc. | Uplink Performance Management |
US20170250875A1 (en) * | 2016-02-29 | 2017-08-31 | Wesley Howard Jensen | Machine-learning optimization for computing networks |
CN107810619A (zh) * | 2015-06-29 | 2018-03-16 | 谷歌有限责任公司 | 用于推断广域网中的网络拓扑和路径度量的***和方法 |
CN107852365A (zh) * | 2015-08-19 | 2018-03-27 | 思科技术公司 | 具有加密和流量工程解析的动态vpn策略模型 |
CN107925588A (zh) * | 2015-09-25 | 2018-04-17 | 英特尔公司 | 带外平台调整和配置 |
CN108293076A (zh) * | 2015-11-18 | 2018-07-17 | 微软技术许可有限责任公司 | 网络端点间的媒体会话 |
CN108289064A (zh) * | 2018-04-23 | 2018-07-17 | 清华大学深圳研究生院 | 一种数据中心网中混合式负载均衡方法 |
CN108702394A (zh) * | 2015-11-18 | 2018-10-23 | 微软技术许可有限责任公司 | 网络端点间的媒体会话 |
US20180309618A1 (en) * | 2017-04-20 | 2018-10-25 | T-Mobile Usa, Inc. | Mobile internet fallback/switchover and restore mechanism |
CN110291811A (zh) * | 2016-12-12 | 2019-09-27 | 瑞典爱立信有限公司 | 用于在无线通信网络中调整服务连续性阈值的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769884B2 (en) * | 2003-10-31 | 2010-08-03 | International Business Machines Corporation | Network route control |
TW202404318A (zh) * | 2018-08-23 | 2024-01-16 | 美商阿爾克斯股份有限公司 | 網路運算環境中使用位址解析協定的第一跳轉閘道的冗餘機制系統 |
US20210211347A1 (en) * | 2020-01-07 | 2021-07-08 | Cisco Technology, Inc. | Aggregated signal feedback for saas experience in multi-cloud sd-wan deployments |
US11857872B2 (en) * | 2020-07-21 | 2024-01-02 | Nvidia Corporation | Content adaptive data center routing and forwarding in cloud computing environments |
-
2020
- 2020-07-24 US US16/938,184 patent/US11456941B2/en active Active
-
2021
- 2021-07-16 CN CN202110805075.7A patent/CN113973077B/zh active Active
- 2021-07-22 DE DE102021119015.0A patent/DE102021119015A1/de active Pending
-
2022
- 2022-09-26 US US17/953,065 patent/US11876697B2/en active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060182034A1 (en) * | 2002-12-13 | 2006-08-17 | Eric Klinker | Topology aware route control |
CN1523850A (zh) * | 2003-02-19 | 2004-08-25 | ���ǵ�����ʽ���� | 用于分布式处理边界网关协议的设备和方法 |
US20060193247A1 (en) * | 2005-02-25 | 2006-08-31 | Cisco Technology, Inc. | Disaster recovery for active-standby data center using route health and BGP |
CN101350817A (zh) * | 2007-05-18 | 2009-01-21 | 辉达公司 | 网络业务的智能负载平衡和故障转移 |
CN104521196A (zh) * | 2012-06-06 | 2015-04-15 | 瞻博网络公司 | 针对虚拟网络分组流的物理路径确定 |
US20140173090A1 (en) * | 2012-12-14 | 2014-06-19 | Kevin Eugene DAVIS | Method and system for detecting network topology change |
CN105052083A (zh) * | 2013-03-15 | 2015-11-11 | 思科技术公司 | 用于网络的可编程管理引擎 |
US20150333953A1 (en) * | 2014-05-13 | 2015-11-19 | Cisco Technology, Inc. | Soft rerouting in a network using predictive reliability metrics |
CN105141469A (zh) * | 2014-05-16 | 2015-12-09 | 思科技术公司 | 多站点环境中的性能监测 |
US20160142274A1 (en) * | 2014-11-14 | 2016-05-19 | Bigleaf Networks, Llc | Circuit-aware load balancing with dynamic quality of service |
US20160294681A1 (en) * | 2015-04-06 | 2016-10-06 | Verizon Digital Media Services Inc. | Application Controlled Path Selection Based on Type-of-Service |
US20160337212A1 (en) * | 2015-05-13 | 2016-11-17 | Cisco Technology, Inc. | Uplink Performance Management |
CN107810619A (zh) * | 2015-06-29 | 2018-03-16 | 谷歌有限责任公司 | 用于推断广域网中的网络拓扑和路径度量的***和方法 |
CN107852365A (zh) * | 2015-08-19 | 2018-03-27 | 思科技术公司 | 具有加密和流量工程解析的动态vpn策略模型 |
CN107925588A (zh) * | 2015-09-25 | 2018-04-17 | 英特尔公司 | 带外平台调整和配置 |
CN108293076A (zh) * | 2015-11-18 | 2018-07-17 | 微软技术许可有限责任公司 | 网络端点间的媒体会话 |
CN108702394A (zh) * | 2015-11-18 | 2018-10-23 | 微软技术许可有限责任公司 | 网络端点间的媒体会话 |
US20170250875A1 (en) * | 2016-02-29 | 2017-08-31 | Wesley Howard Jensen | Machine-learning optimization for computing networks |
CN110291811A (zh) * | 2016-12-12 | 2019-09-27 | 瑞典爱立信有限公司 | 用于在无线通信网络中调整服务连续性阈值的方法和装置 |
US20180309618A1 (en) * | 2017-04-20 | 2018-10-25 | T-Mobile Usa, Inc. | Mobile internet fallback/switchover and restore mechanism |
CN108289064A (zh) * | 2018-04-23 | 2018-07-17 | 清华大学深圳研究生院 | 一种数据中心网中混合式负载均衡方法 |
Non-Patent Citations (3)
Title |
---|
CHENHAO JIA: "Rapid Detection and Localization of Gray Failures in Data Centers via In-band Network Telemetry" * |
曾彬: "基于主动测试的网络性能监测技术研究" * |
江学智: "分布式控制平面:并行BGP路由计算自适应负载均衡算法" * |
Also Published As
Publication number | Publication date |
---|---|
US20230015677A1 (en) | 2023-01-19 |
CN113973077B (zh) | 2023-06-02 |
US11876697B2 (en) | 2024-01-16 |
US11456941B2 (en) | 2022-09-27 |
US20220029906A1 (en) | 2022-01-27 |
DE102021119015A1 (de) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113973077B (zh) | 用于提高云应用中的网络弹性的可扩展网络流量工程平台 | |
JP6445621B2 (ja) | 分散型ロードバランサ | |
US10630710B2 (en) | Systems and methods of stateless processing in a fault-tolerant microservice environment | |
US11463511B2 (en) | Model-based load balancing for network data plane | |
US9736263B2 (en) | Temporal caching for ICN | |
EP3854038A1 (en) | Segment routing with fast reroute for container networking | |
CN113454598A (zh) | 提供具有访客vm移动性的服务 | |
WO2020091777A1 (en) | Modifying resource allocation or policy responsive to control information from a virtual network function | |
US11550621B2 (en) | Distributable and customizable load-balancing of data-associated computation via partitions and virtual processes | |
WO2016033193A1 (en) | Distributed input/output architecture for network functions virtualization | |
US10643010B2 (en) | Scalable simulation system with scalable data propagation | |
CN105991347A (zh) | Dns请求报文的重定向方法和装置 | |
Mohan et al. | Byzantine-resilient controller mapping and remapping in software defined networks | |
US20230421484A1 (en) | Systems and methods for replicating traffic statistics on redundant packet forwarding engine system | |
US11991211B1 (en) | Symmetric cross-region network data flow management | |
US20220311791A1 (en) | Systems and methods for low latency stateful threat detection and mitigation | |
US11374874B2 (en) | Access control method, access control device, and data processing device | |
US20180349528A1 (en) | Scalable Update Propagation Via Query Aggregations and Connection Migrations | |
CN105721234A (zh) | 端口聚合方法及装置 | |
TW201526588A (zh) | 用於本地與遠端處理時之設備控制分隔的系統及其方法 | |
CN117938750B (zh) | 调度路由信息的处理方法、装置、设备、存储介质及产品 | |
US11516103B2 (en) | Estimating speedtest server accuracy | |
Sousa et al. | Expedient reconfiguration in the cloud | |
CN117411878A (zh) | 云***、报文处理方法、装置、及网卡 | |
WO2023084284A1 (en) | Predictive extended reality system |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |