CN116210212A - 云计算环境中的内容自适应数据中心路由和转发 - Google Patents

云计算环境中的内容自适应数据中心路由和转发 Download PDF

Info

Publication number
CN116210212A
CN116210212A CN202180063980.8A CN202180063980A CN116210212A CN 116210212 A CN116210212 A CN 116210212A CN 202180063980 A CN202180063980 A CN 202180063980A CN 116210212 A CN116210212 A CN 116210212A
Authority
CN
China
Prior art keywords
application
data center
data
request
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180063980.8A
Other languages
English (en)
Inventor
B·武科杰维克
J·巴里克
K·伊斯拉姆
Y·塔拉泽伊
S·马赫什
R·恩纳吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN116210212A publication Critical patent/CN116210212A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

高性能应用程序,如云游戏流式传输、云虚拟现实(VR)、远程桌面以及其他,对诸如延迟、抖动和丢包之类的各种网络条件很敏感。本公开的系统可以将用户设备的网络特性与特定的应用程序类型的延迟要求相匹配,而应用程序会话可以被转发或分配到合适的数据中心。为了实现这一点,可以执行特定于应用程序的网络测试以确定为用户执行高性能应用程序会话的要求。这些测试的结果,连同特定于应用程序的性能要求一起,可用于从一组可用的数据中心中找到合适的数据中心,该数据中心能够托管应用程序会话而不会降级。因此,可以实现分布式基础设施的有效利用,同时避免拥塞和热点问题,并为最终用户提供优化的应用程序体验。

Description

云计算环境中的内容自适应数据中心路由和转发
背景技术
高性能网络流式传输应用程序——如云游戏、云虚拟现实(VR)、远程工作站和/或其他应用程序类型——通常对延迟、抖动、带宽和丢包等网络性能参数敏感。对性能的影响可能是由于用户设备所经历的本地网络的网络性能参数、用户设备与数据中心之间的互联网连接(例如,由于用户设备和数据中心之间的距离,由于数据中心使用的互联网服务提供商(ISP)网络基础设施,等等)和/或特定应用的硬件或其他资源和性能需求的组合而实现的。例如,对于距离用户设备很远的数据中心(例如500英里或更远),应用程序在如此远的距离上进行数据通信所经历的延迟可能会增加到不适合应用程序正确地或可接受地执行的水平。因此,例如在基于云的游戏流式传输应用程序中,延迟(和/或抖动、丢包、带宽等)可能会导致无法玩游戏,因为从输入到游戏产生的效果可能会在收到输入后很久才反映在显示器上。
传统的基础设施(如数据中心)的部署支持高性能应用程序的工作负载,并不足以支持最佳的用户体验。互联网协议(IP)地理定位(GeoIP)可用于将用户设备路由到指派的数据中心——其中指派对于正在执行的特定应用程序的硬件、网络和资源需求不可知。例如,在美国,应用程序主机提供商可能只有东海岸和西海岸的数据中心。因此,美国中部的用户可能会被路由到这些数据中心中的一个——它可能离用户的家庭网络有1500英里以上——导致应用程序的性能降级。此外,即使西海岸的用户被路由到西海岸的数据中心,硬件资源、容量和/或网络性能也可能不适合特定的应用程序。此外,在使用GeoIP重新指派IP地址的情况下,该信息可能不会被分配回用户设备。因此,在IP地址从西海岸被重新指派到东海岸的数据中心的情况下,例如,位于西海岸并被指派到该IP地址的用户设备现在可能需要在执行相应的应用程序时与全国各地的数据中心进行通信。这可能导致性能问题而使应用程序无法使用。
一些传统系统依靠内容交付网络(CDN)——例如广泛分布的边缘服务器——来支持应用程序。然而,目前的CDN缺乏用于按需高性能应用程序(如云游戏、远程桌面、云VR等)的计算资源——由于它们的用于较低需求的应用程序(如网络内容、视频流式传输等)的实现。此外,将应用程序指派到CDN的特定边缘服务器并没有考虑到应用程序的硬件或网络性能需求。因此,当CDN被用于按需应用程序时,由于延迟可能会出现频繁的缓冲,并且由于CDN的服务器可能不包括能够有效地托管按需应用程序的足够的硬件、网络性能或其他资源,应用程序质量可能会下降。
发明内容
本公开的实施例涉及云计算应用程序的数据中心分配和转发。所公开的系统和方法执行特定于应用程序的网络测试——针对用户的网络和/或连接用户设备到数据中心或数据中心的区域的网络——以确定用户的应用程序配置文件和合适的数据中心,根据该应用程序配置文件托管应用程序会话。例如,在数据中心分布更广的情况下(例如,每个城市地区一个或更多个),可以从用户的角度对不同的数据中心——或数据中心区域——执行网络特性的测量。网络测试可以针对特定的应用程序类型进行定制,从而使测试的结果对个别用户的特定应用程序的性能有参考价值。因此,在高度分布式的基础设施下,多个数据中心有可能具有可接受的网络和/或硬件性能来托管应用程序。用户设备可以将确定的应用程序配置文件提交给数据中心,其中可能包括关于其他合适的数据中心的信息,而在数据中心上执行的调度器可以确定应用程序会话的合适主机。例如,调度器可以确定特定应用程序的硬件和/或网络性能要求——例如,云游戏环境中的特定游戏——并且可以确定托管或将托管请求转发到其他合适的数据中心上。最终,在确定合适的主机数据中心——或其服务器——以执行应用程序的会话时,可以考虑到用户设备和网络的应用程序配置文件、具体的应用程序要求、主机硬件配置要求和/或其他标准。
此外,在确定应用程序会话的分配或转发时,拥塞控制和资源利用可以由选定的数据中心考虑。例如,历史数据可用于预测某些数据中心何时会拥塞,或满负荷,而主机请求可被转发到较不拥塞的数据中心。作为另一示例,在第一应用程序(例如,不受较高延迟影响的游戏)不需要特定数据中心的计算资源,但第二应用程序(例如,延迟敏感的应用程序)经常需要的情况下,主机请求可以被转发到另一个计算资源较少的数据中心(例如,使用旧型号的硬件),以减少拥塞并最大化资源使用,而不降低第一和第二应用程序的性能。在一些实施例中,在选择多宿主数据中心的情况下,可以分析数据中心的不同ISP的应用程序服务质量(QoS)指标,以确定最适合特定终端用户设备的ISP——和/或由此执行的特定应用程序。
附图说明
下面参照附图详细描述用于云计算应用程序的数据中心分配和转发的本系统和方法,其中:
图1是根据本公开的一些实施例的示出了应用程序会话分配和转发系统的框图。
图2A描绘了的根据本公开的一些实施例的应用程序会话托管请求的网络测试环境的示例图示。
图2B-2C描绘了根据本公开的一些实施例的应用程序会话分配和转发的示例图示。
图2D描绘了根据本公开的一些实施例的基于流内服务质量(QoS)反馈的互联网服务供应商(ISP)切换的示例图示。
图3是根据本公开内容的一些实施例的显示了用于应用程序会话分配和转发的方法的流程图。
图4是根据本公开的一些实施例的显示了用于应用程序配置文件生成的方法的流程图。
图5是适合用于实现本公开的一些实施例的示例游戏流式传输系统的框图;以及
图6是适用于实现本公开的一些实施例的示例计算设备的框图。
具体实施方式
公开了与云计算应用程序的数据中心分配和转发有关的系统和方法。本文所述的系统和方法可用于提高任何应用程序类型的应用程序性能,例如,不限于流式传输、云游戏、云虚拟现实(VR)、远程工作站应用程序和/或其他应用程序类型。例如,应用程序可能对各种网络性能参数敏感,如延迟、丢包、带宽和/或抖动和/或应用程序性能参数,如会话产量和/或应用程序的服务质量(QoS)指标。因此,本文所述的系统和方法可在任何系统中实施,以提高通过网络(如互联网)执行的任何类型的应用程序的网络和应用程序性能。此外,尽管本文主要将边界网关协议(BGP)描述为路由更新或策略所指向的协议,但这并不意味着是限制性的,可以使用任何合适的协议——例如路由信息协议(RIP)、安全BGP(sBGP)、安全源BGP(soBGP)等。
用于高性能应用程序的基础设施——如游戏流式传输、基于云的VR等——通常分布在更多的数据中心中,因此至少一个数据中心更接近用户群体。通过以这种方式分配数据中心,任何一个数据中心的资源量都可能受到限制,为了有效地适应所有用户,本公开的系统优化了这些资源的分配和配置。例如,从用户设备的角度到数据中心的网络特性可以针对特定的应用程序进行测量。这种测量可以包括延迟、抖动、丢包、带宽和/或其他网络测量。该测量可以作为特定于应用程序或定制的网络测试来执行,该网络测试模拟在一个或更多个数据中心以及用户设备之间以及之中的特定应用程序的网络流量。例如,在云游戏流式传输环境中,模拟的流量可能是突发性的(特点是短暂的间歇期、穿插在几乎没有数据交换的时期之中的高容量的数据传输)以及传统的带宽测试可能会返回不准确的结果,即用户网络处理游戏流式传输应用程序的带宽要求的能力。因此,可以执行定制的网络测试,以确定用户网络和/或设备针对特定游戏处理游戏流的网络流量的能力。
此外,在大量分布的基础设施中,很可能不止一个数据中心具有可接受的网络特性——例如,延迟——因此,用户设备可以获得关于每个可用数据中心的信息(例如,通过应用程序编程接口(API))。一旦确定了可用的数据中心,就可以进行初步的网络测试,以确定具有可接受的初步网络特性(例如,延迟特性)的数据中心的子集(或数据中心的区域)。然后可以选择单一的区域或其数据中心,并使用所选的数据中心执行本文所述的更详细和定制的网络测试。该测试可用于为用户设备和用户网络(例如,本地网络)生成流式传输配置文件——例如,包括带宽能力、图像质量或分辨率信息、比特率信息、分辨率信息的音频质量、设备类型(例如,智能手机、平板电脑、高性能计算机等)。流式传输配置文件可以在用户设备上首次执行应用程序时生成和/或更新、在确定网络特性的变化时(例如,新的数据中心上线、设备类型变化、检测到新的用户网络等)、定期地、间隔地生成和/或更新,等等。
一旦为用户设备生成了流式传输配置文件,当应用程序会话在用户设备上启动时,可以执行初步的网络测试(例如,延迟测试)。结果,可以返回具有合适延迟的一个或更多个数据中心,并且可以将托管应用程序会话的请求发送到合适的数据中心(例如,具有最低延迟的数据中心)。数据中心的调度器可以接收该请求——包括表示流式传输配置文件的数据、表示从初步网络测试中确定的其他合适的数据中心的数据等——并且可以确定该数据中心是否能够托管应用程序会话(例如,云游戏应用程序的游戏实例)。例如,流式传输配置文件可以表明用户设备支持和请求的应用程序流的质量(例如,4K、8K等)以及网络特性(例如,延迟、抖动、丢包、带宽或其他特性)。此外,还可以分析与特定应用程序(例如,特定游戏类型)有关的要求,以确定数据中心是否能够以所需的服务质量(QoS)水平托管游戏。因此,考虑到这些标准,调度器可以确定数据中心可以或不可以托管该游戏。
如果数据中心不能托管游戏——例如,由于不正确的硬件配置、由于网络问题、由于拥塞、由于预期的拥塞、为了最大化资源,等等——调度器可以将请求转发到一个或更多个其他合适的数据中心(例如,全部同时,一次一个,等等)。转发的请求可以包括来自用户设备的原始请求的信息,此外还包括补充信息,如硬件要求、特定应用程序(例如,特定游戏)的性能要求等。这些请求可以被转发,直到另一个数据中心表示接受该请求。一旦被接受,原始数据中心的调度器可以向用户设备发送响应,指示(例如,通过IP地址)将托管应用程序会话的数据中心。然后,应用程序会话可以从为用户设备托管应用程序会话的指派的数据中心开始。
对于所选的数据中心,在实施例中可以考虑到其他标准。例如,该数据中心可能是有两个或更多个ISP提供互联网接入的多址数据中心。然后,数据中心可以分析在两个或更多个ISP之间的应用程序会话的特定于应用程序(和/或特定于实例)的QoS指标,并确定提供最佳QoS的ISP。如果最佳性能的ISP不同于当前的ISP(或具有高于阈值差异的QoS的任何其他ISP),数据中心可以更新数据中心的网络设备(例如,核心交换机)的导入路由图和/或导出路由图,以控制通过所需ISP的网络流量的路由。例如,一些用户ISP可能无法与数据中心的ISP很好地配合,且本文所述的ISP切换方法可以考虑这些问题以提高端到端的网络性能。
通过将用户设备的网络特性与特定应用程序类型(如特定游戏)的延迟需求相匹配,应用程序会话可以被转发或分配到不同的数据中心,而不会降低性能。此外,由于转发不降级,可以实施拥塞控制以切换而离开预测有更多使用量的数据中心(例如,基于历史数据),或切换而离开可能更远——并且具有更高的延迟——但仍然符合特定应用程序的延迟要求的数据中心。因此,数据中心可能被保留给位置更近和/或执行更多延迟敏感应用程序的用户。本文所述的系统和方法可以提供有效且高效地使用分布式基础设施,并避免拥塞和热点问题,同时为终端用户提供优化的应用程序体验。
参考图1,图1是根据本公开的一些实施例的示例应用程序会话分配和转发系统100(可替代地在本文中称为“系统100”)。应当理解,本文所述的这种和其他布置仅作为示例进行阐述。除了或代替所示的布置和元件,可使用其他布置和元件(例如,机器、接口、功能、次序、功能分组等),并且可完全省略一些元件。进一步,本文描述的许多元件是可以被实现为分立或分布式组件或与其他组件结合、以及以任何合适的组合和位置的功能实体。本文描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可以通过处理器执行存储在存储器中的指令来实现。在一些实施例中,系统100的组件、特征、和/或功能可以类似于示例性游戏流式传输系统500和/或示例性计算设备600。
系统100可以包括一个或更多个数据中心102(例如,数据中心102A、102B和102C)和/或一个或更多个客户端设备104,它们经由诸如数据中心(DC)ISP 110A和110B和/或客户端ISP 108之类的一个或更多个互联网服务提供商(ISP)在互联网106上进行通信。在一些实施例中,系统100可以对应于云计算和/或分布式计算环境。例如,在主机应用程序112对应于云游戏应用程序的情况下,图5的示例游戏流式传输系统500可以包括一个适合于支持云游戏应用程序的架构或平台。
DC ISP 110可以为数据中心102提供对互联网106(和/或其他广域网(WAN))的访问,并且客户端ISP 108可以为客户端设备104提供对互联网的访问。在一些实施例中,一个或更多个DC ISP 110和/或客户端ISP 108可以是同一ISP,而在其他实施例中,一个或更多个DC ISP 110和108可以不同。此外,在实施一个以上的数据中心102的情况下,不同的数据中心102可以使用不同的DC ISP 110,和/或在实施一个以上的客户端设备104的情况下,不同的客户端设备104可以使用不同的客户端ISP 108。
虽然被称为互联网106,但这并不意味着是限制性的,系统100可以为任何网络类型实现,例如广域网(WAN)、局域网(LAN)、蜂窝网络、其他网络类型,或其组合。尽管数据中心102被说明为是多宿主的——例如,有两个DC ISP 110A和110B——但这并不意味着是限制性的,且在一些实施例中,一个或更多个数据中心102可能不是多宿主的。此外,虽然所示只包括一个客户端ISP 108,但这并不意味着是限制性的,客户端设备104可以包括一个以上的客户端ISP 108。此外,虽然只说明了通过每个ISP的单一链接,但这并不意味着是限制性的,在一些实施例中,单独的ISP——如DC ISP 110A——可以包括数据中心102的多个独立路由或边缘路由器接入点或节点。例如,在一些实施例中,当从一个ISP切换到另一个时,这可能对应于从通过ISP的第一路由(例如,通过ISP的第一边缘路由器)切换到通过同一ISP的第二路由(例如,通过ISP的第二边缘路由器)。
数据中心102可以托管主机应用程序112——例如,高性能应用程序、云游戏流式传输应用程序、虚拟现实(VR)内容流式传输应用程序、内容流式传输应用程序、远程桌面应用程序等——例如,使用一个或更多个应用程序编程接口(API)。数据中心102可以包括任何数量的子设备,如服务器、网络附加存储(NAS)、API、其他后端设备和/或另一种类型的子设备。例如,数据中心102可以包括多个计算设备(例如,服务器、存储等),这些设备可以包括或对应于本文所述的图6的示例计算设备600的一些或全部组件。在一些实施例中,主机应用程序112可以使用一个或更多个图形处理单元(GPU)和/或虚拟GPU执行,以支持在客户端设备104上执行的客户端应用程序122。在一些实施例中,数据中心102的至少一些处理可以使用一个或更多个并行处理单元并行地执行,如GPU、其核心(如CUDA核心)、特定于应用程序的集成电路(ASIC)、矢量处理器、大规模并行处理器、对称多处理器等。在使用数据中心102执行渲染的实施例中,数据中心102可以实现一种或更多种光线追踪和/或路径追踪技术,以提高流中的图像和/或视频的质量(例如,在客户端设备104能够显示高清晰度——如4K、8K等——图形,和/或网络特性目前支持它们的流式传输)。
数据中心102可以包括一个或更多个网络设备120——例如,交换机,路由器,网关,集线器,桥接器,接入点等——这些设备可被配置为引导数据中心102的网络内部的流量,引导来自互联网的传入或入口流量,引导互联网传出或出口流量,和/或至少部分控制通过互联网的各种自治系统的网络流量的路由(例如,经由使用BGP协议的自治系统的边缘路由器)。例如,为了引导来自互联网的入口流量和/或去向互联网的出口流量,可以实施一个或更多个核心交换机,作为通往互联网(和/或另一个WAN)的网关。核心交换机可以包括导入路由图(例如,用于出口网络流量)和/或导出路由图(例如,用于入口网络流量),这些路由图可以被配置为帮助路由来到数据中心102和/或从数据中心102离开的网络流量。此外,核心交换机——或其他网络设备120——的路由策略可以包括特定出口端口和/或入口端口的本地优选值,该本地优选值可被系统100用于沿特定路径(例如,通过优选DC ISP110)路由流量。此外,尽管本文主要描述的网络设备120是核心交换机,但这并不意味着是限制性的,本文针对核心交换机描述的技术可以在不脱离本公开的范围的情况下为其他类型的网络设备120额外地或交替地实施——例如分布交换机、边缘交换机、路由器、接入点、核心层设备、分布层设备、接入层设备等。在一些实施例中,网络配置器118可以直接在核心交换机上执行或部署——例如,其中核心交换机或其他网络设备120支持容器化应用程序。
如本文所述,在一些实施例中,一旦在客户端设备104和数据中心102之间启动应用程序会话——例如,经由客户端应用程序122和主机应用程序112——服务质量(QoS)监视器116可以监控在两个或更多个DC ISP 110上的应用程序会话的服务质量,并且可以使用网络配置器118和网络设备120来指导在选定的DC ISP 110(例如,具有最佳服务质量的DC ISP 110)上的路由。在一些示例中,这可能包括从当前的DC ISP 110切换到不同的或备用的DC ISP 110,以增加应用程序会话的QoS。为了实现这一点,在一些实施例中,网络设备120的内部策略可以被更新,以有利于特定的DC ISP 110——例如,通过更新BGP的导入路由图。在一些示例中,除了更新导入路由图或作为更新导入路由图的替代方法,还可以更新导出路由图——例如,通过将自治系统前缀预置到分组的BGP报头中——以影响来自客户端设备104的入口流量也通过所需的DC ISP 110传输。在一些实施例中,网络协议属性可以在主机应用程序112中被改变,以优先选择DC ISP110之一。例如,IP网络协议的属性(例如,差异化服务代码点(DSCP)字段)可以被改变,这可能导致流量通过特定的出口ISP进行路由。在这样的示例中,网络路由可以通过基于策略的路由(PBR)进行配置,该基于策略的路由基于DSCP值覆盖正常的BGP路由(例如,默认或由网络配置器指定的BGP路由)来进行路由。
数据中心102可以包括调度器114,以帮助与客户端设备104的网络测试器124协同执行网络测试,和/或确定来自客户端设备104的应用程序会话托管请求在其他数据中心102之间以及之中的分配和转发。例如,在数据中心102的调度器114确定数据中心102不能托管应用程序会话的情况下——例如,由于容量限制、拥塞、资源不足、负载平衡等——调度器114可以将请求路由到其他数据中心102以找到合适的数据中心来托管应用程序会话。一旦确定了合适的数据中心102,所选数据中心102的连接信息(例如,IP地址)可以被发送到客户端设备104,以便客户端设备104使用所选数据中心102执行应用程序会话。
客户端设备104可以包括一个或更多个终端用户设备类型,例如智能手机、笔记本电脑、平板电脑、台式电脑、可穿戴设备、游戏主机、可包括AI代理或助手的智能家居设备、虚拟或增强现实设备或系统,和/或其他类型的设备。在一些示例中,客户端设备104可以包括设备的组合(例如,智能手机和通信耦合的智能手表或其他可穿戴设备),以及与之相关的客户端应用程序122,包括与主机应用程序112的交互,可以使用一个或更多个设备执行(例如,智能手机应用程序向智能手表应用程序推送通知,用户向智能手表提供输入,表示输入的数据通过智能手机传递到系统100的另一个设备)。
客户端设备104可以包括一个或更多个输入/输出设备,例如键盘、鼠标、控制器、触摸屏、显示器、扬声器、麦克风、耳机、头盔(例如,可根据用户动作提供输入的AR、VR等)和/或其他输入/输出设备类型。因此,在一些实施例中,应用程序会话可以包括从客户端设备104到数据中心102以及从数据中心102到客户端设备104的数据流。该数据流可以包括但不限于来自客户端设备104的音频流、来自数据中心102的音频流、来自数据中心102的视频流、来自客户端设备104的输入流和/或其他流类型。
客户端设备104可以包括客户端应用程序122,其可以——与主机应用程序112一起——执行应用程序会话。作为示例,在客户端应用程序122和主机应用程序112支持云游戏的情况下,客户端应用程序122可以访问主机应用程序112的API以执行特定游戏的实例(例如,应用程序会话)。因此,在实施例中,由网络测试器124执行的应用程序特定测试可以对应于使用云游戏系统进行的特定类型的游戏。类似地,云VR的应用程序会话可以对应于云VR实例,远程桌面的应用程序会话可以对应于远程桌面实例,等等。在任何实施例中,应用程序可以使用数据的实时流式传输执行——例如,为了满足应用程序的高性能、低延迟性质。因此,网络测试可以对应于实时流式传输。例如,应用程序特定的测试可以被执行,以便合适的数据中心能够执行应用程序会话数据的实时流式传输。
网络测试器124可以执行或导致一个或更多个网络测试的执行(例如,由数据中心102)。例如,网络测试可以包括延迟测试、抖动测试、丢包测试、带宽测试、其他测试类型或其组合。在一些示例中,网络测试可被用于使用配置文件生成器126生成应用程序配置文件。例如,对于给定的客户端应用程序122、应用程序会话、客户端应用程序122内的子应用程序或程序等,网络测试器124可以执行应用程序特定的测试,以确定客户端设备104和相关本地网络(例如,包括Wi-Fi、以太网、客户端ISP 108或其组合)执行客户端应用程序122(或其应用程序会话)的能力。在一些实施例中,配置文件生成器126可以在应用程序级别上生成配置文件——例如,对于云游戏,应用程序配置文件可以用于客户端应用程序122的任何使用,例如用于第一人称射击游戏类型、体育游戏、战略游戏以及任何其他游戏类型。在其他实施例中,应用程序配置文件可以是特定于子应用程序类型的——例如,对于云游戏,可以生成第一人称射击者类型的游戏的第一应用程序配置文件,体育游戏的第二应用程序配置文件,等等。在进一步的实施例中,应用程序配置文件可以对应于客户端应用程序122执行的每个单独的程序——例如,对于云游戏,可以为每个单独的游戏生成一个应用程序配置文件,对于深度学习,可以为每个神经网络模型或深度学习框架生成应用程序配置文件,等等。在另一个实施例中,应用程序配置文件可以对应于程序间类型——例如,对于云游戏环境中的第一人称射击游戏,可以为第一人称射击游戏内的夺旗游戏类型生成第一应用程序配置文件,并且可以为团队死亡匹配游戏类型生成第二应用程序配置文件。因此,应用程序配置文件可以由配置文件生成器126生成——并且基于由网络测试器124执行的网络测试——用于客户端应用程序122内的不同粒度水平。
应用程序配置文件可以对应于客户端设备104在玩游戏期间可以有效支持的流的质量。例如,应用程序配置文件可以包括诸如图像分辨率(例如,720p、1080p、4K、8K等)、比特率、音频质量(例如,进入或来自客户端设备104的)和/或其他信息之类的信息——如本文所述——这些信息在为应用程序会话选择合适的数据中心102时可以为系统100提供信息,并且为选定的数据中心102提供信息以确定到客户端设备104的流的质量——例如,用于发送支持不降低性能的最高质量的流,但也不发送客户端设备104和/或相关本地网络无法支持的太高质量的流。因此,应用程序配置文件可用于满足特定用户对特定应用程序会话的质量期望和要求,以及也用于在数据中心102处负载平衡(例如,将应用程序会话传递到不太拥塞的数据中心102)和节约资源(例如,在可以接受部分的或虚拟的GPU(vGPU)时,不为应用程序会话分配整个GPU 102)。
因此,应用程序配置文件可以——在实施例中——存储在客户端设备104上以便在向一个或更多个数据中心102提交应用程序会话的托管请求时,应用程序配置文件(或与其对应的信息)可以包括在请求中。在一些实施例中,应用程序配置文件可以另外或替代性地存储在一个或更多个数据中心102上(或未示出的替代设备,例如可以为用户维持应用程序配置文件的网络支持平台的另一个计算设备)。在任何示例中,应用程序配置文件可以与系统100的身份管理系统(IDS)相关联。
在一些实施例中,应用程序配置文件可以对应于网络测试的结果。例如,应用程序配置文件可以包括延迟值、丢包值、抖动值、带宽值和/或其他值,并且该信息可以被托管应用程序会话的数据中心102用于确定流的质量(例如,视频流、到客户端设备104的音频流、来自客户端设备104的音频流、来自客户端设备104的输入流等)。在其他实施例中,应用程序配置文件可以对应于流的已知(或测试)支持的质量,并且可以包括图像质量(例如,标准动态范围(SDR)与高动态范围(HDR))、音频质量、编码等数据。例如,应用程序配置文件可以包括对应于编码器设置的信息(或可用于确定对应于编码器设置的信息)、编码协议(例如,实时消息传输协议(RTMP)、通用媒体应用程序格式(CMAF)等)、视频编解码器类型、帧率、关键帧序列、音频编解码器、比特率编码类型、比特率、像素长宽比(例如,方形、4:3、16:9、24:11等)、帧类型(例如,逐行扫描、两个B帧、一个参考帧)、熵编码类型、音频采样率、音频比特率和/或其他设置。
为了进行网络测试,并参考图2A,客户端设备104的网络测试器124可以在客户端设备104和多个数据中心102之间执行初步的网络测试——例如,测试延迟。例如,客户端设备104可以——例如,通过请求信号204A、204B和204C——查询暴露的API,以确定客户端设备104可用的数据中心102,并且客户端设备104可以执行(或使每个数据中心102执行)初步网络测试。在一些实施例中,如图所示,API可以返回区域的DNS信息(例如,区域202A、202B和202C,它们可以对应于州、国家、大陆等的区域),并且请求信号204可以被引导到基于区域的IP地址。一旦收到请求信号204,请求信号204可被转发到该区域内的特定数据中心。该区域内的数据中心102的选择可以基于交替选择——例如,对于区域202A,来自第一客户端设备104的第一请求信号204可以被传递到数据中心102A,来自客户端设备104的第二请求信号204可以被传递到数据中心102B,第三请求信号204可以被传递到该数据中心102A,以此类推。在其他实施例中,区域202的数据中心102的选择可以基于区域202中的每个数据中心102处的拥塞、容量、计算资源、硬件类型等。使用区域而不是将请求引导向每个数据中心可以减少测试的运行时间,因为需要执行较少的测试(例如,同一区域的数据中心102可以假定为具有相同的性能特征)。然而,在一些实施例中,暴露的API可以向客户端设备104提供特定的数据中心地址,并且请求信号204可能不是基于区域的。
在初步测试是针对延迟的情况下,初步网络测试可以返回每个数据中心102的延迟值——例如,一个或更多个分组可以从客户端设备104传输到数据中心102,一个或更多个分组可以从数据中心102传输到客户端设备104,或其组合,并且可以计算传输的时间以确定延迟分数。一旦知道延迟值,客户端设备104可以选择——或一个或更多个数据中心102的调度器可以选择——初始主机数据中心102,供客户端设备104执行网络测试。例如,可以选择具有最低延迟的数据中心102,可以选择延迟阈值以下的任何数据中心102,和/或可以使用其他选择标准。
一旦选择了数据中心102,客户端设备104可以将另一个请求信号204发送到所选择的数据中心102,以执行一个或更多个额外的网络测试。例如,在选择了数据中心102A的情况下,客户端设备104可以向数据中心102A发送对抖动测试、丢包测试、带宽测试、延迟测试和/或另一类型的测试的请求。然后,数据中心102的调度器114和/或客户端设备104的网络测试器124可以执行一个或更多个网络测试。在一些实施例中,网络测试可以使用应用程序特定的流量执行,如本文所述。例如,在执行带宽测试时,对于云游戏环境中的低延迟、高性能游戏,标准的、非应用程序特定的带宽测试可能不会返回准确的结果。这可能是标准带宽测试与游戏相关的突发性网络流量不相似的结果。例如,在低延迟游戏的高延迟连接下,当对客户端设备104的输入被传输到托管数据中心102时,视频流被更新,并且被客户端设备104接收和显示,视觉可能会太晚——导致体验不佳或导致用户在游戏中表现不佳。为了说明这一点,在请求带宽测试时,该请求可以指示网络测试所对应的游戏,而数据中心102A可以生成与该游戏对应的模拟网络流量。因此,客户端设备104的本地网络的带宽的测试结果可以更准确地反映特定游戏的网络带宽。然后,该带宽信息可以与客户端设备104的应用程序配置文件相关联。类似地,可以使用模拟的应用程序特定的流量执行其他测试,以便生成直接对应于客户端设备104和相关本地网络能力的应用程序配置文件,以支持应用程序的应用程序会话(例如,在云游戏环境中该游戏的游戏实例)。
应用程序配置文件可以定期更新。例如,应用程序配置文件可以以循环的时间间隔更新——例如,每周、每月等——和/或可以基于网络特性的变化而被更新。例如,当新的数据中心102对客户端设备104可用时,鉴于新的数据中心102,应用程序配置文件可以被更新。作为另一个示例,当客户端设备104的本地网络发生变化时——例如,由于用户将客户端设备104移动到新的位置,更新他们的家庭网络等——应用程序配置文件可以被更新。
在一些实施例中,面向用户的信息可以基于网络测试生成。例如,在网络连接不强、带宽较低等情况下,可以为用户生成建议,表明——在用户设备104通过Wi-Fi连接的情况下——向路由器靠近,使用5ghz代替2.4ghz,或反之亦然,等等。作为另一个示例,建议可以是让用户调整他们的设备的设置,升级他们与客户端ISP 108的互联网速度,等等。因此,一旦用户进行了更新,网络测试可以再次运行,从而更准确地确定客户端设备104和相关网络为用户提供对于应用程序的最佳质量设置的能力。
现在参考图2B,一旦生成了应用程序配置文件,客户端设备104可以向数据中心102发送托管请求信号206,请求该数据中心102或另一个数据中心102托管应用程序会话。例如,当用户向客户端设备104提供输入,表明用户想要启动应用程序会话(例如,想要参与云游戏环境中的游戏实例),客户端设备106可以生成并传输托管请求信号206。在一些实施例中,类似于关于图2A的描述,可以进行初步的网络测试——例如,延迟测试——以确定和选择数据中心102A来传输托管请求信号206。一旦确定了所选的数据中心102A,托管请求信号206可以被传送到数据中心102A。初步网络测试可以返回一个以上合适的数据中心102(例如,具有可接受的延迟的一个以上的数据中心102)。在这样的示例中,托管请求信号206可以包括与其他合适的数据中心102的地址(例如,IP地址)相对应的数据,这可以被数据中心102A用来确定在哪里发送转发请求信号208。在一些实施例中,托管请求信号206可以进一步包括与客户端设备104的应用程序配置文件相对应的数据,以便数据中心102A可以确定流的质量、数据中心102A是否可以托管应用程序会话,和/或可以在转发请求信号208中包括应用程序配置文件信息。
数据中心102A的调度器114可以接收托管请求信号206,并确定是否托管或转发应用程序会话。在一些实施例中——并且基于托管请求信号206中的数据——调度器114可以确定应用程序类型(或程序类型,例如特定游戏或游戏类型)和相关的应用程序性能要求。例如,为了使特定的应用程序正确或有效地执行,该应用程序可能需要低于阈值的延迟,高于阈值的比特率等,并且该信息可以被使用——结合来自应用程序配置文件的性能要求——以确定数据中心102A是否能够托管应用程序会话。在数据中心102A不能托管应用程序会话的情况下,应用程序性能要求、应用程序配置文件信息和/或其他信息可以被包括在到其他数据中心102的转发请求信号208中。
调度器114——例如,基于确定数据中心102A不能托管应用程序会话——可以将一个或更多个转发请求信号208传送到其他合适的数据中心102。在实施例中,合适的数据中心102可以基于来自客户端设备104的托管请求信号206的数据来确定,该信号包括与满足来自初步网络测试的一个或更多个值(例如,延迟值)的其他数据中心102对应的数据。在一些实施例中,除了初步网络测试的结果或作为其替代,合适的数据中心102可以基于以下来选择:应用程序性能要求(例如,可以知道某些数据中心102不能支持特定的应用程序)、网络性能要求(例如,可以知道某些数据中心102不能支持客户端设备104和相关网络可以处理的流的质量,或者某些数据中心102的DC ISP 110不能与客户端ISP 108很好地互动)、硬件限制(例如,可以知道某些数据中心102没有用于生成所需质量的流的硬件,这可能包括GPU、CPU、存储器、GPU、CPU或存储器的特定型号或能力等)。在图2B的示例中,适合的数据中心102可能包括数据中心102B、102C和102D,而数据中心102E可能已被确定为不合适(例如,延迟可能太高,由于数据中心102E在区域202C中,区域202C可能距离客户端设备104的位置是遥远的距离,例如,500多英里,数据中心102E可能没有必要的硬件来生成高质量的流,例如使用光线跟踪或路径跟踪技术生成的视频流,等等)。另一个数据中心102——如数据中心102E——可能不适合的相同原因也可以由选定的数据中心102A分析,以确定该数据中心102A不能托管应用程序会话。
转发请求信号208可以一次全部传送到每个合适的数据中心102,传送到合适的数据中心的子集等,或者可以一次传送到一个合适的数据中心102,并基于拒绝转发请求信号208来传送到额外的数据中心102。在单独传送转发请求信号208的情况下,传送转发请求信号208的顺序可以根据初步网络测试数据(例如,最低延迟在先,最高延迟在后)、与数据中心的距离(例如,离数据中心102A最近的数据中心102在先,离数据中心102A更远的数据中心102在后)和/或一些其他标准来确定。例如,数据中心102可以总是先转发到同一区域202的数据中心,然后当区域202中的数据中心102都不接受来自转发请求信号208的转发请求时,可以考虑其他区域202。
转发请求信号208可以由接收数据中心102的调度器114分析,并且调度器114可以——鉴于所有可用的信息——确定该数据中心是否可以托管应用程序会话。如果数据中心102不能托管应用程序会话,则数据中心102可以向数据中心102A返回拒绝信号(未图示)。在图2B的示例中,数据中心102B和102C可以拒绝转发请求,而数据中心102D可以接受转发请求信号。一旦接受,数据中心102A的调度器114可以接收此信息,并将接受信号(未图示)传送到客户端设备104。接受信号可以包括表示数据中心102D的地址的数据,因此客户端设备104可以建立与数据中心102D的通信耦合,并且数据中心102D可以托管客户端应用程序122和在数据中心102D上执行的主机应用程序112之间的应用程序会话。
参照图2C,在一些实施例中,数据中心102A可能适合于托管应用程序会话——例如,数据中心102A可能具有必要的硬件、网络特性等,以托管游戏而不降级——但仍可将请求转发给另一个数据中心102。例如,数据中心102A还可以监控拥塞,并且,当数据中心102A——基于历史数据或当前可用的数据(例如,大量的用户队列或最近请求初始化应用程序的大波用户)——预计在当前时间或可能托管应用程序会话的未来时间流量激增时,数据中心102A可以尝试将请求(例如,通过转发请求信号208D)转发到另一个合适的数据中心102,该另一个合适的数据中心没有相同的拥塞问题,但仍然满足应用程序会话的服务质量要求。例如,数据中心102A的调度器114可以存储其他数据中心的历史数据,并且可以确定具有较少拥塞的数据中心(例如,数据中心102A可能在美国西海岸,并且托管请求信号206可能在太平洋标准时间晚上9:00收到,此时大流量是正常的;然而,数据中心102E可能在美国东海岸,此时是东部时间晚上12:00,流量较轻)。在一些实施例中,除了拥塞或预期流量之外,或与之交替,在确定是否转发请求时,可以考虑到应用程序会话的性能要求。例如,在游戏不需要低延迟的情况下,数据中心102A可以为玩延迟敏感游戏的用户保存自己,并将请求传递给数据中心102E以托管应用程序会话——例如,因为数据中心102E可以满足游戏的延迟要求,即使离客户端设备104更远。因此,除了确定数据中心102是否可以支持应用程序会话的性能要求而不降级外,调度器114可以分析其他因素以确定是在本地托管应用程序会话还是将应用程序会话转发到另一个数据中心102。
参照图2D,一旦应用程序会话被启动,QoS指标可由QoS监视器116监测,以确定应用程序会话的网络流量路由设置。例如,对于数据中心102D来说,不同的DC ISP 110可能比其他DC ISP 110表现得更好,在应用程序会话期间可以监测不同的DC ISP 110的性能,以确定是否应进行任何路由更新。因此,可以监测当前的DC ISP 110A的QoS(例如,应用程序会话产量或其他应用程序质量指标),可以监测DC ISP 110B的相同或类似的指标。DC ISP110的内部网络质量问题可能会对应用程序会话的性能产生不利影响,数据中心102D的网络配置器118可以从QoS监视器116接收网络流量应该从DC ISP 110A切换到DC ISP 110B的指示。因此,如果应用程序会话性能低于阈值,并且在另一个DC ISP 110上的性能更好,QoS监视器116可以提交警报,以将网络流量切换到包括性能更好的DC ISP 110B的网络路径。在一些实施例中,应用程序性能指标可由QoS监视器从应用程序流式传输指标中查询。
QoS监视器116可以使用网络性能指标(例如,延迟、丢包、抖动、与不同的DC ISP110相关的成本、与不同的DC ISP 110相关的容量等)和/或应用程序性能指标(例如,流式传输会话产量、应用程序QoS指标等)作为输入,来监控网络和/或应用程序性能。这些输入可以通过在客户端设备104和数据中心102之间以及之中传输测试探针(如ping)和/或模拟应用程序特定的网络流量,并分析所产生的通信以确定网络和/或应用程序性能指标来确定。例如,可以暴露REST接口(例如,API),以使QoS监视器116能够发布网络路径信息,例如实际路径信息(例如,哪些自治系统被配置为与其他自治系统通信)、网络性能指标(和/或可被分析以确定其的数据)和/或应用程序性能指标(或可被分析以确定其的数据)。
QoS监视器116可以根据网络流量信息的类型和/或其间网络流量要被监控的设备分布在系统100内。因此,QoS监视器116可以包括在数据中心102上执行的监视器(例如,用于监测数据中心102和客户端设备104之间的出口和/或入口流量,并将信息传送回客户端设备104的QoS监视器116)和/或在客户端设备104上执行的QoS监视器116(例如,用于测试客户端设备104和数据中心102之间的流量,并将信息传送回数据中心102的QoS监视器116)。在一些实施例中,单个QoS监视器116可以在两个或更多的数据中心102和/或客户端设备104之间分割。例如,QoS监视器116的第一部分可以在数据中心102上执行,第二部分可以在客户端设备104上执行,并且通信可以在这两者之间交换,以监测各种网络路径并测试端到端网络和/或应用程序性能指标。
一旦更新的路由路径被确定,网络路由的变化可以作为消息公布或发布到网络配置器118。网络配置器118可以在目标网络端点(例如,网络设备120)上实施路由更新,例如通过更新核心交换机的导入路由图和/或导出路由图(例如,通过更新特定出口端口的本地偏好值和/或将自治系统前缀预置到导出路由图以使用路由注入器控制入口流量)。
现在参照图3-4,本文描述的方法300和400的每个框包括可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,不同功能可以通过处理器执行存储在存储器中的指令来实现。方法300和400还可以体现为存储在计算机存储介质上的计算机可用指令。方法300和400可由独立应用程序、服务或托管服务(独立或与其他托管服务组合)或到另一产品的插件提供,仅举几例。此外,通过示例的方式,关于图1的系统100描述方法300和400。然而,这些方法可附加地或替换地由任何一个系统或系统的任何组合来执行,包括但不限于本文中描述的那些系统。
现在参考图3,图3是根据本公开的一些实施例的显示用于应用程序会话分配和转发的方法300的流程图。该方法300,在块B302处,包括接收表示托管应用程序会话的第一请求的数据。例如,数据中心102A可以从客户端设备104接收托管请求信号206,该信号可以包括指示客户端设备104的应用程序类型(例如,特定游戏)和应用程序配置文件的数据。
该方法300,在块B304处,包括确定与应用程序会话相关联的应用程序的应用程序性能要求。例如,数据中心102A可以确定应用程序类型——或程序类型,例如游戏流式传输环境中的特定游戏——以及应用程序的相关性能要求(例如,延迟、硬件等)。
该方法300,在块B306处,包括基于对用户设备的流式传输配置文件的分析和应用程序性能要求,确定不在第一数据中心处托管应用程序会话。例如,数据中心102A可以基于确定网络质量、硬件资源、拥塞问题和/或其他标准没有得到满足而这些标准将允许应用程序性能要求和应用程序配置文件要求得到满足,而确定不托管应用程序会话。
该方法300,在块B308处,包括将表示托管应用程序会话的第二请求的数据发送到第二数据中心。例如,数据中心102A可以向数据中心102B发送转发请求信号208,包括与应用程序性能要求和应用程序配置文件性能要求相对应的数据。
该方法300,在块B310处,包括从第二数据中心接收表示接受托管应用程序会话的数据。例如,数据中心102A可以响应于转发请求信号208而从数据中心102B接收接受信号。
该方法300,在块B312处,包括基于接受,使对应于应用程序会话的网络流量被路由到第二数据中心。例如,数据中心102A可以向客户端设备104传输数据,数据指示应用程序会话将由数据中心102B托管,并且应用程序会话可以使用数据中心102B执行——例如,与应用程序会话对应的网络流量可以被传输到数据中心102B。
现在参考图4,图4是根据本公开的一些实施例的显示用于应用程序配置文件生成的方法400的流程图。该方法400,在块B402处,包括确定具有小于阈值延迟的相关延迟的多个数据中心。例如,客户端设备104可以与多个数据中心102执行初步网络测试,以确定适合应用程序会话的数据中心。
该方法400,在块B404处,包括传输执行针对应用程序定制的网络性能测试的请求。例如,一旦选择了数据中心102,客户端设备104可以传输使用将成为应用程序会话的主体的应用程序的模拟流量执行一个或更多个网络测试的请求。
该方法400,在块B406处,包括向网络性能测试交换网络流量和相关性能指标。例如,表示应用程序网络流量的数据可以在客户端设备104和数据中心102之间传输,并且从测试中收集的数据可以在设备之间共享。
该方法400,在块B408处,包括基于相关的性能指标生成与应用程序对应的应用程序配置文件。例如,配置文件生成器126可以基于来自网络测试的相关性能指标(例如,延迟、丢包、抖动、带宽等)生成对应于应用程序类型(或其子程序)的应用程序配置文件。例如,可以进行视频流质量、音频流质量、输入流质量和/或其他质量确定。
该方法400,在块B410处,包括传输表示对应用程序会话的主机的请求的数据,该请求包括对应于应用程序配置文件的信息。例如,在为应用程序会话寻找合适的主机时,该应用程序配置文件信息可以包括在到数据中心102的托管请求信号206中。
示例游戏流式传输系统
现在参照图5,图5是根据本公开的一些实施例的用于游戏流式传输系统500的示例系统图。图5包括(一个或更多个)游戏服务器502(其可以包括与图6的示例计算设备600类似的组件、特征和/或功能),(一个或更多个)客户端设备504(其可以包括与图6的示例计算设备600类似的组件、特征和/或功能),和(一个或更多个)网络506(其可以类似于本文描述的(一个或更多个)网络)。在本公开的一些实施例中,系统500可被实现。
在系统500中,对于游戏会话,(一个或更多个)客户端设备504可以仅响应于到(一个或更多个)输入设备的输入而接收输入数据,将输入数据传输到(一个或更多个)游戏服务器502,从(一个或更多个)游戏服务器502接收经编码的显示数据,并且在显示器524上显示该显示数据。因此,计算上更密集的计算和处理被卸载到(一个或更多个)游戏服务器502(例如,渲染(具体为光线或路径跟踪)以用于(一个或更多个)游戏服务器502的(一个或更多个)GPU执行游戏会话的图形输出)。换言之,游戏会话从(一个或更多个)游戏服务器502被流传输到(一个或更多个)客户端设备504,由此降低(一个或更多个)客户端设备504对图形处理和渲染的要求。
例如,关于游戏会话的实例化,客户端设备504可以基于从(一个或更多个)游戏服务器502接收到显示数据而将游戏会话的帧显示在显示器524上。客户端设备504可以接收到(一个或更多个)输入设备中的一个的输入并且作为响应生成输入数据。客户端设备504可经由通信接口520且经由网络506(例如,互联网)将输入数据传输到游戏服务器502,且游戏服务器502可经由通信接口518接收输入数据。CPU可以接收输入数据,处理输入数据,并且向GPU传输数据,该数据使GPU生成游戏会话的呈现。例如,输入数据可以表示用户在游戏中的角色的移动、发射武器、重新装载、传球、转动车辆等。渲染组件512可以渲染游戏会话(例如,表示输入数据的结果),并且渲染捕获组件514可以捕获游戏会话的渲染作为显示数据(例如,作为捕获游戏会话的渲染的帧的图像数据)。游戏会话的渲染可以包括使用一个或更多个并行处理单元(诸如GPU)计算的光线或路径跟踪的照明和/或阴影效果,所述一个或更多个并行处理单元可以进一步使用一个或更多个专用硬件加速器或处理核来执行一个或更多个游戏服务器502的光线或路径跟踪技术。编码器516可接着对显示数据进行编码以产生经编码的显示数据,且经编码显示数据可经由通信接口518通过网络506发射到客户端设备504。客户端设备504可经由通信接口520接收经编码显示数据,且解码器522可解码经编码显示数据以生成显示数据。客户端设备504随后可经由显示器524来显示显示数据。
示例计算设备
图6为适合用于实现本公开一些实施例的示例计算设备600的框图。计算设备600可以包括直接或间接耦合下列设备的互连系统602:内存604,一个或更多个中央处理单元(CPU)606,一个或更多个图形处理单元(GPU)608,通信接口610,输入/输出(I/O)端口612,输入/输出组件614,电源616,一个或更多个呈现组件618(例如显示器)和一个或更多个逻辑单元620。
尽管图6的各个框被示为经由具有线路的互连系统602连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件618可以被认为是I/O组件614(例如如果显示器为触摸屏)。作为另一个示例,CPU 606和/或GPU608可以包括内存(例如,内存604可以表示除了GPU 608、CPU 606和/或其他组件的内存以外的存储设备)。换言之,图6的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图6的计算设备的范围内。
互连系统602可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统602可以包括一种或更多种链路或总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 606可以直接连接到存储器604。此外,CPU 606可以直接连接到GPU 608。在组件之间存在直接或点对点连接的情况下,互连系统602可以包括PCIe链路来执行该连接。在这些示例中,计算设备600中不需要包括PCI总线。
内存604可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备600访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,内存604可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备600访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
CPU 606可以被配置为执行计算机可读指令中的至少一些,以便控制计算设备600的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 606中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 606可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备600的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备600的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机制(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备600还可以包括一个或更多个CPU 606。
除了或替代CPU 606,GPU 608还可以被配置为执行至少一些计算机可读指令,以控制计算设备600的一个或更多个组件执行一个或更多个本文所述的方法和/或过程。一个或更多个GPU 608可以是集成GPU(例如,具有一个或更多个CPU 606)和/或一个或更多个GPU 608可以是离散GPU。在实施例中,一个或更多个GPU 608可以是一个或更多个CPU 606的协处理器。计算设备600可以使用GPU 608来渲染图形(例如,3D图形)或执行通用计算。例如,GPU 608可用于GPU上的通用计算(GPGPU)。GPU608可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU 608可以响应于渲染命令(例如经由主机接口接收的来自CPU 606的渲染命令)而生成用于输出图像的像素数据。GPU 608可以包括诸如显示内存之类的用于存储像素数据或任何其他合适的数据(例如GPGPU数据)的图形内存。显示内存可以作为内存604的部分而被包括。GPU 608可以包括(例如经由链路)并行操作的两个或更多GPU。链路可以直接连接GPU(例如,使用NVLINK),也可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU 608可以生成用于输出的不同部分或者用于不同输出的像素数据或GPGPU数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的内存,或者可以与其他GPU共享内存。
除了或替代CPU 606和/或GPU 608,逻辑单元620可以被配置为执行至少一些计算机可读指令,以控制计算设备600的一个或更多个组件来执行本文描述的一种或更多种方法和/或过程。在实施例中,CPU 606、GPU608和/或逻辑单元620可以离散地或联合地执行方法、过程和/或其部分的任何组合。一个或更多个逻辑单元620可以是一个或更多个CPU 606和/或一个或更多个GPU 608的一部分和/或集成在其中,和/或一个或更多个逻辑单元620可以是CPU 606和/或GPU 608的离散组件或以其他方式在其外部。在实施例中,一个或更多个逻辑单元620可以是一个或更多个CPU606和/或一个或更多个GPU 608的处理器。
逻辑单元620的示例包括一个或更多个处理核心和/或其组件,例如张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流多处理器(SM)、树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU))、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或外围组件互连快速(PCIe)元件等。
通信接口610可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备600能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口610可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网或InfiniBand通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。
I/O端口612可以使得计算设备600能够逻辑地耦合到包括I/O组件614、呈现组件618和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备600中。说明性I/O组件614包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、浏览仪、打印机、无线设备等等。I/O组件614可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备600的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备600可以包括诸如立体相机系统之类的深度相机、红外相机系统、RGB相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备600可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备600用来渲染沉浸式增强现实或者虚拟现实。
电源616可以包括硬接线电源、电池电源或者其组合。电源616可以向计算设备600供电以使得计算设备600的组件能够操作。
呈现组件618可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件618可以接收来自其他组件(例如GPU 608、CPU 606等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
示例网络环境
适用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图6的计算设备600的一个或更多个实例上实现—例如,每个设备可以包括计算设备600的类似组件、特征和/或功能。
网络环境的组件可以通过网络彼此通信,网络可以是有线、无线或两者。网络可以包括多个网络,或者多个网络中的网络。举例来说,网络可以包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(例如因特网和/或公共交换电话网(PSTN))、和/或一个或更多个专用网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点(以及其他组件)之类的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下服务器可能不包括在网络环境中),以及一个或更多个客户端-服务器网络环境(在这种情况下一个或更多个服务器可以包含在网络环境中)。在对等网络环境中,本文描述的关于服务器的功能可以在任意数量的客户端设备上实现。
在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、它们的组合等。基于云的网络环境可以包括框架层、作业调度器、资源管理器,以及在一个或更多个服务器上实现的分布式文件系统,这些服务器可以包括一个或更多个核心网络服务器和/或边缘服务器。框架层可以包括用于支持软件层的软件和/或应用层的一个或更多个应用的框架。软件或应用可分别包括基于网络的服务软件或应用。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是但不限于一种类型的免费且开源软件网络应用框架,例如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)。
基于云的网络环境可以提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些各种功能中的任何一个都可以分布在来自(例如,可以分布在州、地区、国家、全球等地的一个或更多个数据中心的)中央或核心服务器的多个位置。如果到用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,仅限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
客户端设备可以包括本文关于图6描述的示例计算设备600的至少一些组件、特征和功能。作为示例而非限制,客户端设备可以体现为个人计算机(PC)、膝上型计算机、移动设备、智能手机、平板计算机、智能手表、可穿戴计算机、个人数码助理(PDA)、MP3播放器、虚拟现实头戴式显示器、全球定位系统(GPS)或设备、视频播放器、摄像机、监视设备或系统、车辆、船只、飞行器、虚拟机器、无人机、机器人、手持通信设备、医院设备、游戏设备或系统、娱乐系统、车载计算机系统、嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描述设备的任意组合或任何其他合适的设备。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素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 (20)

1.一种方法,包括:由第一数据中心接收表示来自用户设备的对应用程序会话的托管的第一请求的数据,所述第一请求指示与所述用户设备相关联的流式传输配置文件;至少部分地基于所述第一请求,确定与所述应用程序会话相关联的应用程序的应用程序性能要求;至少部分地基于对所述流式传输配置文件和所述应用程序性能要求的分析,确定不使用所述第一数据中心来托管所述应用程序会话;至少部分地基于所述信息,将表示托管所述应用程序会话的第二请求的数据发送到第二数据中心;使用调度器,从所述第二数据中心接收表示对托管所述应用程序会话的接受的数据;以及基于来自所述第二数据中心的所述接受,使与所述应用程序会话对应的网络流量被路由到所述第二数据中心。
2.根据权利要求1所述的方法,其中所述流式传输配置文件至少部分地基于网络测试而生成,所述网络测试包括特定于所述应用程序会话的所述应用程序的实时流式传输网络流量的传输。
3.根据权利要求2所述的方法,其中所述流式传输配置文件包括以下中的至少一个:由所述用户设备支持的音频质量、由所述用户设备支持的视频质量或所述用户设备的本地网络的带宽能力。
4.根据权利要求2所述的方法,其中所述网络测试包括抖动测试、丢包测试、带宽测试或延迟测试中的一个或更多个。
5.根据权利要求1所述的方法,其中所述应用程序是游戏应用程序,所述应用程序会话是所述游戏应用程序的游戏实例,并且所述第一数据中心和所述第二数据中心与云游戏环境相关联。
6.根据权利要求1所述的方法,其中至少部分地基于从网络测试返回的相关延迟低于阈值延迟来确定所述第一数据中心和所述第二数据中心。
7.根据权利要求1所述的方法,进一步包括:使用所述调度器在发送所述第二请求之前向第三数据中心发送表示托管所述应用程序会话的第三请求的数据;以及在所述第一数据中心处并从所述第三数据中心接收表示所述第三数据中心拒绝了所述第三请求的指示的数据,其中发送所述第二请求是至少部分地基于所述第三数据中心拒绝所述第三请求。
8.根据权利要求1所述的方法,其中所述确定不使用所述第一数据中心托管所述应用程序会话是至少部分地基于以下各项中的至少一项:预测所述第一数据中心在所述应用程序会话期间的拥塞情况;所述第一数据中心处的硬件不足以支持所述应用程序会话;或所述第一数据中心处的计算能力缺乏。
9.根据权利要求1所述的方法,进一步包括:测试所述第二数据中心的当前互联网服务提供商(ISP)和所述第二数据中心的替代ISP的服务质量指标;至少部分地基于所述服务质量指标,确定所述替代ISP比所述当前ISP具有更好的网络性能特征;以及更新所述第二数据中心处的路由策略,以使入口流量或出口流量中的至少一个被路由远离所述当前ISP并通过所述替代ISP。
10.一种方法,包括:至少部分地基于延迟测试,确定具有小于阈值延迟的相关延迟的多个数据中心;向所述多个数据中心中的数据中心传输执行针对应用程序定制的一个或更多个网络性能测试的请求;与所述数据中心交换与所述一个或更多个网络性能测试相对应的网络流量和相关性能指标;至少部分地基于所述相关性能指标生成与所述应用程序相对应的应用程序配置文件;以及在执行所述应用程序的应用程序会话之前,向所述多个数据中心中的一个或更多个数据中心传输表示对所述应用程序会话的托管的请求的数据,所述请求包括与所述应用程序配置文件相对应的信息。
11.根据权利要求10所述的方法,其中所述方法由终端用户设备执行。
12.根据权利要求10所述的方法,其中一个或更多个网络性能测试包括抖动测试、丢包测试、带宽测试或延迟测试中的至少一个。
13.根据权利要求10所述的方法,其中所述请求进一步指示所述应用程序的应用程序类型,并且所述方法进一步包括:从所述多个数据中心中的所述一个或更多个数据中心并至少部分地基于所述请求,接收与所述多个数据中心中的接受托管所述应用程序会话的所述请求的第二数据中心相对应的地址信息,所述请求至少部分地基于所述第二数据中心具有能够根据所述应用程序配置文件托管所述应用程序类型的计算资源而被接受。
14.根据权利要求10所述的方法,进一步包括:接收与所述多个数据中心中的接受所述请求的第二数据中心相对应的地址信息;在执行所述应用程序会话期间,通过所述第二数据中心的第一互联网服务提供商(ISP)进行通信;从所述第二数据中心接收更新的路由信息;以及至少部分地基于所述更新的路由信息,通过所述第二数据中心的第二ISP进行通信。
15.根据权利要求14所述的方法,其中所述更新的路由信息是至少部分地基于与所述第一ISP和所述第二ISP的所述应用程序会话相关的服务质量指标。
16.根据权利要求10所述的方法,其中所述请求进一步包括关于所述多个数据中心的信息,并且所述信息被所述多个数据中心中的所述一个或更多个数据中心的调度器用于将所述请求转发到所述多个数据中心中的其他数据中心。
17.一种系统,包括:一个或更多个处理器;一个或更多个存储器设备,其上存储指令,所述指令当使用所述一个或更多个处理器执行时,使所述一个或更多个处理器执行操作,所述操作包括:使用第一数据中心的调度器并从用户设备接收表示对应用程序会话的托管的请求的第一数据,所述第一请求包括对应于一个或更多个第二数据中心的信息;至少部分地基于所述第一请求,确定与所述应用程序会话相关联的应用程序的应用程序性能要求;确定所述第一数据中心的当前计算资源不能满足所述应用程序性能要求;至少部分地基于所述信息,使用所述调度器并向所述一个或更多个第二数据中心中的第二数据中心发送表示托管所述应用程序会话的第二请求的第二数据,所述第二请求包括所述应用程序性能要求;使用所述调度器并从所述第二数据中心接收表示对托管所述应用程序会话的接受的第三数据;以及使用所述调度器并向所述用户设备发送指示所述接受的第四数据,以便所述用户设备将对应于所述应用程序会话的网络流量路由到所述第二数据中心。
18.根据权利要求17所述的系统,其中所述第一请求和所述第二请求进一步包括所述用户设备的应用程序配置文件信息,所述应用程序配置文件信息至少部分地基于网络测试生成,该网络测试包括传输特定于所述应用程序会话的所述应用程序的网络流量。
19.根据权利要求17所述的系统,其中所述应用程序是游戏应用程序,所述应用程序会话是所述游戏应用程序的游戏实例,并且所述第一数据中心和所述一个或更多个第二数据中心与云游戏环境相关联。
20.根据权利要求17所述的系统,其中所述操作进一步包括:使用所述调度器在所述发送第二请求之前向所述一个或更多个第二数据中心中的第三数据中心,发送表示托管所述应用程序会话的第三请求的第五数据;以及在所述第一数据中心处并从所述第三数据中心接收表示所述第三数据中心拒绝了所述第三请求的指示的第六数据,其中发送所述第二请求是至少部分地基于所述第三数据中心拒绝所述第三请求。
CN202180063980.8A 2020-07-21 2021-07-07 云计算环境中的内容自适应数据中心路由和转发 Pending CN116210212A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/935,091 2020-07-21
US16/935,091 US11857872B2 (en) 2020-07-21 2020-07-21 Content adaptive data center routing and forwarding in cloud computing environments
PCT/US2021/040655 WO2022020092A1 (en) 2020-07-21 2021-07-07 Content adaptive data center routing and forwarding in cloud computing environments

Publications (1)

Publication Number Publication Date
CN116210212A true CN116210212A (zh) 2023-06-02

Family

ID=77412317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180063980.8A Pending CN116210212A (zh) 2020-07-21 2021-07-07 云计算环境中的内容自适应数据中心路由和转发

Country Status (4)

Country Link
US (1) US11857872B2 (zh)
CN (1) CN116210212A (zh)
DE (1) DE112021003383T5 (zh)
WO (1) WO2022020092A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11456941B2 (en) * 2020-07-24 2022-09-27 Nvidia Corporation Extensible network traffic engineering platform for increasing network resiliency in cloud applications
US11588842B2 (en) * 2020-09-28 2023-02-21 Charter Communications Operating, Llc Network anomaly detection and mitigation simulation tool
US11652725B2 (en) * 2021-04-19 2023-05-16 Rakuten Mobile, Inc. Performance testing of a test application in a network-as-a-service environment
US20220337493A1 (en) * 2021-04-19 2022-10-20 Rakuten Mobile, Inc Report generation from testing a test application in a network-as-a-service
US11609754B2 (en) * 2021-06-17 2023-03-21 Sap Se Tool for latency optimized system placement
US20230081673A1 (en) * 2021-09-13 2023-03-16 Guavus, Inc. DETERMINING QoE REQUIREMENTS FOR 5G NETWORKS OR HYBRID 5G NETWORKS
US11711279B2 (en) * 2021-10-26 2023-07-25 Juniper Networks, Inc. Application records using session information
US11818227B1 (en) * 2022-03-31 2023-11-14 Amazon Technologies, Inc. Application usage analysis-based experiment generation
CN115022334A (zh) * 2022-05-13 2022-09-06 深信服科技股份有限公司 流量分配方法、装置、电子设备及存储介质
CN114666640B (zh) * 2022-05-23 2023-03-07 创意信息技术股份有限公司 一种边缘网关接入服务器
WO2024008320A1 (en) * 2022-07-06 2024-01-11 Lenovo (Singapore) Pte. Ltd Discovery of devices in a virtual experience service in a wireless communication network
WO2024008319A1 (en) * 2022-07-06 2024-01-11 Lenovo (Singapore) Pte. Ltd Quality of service coordination for a virtual experience service in a wireless communications network

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142406B2 (en) * 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
EP3265191B1 (en) * 2015-03-06 2020-12-09 Sony Interactive Entertainment LLC Predictive instant play for an application over the cloud
CN112887360A (zh) * 2015-03-16 2021-06-01 利维帕尔森有限公司 资源的优先级排序及通信信道的建立
CN111919484A (zh) * 2018-03-23 2020-11-10 诺基亚技术有限公司 基于预测视频编码率分配无线电接入网络资源
US11077364B2 (en) * 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics

Also Published As

Publication number Publication date
US11857872B2 (en) 2024-01-02
US20220023755A1 (en) 2022-01-27
DE112021003383T5 (de) 2023-04-27
WO2022020092A1 (en) 2022-01-27

Similar Documents

Publication Publication Date Title
CN116210212A (zh) 云计算环境中的内容自适应数据中心路由和转发
Bittencourt et al. Mobility-aware application scheduling in fog computing
Chen et al. Reinforcement learning–based QoS/QoE‐aware service function chaining in software‐driven 5G slices
JP7118860B2 (ja) VoIPでメディア送信のための最適ネットワーク経路を選択するための方法とシステム、非一時的なコンピュータで読み取り可能な記録媒体
CN108355350B (zh) 一种基于移动边缘计算的应用服务接入方法及装置
WO2022222755A1 (zh) 业务处理方法、装置及存储介质
CN113364894B (zh) 用于网络端点间的媒体会话的方法和装置
CN108702394B (zh) 网络端点间的媒体会话
US11249796B2 (en) Method and apparatus for enhanced assertion management in cloud media processing
US10038759B2 (en) Method, management server, and computer-readable storage medium for supporting provision of service desired by client terminal by adaptively modifying network topology depending on properties of service
US20220226736A1 (en) Selection of virtual server for smart cloud gaming application from multiple cloud providers based on user parameters
US20140189092A1 (en) System and Method for Intelligent Data Center Positioning Mechanism in Cloud Computing
US11503525B2 (en) Method for adaptive link persistence in intelligent connectivity
US11297132B2 (en) Methods and devices for orchestrating selection of a multi-access edge computing server for a multi-client application
CN111211984B (zh) 优化cdn网络的方法、装置及电子设备
US11606309B2 (en) Multimedia content steering
JP2015165406A (ja) マルチメディア・マルチパーティ・ピアリング(m2p2)のためのシステムおよび方法
US11394620B1 (en) Network pattern matching
CN112152879B (zh) 网络质量确定方法、装置、电子设备和可读存储介质
US10212206B2 (en) Adaptive multi-control unit load balancing in a voice-over-IP system
US11330228B1 (en) Perceived content quality through dynamic adjustment of processing settings
US10044516B2 (en) Adaptive multi-control unit load balancing in a Voice-over-IP system
US10812547B1 (en) Broadcast streaming configuration
Shirmohammadi Delay Reduction in Cloud Gaming
JP2024518315A (ja) エッジアプリケーションサーバディスカバリと、アクティブ化されたエッジアプリケーションサーバ及び関連付けられたプロファイルの識別

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