CN113940044A - 用于经由中间装置管理分组流的系统和方法 - Google Patents
用于经由中间装置管理分组流的系统和方法 Download PDFInfo
- Publication number
- CN113940044A CN113940044A CN202080042421.4A CN202080042421A CN113940044A CN 113940044 A CN113940044 A CN 113940044A CN 202080042421 A CN202080042421 A CN 202080042421A CN 113940044 A CN113940044 A CN 113940044A
- Authority
- CN
- China
- Prior art keywords
- network
- application
- server
- client
- virtual
- 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
Links
Images
Classifications
-
- 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/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- 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/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- 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/2458—Modification of priorities while in transit
-
- 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/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
-
- 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/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/74—Admission control; Resource allocation measures in reaction to resource unavailability
- H04L47/746—Reaction triggered by a failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
可以通过向客户机和托管用于输送的资源的服务器之间的装置供应应用元数据和用户意图来优化虚拟应用和桌面输送。还可以引用应用来标记用于输送虚拟应用或桌面的数据分组。通过供应元数据并且用元数据标记分组,中间网络装置可以以目标QoS来提供数据分组流。此外,装置可以将网络资源分配规则(例如,防火墙和QoS配置)应用于由客户机相对于虚拟通道在带外(诸如互联网)检索的重定向内容。对于所访问的不同类型的资源,网络资源分配规则可能不同。装置还可以控制服务器上的输送代理,以基于网络状况修改通过虚拟通道建立的通信会话。
Description
相关申请的交叉引用
本申请要求于2019年9月30日提交的名称为“SYSTEMS AND METHODS FORMANAGING STREAMS OF PACKETS VIA INTERMEDIARY DEVICES”的美国专利申请No.16/588,638的优先权,后者作为于2019年9月30日提交的名称为“SYSTEMS AND METHODS FORMANAGING STREAMS OF PACKETS VIA INTERMEDIARY DEVICES”的美国专利申请No.16/588,280的继续申请根据35U.S.C.§120要求优先权,后者根据35U.S.C.§119(e)要求于2019年5月20日提交的名称为“OPTIMZING VIRTUAL APPLICATION DELIVERY USING APPLICATIONMETADATA”的美国临时专利申请No.62/850,348的优先权,上述申请中的每一个通过引用全部并入本文。
技术领域
本申请总地涉及通信和网络系统,包括但不限于用于输送虚拟应用和桌面的系统和方法。
背景技术
在网络计算环境中,通信通道可以用于在网络装置之间交换数据分组。
发明内容
提供本概述是为了以简化形式引入概念的选择,概念将在下面的具体实施方式中进一步描述。本概述不旨在识别关键特征或基本特征,也不旨在限制本文所包括的权利要求的范围。
中间网络装置可以驻留在客户机和服务器之间,并且可以控制客户机对在服务器中的一个上托管的资源的访问。中间网络装置的一个示例可以是软件定义的广域网(SD-WAN)。中间网络装置可以支持根据多流远程访问协议的通信,诸如独立计算架构(ICA)、高清晰度用户体验(HDX)显示远程协议和远程桌面协议(RDP)。通过多流远程访问,中间网络装置可以控制不同虚拟通道的服务质量(QoS)(例如,分组丢失、位速率、吞吐量、延迟和抖动的范围),并且可以具有用于输送各种资源的单独的端口。中间网络装置还可以执行与通信相关的其他功能,诸如数据压缩和高速缓存。
为了更好地利用中间网络装置的能力,可以通过向客户机和托管用于输送的资源的服务器之间的中间网络装置供应丰富的应用元数据和用户意图(也采用元数据的形式)来优化虚拟应用和桌面输送。应用元数据可以包括关于应用的操作的各种信息,诸如应用名称、类型和焦点中的用户元素等。可以由检测到的和/或预期的交互(例如,滚动、键入、控件的类型等)来推断用户意图。还可以引用应用来标识(例如,标记)用于输送虚拟应用或桌面的数据分组和/或虚拟通道。(与应用和/或用户意图相关联的)元数据可以与不同虚拟通道中的数据分组分开发送。通过供应元数据并且用元数据标记分组或虚拟通道,中间网络装置可以独立于数据分组的处理来控制服务质量(QoS),并且以目标QoS提供数据分组流。
此外,中间网络装置可以为相对于虚拟通道(例如,互联网)在带外的或者不包括在虚拟通道中并由客户机检索的重定向内容应用网络资源分配规则(例如,防火墙和/或QoS配置)。对于所访问的不同类型的资源,网络资源分配规则可能不同。例如,可以为使用虚拟通道的多流远程访问以及为通常的互联网浏览指定不同的QoS。在这些规则下,用户可能不允许直接观看来自主机网站的视频流(例如,不使用虚拟通道),但是可以重定向到虚拟通道中的一个来访问视频流。规则可以允许不同的加速技术,诸如浏览器内容重定向(BCR)、具有客户机侧抓取的多媒体重定向和闪存重定向等,以允许在传送数据分组时对网络资源进行精细控制。中间网络装置还可以指示或者控制服务器上的虚拟输送代理(VDA),以基于网络状况修改通过虚拟通道建立的通信会话。以这种方式,可以根据网络状况来分配网络资源。
本发明的至少一个方面涉及管理分组流的系统、方法和非暂时性计算机可读介质。客户机装置和服务器中间的网络装置可以从输送代理接收服务器上托管的并且客户机装置可访问的应用的元数据。元数据可以包括指示与应用的用户交互的数据。网络装置可以支持应用的多个虚拟通道以传送至少一个分组流。网络装置可以从输送代理接收至少一个分组流。至少一个分组流可以包括与元数据的部分相关联的标识符。网络装置可以根据与至少一个分组流相关联的元数据的部分,确定要分配给至少一个分组流的网络资源。
在一些实施例中,元数据可以包括应用的标识。在一些实施例中,交互数据可以包括关于以下至少一项的信息:激活的用户界面元素、事件通知、通过输入装置的用户输入或者用户访问的统一资源定位器(URL)。
在一些实施例中,网络装置可以经由与多个虚拟通道分离的虚拟通道从输送代理接收应用的元数据。在一些实施例中,网络装置可以向客户机装置发送应用的元数据。在一些实施例中,网络装置可以从客户机装置接收第二分组流。第二分组流中的每一个可以包括与元数据的部分相关联的标识符。在一些实施例中,网络装置可以根据与第二分组流相关联的元数据的部分来确定要分配给第二分组流中的至少一个的网络资源。
在一些实施例中,网络装置可以从客户机装置接收关于客户机装置处的活动的第二元数据。在一些实施例中,网络装置可以从客户机装置接收第二分组流。第二分组流中的每一个可以包括与第二元数据的部分相关联的第二标识符。在一些实施例中,网络装置可以根据与第二分组流相关联的第二元数据的部分来确定要分配给第二分组流中的至少一个的网络资源。
在一些实施例中,网络装置可以经由云服务或另一网络装置从输送代理接收应用的元数据。在一些实施例中,网络装置可以从分组报头访问与元数据的部分相关联的标识符。在一些实施例中,分组报头可以包括具有明文扩展的传输层安全性(TLS)或数据报TLS(DTLS)报头。
在一些实施例中,网络装置可以在与分组流相关联的元数据的部分上应用至少一个策略。在一些实施例中,网络装置可以基于至少一个策略的应用来确定要分配给分组流中的至少一个的通道资源。在一些实施例中,网络装置可以通过将所确定的网络资源分配给分组流中的至少一个来向分组流中的至少一个提供期望的服务质量(QoS)。在一些实施例中,网络装置可以通过为分组流中的至少一个分配带宽、设置带宽限制或者节流数据传输速率,来将所确定的网络资源分配给分组流中的至少一个。
本发明的至少一个方面涉及访问web内容的系统、方法和非暂时性计算机可读介质。客户机装置和服务器中间的网络装置可以从输送代理接收服务器上托管的并且客户机装置可访问的应用的元数据。网络装置可以从输送代理接收标识符(例如,统一资源定位器(URL))。URL可以使客户机装置能够从web服务器访问web内容。网络装置可以根据接收到的元数据确定网络资源的分配,以从web服务器访问web内容。网络装置可以基于所确定的网络资源的分配,向客户机装置提供网络资源以经由网络装置访问web内容。
在一些实施例中,元数据可以包括以下至少一项:应用的标识或者指示与应用的用户交互的交互数据。在一些实施例中,网络装置可以从输送代理接收包括URL的更新的元数据。在一些实施例中,网络装置可以支持应用的至少一个虚拟通道。每个虚拟通道可以用于传送相应的分组流。在一些实施例中,包括URL的URL重定向请求可以经由至少一个虚拟通道的第一虚拟通道从输送代理传输到客户机装置。URL重定向请求可以使客户机装置从web服务器访问web内容。
在一些实施例中,网络装置可以根据接收到的元数据确定用于分配网络资源以从web服务器访问web内容的至少一个规则。在一些实施例中,用于分配网络资源以从web服务器访问web内容的的至少一个规则可以包括以下至少一项:防火墙规则或者服务质量(QoS)规则。在一些实施例中,网络装置可以应用用于分配网络资源以由客户机装置备经由网络装置访问web内容的至少一个规则。
在一些实施例中,网络装置可以经由与至少一个虚拟通道分离的虚拟通道,或者经由云服务或另一网络装置来接收应用的元数据。在一些实施例中,网络装置可以使web内容和应用的数据在客户机装置处呈现。在一些实施例中,网络装置可以使web内容与应用的数据集成以用于在客户机装置处呈现。
在一些实施例中,网络装置可以从客户机装置的工作空间应用接收关于客户机装置处的活动的元数据。在一些实施例中,网络装置可以根据应用的元数据和关于客户机装置处的活动的元数据来确定用于从web服务器访问web内容的网络资源的分配。
本发明的至少一个方面涉及管理协议分组流的系统、方法和非暂时性计算机可读介质。客户机装置和服务器中间的网络装置可以确定网络状况。网络装置可以支持客户机装置和服务器的输送代理上可执行的应用之间的多个虚拟通道。虚拟通道可以传送分组流。网络装置可以向输送代理传输指示所确定的网络状况的元数据。输送代理可以响应于指示所确定的网络状况的所传输的元数据来更新虚拟通道的分组传输配置。
在一些实施例中,网络装置可以将虚拟通道中的至少一个的分组传输模式从第一模式改变为第二模式,第二模式比第一模式具有更高的带宽效率。在一些实施例中,网络装置可以将虚拟通道中的一个从H.264图形模式改变为Thinwire+图形模式。
在一些实施例中,网络装置可以改变网络资源的分配以应用于虚拟通道。在一些实施例中,网络状况可包括对虚拟通道的带宽的减少。网络装置可以从多个虚拟通道中禁用第一虚拟通道。在某些实施例中,网络状况包括对虚拟通道的时延或分组丢失中的至少一个的增加,并且网络装置可以通过将虚拟通道中的至少一个从第一传输模式改变为第二传输模式来更新分组传输配置,其中第二传输模式比第一传输模式具有更多的损失(或者更少的可靠性)。这可能有利于用户体验(UX)的交互性,例如,到虚拟会话内的图形和用户输入。
在一些实施例中,从虚拟通道的列表或优先级相关顺序中选择要禁用的第一通道。在一些实施例中,网络装置可以向虚拟通道中的至少一个施加带宽上限。在一些实施例中,网络状况可以包括链路故障。网络装置可以从多个虚拟通道中禁用第一虚拟通道,或者减少对第一虚拟通道的带宽的分配。
附图说明
本文公开的实施例的目的、方面、特征和优点将从以下具体实施方式、所附权利要求和附图中变得更加明显,其中相似的附图标记标识相似或相同的元素。在说明书中与附图相关联地引入的附图标记可以在一个或多个后续附图中重复,而无需在说明书中进行附加的描述,以便为其他特征提供上下文,并且并非每个元素都可以在每个附图中被标记。附图不一定按比例绘制,而是重点放在示出实施例、原理和概念上。附图并非旨在限制本文所包括的权利要求的范围。
图1A是根据示意性实施例的网络计算系统的框图;
图1B是根据示意性实施例的用于经由设备将计算环境从服务器输送到客户机的网络计算系统的框图;
图1C是根据示意性实施例的计算装置的框图;
图2是根据示意性实施例的用于处理客户机和服务器之间的通信的设备的框图;
图3是根据示意性实施例的虚拟化环境的框图;
图4是根据示意性实施例的集群系统的框图;
图5是根据示意性实施例的用于提供或使用虚拟通道来提供洞察(insight)的系统的实施例的框图;
图6是根据示意性实施例的用于提供或使用虚拟通道来提供洞察的系统和方法的实施例的示意图;
图7是根据示意性实施例的用于应用流(App Flow)数据点收集和传输的系统的实施例的框图;
图8-10提供了示例图表,包括根据示意性实施例比较使用和不使用应用流虚拟通道进行洞察的实施方式的测试结果;
图11是根据示意性实施例的用于在客户机侧和服务器侧网络装置之间提供多流ICA(MSI)的系统的实施例的框图;
图12是示出根据示意性实施例的用于计算独立于服务器处理时间的时延的方法的示意图;
图13是示出根据示意性实施例的用于经由中间装置优化虚拟应用输送的过程的序列图;
图14是示出根据示意性实施例的经由中间装置优化虚拟应用输送的方法的流程图;
图15是示出根据示意性实施例的用于控制对重定向内容的访问的过程的序列图;
图16是示出根据示意性实施例的控制对重定向内容的访问的方法的流程图;以及
图17是示出根据示意性实施例的基于网络状况管理协议分组流的方法的流程图。
本解决方案的特征和优点将从下面结合附图时阐述的具体实施方式中变得更明显,其中,相似的参考标记在全文中标识相应的元素。在附图中,相似的附图标记通常指示相同的、功能上相似的和/或结构上相似的元素。
具体实施方式
为了阅读下文各种实施例的描述,下述对于说明书的部分以及它们各自内容的描述是有用的:
A部分描述可用于实施本文描述的实施例的网络环境和计算环境;
B部分描述用于将计算环境输送到远程用户的系统和方法的实施例;
C部分描述用于虚拟化应用输送控制器的系统和方法的实施例;
D部分描述用于提供集群式设备架构环境的系统和方法的实施例;
E部分描述提供或使用虚拟通道以提供洞察的系统和方法的实施例;以及
F部分描述用于管理网络资源以输送虚拟应用和桌面的系统和方法的实施例。
A.网络和计算环境
参考图1A,描述了示意性网络环境100。网络环境100可以包括经由一个或多个网络104(1)-104n(总地称为网络104)与一个或多个服务器106(1)-106(n)(同样总地称为远程机器106或服务器106)通信的一个或多个客户机102(1)-102(n)(同样总地称为本地机器102或客户机102)。在一些实施例中,客户机102可以经由一个或多个设备200(1)-200n(总地称为设备200或网关200)与服务器106通信。
虽然图1A所示的实施例示出了客户机102和服务器106之间的一个或多个网络104,但在其他实施例中,客户机102和服务器106可以在同一网络104上。各种网络104可以是相同类型的网络或不同类型的网络。例如,在一些实施例中,网络104(1)可以是诸如局域网(LAN)或公司内联网的专用网络,而网络104(2)和/或网络104(n)可以是诸如广域网(WAN)或互联网的公共网络。在其他实施例中,网络104(1)和网络104(n)都可以是专用网络。网络104可以采用一种或多种类型的物理网络和/或网络拓扑,诸如有线和/或无线网络,并且可以采用一个或多个通信传输协议,诸如传输控制协议(TCP)、互联网协议(IP)、用户数据报协议(UDP)或其他类似协议。
如图1A所示,一个或多个设备200可以位于网络环境100的各个点或各个通信路径中。例如,设备200可以部署在两个网络104(1)和104(2)之间,并且设备200可以与彼此通信以结合工作以例如加速客户机102和服务器106之间的网络流量。在其他实施例中,设备200可以位于网络104上。例如,设备200可以被实现为客户机102和/或服务器106之一的一部分。在一个实施例中,设备200可以被实现为网络装置,诸如由佛罗里达州劳德代尔堡的思杰系统有限公司销售的产品。
如图1A所示,一个或多个服务器106可以作为服务器群38操作。服务器群38的服务器106可以在逻辑上分组,并且可以从客户机102和/或其他服务器106在地理上共同定位(例如,在本地)或在地理上分散(例如,基于云)。在一个实施例中,服务器群38代表一个或多个客户机102(例如,作为应用服务器)执行一个或多个应用,而其他用途也是可能的,诸如文件服务器、网关服务器、代理服务器或其他类似的服务器用途。客户机102可以寻求访问服务器106上的托管应用。
如图1A所示,在一些实施例中,设备200可以包括一个或多个额外设备(诸如WAN优化设备205(1)-205(n),通常被称为WAN优化设备205),由其代替,或与其进行通信。例如,WAN优化设备205可以加速、高速缓存、压缩或以其他方式优化或改进网络流量(诸如去往和/或来自WAN连接的流量)的性能、操作、流量控制或服务质量,诸如优化广域文件服务(WAFS)、加速服务器消息块(SMB)或公共互联网文件系统(CIFS)。在一些实施例中,设备205可以是性能增强代理或WAN优化控制器。在一个实施例中,设备205可以被实现为由佛罗里达州劳德代尔堡的思杰系统有限公司销售的产品。
参考图1B,示出了用于在客户机102上输送和/或操作计算网络环境的示例网络环境100’。如图1B所示,服务器106可以包括用于向一个或多个客户机102输送计算环境、应用和/或数据文件的应用输送系统190。客户机102可以包括客户机代理120和计算环境15。计算环境15可以执行或操作访问、处理或使用数据文件17的应用16。计算环境15、应用16和/或数据文件17可以经由设备200和/或服务器106输送到客户机102。
设备200可以加速计算环境15的全部或一部分到客户机102的输送,例如通过应用输送系统190。例如,设备200可以通过加速客户机102和服务器106之间的传输层流量来加速流应用和可由应用处理的数据文件从数据中心到远程用户位置的输送。这种加速可以由一种或多种技术提供,诸如:1)传输层连接池,2)传输层连接多路复用,3)传输控制协议缓冲,4)压缩,5)高速缓存或其他技术。设备200还可提供服务器106的负载平衡以处理来自客户机102的请求,充当代理或访问服务器以提供对一个或多个服务器106的访问,提供安全性和/或充当客户机102和服务器106之间的防火墙,提供域名服务(DNS)解析,提供一个或多个虚拟服务器或虚拟互联网协议服务器,和/或提供从客户机102到服务器106的安全虚拟专用网络(VPN)连接,诸如安全套接字层(SSL)VPN连接和/或提供加密和解密操作。
应用输送管理系统190可以基于由策略引擎195应用的认证和授权策略,将计算环境15输送给远程用户或其他用户(例如,客户机102)。远程用户可以获得计算环境并访问服务器存储的应用和来自任何网络连接的装置(例如,客户机102)的数据文件。例如,设备200可以从服务器106请求应用和数据文件。响应于该请求,应用输送系统190和/或服务器106可以将应用和数据文件输送到客户机102,例如经由应用流来在客户机102上的计算环境15中操作,或经由远程显示协议或以其他方式经由基于远程或基于服务器的计算。在一个实施例中,应用输送系统190可以被实现为思杰系统有限公司的Citrix Workspace SuiteTM的任何部分,诸如或
策略引擎195可以控制和管理对应用的访问、执行和输送。例如,策略引擎195可以确定用户或客户机102可以访问的一个或多个应用和/或应如何将应用输送给用户或客户机102,诸如基于服务器的计算、流式传输或本地输送应用到客户机50进行本地执行。
例如,在操作中,客户机102可以请求应用(例如,应用16’)的执行并且服务器106的应用输送系统190例如基于从客户机102接收的凭证以及由与凭证相关联的策略引擎195应用的用户策略来确定如何执行应用16’。例如,应用输送系统190可以使客户机102能够接收通过在服务器106上执行应用而生成的应用输出数据,可以使客户机102能够在从服务器106接收到应用之后本地执行该应用,或者可以经由网络104流式传输该应用到客户机102。例如,在一些实施例中,应用可以是代表客户机102在服务器106上执行的基于服务器或基于远程的应用。服务器106可以使用瘦-客户机或远程显示协议,诸如佛罗里达州劳德代尔堡的思杰系统有限公司的独立计算架构(ICA)协议,向客户机102显示输出。应用可以是与实时数据通信相关的任何应用(诸如用于流式传输图形、流式传输视频和/或音频或其他数据的应用)、远程桌面或工作空间的输送或托管服务或应用(例如,基础设施即服务(IaaS)、工作空间即服务(WaaS)、软件即服务(SaaS)或平台即服务(PaaS))。
服务器106中的一个或多个可以包括性能监测服务或代理197。在一些实施例中,可以采用专用的一个或多个服务器106来执行性能监测。性能监测可以使用数据收集、聚合、分析、管理和报告来执行,例如通过软件、硬件或其组合。性能监测可以包括一个或多个代理,用于在客户机102(例如,客户机代理120)、服务器106(例如,代理197)或设备200和/或205(未示出的代理)上执行监测、测量和数据收集活动。通常,监测代理(例如,120和/或197)对任何应用和/或装置的用户透明地(例如,在后台)执行。在一些实施例中,监测代理197包括被佛罗里达州劳德代尔堡的思杰系统有限公司称为EdgeSight的任何产品实施例。
监测代理120和197可以基于给定事件的发生或在网络环境100的操作期间实时地以预定频率监测、测量、收集和/或分析数据。监测代理可以监测客户机102、网络104、设备200和/或205和/或服务器106的硬件、软件和/或通信资源的资源消耗和/或性能。例如,诸如传输层连接的网络连接、网络时延、带宽利用率、最终用户响应时间、应用使用率和性能、与应用的会话连接、高速缓存使用率、存储器使用率、处理器使用率、存储使用率、数据库事务、客户机和/或服务器利用率、活动用户、用户活动的持续时间、应用崩溃、错误或挂起、登录到应用、服务器或应用输送系统所需的时间,和/或其他性能状况和度量可以被监测。
监测代理120和197可以为应用输送系统190提供应用性能管理。例如,基于一个或多个被监测的性能状况或度量,可以动态地(例如周期性地或实时地)调节应用输送系统190,以基于网络环境性能和状况优化服务器106到客户机102的应用输送。
在所描述的实施例中,客户机102、服务器106和设备200和205可以部署为和/或在任何类型和形式的计算装置上执行,诸如任何台式计算机、膝上型计算机或能够通过至少一个网络进行通信并执行本文描述的操作的移动装置。例如,客户机102、服务器106和/或设备200和205可以各自对应于一台计算机、多台计算机或分布式计算机网络,诸如图1C所示的计算机101。
如图1C所示,计算机101可以包括一个或多个处理器103、易失性存储器122(例如RAM)、非易失性存储器128(例如一个或多个硬盘驱动器(HDD)或其他磁性或光学存储介质、一个或多个固态驱动器(SSD)(诸如闪存驱动器或其他固态存储介质)、一个或多个混合磁性和固态驱动器、和/或一个或多个虚拟存储卷(诸如云存储)、或这种物理存储卷和虚拟存储卷的组合或其阵列)、用户界面(UI)123、一个或多个通信接口118和通信总线150。用户界面123可以包括图形用户界面(GUI)124(例如,触摸屏、显示器等)和一个或多个输入/输出(I/O)装置126(例如,鼠标、键盘等)。非易失性存储器128存储操作系统115、一个或多个应用116和数据117,使得例如操作系统115和/或应用116的计算机指令由处理器103在易失性存储器122之外执行。可以使用GUI 124的输入装置输入数据或从I/O装置126接收数据。计算机101的各种元件可以经由通信总线150进行通信。如图1C中所示的计算机101仅作为示例示出,因为客户机102、服务器106和/或设备200和205可以通过任何计算或处理环境并且使用可以具有能够如本文所述操作的合适的硬件和/或软件的任何类型的机器或机器组来实现。
处理器103可由一个或多个可编程处理器实现,该处理器执行一个或多个计算机程序以执行系统的功能。如本文所使用的,术语“处理器”描述执行功能、操作或操作序列的电子电路。功能、操作或操作序列可以被硬编码到电子电路中或通过保存在存储器装置中的指令软编码。“处理器”可以使用数字值或使用模拟信号来执行功能、操作或操作序列。在一些实施例中,“处理器”可以体现为一个或多个专用集成电路(ASIC)、微处理器、数字信号处理器、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器或具有相关存储器的通用计算机。“处理器”可以是模拟、数字或混合信号。在一些实施例中,“处理器”可以是一个或多个物理处理器或一个或多个“虚拟”(例如,远程定位或“云”)处理器。
通信接口118可以包括一个或多个接口以使得计算机101能够通过各种有线和/或无线或蜂窝连接访问诸如LAN、WAN或互联网的计算机网络。
在所描述的实施例中,第一计算装置101可以代表客户机计算装置(例如,客户机102)的用户执行应用,可以执行虚拟机,其提供应用在其内代表用户或客户机计算装置(例如,客户机102)执行的执行会话,诸如托管桌面会话,可以执行终端服务会话以提供托管桌面环境,或者可以提供对计算环境的访问,计算环境包括以下中的一个或多个:一个或多个应用、一个或多个桌面应用、以及一个或多个应用可以在其中执行的一个或多个桌面会话。
B.设备架构
图2示出了设备200的示例实施例。如本文所述,设备200可以被实现为服务器、网关、路由器、交换机、桥接器或其他类型的计算或网络装置。如图2所示,设备200的实施例可以包括硬件层206和软件层205,软件层205被划分为用户空间202和内核空间204。硬件层206提供硬件元件,内核空间204和用户空间202内的程序和服务基于这些硬件元件而执行,并允许内核空间204和用户空间202内的程序和服务相对于设备200在内部和外部传送数据。如图2所示,硬件层206可以包括用于执行软件程序和服务的一个或多个处理单元262、用于存储软件和数据的存储器264、用于通过网络传输和接收数据的网络端口266、以及用于加密和解密数据(例如与通过网络传输和接收的数据的安全套接字层(SSL)或传输层安全性(TLS)处理有关)的加密处理器260。
设备200的操作系统分配、管理或以其他方式将可用系统存储器分隔成内核空间204和用户空间202。内核空间204被保留用于运行内核230,包括任何装置驱动器、内核扩展或其他内核相关软件。如本领域技术人员所知,内核230是操作系统的核心,并提供对应用的资源和硬件相关元件的访问、控制和管理。内核空间204还可以包括与高速缓存管理器232协同工作的多个网络服务或进程。
设备200可以包括一个或多个网络堆栈267,诸如基于TCP/IP的堆栈,用于与客户机102、服务器106、网络104和/或其他设备200或205进行通信。例如,设备200可以建立和/或终止客户机102和服务器106之间的一个或多个传输层连接。每个网络堆栈267可以包括用于将一个或多个网络分组进行排队以供设备200传输的缓冲器。
内核空间204可以包括高速缓存管理器232、分组引擎240、加密引擎234、策略引擎236和压缩引擎238。换言之,进程232、240、234、236和238中的一个或多个在设备200的操作系统的内核地址空间中运行,这可以减少进出存储器的数据事务和/或内核模式和用户模式之间的上下文切换的数量,例如因为在内核模式中获得的数据可能不需要被传递或复制到用户进程、线程或用户级数据结构。
高速缓存管理器232可以复制存储在别处的原始数据或先前计算、生成或传输的数据以减少数据的访问时间。在一些实施例中,高速缓存管理器232可以是设备200的存储器264中的数据对象,或者可以是具有比存储器264更快的访问时间的物理存储器。
策略引擎236可以包括统计引擎或其他配置机制,以允许用户识别、指定、定义或配置高速缓存策略以及对由设备200高速缓存的对象、数据或内容的访问、控制和管理,并且定义或配置由设备200执行的安全性、网络流量、网络访问、压缩或其他功能。
加密引擎234可以处理任何安全相关协议,诸如SSL或TLS。例如,加密引擎234可以加密和解密经由设备200传送的网络分组或其任何部分,可以例如在客户机102、服务器106和/或其他设备200或205之间设置或建立SSL、TLS或其他安全连接。在一些实施例中,加密引擎234可以使用隧道协议来提供客户机102和服务器106之间的VPN。在一些实施例中,加密引擎234与加密处理器260通信。压缩引擎238在客户机102和服务器106之间和/或在一个或多个设备200之间双向地压缩网络分组。
分组引擎240可以管理由设备200经由网络堆栈267接收和传输的分组的内核级处理,以经由网络端口266发送和接收网络分组。分组引擎240可以与加密引擎234、高速缓存管理器232、策略引擎236和压缩引擎238结合操作,例如以执行加密/解密、流量管理(诸如请求级内容切换和请求级高速缓存重定向)、以及数据的压缩和解压缩。
用户空间202是由用户模式应用或以用户模式运行的程序使用的操作系统的存储器区域或部分。用户模式应用可能不直接访问内核空间204,而是使用服务调用来访问内核服务。用户空间202可以包括图形用户界面(GUI)210、命令行接口(CLI)212、壳服务214、健康监测器216和守护服务218。GUI 210和CLI 212使系统管理员或其他用户能够与设备200交互并控制设备200的操作,诸如经由设备200的操作系统。壳服务214包括程序、服务、任务、进程或可执行指令以支持用户经由GUI 210和/或CLI 212与设备200的交互.
健康监测器216监测、检查、报告并确保网络系统正常运行并且用户正在通过网络接收所请求的内容,例如通过监测设备200的活动。在一些实施例中,健康监测器216拦截并检查经由设备200传递的任何网络流量。例如,健康监测器216可以与加密引擎234、高速缓存管理器232、策略引擎236、压缩引擎238、分组引擎240、守护服务218和壳服务214中的一个或多个接口,以确定设备200的任何部分的状态、状况、操作条件或健康。此外,健康监测器216可以确定程序、进程、服务或任务是否是活动的并且当前正在运行,检查由任何程序、进程、服务或任务提供的状态、错误或历史日志来确定设备200的任何部分的任何状况、状态或错误。此外,健康监测器216可以测量和监测在设备200上执行的任何应用、程序、进程、服务、任务或线程的性能。
守护服务218是连续运行或在后台运行并处理由设备200接收的周期性服务请求的程序。在一些实施例中,守护服务可以视情况将请求转发到其他程序或进程,诸如另一守护服务218。
如本文所述,设备200可以通过打开与每个服务器106的一个或多个传输层连接并维持这些连接以允许客户机经由互联网(例如,“连接池”)的重复数据访问,来减轻服务器106的由于重复打开和关闭到客户机102的传输层连接导致的大量处理负载。为了执行连接池,设备200可以通过在传输层协议级处修改序列号和确认号(例如,“连接多路复用”)来转换或多路复用通信。设备200还可以为客户机102和服务器106之间的通信提供交换或负载平衡。
如本文所述,每个客户机102可以包括客户机代理120,用于经由网络104与设备200和/或服务器106建立和交换通信。客户机102可能已经安装和/或执行与网络104通信的一个或多个应用。客户机代理120可以拦截来自由一个或多个应用使用的网络堆栈的网络通信。例如,客户机代理120可以在网络堆栈中的任一点拦截网络通信并将网络通信重定向到客户机代理120期望、管理或控制的目的地,例如以拦截传输层连接并将传输层连接重定向到由客户机代理120控制或管理的IP地址和端口。因此,客户机代理120可以透明地拦截传输层以下的任何协议层,诸如网络层,以及传输层以上的任何协议层,诸如会话、表示或应用层。客户机代理120可以与传输层接口以保护、优化、加速、路由或负载平衡经由传输层承载的任何协议提供的任何通信。
在一些实施例中,客户机代理120被实现为由佛罗里达州劳德代尔堡的思杰系统有限公司开发的独立计算架构(ICA)客户机。客户机代理120可以执行加速、流式传输、监测和/或其他操作。例如,客户机代理120可以加速应用从服务器106到客户机102的流式传输。客户机代理120还可以执行端点检测/扫描并为设备200和/或服务器106收集关于客户机102的端点信息。设备200和/或服务器106可以使用所收集的信息来确定和提供客户机到网络104的连接的访问、认证和授权控制。例如,客户机代理120可以识别和确定一个或多个客户机侧属性,诸如:操作系统和/或操作系统的版本、操作系统的服务包、正在运行的服务、正在运行的进程、文件、客户机的各种应用的存在或版本(诸如防病毒、防火墙、安全和/或其他软件)。
C.用于提供虚拟化应用输送控制器的系统和方法
现在参考图3,示出了虚拟化环境300的框图。如图所示,虚拟化环境300中的计算装置302包括虚拟化层303、管理程序层304和硬件层307。管理程序层304包括一个或多个管理程序(或虚拟化管理器)301,其分配和管理由在虚拟化层303中执行的至少一个虚拟机(VM)(例如,VM 306之一)对硬件层307(例如,物理处理器321和物理盘328)中的多个物理资源的访问。每个VM 306可以包括分配的虚拟资源,诸如虚拟处理器332和/或虚拟盘342,以及虚拟资源,诸如虚拟存储器和虚拟网络接口。在一些实施例中,VM 306中的至少一个可以包括与管理程序301通信并用于执行用于管理和配置装置302上的其他VM(例如,客户操作系统310)的应用的控制操作系统(例如,305)。
总体而言,管理程序301可以以模拟具有对物理装置的访问的操作系统的任何方式向VM 306的操作系统提供虚拟资源。因此,管理程序301可用于模拟虚拟硬件、划分物理硬件、虚拟化物理硬件以及执行提供对计算环境的访问的虚拟机。在示意性实施例中,管理程序301可以实现为例如由开源Xen.org社区提供的XEN管理程序。在示意性实施例中,执行创建客户操作系统可在其上执行的虚拟机平台的管理程序的装置302被称为主机服务器。在这样的实施例中,装置302可以被实现为由佛罗里达州劳德代尔堡的思杰系统有限公司提供的XEN服务器。
管理程序301可以创建一个或多个VM 306,操作系统(例如,控制操作系统305和/或客户操作系统310)在其中执行。例如,管理程序301加载虚拟机映像以创建VM 306以执行操作系统。管理程序301可以向VM 306呈现硬件层307的抽象,和/或可以控制如何向VM 306呈现硬件层307的物理能力。例如,管理程序301可以管理跨多个物理计算装置分布的资源池。
在一些实施例中,VM 306之一(例如,执行控制操作系统305的VM)可以管理和配置其他VM 306,例如通过管理VM的执行和/或终止和/或管理虚拟资源到VM的分配。在各种实施例中,VM可以经由例如一个或多个应用编程接口(API)、共享存储器和/或其他技术与管理程序301和/或其他VM通信。
一般而言,VM 306可以向装置302的用户提供对虚拟化计算环境300内的资源的访问,例如一个或多个程序、应用、文档、文件、桌面和/或计算环境、或其他资源。在一些实施例中,VM 306可以被实现为不知道它们是虚拟机的完全虚拟化的VM(例如,硬件虚拟机或HVM)。在其他实施例中,VM可以知道它是虚拟机,和/或VM可以被实现为半虚拟化(PV)VM。
虽然在图3中示出为包括单个虚拟化装置302,但虚拟化环境300可以包括系统中的多个联网装置,在该系统中至少一个物理主机执行虚拟机。VM在其上执行的装置可以被称为物理主机和/或主机。例如,设备200可附加地或可替代地在诸如客户机102、服务器106或设备200的任何计算装置上的虚拟化环境300中实现。虚拟设备可以提供类似于关于设备200描述的用于可用性、性能、健康监测、高速缓存和压缩的功能,连接多路复用和池化和/或安全处理(例如,防火墙、VPN、加密/解密等)。
在一些实施例中,服务器可以例如在多核处理系统的各个核和/或多处理器装置的各个处理器上执行多个虚拟机306。例如,尽管在本文中一般地显示为“处理器”(例如,在图1C、2和3中),一个或多个处理器可以实现为单核或多核处理器以提供多线程、并行架构和/或多核架构。每个处理器和/或核可以具有或使用分配或分派给私人或本地使用的存储器,这些存储器只能由该处理器/核访问,和/或可以具有或使用公共或由多个处理器/核共享并可访问的存储器。这种架构可允许跨一个或多个处理器和/或一个或多个核的工作、任务、负载或网络流量分布(例如,通过功能并行性、数据并行性、基于流的数据并行性等)。
此外,代替(或除此之外)以物理处理器/核的形式实现的核的功能,可以在客户机102、服务器106或设备200上的虚拟化环境(例如,300)中实现这样的功能,使得该功能可以跨多个装置(诸如计算装置的集群、服务器群或计算装置的网络等)来实现。各种处理器/核可以使用多种接口技术(诸如核到核消息传递、共享存储器、内核API等)相互接口或通信。
在采用多个处理器和/或多个处理器核的实施例中,所描述的实施例可以在核或处理器之间分布数据分组,例如以平衡跨核的流。例如,分组分布可以基于对每个核执行的功能、源地址和目的地地址的确定,和/或是否:相关核上的负载高于预定阈值;相关核上的负载低于预定阈值;相关核上的负载小于其他核上的负载;或可用于部分基于处理器上的负载量来确定将数据分组转发到何处的任何其他度量。
例如,可以使用接收侧调整(RSS)在核或进程之间分布数据分组,以便使用网络中的多个处理器/核来处理分组。RSS通常允许跨多个处理器/核平衡分组处理,同时保持分组的有序输送。在一些实施例中,RSS可以使用哈希方案来确定用于处理分组的核或处理器。
RSS可以从任何类型和形式的输入生成哈希,诸如值序列。该值序列可以包括网络分组的任何部分,诸如网络分组的任何报头、字段或有效载荷,并且包括与网络分组或数据流相关联的任何信息元组,诸如地址和端口。哈希结果或其任何部分可用于标识处理器、核、引擎等,用于例如经由哈希表、间接表或其他映射技术分布网络分组。
D.用于提供分布式集群架构的系统和方法
虽然在图1A和1B中示出为单个设备,但设备200可以被实现为一个或多个分布式或集群设备。单独的计算装置或设备可以被称为集群的节点。集中式管理系统可以执行负载平衡、分布、配置或其他任务以允许节点作为单个计算系统联合操作。这样的集群可以被视为单个虚拟设备或计算装置。图4示出了示意性计算装置集群或设备集群400的框图。多个设备200或其他计算装置(例如,节点)可以加入到单个集群400中。集群400可以作为应用服务器、网络存储服务器、备份服务或任何其他类型的计算装置来操作,以执行设备200和/或205的许多功能。
在一些实施例中,集群400的每个设备200可以被实现为多处理器和/或多核设备,如本文所述。这样的实施例可以采用两层分布系统,如果集群将分组分布到集群的节点,并且每个节点将用于处理的分组分布到节点的处理器/核,则具有一个设备。在许多实施例中,集群400的一个或多个设备200可以在物理上分组或在地理上彼此接近,诸如在给定机箱、机架和/或数据中心中的一组刀片服务器或机架安装装置。在一些实施例中,集群400的一个或多个设备200可以在地理上分布,而设备200在物理上或地理上并不位于同一位置。在这样的实施例中,地理上远程的设备可以通过专用网络连接和/或VPN连接起来。在地理上分布的实施例中,负载平衡还可以考虑地理上远程的设备之间的通信延迟。
在一些实施例中,集群400可以被认为是经由共同配置、管理和目的分组的虚拟设备,而不是作为物理组。例如,设备集群可以包括由一个或多个服务器执行的多个虚拟机或进程。
如图4所示,设备集群400可以经由客户机数据平面402耦合到客户机侧网络104,例如以在客户机102和设备集群400之间传输数据。客户机数据平面402可以被实现为交换机、集线器、路由器或集群400内部或外部的其他类似网络装置,以跨集群400的节点分布流量。例如,可以基于用集群的设备或节点配置下一跳的等价多路径(ECMP)路由、开放最短路径优先(OSPF)、基于无状态哈希的流量分布、链路聚合(LAG)协议或任何其他类型和形式的流量分布、负载平衡和路由来执行流量分布。
设备集群400可以经由服务器数据平面404耦合到第二网络104’。类似于客户机数据平面402,服务器数据平面404可以被实现为交换机、集线器、路由器或可以在集群400内部或外部的其他网络装置。在一些实施例中,客户机数据平面402和服务器数据平面404可以合并或组合成单个装置。
在一些实施例中,集群400的每个设备200可以经由内部通信网络或后平面406连接。后平面406可以启用节点间或设备间控制和配置消息,用于流量的节点间转发,和/或用于将配置和控制流量从管理员或用户传送到集群400。在一些实施例中,后平面406可以是物理网络、VPN或隧道、或其组合。
E.用于提供和使用虚拟通道以提供洞察的系统和方法
本文描述了用于向最终用户提供与供应应用和/或桌面会话相关的洞察(insight)或度量的系统和方法。网络装置(例如,设备、中间装置、网关、代理装置或者中间盒),诸如Citrix网关和Citrix软件定义的广域网(SD-WAN)装置,可以收集诸如网络级统计数据的洞察。可以收集与虚拟应用和虚拟桌面相关联的附加洞察(例如,元数据和度量),以向管理员提供全面的端到端实时和/或历史性能报告以及最终用户体验(UX)洞察。在一些实施例中,为了获得洞察,网络装置可能需要对虚拟化和其他协议(诸如Citrix独立计算架构(ICA)、远程桌面协议(RDP)或Citrix高清晰度体验(HDX))以及部分或全部相关联的虚拟通道(VC)执行深度解析。
该深度解析可能要求或需要了解所有底层协议细节,并且可以是资源密集型的。网络装置深度解析、解密和/或解压缩流量(例如,HDX流量)所作的努力可能会损害网络装置的可伸缩性,并且可能显著地增加支持(例如,HDX特定的)洞察的成本。这些可能是存储器和CPU密集型操作,该操作直接影响网络装置(例如,Citrix网关或SD-WAN设备)一次可以支持的连接(例如,ICA连接)的数量。对这样的流量的深度解析可能是存储器和CPU密集型操作,主要原因在于对ICA流的有状态解压缩。例如,“有状态”可以指跨连接、会话、时间和/或操作维护、跟踪、保持、存储和/或转换状态。为了解决这些和其他挑战,本公开提供了用于以实时、可伸缩和/或可扩展的方式(例如,无需由网络装置进行深度解析)向网络装置输送虚拟会话的洞察的方法和系统的实施例。在一些实施例中,可以跨客户机侧代理(例如,桌面虚拟化客户机)、网络装置和服务器侧代理(例如,VDA)或者在客户机侧代理、网络装置和服务器侧代理之间建立单独的或独立的VC(有时称为应用流VC),以用于洞察(例如,虚拟化会话洞察)的传输。可以在这些实体之间(例如,在桌面虚拟化客户机、网络设备和VDA之间)协商应用流VC。应用流VC可以促进对洞察的可伸缩和可扩展处理。应用流VC可以与HDX/ICS流中的其他VC保持非交错,并且该流可以是未压缩的以促进对应用流VC的访问和解析。这样的简单解析消耗的资源级别明显较低,并且由于允许网络装置的更多资源执行任何其他功能而改进了网络装置的操作,诸如在给定时间处理更大数量的连接(例如,ICA连接)。与深度解析相比,即使不需要更大数量的连接,较低的CPU资源消耗(举例而言)也会导致较低的功耗(例如,获得类似洞察的较低的能耗)和/或热生成。因此,本系统和方法允许对诸如网络装置(例如,SD-WAN和网关装置)的系统组件的操作进行实质性改进。
此外,本方法和系统的实施例可以以其他方式来改进HDX/ICA平台。例如,本方法和系统的实施例可以在网络装置故障切换(例如,高可用性故障切换)期间提供或支持应用流洞察或度量的状态转换,从而在这样的故障切换期间改进操作。本方法和系统的某些实施例提供或支持多流ICA(MSI)HDX流的有效识别和优先级排序,这减少了访问和处理来自该流的数据的资源。本方法和系统的一些实施例提供或支持独立于服务器处理时间的第7层(L7,应用层)时延计算和通信。本方法和系统的一些实施例提供或支持多个网络装置之间的L7时延计算和通信。因此,这些解决方案可以提供更准确地描述特定网络组件、分段或连接的健康和性能的度量。
举例而言,在ICA或HDX配置中,VC可以通过提供对服务器106上托管的一个或多个应用和/或远程桌面的访问来支持客户机102处的远程计算体验。如图5所示,可以使用服务器侧代理504和客户机侧代理502来建立VC。如图5所示,系统500可以包括具有客户机侧代理(例如,接收器)的客户机102、具有服务器侧代理(例如,VDA)的服务器106、客户机102和服务器106中的每一个上的ICA堆栈,其支持经由网络链路的HDX会话。ICA堆栈中的每一个可以包括WinStation驱动器(WD)、协议驱动器(PD)和/或传输驱动器(TD),每一个都涉及一个或多个相应的协议。
VC可以在经由远程输送向客户机102供应应用或桌面时支持客户机102和服务器106之间的通信和功能。虚拟通道可以为在服务器106上运行的应用提供与客户机102或客户机侧环境通信的安全方式。每个虚拟通道可以支持通信,以用于支持或启用应用或桌面的一个或多个功能,诸如图形、磁盘、COM端口、LPT端口、打印机、音频、视频、智能卡等,使得这些功能跨客户机102和服务器106是可用的。一些虚拟通道可以在用户模式下加载或建立,而一些其他的虚拟通道则可以在内核模式下加载或建立。例如,客户机虚拟通道可以路由通过(例如,在服务器侧ICA堆栈中的)WinStation驱动器,并且可以在客户机侧由(例如,在客户机侧ICA堆栈中的)相应的WinStation驱动器轮询。在客户机侧,虚拟通道可以对应于虚拟驱动器,每个虚拟驱动器都提供特定功能。虚拟驱动器可以在表示层协议级进行操作。通过多路复用例如由WinStation协议层(或者WinStation驱动器)提供的通道,在任何给定时间可能存在许多这样的协议处于活动状态。可以在一个供应会话(例如,一个ICA/HDX会话或流量流)内组合或多路复用多个虚拟通道。
可以通过虚拟化一个或多个“物理”通道来创建虚拟通道,每个“物理”通道被虚拟化为一个或多个虚拟通道。例如,数个虚拟通道可以单独标识并且可以承载不同类型的通信,但是可以共享与物理通道相对应的同一端口。使用虚拟通道可以允许在单个非虚拟通道上共享或多路复用数据,从而支持多个信息流。一个或多个虚拟通道可以操作以将表示层元素从服务器传送到客户机装置。这些虚拟通道中的一些可以将命令、函数调用或其他消息从客户机装置传送到应用或远程桌面的操作系统。这些消息可以用于控制、更新或管理应用或桌面的操作和显示。
举例来说,客户机侧代理502可以经由供应(例如,ICA、RDP、HDX)会话从服务器侧代理504接收与服务器106(例如,XenDesktop服务器)上生成的远程桌面环境相关联的数据。在一些实施例中,可以提供客户机侧代理502作为动态链接的库组件,例如,该动态链接的库组件从服务器侧代理504接收窗口创建和窗口处理数据以用于显示服务器106上生成的窗口的本地版本。在一些实施例中,客户机侧代理502可以通过一个或多个连接接收诸如窗口属性数据的数据。可以在一个或多个虚拟通道内多路复用一个或多个连接。这样的多路复用可以允许不同的虚拟通道具有不同的带宽限制或者不同的优先级,同时仍然是单个传输层连接的一部分。这可以减少所需要的传输层开销并且提供SSL或VPN隧道能力,同时仍然允许每通道压缩、缓冲以及管理客户机侧代理502和服务器侧代理504之间的通信优先级。虚拟通道可以专用于特定内容类型或目的。例如,第一高优先级虚拟通道可以专用于应用输出数据的传输,而第二低优先级虚拟通道可以专用于任务栏缩略图图像的传输。多个虚拟通道可以用于传送一种或多种类型的应用数据(例如,音频、图形、元数据、打印机数据、磁盘数据、智能卡数据等)。例如,一些类型的应用数据可以各自经由供应会话内的专用虚拟通道来运送或传送,和/或某些类型的应用数据可以各自通过共享一个或多个虚拟通道来运送或传送到中间设备。
在用于(例如,经由Citrix XenApp/XenDesktop)输送应用或桌面的HDX会话中,客户机侧代理(例如,Citrix接收器)和服务器侧代理(例如,Citrix XenApp/XenDesktop虚拟输送代理(VDA))之间的协议交换可能涉及多个协议,包括核心ICA协议和用于表示各种技术的VC的协议,各种技术诸如图形、多媒体、打印、驱动映射、开窗口、用户输入等。对该虚拟化协议和/或VC数据流的深度解析(例如,解压缩、解码、解密和/或解交错)可能会消耗大量的处理资源,并且极大地限制网络装置的可伸缩性。例如,网络装置(例如,Citrix网关和SD-WAN)可以深度解析流经网络的ICA流量,该网络具有一个或多个协议,诸如传输控制协议(TCP)或传输层安全性(TLS)、启发数据传输(EDT)或数据报传输层安全性(DTLS)或用户数据报协议(UDP)、公共网关协议(CGP)、ICA框架、自定义ICA加密(例如,安全ICA)、ICA协议本身(例如,包括压缩,诸如基于有状态上下文的压缩)和单个核心ICA或VC数据流的交错、以及单个VC协议,以便例如从HDX会话中收集各种信息或洞察。
除了基于HDX、RDP或ICA的会话之外,也考虑了其他类型的通信会话,其可以包括数据流的各种通道或连接(例如,具有类似于虚拟通道的特征),并且可以涉及各种相应的协议。与通信会话相关的洞察、度量、分析、统计数据和/或其他信息(下文有时总称为洞察)可以用于确定和/或改进通信会话的基础设施(例如、XenApp/XenDesktop基础设施)以及使用该基础设施输送的应用(例如,Microsoft Office应用、远程桌面应用)的用户体验和整体健康。洞察可以与网络装置执行的和/或网络装置(例如,Citrix网关或Citrix SD-WAN)处理的其他网络健康分析进行组合。此外,可以将这样的集体洞察提供给管理和分类实用程序(例如,Citrix导引器)、管理分析服务或者第三方收集器工具。集体洞察和/或这些工具可以允许管理员查看和分析实时客户机、主机和网络时延度量、历史报告和/或端到端性能数据,并且可以允许管理员解决性能和网络问题。
然而,网络装置深度解析、解密和/或解压缩流量(例如,HDX流量)所作的努力可能会损害网络装置的可伸缩性,并且可能显著增加支持(例如,HDX特定的)洞察的成本。这些可能是存储器和CPU密集型操作,该操作直接影响网络装置(例如,Citrix网关或SD-WAN设备)一次可以支持的连接(例如,ICA连接)的数量。对这样的流量的深度解析可能是存储器和CPU密集型操作,主要原因在于对ICA流的有状态解压缩。例如,“有状态”可以指跨连接、会话、时间和/或操作维护、跟踪、保持、存储和/或转换状态。
在一些实施例中,为网络装置的检索添加附加洞察可能需要更新一个或多个会话协议(例如,HDX协议)。解析多流ICA(MSI)流可能会使网络装置的解析机制、逻辑和/或方法进一步复杂化。从一个网络装置到另一个网络装置的高可用性(HA)故障切换也可能复杂化,因为需要在装置之间转换非常大和复杂的状态以便继续收集洞察。例如,高可用性可以指系统(诸如使用硬件冗余来)容忍故障。在一些实施例中,测量客户机侧和服务器侧代理(例如,Citrix接收器和VDA)之间的往返时延可能受到服务器负载和服务器处理时间的影响。
为了解决这些和其他挑战,本公开提供了用于以实时、可伸缩和/或可扩展的方式(例如,无需由网络装置进行深度解析)向网络装置输送虚拟会话的洞察的方法和系统的实施例。在一些实施例中,可以跨客户机侧代理(例如,桌面虚拟化客户机)、网络装置和服务器侧代理(例如,VDA)或者在客户机侧代理、网络装置和服务器侧代理之间建立单独的或独立的VC(有时称为应用流VC),以用于洞察(例如,虚拟化会话洞察)的传输。可以在这些实体之间(例如,在桌面虚拟化客户机、网络设备和VDA之间)协商应用流VC。应用流VC可以促进对洞察进行可伸缩和可扩展处理。
本方法和系统的一些实施例在网络装置故障切换(例如,高可用性故障切换)期间提供或支持应用流洞察或度量的状态转换。本方法和系统的某些实施例提供或支持对MSIHDX流的有效识别和优先级排序。本方法和系统的一些实施例提供或支持独立于主机处理时间的第7层(L7,应用层)时延计算和通信。本方法和系统的一些实施例提供或支持多个网络装置之间的L7时延计算和通信。
再次参考图5,根据示意性实施例,系统500可以包含应用流VC以用于提供洞察。应用流VC可以包含上述VC的一个或多个特征。在一些方面,除了应用流VC被配置为承载与另一VC承载的数据流类型不同的数据流之外,应用流VC可以与该另一VC相同或相似。可以包括客户机102、服务器106和ICA堆栈的网络链路可以传送应用流VC的数据流。数据流可以承载可以由网络链路中的装置访问的洞察。
本公开的系统和方法可以使用任何类型和形式的装置来实现或者涉及任何类型和形式的装置,包括上文参考图1A-图1B、图2和图4描述的客户机、服务器和/或设备200。如本文所引用的,“服务器”有时可以指客户机-服务器关系中的任何设备,例如,与客户机装置102握手的设备200。服务器106可以是上文至少参考图1A描述的服务器106a-n的实例、实施方式、或者包括与服务器106a-n类似的方面。类似地,客户机102可以是上文参考图1A描述的任何客户机102a-n的实例、实施方式、或者包括与任何客户机102a-n类似的方面。本系统和方法可以使用中间装置或网关(诸如本文描述的设备或装置200的任何实施例或方面)来实现或者涉及中间装置或网关。系统和方法可以在任何类型和形式的环境中实现,该环境包括本文描述的多核装置、虚拟化环境和/或集群式环境。
服务器106可以托管一个或多个应用或者服务。应用或者服务510中的每一个可以包括或对应于任何类型或形式的应用或者服务。应用或者服务可以包括网络应用、web应用、软件即服务(SaaS)应用、远程托管应用等。作为一些非限制性示例,应用可以包括来自一套应用(例如,Microsoft Office 360或Google docs)的文字处理、电子表格或其他应用,在服务器上托管和执行以用于远程供应给客户机的应用,桌面应用和/或基于HTML5的应用。对应于应用或服务510的分组可以由服务器106的VDA和/或ICA堆栈(有时称为HDX堆栈或VDA HDX堆栈)进行压缩、加密和/或以其他方式处理,并被传输或输送到客户机102。VDA可以包括ICA堆栈,并且可以在服务器侧代理504处终止VC的一端,而客户机侧代理502终止VC的另一端。
在一些实施例中,客户机102可以驻留在分支机构处,并且可以在客户机侧网络内操作,该客户机侧网络可以包括或对应于专用网络(例如,局域网(LAN)或广域网(WAN))。在一些实施例中,服务器106和客户机102可以经由专用网络(例如,LAN或软件定义的广域网(SD-WAN))通信地彼此耦合。服务器106可以驻留在服务器或数据中心处,并且可以在服务器侧网络内操作,该服务器侧网络也可以是专用网络(例如,LAN、WAN等)。
一个或多个网络装置可以是客户机102和服务器106之间的中间装置。网络装置508可以包括或对应于任何类型或形式的中间装置、网络装置或设备、网关装置、中间盒装置和/或代理装置,诸如但不限于NetScaler装置、SD-WAN装置等。服务器106、客户机102、网络装置508中的每一个都可以以串行方式通信地耦合。
协商和建立应用流VC以用于传输洞察
在服务器106上执行的服务器侧代理504(例如,VDA)可以发起应用流VC的建立。服务器侧代理504可以在服务器106和客户机102之间的路径中发起与客户机侧代理502(有时称为桌面虚拟化客户机)和/或网络装置的应用流VC的建立。沿着网络链路的服务器侧代理504、客户机侧代理502(例如,Citrix工作空间应用(CWA)或Citrix接收器)和网络装置(例如,Citrix网关、Citrix网关服务、Citrix SD-WAN)中的全部或部分可以选择参与应用流VC的协商。这些装置可以通告它们的存在和/或支持应用流VC的能力。
例如,服务器侧代理的HDX堆栈可以发起、建立或以其他方式启用应用流VC,并且可以(例如,使用ICA或公共网关协议(CGP))在HDX连接上发送其主机至客户机(例如,服务器106到客户机102)洞察数据。HDX连接可以与用于承载一个或多个其他VC(或HDX VC)的HDX连接相同,除了其承载的应用流VC可能是未压缩和/或与任何其他HDX VC非交错的。这是为了促进网络连接中的网络装置对应用流VC进行有效解析。网络装置和客户机侧代理502(例如,接收器)中的任何一个可以对应用流VC中的洞察数据进行解析和解释,或者简单地忽略洞察数据。在应用流VC内,可以以自描述性、轻量级可扩展格式(例如,以JavaScript对象表示法(JSON)格式)发送洞察数据。
类似地,客户机侧代理的HDX堆栈可以建立或启用应用流VC,并经由应用流VC发送其客户机至主机(例如,客户机102到服务器106)洞察数据。应用流VC可以保持未压缩和/或与其他HDX VC非交错,以促进由网络装置进行有效解析。服务器侧代理504(例如,VDA)可以对应用流VC中的客户机至主机洞察数据进行解析和解释,或者简单地忽略洞察数据。
在一些实施例中,应用流协议能力或数据结构用于协商应用流VC的配置(例如,能力),其可以包括通告(例如,沿着网络链路的)不同实体对应用流VC的支持。实体可以通过在实体之间执行能力交换来通告它们对应用流VC的支持。协商中涉及的实体可以包括以下至少一项:(a)服务器106(主机),(b)网络装置A(例如,网关),(c)服务器侧网络装置B(例如,SD-WAN装置),(d)客户机侧网络装置C(例如,SD-WAN装置)或客户机102。实体之间的能力交换可以确定应用流VC对于特定HDX会话的行为。多于一个的网络装置(例如,网关装置、SD-WAN装置)可以参与协商。能力交换可以包括实体向一个或多个实体报告或通告该实体的应用流能力,或者与一个或多个其他实体的应用流能力交换其应用流能力。
在一些实施例中,应用流VC能力可以包括以下信息或数据字段中的至少一个:
·主机(或服务器)协议版本
·主机(或服务器)标志
·网关协议版本
·网关标志
·主机(或服务器)侧SD-WAN协议版本
·主机(或服务器)端SD-WAN标志
·客户机侧SD-WAN协议版本
·客户机侧SD-WAN标志
·客户机协议版本
·客户机标志
·会话协议版本
·会话协议标志
参考图6,根据示意性示例描述了协商和使用应用流VC的方法600。图6中还描述了客户机侧代理502、服务器侧代理504、网络装置604和管理工具或服务602,它们结合该方法进行互操作。如图所示,方法的各种实施例可以包括多个操作1到8’中的全部或部分。
参考操作1,服务器侧代理504(例如,VDA)可以在消息(例如,初始请求消息或者分组)中报告新的应用流能力。如果服务器106不支持应用流VC特征,或者如果服务器106中禁用了应用流VC特征,则服务器侧代理504的应用流能力不会被发送到其他实体。否则,服务器106发送将服务器的协议版本设置为该服务器可以支持的最高版本的应用流能力。服务器还可以设置标识粒度应用流特征的附加标志。在一些实施例中,(例如,如上所述的)全部或部分其他数据字段初始设置为零(例如,默认设置为0或者清空)。应用流能力可以在消息(例如,ICA初始请求分组)中从服务器106发送到客户机102。
参考操作2,网络装置可以在消息(例如,初始请求消息或分组)中的应用流能力中设置其网络装置(例如,网关或SD-WAN)协议版本。(例如,网络链路中的)服务器至客户机路径中的每个网络装置都可以接收或拦截消息(例如,初始请求分组)。相应的网络装置可以反向沿着服务器至客户机路径解析应用流能力,并且将相应的网络装置各自的应用流协议版本设置为其可以支持的最高版本。每个网络装置还可以设置附加标志,该附加标志标识粒度应用流特征。协议版本0(例如,初始/默认值0保持不变,或者未由相应的网络装置设置)可以指示在网络链路中在服务器106和客户机102之间不存在相应的网络装置。如果驻留在服务器106和客户机102之间的相应的网络装置不支持应用流协议,或者如果在相应的网络装置处禁用应用流特征,则能力保持不变(例如,协议版本保持为零)。应用流能力中的所有其他数据字段均保持不变。
参考操作3,客户机侧代理502(例如,接收器)可以在消息(例如,初始响应消息或分组)中报告在客户机侧ICA/HDX堆栈处的WinStation驱动器的能力。如果客户机不支持应用流特征或者该特征在客户机102处被禁用,则不将该能力发送回主机(例如,不将初始响应分组传输回服务器106)。如果如由相应的协议版本数据字段为零(例如,所有可能的网络装置的协议版本被清空或者设置为零,和/或服务器106的协议版本被清空或者设置为零)所指示的,客户机102和服务器106之间不存在网络装置和/或不存在支持应用流VC特征的服务器侧代理504,或者缺少服务器106报告的应用流能力,则该能力也不会发送回服务器106。否则,客户机102可以将应用流能力发送回主机,从而镜像或维护已设置的所有服务器和网络装置数据字段。客户机102可以将客户机的协议版本设置为其可以支持的最高版本。客户机102还可以设置标识粒度应用流特征的附加标志。可以在从客户机102传输到服务器106的ICA初始响应分组中发送应用流能力。
参考操作4,客户机102可以在消息中(例如,在Winstation驱动器的初始响应中)提供VC绑定信息。VC绑定信息可以包括Winstation驱动器VC绑定结构中的应用流VC。VC绑定信息可以包括、指示或标识协议名称到ID号的绑定(有时称为协议名称到ID号的关联)。协议名称可以指示或标识核心ICA协议或应用流VC的协议。ID号可以标识或指示以下至少一项:关联的VC模块、应用流VC或者WinStation驱动器。客户机102(例如,客户机侧代理502或者WinStation驱动器)可以向绑定到应用流模块的ID号提供或分配协议名称,该应用流模块负责在客户机102处实现应用流VC。VC模块可以是WinStation驱动器的一部分,或者包括WinStation驱动器,或者可以与WinStation驱动器分离。VC模块可以是客户机侧代理502(例如,VDA)的一部分,或者包括客户机侧代理502,或者可以与客户机侧代理502分离。客户机可以加载VC模块以在客户机102处实现、发起和/或建立应用流VC。客户机可以在同一消息(例如,初始响应分组或消息)中或者在另一消息(例如,另一初始响应分组或消息)中向服务器106发送或报告VC绑定信息。VC绑定信息可以代表WinStation驱动器而被发送,该WinStation驱动器负责实现支持应用流VC和/或任何其他VC的核心ICA协议。服务器106可以接收VC绑定信息(例如,VC协议名称到ID号的绑定),并且可以使用VC绑定信息来访问或以其他方式打开应用流VC并在其上发送数据。可以由网络链路中的任何网络装置使用VC绑定信息来查找和解析出其他VC和核心协议中的应用流VC。
参考操作5,服务器106可以提交应用流VC和/或ICA/HDX会话的能力。服务器106可以从客户机102接收消息(例如,初始响应分组或消息),该消息可以包括以下至少一项:应用流能力或者VC绑定信息。服务器可以解析、提取、确定和/或分析从客户机102接收的应用流能力。例如,服务器可以检测、识别或确定可能已经由客户机和网络装置在应用流能力中设置的协议版本和/或附加标志。
服务器可以例如使用或根据在应用流能力中设置的信息来计算或确定会话协议版本和/或会话协议标志。例如,会话协议版本可被设置为0或者由所有实体(例如,服务器、网络装置、客户机)报告的协议版本的最小值。如果客户机和服务器之间没有网络装置支持会话协议版本(例如,不支持应用流VC或特征),或者如果客户机102不支持会话协议版本(例如,不支持应用流VC或特征),或者如果客户机未在协议名称到ID号的绑定中报告应用流VC本身,和/或如果没有为会话协商协议级加密或者自定义应用流VC级加密,则可以将会话协议版本设置为0。如果会话协议版本的值为0,则不会为会话(例如,ICA、RDP或HDX会话)创建或建立应用流VC。
服务器可以提交或最终确定会话协议版本(例如,如果该值不为0)和/或计算或确定的会话协议标志。服务器可以通过将提交的会话协议版本和/或会话协议标志包括在从服务器发送到客户机的消息(例如,初始连接分组或消息)中的应用流能力中,来将提交的会话协议版本和/或会话协议标志传送或传播到所有其他实体(例如,网络装置、客户机)。这些实体中的全部或者部分可以读取提交的会话协议版本和/或会话协议标志。如果(客户机和服务器之间的)网络链路中没有网络装置存在、没有网络装置对应用流洞察感兴趣或者能够处理应用流洞察,和/或如果客户机侧代理502不支持应用流特征,和/或如果未协商或不存在加密(例如,协议级加密或者自定义应用流VC加密),则该过程可以避免不必要地创建应用流VC和/或发送应用流数据点(例如,洞察)。例如,以及在一些实施例中,本文描述的能力交换过程还可以用于协商自定义应用流VC协议级加密方法和密钥,使得通过应用流VC发送的数据只能由指定的网络装置或客户机(例如,可以访问自定义应用流VC协议级加密方法和密钥的网络装置或客户机)来解密。
服务器106可以发起、建立、创建和/或打开应用流VC,并且可以开始在应用流VC内插入、写入、提供和/或发送各种洞察(例如,事件和数据点)。服务器106可以响应于以下至少一项来发起、建立、创建和/或打开应用流VC和/或提供洞察:确定会话协议版本不为是0,提交会话协议版本和/或会话协议标志,或者将提交的会话协议版本和/或会话协议标志发送给其他实体。服务器106可以在会话(例如,HDX或ICA会话)中打开或创建应用流VC,并且可以(例如,在顶级ICA/HDX协议中)使应用流VC(和/或其他VC)的协议分组保持未压缩,并且可以使应用流VC(和/或其他VC)的协议分组保持非交错(例如,以促进其他实体进行解析)。可以(例如,在应用流协议级)压缩应用流VC数据流。服务器106可以将来自各种堆栈或VC组件的会话数据(例如,以JSON格式或协议)提供到相应的VC内,该相应的VC可以在用户或内核模式下实现。会话数据可以包括定向到应用流VC内的洞察。应用流VC可以承载以JSON格式形成和发送的消息,以促进感兴趣的实体(例如,网络装置)和/或客户机进行解析,并确保易于扩展。例如,网络装置(例如,网关和/或SD-WAN装置)可以被配置为支持和理解JSON格式。然而,可以使用任何其他格式,例如实体支持的和/或可以有效地传输和处理的格式。
应用流VC可以(例如,以JSON或其他格式)传送、传输、承载或传递一个或多个应用流消息。每个应用流消息可以包括以下至少一项:
·传输堆栈连接ID
·HDX会话GUID(促进每个单独的数据点与用户和会话环境的关联)
·终端服务会话ID
·上下文(允许其他实体关联数据点的附加上下文。)
·时间戳
·源(例如,虚拟通道或者发起数据点的其他系统组件)
·等等
在一些实施例中,消息可以包括或包含(a)键(名称)、(b)类型或(c)值中的至少一个。消息可被分类为至少三种不同的组/类型:
i)版本:这样的消息可以是通过应用流VC从服务器发送到客户机的第一消息(例如,JSON消息)。这样的消息可以表示JSON协议版本,其可能不同于应用流VC协议版本。这样的消息可以用于将服务器实现的一组事件和数据点宣传给其他实体。类似地,这样的消息可以是通过应用流VC从客户机发送到服务器的第一消息(例如,JSON消息),并且可以用于类似的目的。
ii)事件:这样的消息可以允许服务器发出在服务器上发生事件的信号。例如,服务器可以发送事件,该事件发出HDX会话中的特定VC“发生了一些事情”的信号,或者指示另一系统事件。类似地,这样的消息可被客户机用于引发与其他实体的事件。
iii)键值:这样的消息可以描述单个数据点。例如,这样的消息可以描述某个数据点对于HDX会话中的虚拟通道具有该特定值。
举例说明,事件可以包括但不限于以下一项或多项:
·应用启动,时间戳
·应用终止,时间戳
·进程终止,时间戳
·会话断开/终止,时间戳
·USB告知装置
·USB装置被接受
·USB装置被拒绝
·USB装置消失
·USB装置重置
·USB装置重置端点
举例说明,数据点可以包括但不限于以下一项或多项:
·域名
·登录票证
·服务器名称
·服务器版本
·会话类型(例如,桌面、应用)
·客户机名称
·客户机版本
·客户机序列号
·应用名称
·应用模块路径
·应用进程ID
·应用启动时间
·应用终止时间
·会话终止时间
·启动机制
·自动重新连接/会话可靠性机制
·ICA往返时间(RTT)
·第7层(L7)时延
·VC带宽
·多流ICA(MSI)流类型(主或从)
参考操作5’。客户机可以读取会话能力,可以打开应用流VC,并且可以将数据写入应用流VC内。客户机可以读取服务器提交的会话协议版本和/或会话协议标志。根据指令(例如,提交的会话协议版本和会话协议标志),客户机可以访问或者打开应用流VC。与服务器类似,客户机可以在客户机到服务器的方向上经由应用流VC发送数据点,该数据点将由一个或多个网络装置和/或服务器检索。
参考操作6,网络装置(例如,网关或SD-WAN装置)可以从应用流VC读取数据(例如,洞察)。每个感兴趣或有能力的网络装置可以读取服务器提交的会话协议版本和/或会话协议标志。根据服务器(例如,经由提交的会话协议版本和/或会话协议标志)的指示,相应的网络装置可以有效地解析(出,例如相对于深度解析)其他VC和核心协议中的应用流VC(例如,使用VC绑定信息),并且可以读取应用流VC中承载的洞察(例如,数据点)。VC绑定信息(例如,VC协议名称到ID号的关联)可能对网络装置在其他VC协议(例如,VC特定的或VC级协议)和核心(或顶级ICA/HDX)协议中检测、识别和/或解析出应用流VC有用。网络装置可以忽略所有其他协议。这可以通过以下事实来进一步促进:应用流VC分组(例如,在顶层协议)是未压缩的和非交错的。这可以显著提高网络装置(诸如,网关或SD-WAN装置)可以支持的HDX会话的数量。这还改进了HDX会话上的用户体验,因为网络装置不再是处理(例如,深度解析)和吞吐量的瓶颈。如果已经协商加密,则网络装置可以(例如,在应用流VC协议级)解密数据点。(例如,参见下文讨论的测试结果)
参考操作7,网络装置可以将接收到的应用流VC数据与附加的网络分析进行组合。网络装置可以将接收到的应用流VC数据与网络装置生成、访问和/或提供的附加的网络分析进行组合,以形成或产生组合的洞察。网络装置可以将组合的洞察发送到管理工具或服务,以进一步分析和/或向管理员呈现。例如,可以将组合的洞察发送到Citrix导引器或Citrix管理和分析系统(MAS)或第三方洞察工具。Citrix MAS可以对应于或者包括集中式网络管理和分析系统。管理员可以从单个平台查看、管理网络装置,并且解决网络相关的问题、或特定发布的桌面和应用的问题。在一些实施例中,管理工具或服务(例如,MAS)可以被配置为HDX/ICA流量流经的网络装置(例如,Citrix网关或Citrix SD-WAN)上的应用流收集器。管理工具或服务(例如,MAS)可以从网络装置(例如,Citrix网关或Citrix SD-WAN)接收记录(例如,组合的洞察),分析记录,并且可以(例如,在HDX洞察管理员视图中)呈现它们。(例如,在HDX洞察管理员视图中)呈现的数据可以帮助管理员解决与时延、带宽、桌面或应用启动时间、桌面或应用响应时间等相关的问题。
参考操作8,客户机侧代理502可以读取并且可以丢弃应用流VC数据。客户机可以读取部分或全部数据点,并且可以丢弃客户机不感兴趣的部分或全部数据点。客户机可以从应用流VC中解析、提取、读取和/或解释(例如,由服务器提供的)数据点。例如,客户机可以记录、向最终用户呈现信息、回复服务器等。如果已经协商加密,则客户机可以解密数据点。
参考操作8’,服务器侧代理504可以读取并且可以丢弃应用流VC数据。与客户机类似,服务器可以读取和/或忽略客户机发送的部分或全部数据点。例如,服务器可以从应用流VC中解析、提取、读取和/或解释(例如,由客户机提供的)数据点。例如,服务器可以记录、向最终用户呈现信息、回复客户机等。如果已经协商加密,则服务器可以解密数据点。
在一些实施例中,客户机侧代理502(例如,接收器)可以在应用流VC上发送一些数据点,这些数据点可以与服务器侧代理504(例如,VDA)数据点关联,以提供对HDX会话的更多洞察。在某些实施例中,服务器侧代理504(例如,VDA)可以实现、添加或插入具有会话或应用特定细节的数据点,例如可以在会话中访问的URL等。
在一些实施例中,实现应用流VC的一个或多个替代方法可以包括:(a)分离从网络装置到服务器侧代理(例如,VDA)的CGP连接;(b)通过独立的传输层连接将数据从服务器侧代理(例如,VDA)经通道传输到监测工具/服务(例如,导引器/MAS);(c)基于通过HDX协议交换的唯一标识连接ID/会话GUID,将标记的数据点从每个实体(例如,客户机侧代理、网络装置、服务器侧代理)直接发送到云服务。然后,云服务可以基于标记(连接ID/会话GUID)关联来自不同源的数据点。该架构更适合于更愿意接受使用云服务的客户/组织,而不是本地客户/组织拥有/控制的网络装置和服务。
云服务可以用于访问包括网络应用的资源。云服务可以包括企业移动技术架构,在一个示意性实施例中该企业移动技术架构可以包括接入网关。例如,可以在自带装置(BYOD)环境中使用该架构。该架构可以使客户机装置(例如,移动或其他装置)的用户能够从客户机装置访问企业或个人资源,并且将客户机装置用于个人用途。用户可以经由在客户机装置上执行的客户机应用来访问这样的企业资源或企业服务。用户可以使用用户购买的客户机装置或企业提供给用户的客户机装置来访问这样的企业资源或企业服务。用户可以将客户机装置仅用于商业用途或者用于商业和个人用途。客户机装置可以运行iOS操作系统和Android操作系统等。企业可以选择实施策略来管理客户机装置。可以通过防火墙或网关,以可以识别、保护或安全验证客户机装置并且提供对企业资源的选择性或完全访问的方式来植入策略。策略可以是客户机装置管理策略,移动应用管理策略,移动数据管理策略,或者客户机装置、应用和数据管理策略的一些组合。通过应用客户机装置管理策略来管理的客户机装置可以称为所注册的装置。例如,可以经由客户机应用来应用客户机装置管理策略。
在一些实施例中,客户机装置的操作系统可以分为管理分区和非管理分区。管理分区可以具有策略,该策略被应用到管理分区以保护在管理分区上运行的应用和在管理分区中存储的数据。在管理分区上运行的应用可以是安全应用。在其他实施例中,所有应用都可以根据所接收的与应用分离的一个或多个策略文件的组来执行,该策略文件限定了一个或多个安全参数、特征、资源限制,和/或当应用在装置上执行时客户机装置管理系统强制执行的其他访问控制。通过根据应用各自的策略文件进行操作,可以允许或限制每个应用与一个或多个其他应用和/或资源进行通信,从而创建虚拟分区。因此,如本文所使用的,分区可以指示存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区)和/或如本文所描述的由于跨多个应用强制执行一个或多个策略和/或策略文件而创建的虚拟分区(虚拟分区)。换句话说,通过在所管理的应用上强制执行策略,可以将这些应用限制为只能与其他所管理的应用和受信任的企业资源进行通信,从而创建非管理的应用和装置无法访问的虚拟分区。
安全应用可以是电子邮件应用、web浏览应用、软件即服务(SaaS)访问应用、Windows应用访问应用等。客户机应用可以包括安全应用启动器。安全应用可以是安全本机应用、由安全应用启动器执行的安全远程应用、由安全应用启动器执行的虚拟化应用等。安全本机应用可以由安全应用包装器进行包装。安全应用包装器可以包括当在客户机装置上执行安全本机应用时在装置上执行的集成策略。安全应用包装器可以包括元数据,该元数据将在客户机装置上运行的安全本机应用指向在企业处托管的资源,安全本机应用可能需要该资源来完成在执行安全本机应用后请求的任务。由安全应用启动器执行的安全远程应用可以在安全应用启动器应用内执行。由安全应用启动器执行的虚拟化应用可以利用客户机装置上的资源、企业资源处的资源等。在客户机装置上由安全应用启动器执行的虚拟化应用使用的资源可以包括用户交互资源、处理资源等。用户交互资源可以用于收集和传输键盘输入、鼠标输入、摄像机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可以用于呈现用户界面、处理从企业资源接收的数据等。在企业资源处由安全应用启动器执行的虚拟化应用使用的资源可以包括用户界面生成资源、处理资源等。用户界面生成资源可以用于组装用户界面、修改用户界面、刷新用户界面等。处理资源可以用于创建信息、读取信息、更新信息、删除信息等。例如,虚拟化应用可以记录与图形用户界面(GUI)相关联的用户交互,并且将该用户交互传送到服务器应用,其中服务器应用可以使用用户交互数据作为在服务器上操作的应用的输入。在这种布置中,企业可以选择在服务器侧维护应用以及与应用相关联的数据、文件等。尽管企业可以根据本文的原则通过保护一些应用以在客户机装置上部署(例如,经由客户机应用)来选择“调动”这些应用,但也可以为特定的应用选择这种布置。例如,尽管可以保护一些应用以在客户机装置上使用,但是其他应用可能没有准备好或者不适合在客户机装置上部署,因此企业可以选择通过虚拟化技术向移动用户提供对未准备好的应用的访问。作为另一示例,企业可能具有大型复杂的应用,该应用具有大型和复杂的数据集(例如,材料资源规划应用),在这种情况下,为客户机装置自定义应用可能会非常困难或者是不合需要的,因此企业可以选择通过虚拟化技术来提供对应用的访问。作为又一示例,企业可能具有维护高度安全数据(例如,人力资源数据、客户数据、工程数据)的应用,企业可能认为该应用对于安全移动环境来说过于敏感,因此企业可以选择使用虚拟化技术来允许移动访问这样的应用和数据。企业可以选择在客户机装置上提供完全安全和功能完全的应用。企业可以使用客户机应用(其可以包括虚拟化应用)来允许访问被认为在服务器侧操作更适当的应用。在一个实施例中,虚拟化应用可以在移动电话上的一个安全存储位置中存储一些数据、文件等。例如,企业可以选择允许某些信息存储在电话上,而不允许其他信息存储在电话上。
如本文所描述的,结合虚拟化应用,客户机装置可以具有被设计为呈现GUI并且随后记录与GUI的用户交互的虚拟化应用。虚拟化应用可以将用户交互传送到服务器侧,服务器侧应用将该用户交互用作与应用的用户交互。作为响应,服务器侧的应用可以向客户机装置传输回新的GUI。例如,新的GUI可以是静态页面、动态页面、动画等,从而提供对远程定位资源的访问。
客户机装置可以使用云服务以连接到企业处的企业资源和企业服务、连接到公共互联网等。客户机装置可以通过虚拟专用网络连接连接到企业资源和企业服务208。虚拟专用网络连接(也称为微型VPN或应用特定的VPN),可以特定于特定应用(例如,以微型VPN来说明)、特定装置、客户机装置上的特定安全区域(例如,以O/S VPN来说明)等。例如,在电话的安全区域中的包装的应用中的每一个可以通过应用特定的VPN来访问企业资源,从而可以基于与应用相关联的属性(可能结合用户或装置属性信息)来授予对VPN的访问。虚拟专用网络连接可以承载Microsoft交换流量、Microsoft活动目录流量、超文本传输协议(HTTP)流量、超文本传输协议安全性(HTTPS)流量、应用管理流量等。虚拟专用网络连接可以支持并且启用单点登录认证过程254。单点登录过程可以允许用户提供单组认证凭证,该认证凭证随后由认证服务258进行验证。认证服务随后可以向用户授予对多个企业资源204的访问,而无需用户对每个单独的企业资源提供认证凭证。
虚拟专用网络连接可以由接入网关建立和管理。接入网关可以包括管理、加速和改进企业资源到客户机装置的输送的性能增强特征。接入网关还可以将流量从客户机装置重新路由到公共互联网,使得客户机装置能够访问在公共互联网上运行的公共可用和不安全的应用。客户机装置可以经由传输网络连接到接入网关。传输网络可以使用一个或多个传输协议,并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
企业资源可以包括电子邮件服务器、文件共享服务器、SaaS/Web应用、Web应用服务器、Windows应用服务器等。电子邮件服务器可以包括Exchange服务器、Lotus Notes服务器等。文件共享服务器可以包括ShareFile服务器等。SaaS应用可以包括Salesforce等。Windows应用服务器可以包括为提供拟在本地Windows操作系统上运行的应用而构建的任何应用服务器等。企业资源可以是基于场所的资源、基于云的资源等。客户机装置可以直接或者通过接入网关访问企业资源。客户机装置可以经由传输网络访问企业资源。传输网络可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
云服务可以包括接入网关和/或企业服务。企业服务208可以包括认证服务、威胁检测服务、装置管理器服务、文件共享服务、策略管理器服务、社会集成服务、应用控制器服务等。认证服务可以包括用户认证服务、装置认证服务、应用认证服务、数据认证服务等。认证服务可以使用证书。证书可以存储在客户机装置上、靠近企业资源等。存储在客户机装置上的证书可以存储在客户机装置上的加密位置中,证书可以临时存储在客户机装置上以在认证时使用,等等。威胁检测服务可以包括入侵检测服务、未授权访问尝试检测服务等。未授权访问尝试检测服务可以包括对访问装置、应用、数据等的未授权尝试。装置管理服务可以包括配置、供应、保护、支持、监测、报告和停用服务。文件共享服务可以包括文件管理服务、文件存储服务、文件协作服务等。策略管理器服务可以包括装置策略管理器服务、应用策略管理器服务、数据策略管理器服务等。社交集成服务可以包括联系集成服务、协作服务、与诸如Facebook、Twitter和LinkedIn的社交网络的集成等。应用控制器服务可以包括管理服务、供应服务、部署服务、分配服务、撤销服务、包装服务等。
云服务的企业移动技术架构可以包括应用商店。应用商店可以包括未包装的应用、预包装的应用等。应用可以从应用控制器填充到应用商店中。应用商店可以由客户机装置通过接入网关、通过公共互联网等进行访问。应用商店可以提供直观和易于使用的用户界面。
参考图7,描述了示出服务器(或者服务器侧代理或VDA)处的应用流700数据点收集和传输的实施方式的示例系统。系统可以包括客户机侧代理502(例如,Citrix接收器)、服务器侧代理504(例如,XenApp/XenDesktop(XA/XD)VDA)和网络装置604(例如,NetScaler装置)。结合图7进行举例,NetScaler应用流(NSAP)有时也称为应用流。本文以示例的方式引用Citrix NetScaler(或NetScaler),并且也可以用任何类型或形式的网络装置替换Citrix NetScaler。本文以示例的方式引用VDA,并且也可以用任何类型或形式的服务器侧代理504替换VDA。类似地,本文以示例的方式引用Citrix接收器(或接收器),并且也可以用任何类型或形式的客户机侧代理502替换Citrix接收器。以下是一个示例流程,并且可以包括以下操作的部分或全部:
在操作705处,在VDA引导之后,VDA上的NSAP服务可以实例化Windows事件跟踪(ETW)控制器,并且可以开始ETW实时会话。在操作710处,接收器可以开始ICA会话,并且新的NSAP驱动器可以从接收器端点发起NSAP VC。NSAP驱动器可以丢弃该NSAP VC上到来的所有数据,或者其可以使用接收到的统计数据。在操作715a和715b处,VDA上的用户模式HDX组件可以使用NSAP SDK(NsapSetxxx)向CtxNsapSvc发送数据点。在操作720处,VDA上的内核模式HDX组件可以使用NSAP SDK(NsapSetxxx)向CtxNsapSvc发送数据点。在操作725处,CtxNsap供应商库可以向CtxNsapSvc托管的NSAP ETW消费者发送ETW事件。在操作730处,NSAP服务可以封装数据点(例如,封装为JSON格式),并且可以将其发送到NSAP虚拟通道(或应用流VC)。在操作735处,NetScaler可以拦截NSAP VC消息并且可以提取所需的数据。在操作740处,该消息还可以与所有其他HDX流量一起传输到接收器。在操作745处,接收器NSAPVC驱动器可以丢弃NSAP VC消息。在测试模式下,NSAP VC驱动器可以解析内容,并且可以在DebugView或在文件中显示该内容,以用于测试自动化的目的。NSAP VC驱动器也可以在非测试模式下解释数据。
参考图8-10,提供了包括来自使用应用流VC的实施方式的测试结果的示意性测试结果。图8和9中的每幅图中的会话带宽(BW)可以指HDX流量负载。图8描述了会话带宽为125Kbps(例如,典型工作负载)的ICA/HDX会话的数量的示例测试结果的图表800。测试结果从左到右显示(当未实现应用流VC时)未解析洞察的情况、(当未实现应用流VC时)执行深度解析的情况以及为有效解析实现应用流VC的情况。图9描述了会话带宽为400Kbps(例如,图形丰富工作负载)的ICA/HDX会话的数量的示例测试结果的图表900。测试结果从左到右显示(当未实现应用流VC时)未解析洞察的情况、(当未实现应用流VC时)执行深度解析的情况以及为有效解析实现应用流VC的情况。对于每种会话带宽,使用基于应用流VC的实施方式可以服务的HDX会话的数量约为深度解析实施方式的2.5倍。由于测试设置中的某些瓶颈,实际差异可能更大。如前面所讨论的,深度解析是计算和资源密集型的,这减少了可以服务的HDX会话的数量。即使使用应用流VC(并且消耗了一些计算资源以用于更有效的解析),可以服务的HDX会话的数量似乎也与未解析洞察的情况类似。
图10描述了关于网络装置CPU使用率(例如,网关设备分组引擎CPU使用率)的示例测试结果的图表1000。测试结果显示(当未实现应用流VC时)未解析洞察的情况、(当未实现应用流VC时)执行深度解析的情况以及为有效解析实现应用流VC的情况。在会话的数量达到最大值的情况下显示CPU使用率。当传出带宽下降10%并且用户体验(UX)变得迟钝时,认为会话达到最大值。测试结果显示,当使用应用流VC(并且消耗了一些计算资源以用于更有效的解析)时,CPU使用率的级别(约23%)仅略高于未解析洞察的情况(约15%)。因此,即使会话的数量达到最大值,基于应用流VC的实施方式下的CPU使用率也相当低。然而,在执行深度解析的情况下,CPU使用率(接近100%)远高于其他两种情况。
网络设备故障切换期间应用流度量的状态转换(高可用性)
经由共享状态的状态转换
在一些实施例中,网络装置可以是负载平衡的,例如,网关在网关实例1和网关实例2之间可以是负载平衡的。特定的HDX会话最初可以从客户机1经由网关1建立到VDA主机1。可能已经建立了应用流VC,并且可能已经传输了数据点。可能已经协商和使用了ICA协议级加密,例如,基本或安全ICA加密。可能已经协商和使用了应用流VC特定的协议级加密。网关1的故障可能引起将经由网关2重新路由连接。在另一场景下,网络中断可能引起客户机1重新建立传输级连接,转而可能经由网关2重新路由连接(即使网关1处没有任何故障)。在这两种情况下,客户机1可以(例如,使用标准CGP会话可靠性机制)重新连接到主机HDX会话。
在将应用流状态从网关1转换到网关2时,可能存在继续重新解释协议流量(包括解密ICA协议级加密和/或应用流协议级加密),以及识别应用流VC消息的问题。网关1维护的协议状态可以继续保存在共享存储中,或者保存在全球可用服务或远程字典服务器(Redis)处等。协议状态可以包括但不限于以下任何一项或多项:(a)应用流VC协商的能力:会话协议版本和标志,每个实体的协议版本和标志;(b)应用流VC协议名称到ID号的关联/绑定;(c)记录的应用流VC版本、事件、数据点;(d)ICA协议级的加密方法、密钥、最后加密字节;和/或(e)应用流VC协议级的加密方法、密钥、最后加密字节。
网关2可从共享存储中检索和恢复共享协议状态,该共享协议状态由协议级标识符(诸如,CGP cookie、会话GUID等)标识。为了继续解析应用流VC消息,网关2可以例如执行以下任何一项或多项:(a)在CGP级重新同步所传输的和接收到的分组;(b)使用(ICA协议级的)最后加密字节以继续解密ICA流量并且维护加密状态;(c)可选地,为了优化,使用CGP协议中的标志来指示存在自包含的应用流VC消息;(d)如果网关2可以支持与网关1已经协商的会话能力相同的会话能力:使用(应用流VC协议级的)最后加密字节以继续解密应用流VC消息并且维护加密状态。否则:不支持应用流VC;或者如前所述,清除协议状态并且触发应用流VC协议能力的重新协商。这可能引起处理延迟,但可以确保仍支持应用流功能。因此,应用流状态可以成功地从网关1转换到网关2,并且网关2可以继续接收和解释新的事件和数据点。
经由内联状态重新初始化的状态转换
在一些场景下,协议状态可能无法在不同的网关实例之间简单、有效或快速地共享。例如,出于高可用性和弹性的目的,冗余网关实例可以驻留在不同的云平台上,例如,Microsoft Azure或Amazon AWS。对于附加的弹性,冗余网关实例可以存在于同一位置的设施或者本地。因此,作为替代方案,应用流通道(或VC)可以被设计为无状态的,或者,在故障切换期间,可以重新初始化(或重新开始)新的网关实例,新的网关实例具有足够的状态以继续解析应用流数据,其中可以经由隧道协议(例如,CGP)、或经由应用流VC本身或组合内联执行重新初始化。作为非限制性示例,可以如下所示发生内联状态重新初始化过程:
网络装置可以是负载平衡的,例如,网关在网关实例1和网关实例2之间可以是负载平衡的。特定的HDX会话最初可以从客户机1经由网关1建立到VDA主机1。可能已经建立了应用流VC,并且可能已经传输了数据点。作为确定强网络级加密(例如,使用TLS或DTLS)的结果,现有的端到端ICA协议级加密(例如,基本或安全ICA加密)可能被关闭。可能已经协商并且使用了应用流VC特定的协议级加密。网关1的故障可能引起将经由网关2重新路由连接。在另一场景下,网络中断可能引起客户机1重新建立传输,转而可能会经由网关2重新路由连接(即使网关1处没有任何故障)。在这两种情况下,客户机可以使用标准CGP会话可靠性机制重新连接到主机HDX会话。
当将应用流状态从网关1转换到网关2时,可能会存在继续重新解释协议流量(包括应用流协议级加密)和识别应用流VC消息的问题。在一些实施例中,在CGP重新连接后,交换新的CGP能力。在客户机到主机和/或主机到客户机的方向上,CGP能力承载足够的数据以允许网关2识别应用流VC。该数据可以包括应用流VC协议名称到ID号的关联/绑定。此外,在CGP重新连接后,客户机和主机可以向它们的应用流VC模块发出事件,该事件可以例如指示应用流VC本身发送(重新发送)以下一项或多项:[1]应用流VC协商的能力:会话协议版本和标志、每个实体的协议版本和标志(未加密,发送的第一数据点);[2]应用流VC协议级的加密方法、密钥、最后加密字节(未加密);[3]应用流VC JSON协议版本;[4]会话GUID;[5]还可以发送反映当前HDX会话状态的附加数据点;等等。不需要实时同步的大量历史数据点仍然可以存储在全局可访问或复制的MAS中。
为了继续解析应用流VC消息,网关2可以例如执行以下一项或多项:(a)在CGP级重新同步所传输的和接收到的分组;(b)可选地,为了优化,使用CGP协议中的标志来指示存在自包含的应用流VC消息;(c)使用应用流VC协议名称到ID号的关联/绑定,以开始解析应用流VC;(d)如果网关2可以支持与网关1已经协商的会话能力相同的会话能力(这对于能力可以保持统一的云实例来说可能是一个合理的假设):i)将所有应用流VC分组(例如,先前由客户机和/或主机进行CGP缓冲并且现在由CGP重新同步的分组)进行排队,直到接收到具有上述未加密数据点[1]和[2]的分组,ii)(在应用流VC协议级)使用最后加密字节继续解密应用流VC消息,并且维护加密状态,以及iii)解释和刷新先前CGP缓冲的数据点(如果有);(e)否则(如果网关2无法支持与网关1已经协商的会话能力相同的会话能力):i)不支持应用流VC,或者ii)如前所述,清除协议状态并且触发对应用流VC协议能力的重新协商。这可能引起处理延迟,但可以确保仍支持应用流功能。因此,应用流状态可以成功地从网关1转换到网关2,并且网关2继续接收和解释新的事件和数据点。
多流ICA(MSI)HDX流的有效识别和优先级排序
在多流ICA(MSI)中,虚拟通道可以在优先级为0-3的不同MSI流上运行。具有不同优先级的流可以为虚拟通道赋予服务质量QoS。在多端口ICA中,需要在服务器侧代理504(例如,VDA)上配置单独的端口。网络装置(这里引用SD-WAN以说明)可以通过深度解析CGP和ICA支持没有多个端口的MSI。SD-WAN可以执行压缩,这可以卸载ICA减速器、打印压缩等,并且包括跨会话高速缓存和压缩。
图11示出了使用这样的客户机侧和服务器侧网络装置的MSI的示例表示。本文示出和讨论的实施例提供了4个MSI流以进行说明(然而可以有任意数量的MSI流):1个主流,其处理核心ICA协议和一些VC,以及3个从流,其处理附加的VC。在一些实施例中,应用流VC消息在主MSI流上发送,因此网络装置可以仅解析主流以访问来自应用流VC中的这些消息的洞察。应用流VC消息也可以在任何其他预先确定的MSI流上发送,只要网络装置能够知道或确定访问洞察的流。为了能够识别单独的流、它们的类型和优先级,只要例如创建了每个流,就可以在所有MSI流(例如,一个主MSI流和三个从MSI流)上开始发送流识别数据点。流识别数据点可以包括以下至少一项但可以不限于:(a)会话GUID;(b)流ID;(c)优先级;或者(d)流类型:主与从。例如,Citrix SD-WAN可以使用优先级相应地对HDX流量进行优先级排序。
在HDX会话的生命周期期间,各个VC的优先级可能改变,并且它们可能会被重新分配给不同的流。这对应用流处理没有影响,因为应用流VC可以始终在预定(例如,主)流上处理。然而,各个流的优先级也可能改变,在这种情况下,可以再次发送流识别数据点以指示优先级的改变。在一些实施例中,VC写入操作通常可以仅在与VC相关联的专用流(例如,在应用流VC的情况下为主流)上发送数据点。然而,在应用流实施方式的情况下,可以使用修改的VC写入操作在相应的流上发送每个流识别数据点,以使网络装置能够识别单独的流、它们的类型和当前优先级。
独立于服务器(主机)处理时间的L7时延计算和通信
在一些实施例中,ICA/HDX协议使用不同于第7级(L7)时延测量的测量语义来确定往返时间(RTT)。ICA/HDX RRT使用面向用户体验(UX)或应用响应时间的语义。ICA RTT计算基于服务器对客户机查询的响应。服务器的响应在下一传出分组上发送。然而,如果应用不更新(例如,桌面应用是空闲的),则不存在其他的服务器到客户机的流量。因此,下一传出分组可能会无限期地延迟,从而导致可能无用的测量。
应用流VC监测网络装置(诸如,NetScaler网关或SD-WAN)也可能有兴趣报告在监测网络装置和服务器(例如,HDX主机)之间的OSI模型第7层的端到端网络时延。这可以是反映监测网络装置和服务器之间的网络状况的重要或有用的数据点,并且还可以与例如端点和监测设备之间的网络状况的附加测量进行组合。在一些实施例中,网络装置可以通过测量令牌(称为NsRTT(例如,NetScaler往返令牌))离开网络装置并返回所花费的时间来准确地计算L7时延。从服务器带回NsRTT的载波通道包括服务器处理时间(SPT),其可以从总时间中扣除以获得实际的“网络装置到服务器”L7时延。
由于涉及复杂的模块和系统,准确地计算服务器处理时间可能非常复杂。一个新颖的方面在于系统在离散的系统组件之间传播信息(时间戳)然后再将其吸收回来的方式。如图12所描述的,网络装置604可以从接收器(例如,客户机侧代理502)接收ICA流中的ICA分组(1205)。网络装置604可以采用时间戳T1(1210),并且将NsRTT令牌插入到到服务器的ICA流中(1215)。服务器侧WinStation驱动器1202(有时称为WDICA)可以接收NsRTT令牌,可以采用时间戳T2(1220),可以(例如,在Windows事件中,使用例如Windows事件跟踪(ETW))记录它,并且可以激发事件(1225),该事件随后进入Windows OS队列,然后被输送到Citrix应用流服务(CtxNsapSvc)以进行处理(1230)。ETW到达CtxNsapSvc所花费时间可能是不确定的。
在接收到ETW之后,CtxNsapSvc可以构造有效载荷(例如,JSON有效载荷),并且可以在应用流分组中对其进行调度(1235)。有效载荷可以包括先前经由事件传送的T2时间戳。然后,位于ICA堆栈的较低层并且基本上仅在网络传输模块上方的一层的WDICA可以通过计算真实SPT(T3-T2)来重新校准、调整、提供和/或更新JSON有效载荷中的SPT内容,其中T3是WDICA(例如,服务器侧WinStation驱动器1202)在接收到有效载荷或应用流分组后采用的当前时间戳(1240)。WDICA可以在有效载荷(例如,JSON有效载荷)的字段中写入真实SPT,并设置发送到网络装置的分组(1245)。网络装置604可以响应于接收到有效载荷,采用时间戳T4并且使用SPT来测量真实L7时延。真实L7时延等于T4-T1-(T3-T2)(1250)。网络装置604可以将NSAP分组发送到接收器(1255),并且接收器可以丢弃分组(1260)。
多个网络装置之间的L7时延计算和通信
结合图6描述的应用流VC能力可以扩展为包括附加字段,其中每个实体(网络装置或客户机)可以在应用流VC能力(例如,在ICA初始请求分组中)从服务器传输到客户机时设置先前未使用的位。位(或者字段)可以用于唯一地标识每个实体。每个实体可以记录其用作实体ID位的位,并且可以在应用流VC能力中设置该位,使得其他下游实体不会使用该位。
当网络装置在ICA流中插入NsRTT令牌时,网络装置还可以使用其相应的实体ID位来更新或修饰令牌。当NsRTT令牌在客户机到服务器的方向上传输时,路径中的其他网络装置也可以通过每次添加/设置其相应的实体ID位来重用NsRTT令牌。
服务器处的SPT计算和L7时延应用流数据点的创建可以如上所述进行,除了服务器可以将组合的实体ID位插入L7时延应用流数据点。路径中的每个网络装置都可以如上所述解释L7时延应用流数据点,除了网络装置可以忽略该数据点,除非其设置了其特定分配的实体ID位。
F.用于管理网络资源以输送虚拟应用和桌面的系统和方法
经由中间装置管理分组流
现在参考图13,描述了示出用于经由中间装置优化虚拟应用输送的过程1300的序列图。可以使用执行至少一个应用16(例如,工作空间应用)的至少一个客户机102、至少一个客户机侧设备604A(例如,客户机侧SD-WAN装置)、至少一个服务器侧设备604B(例如,服务器侧SD-WAN装置)、至少一个输送代理504(例如,VDA)、以及托管应用16’(或网络应用)的至少一个服务器106、以及上文在A-E部分中详述的其他组件来执行过程1300。例如,客户机侧设备604A和服务器侧设备604B可以是网络装置604的实例,并且客户机侧设备604A和服务器侧设备604B中的每一个都可以支持用于客户机102和服务器106以及其他组件之间的通信的一组虚拟通道。
客户机102可以请求启动应用16以访问服务器106上托管的应用16’(1302)。服务器106上托管的应用16’(例如,网络应用,诸如虚拟应用、虚拟桌面、SaaS应用或web应用)可以经由客户机102上的应用16在客户机120上访问。应用16’可以包括经由远程桌面可访问的单个程序或一组程序。应用16(本文也称为工作空间应用)可以是在客户机102上执行的用于访问服务器106上托管的应用16’的代理。为了启动,在客户机102上运行的应用16可以生成并发送对服务器106上托管的应用16’的请求。
作为响应,服务器106可以启动其上托管的应用16’以提供访问(1304)。服务器106可以从客户机102接收对应用16’的请求。在接收到请求后,服务器106可以开始执行应用16’,以远程供应或输送到在客户机102上运行的应用16。在一些实施例中,服务器106可以识别先前实例化的应用16’,以供应给在客户机102上运行的应用16。服务器106可以使用通过客户机侧设备604A和服务器侧设备604B在客户机102和服务器106之间建立的一组虚拟通道,向客户机102提供对应用16’的访问。每个虚拟通道可以在服务器106上运行的应用16’和客户机102上运行的应用16之间传送分组流。
通过访问应用16’,客户机102可以向服务器106提供用户输入(1306)。用户输入可以包括与应用16’的一个或多个用户交互事件。在一些实施例中,客户机102上的应用16可以维护和运行事件侦听器(例如,响应于与输入/输出装置或者图形用户界面的元素的用户交互的异步函数调用),以监测用户交互事件。用户交互事件可以例如包括通过输入/输出装置的用户输入,诸如悬停、点击、滚动、触摸屏、按键。用户交互可以包括激活经由客户机102上的应用16访问的应用16’的图形用户界面的用户界面元素。在检测到用户交互事件后,在客户机102上运行的应用16可以向在服务器106上运行的应用16’发送用户输入。在一些实施例中,在客户机102上运行的应用16可以经由客户机102和服务器106之间的虚拟通道中的一个或多个将用户输入发送到在服务器106上运行的应用16’。
输送代理504可以从服务器106(例如,从输送代理)获得关于应用16’的应用元数据(1308)。应用元数据可以包括关于服务器106上托管的应用16’的任何信息。例如,应用元数据可以包括:应用标识符(例如,发布的应用名称)、应用类型(例如,文字处理器、web浏览器或媒体播放器)、窗口或进程标识符、窗口层次结构、焦点中的用户元素、网络地址(例如,统一资源定位器(URL)和互联网协议(IP)地址)、与操作应用16或16’的用户相关联的帐户标识符、与客户机102相对应的装置标识符。应用元数据还可以包括指示与经由客户机102上的应用16访问的应用16’的用户交互事件的交互数据。交互数据可以例如包括用户界面元素的激活、事件通知、通过输入/输出(IO)装置的用户输入或者用户在应用16’上访问的URL(例如,超链接)等。
在一些实施例中,输送代理504可以从托管应用16’的服务器106获得应用元数据。在一些实施例中,输送代理504可以沿着客户机102和服务器106之间的一个或多个网络中的数据路径驻留,并且可以从经由该数据路径的通信中拦截应用元数据。可以根据应用16和16’使用的API(例如,Microsoft UI自动化API)获得包括交互数据的应用元数据。在一些实施例中,输送代理504可以从经由应用16访问应用16’的客户机102获得应用元数据。例如,应用16可以注册事件通知并且请求特定的属性和控制模式信息。在一些实施例中,输送代理504可以经由云服务或另一网络装置获得应用元数据。云服务可以包括与服务器106上托管的应用16’相关联的基于云的资源。在一些实施例中,输送代理504可以使用虚拟窗口跟踪来识别焦点中的用户元素和窗口层次结构。在一些实施例中,输送代理504可以使用进程监测来识别用户元素和窗口层次结构。在一些实施例中,输送代理504例如可以根据应用16和16’使用的API来获得交互数据,以枚举窗口层次结构并且识别焦点中的用户元素。
输送代理504可以将应用元数据和/或用户交互(或用户意图)元数据(以下有时总称或统称为“应用元数据”)发送到服务器侧设备604B(1310)。在一些实施例中,应用元数据可以由输送代理504经由服务器侧设备604B和客户机侧设备604A间接地发送到应用16。一旦获得,输送代理504就可以向服务器侧设备604B提供应用元数据。在一些实施例中,输送代理605可以经由与用于传送应用16和16’的分组流的一组虚拟通道分离的虚拟通道将应用元数据发送到服务器侧设备604B。可以在服务器侧设备604B和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。在一些实施例中,服务器侧设备604B可以经由云服务或另一网络装置获得应用元数据。云服务可以是与服务器106上托管的应用16’相关联的基于云的资源。
服务器侧设备604B可以将应用元数据转发到客户机侧设备604A(1312)。在一些实施例中,服务器侧设备604B可以经由与用于传送应用16和16’的分组流的一组虚拟通道分离的一个虚拟通道来发送应用元数据。可以在客户机侧设备604A和服务器侧设备604B之间建立单独的虚拟通道(本文有时称为带外)。客户机侧设备604A可以接收应用元数据。在一些实施例中,应用元数据可以由输送代理504经由单独的虚拟通道直接发送到客户机侧设备604A。可以在客户机侧设备604A和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。在一些实施例中,客户机侧设备604A和输送代理504可以经由认证协议建立单独的虚拟通道。在一些实施例中,客户机侧设备604A可以经由云服务或另一网络装置获得应用元数据。云服务可以是与服务器106上托管的应用16’相关联的基于云的资源。客户机侧设备604A可以将应用元数据转发到客户机102上的应用16(1314)。
随后,服务器106可以执行对应用16’的更新(1316)。对应用16’的更新可以对应于检测到的与应用16’有关的任何改变(例如,包括用户意图或交互)。例如,服务器106可以执行对应用16’的处理,从而响应于经由应用16从客户机102接收的用户输入来改变应用16’的执行。在一些实施例中,应用16’的更新可以对应于构成应用16’的基础的指令集(例如,软件)的改变。在一些实施例中,应用16’的更新可以对应于应用元数据的改变(例如,添加交互数据)。
输送代理504可以为分组标记、分配或以其他方式添加应用标识符(1318)。在一些实施例中,输送代理504可以访问、接收或以其他方式识别要从服务器106上托管的应用16’流式传输的分组。可以根据任意数量的通信协议来生成分组,诸如传输层安全性(TLS)或数据报传输层安全性(DTLS)等。在一些实施例中,根据分组的通信协议,分组可以具有报头和主体。报头可以包括与应用16’的应用元数据的至少一部分相关联的标识符。例如,分组的报头可以包括应用标识符和用户交互。在一些实施例中,报头可以包括与应用元数据的一部分相关联的标识符。标识符可以是包括在分组的报头中唯一地标识应用元数据的一部分的一组字母数字字符。在一些实施例中,输送代理504可以识别应用元数据的特定部分。输送代理504可以生成应用元数据的一部分的标识符。输送代理504可以将标识符插入分组的报头内。在一些实施例中,输送代理504可以将标识符包括到具有明文扩展的TLS或DTLS分组的报头内。在一些实施例中,输送代理504可以标记分组以指定隧道协议(例如,网关协议报头中的位)。在一些实施例中,输送代理504可以为分组标记网络地址(例如,IP地址和端口号的组合)。在一些实施例中,输送代理504可以用匿名标记来标记分组,以隐藏识别信息(例如,IP地址和端口号的组合)。一旦生成,输送代理504就可以将分组发送到服务器侧设备604B(1320)。
服务器侧设备604B可以解析或以其他方式检查分组以识别策略(1322)。服务器侧设备604B可以从输送代理504接收分组。在接收到后,服务器侧设备604B可以解析分组以识别报头和/或主体。服务器侧设备604B可以从报头获得用于识别应用元数据的相关部分的标识符。根据应用元数据的相关部分,服务器侧设备604B可以选择或识别策略,以应用于将要流式传输的分组。在一些实施例中,策略可以指定服务质量(QoS)配置(例如,分组丢失、位速率、吞吐量、延迟和抖动的范围)。策略的QoS配置可以设置用于在客户机102和服务器106之间流式传输分组以访问应用16’的带宽的范围。例如,对于在如元数据中指示的文字处理应用中键入、主动滚动和读取的用户,策略可以指定使用低延时的链路和前向纠错。相反,对于在浏览器中观看视频或者在探测器中传输文件的用户,策略可以指定使用高带宽链路进行批量传输。在一些实施例中,策略可以指定一组访问控制规则(例如,防火墙)。策略可以根据分组的报头中包含的应用元数据来指定QoS配置或访问控制。
在识别策略后,服务器侧设备604B可以将该策略应用于要流式传输到客户机102的分组。在根据应用元数据的一部分应用策略时,服务器侧设备604B可以确定要分配给分组流中的至少一个的网络资源。分配给分组流中的一个或多个的网络资源可以包括带宽、带宽限制、时延范围、允许的抖动、不同传输模式的使用(例如,更有效带宽或损失更多的模式)或者数据传输速率(吞吐量),等等。例如,服务器侧设备604B可以将网络资源设置为由所选择的策略的QoS规范指定的速率。通过根据策略分配网络资源,服务器侧设备604B可以向客户机侧设备604A和服务器侧设备604B之间的分组流提供目标QoS。
服务器侧设备604B可以路由或发送流中的分组(1324)。服务器侧设备604B可以将流中的分组发送到客户机侧设备604A。流可以对应于在客户机侧设备604A和服务器侧设备604B之间建立的一组虚拟通道中的一个。在一些实施例中,服务器侧设备604B可以根据分配给要在其中传送分组的流的网络资源来控制分组的路由。客户机侧设备604A可以将流中的分组发送到客户机102上的应用16(1326)。客户机侧设备604A可以从在客户侧设备604A和服务器侧设备604B之间建立的一组虚拟通道中的一个接收分组流。
在客户机102上运行的应用16可以接收用户输入(1328)。用户输入可以包括与应用16’的一个或多个用户交互事件。在一些实施例中,客户机102上的应用16可以维护和运行事件侦听器以监测用户交互事件。用户交互事件可以例如包括通过输入/输出装置的用户输入,诸如悬停、点击、滚动、触摸屏、按键。用户交互可以包括激活经由客户机102上的应用16访问的应用16’的图形用户界面的用户界面元素。在检测到用户交互事件后,在客户机102上运行的应用16可以向在服务器106上运行的应用16’发送用户输入。在一些实施例中,在客户机102上运行的应用16可以经由客户机102和服务器106之间的虚拟通道中的一个或多个将用户输入发送到在服务器106上运行的应用16’。
应用16可以为分组标记、分配或以其他方式添加应用元数据(1330)。应用元数据可以包括在客户机102处关于经由应用16访问的应用16’的活动(例如,用户交互)。在一些实施例中,应用16可以访问、接收或以其他方式识别要从服务器106上托管的应用16’流式传输的分组。可以根据任意数量的通信协议来生成分组,诸如传输层安全性(TLS)或数据报传输层安全性(DTLS)等。在一些实施例中,根据用于分组的通信协议,分组可以具有报头和/或主体。报头可以包括标识符或标记,用于识别应用16’的应用元数据的至少相关部分。标识符可以是唯一地标识分组的报头中包括的应用元数据的一部分的一组字母数字字符。在一些实施例中,应用16可以识别与管理分组(或其虚拟通道)的网络资源相关的应用元数据的一部分。应用16可以生成应用元数据的一部分的标识符。应用16可以将标识符插入分组的报头内。在一些实施例中,应用16可以将标识符包括到具有明文扩展的TLS或DTLS分组的报头内。在一些实施例中,应用16可以标记分组以指定隧道协议(例如,网关协议报头中的位)。在一些实施例中,应用16可以为分组标记网络地址(例如,IP地址和端口号的组合)。在一些实施例中,应用16可以用匿名标记来标记分组,以隐藏识别信息(例如,IP地址和端口号的组合)。
应用元数据可以包括关于服务器106上托管的应用16’以及关于用户意图或交互的任何信息。应用元数据可以例如包括:应用标识符(例如,发布的应用名称)、应用类型(例如,文字处理器、web浏览器或媒体播放器)、窗口或进程标识符、窗口层次结构、焦点中的用户元素、网络地址(例如,统一资源定位器(URL)和互联网协议(IP)地址)、与操作应用16或16’的用户相关联的帐户标识符、与客户机102相对应的装置标识符。应用元数据还可包括指示与经由客户机102上的应用16访问的应用16’的用户交互事件的交互数据。交互数据可以例如包括用户界面元素的激活、事件通知、通过输入/输出(IO)装置的用户输入、或用户在应用16’上访问的URL(例如,超链接)等。一旦生成,应用16就可以将用户输入发送到客户机侧设备604A(1332)。在客户机102上运行的应用16可以经由虚拟通道中的一个或者经由本文描述的其他方式将用户输入作为元数据进行发送。
客户机侧设备604A可以解析分组以识别策略(1334)。客户机侧设备604A可以从应用16接收分组。在接收到后,客户机侧设备604A可以解析分组以识别报头和/或主体。客户机侧设备604A可以从报头获得用于识别与分组(或其虚拟通道)相关的应用元数据的一部分的标识符。根据所识别的应用元数据的一部分,客户机侧设备604A可以选择或识别应用于要流式传输的分组的策略。在一些实施例中,策略可以指定服务质量(QoS)配置(例如,要分配的网络资源,和/或分组丢失、位速率、吞吐量、延迟和抖动的可接受范围)。策略的QoS配置可以设置用于在客户机102和服务器106之间流式传输分组以访问应用16’的带宽的范围。例如,对于在如元数据中指示的文字处理应用中键入、主动滚动和读取的用户,策略可以指定使用低时延链路和前向纠错。相反,对于在浏览器中观看视频或在探测器中传输文件的用户,策略可以指定使用高带宽链路以进行批量传输。在一些实施例中,策略可以指定一组访问控制规则(例如,防火墙)。策略可以根据分组的报头中包含的应用元数据来指定QoS配置或访问控制。
在识别策略后,客户机侧设备604A可以将该策略应用于要流式传输到客户机102的分组。在根据应用元数据的一部分应用策略时,客户机侧设备604A可以确定要分配给分组流中的至少一个的网络资源。分配给分组流中的一个或多个的网络资源可以包括带宽、带宽限制、时延范围、允许的抖动或数据传输速率(吞吐量)等。例如,客户机侧设备604A可以将网络资源设置为由所选择的策略的QoS规范指示的速率。通过根据策略分配网络资源,客户机侧设备604A可以向客户机侧设备604A和服务器侧设备604B之间的分组流提供目标QoS。
客户机侧设备604A可以在流中路由分组(1336)。客户机侧设备604A可以在流中将分组发送到服务器侧设备604B。流可以对应于在客户机侧设备604A和服务器侧设备604B之间建立的一组虚拟通道中的一个。在一些实施例中,客户机侧设备604A可以根据分配给要在其中传送分组的流的网络资源来控制分组的路由。服务器侧设备604B可以将分组发送到输送代理504(1338)。输送代理504可将用户输入转发到在服务器106上执行的应用16’(1340)。
服务器106可以启动应用16’(1342)。在一些实施例中,服务器106可以如先前在过程1300中一样来启动不同的应用16’。在接收到分组后,服务器106可以开始执行应用16’,以提供给在客户机102上运行的应用16。在一些实施例中,服务器106可以识别先前实例化的应用16’以供应给在客户机102上运行的应用16(例如,工作空间应用)。服务器106可以使用通过客户机侧设备604A和服务器侧设备604B在客户机102和服务器106之间建立的一组虚拟通道向客户机102提供对应用16’的访问。每个虚拟通道可以在服务器106上运行的应用16’和客户机102上运行的应用16之间传送分组流。为新的应用16’建立的一组虚拟通道可以与用于先前应用16’的一组虚拟通道不同。
输送代理504可以从服务器106获得关于应用16’的应用元数据(1344)。应用元数据可以包括关于服务器106上托管的应用16’的任何信息。应用元数据可以例如包括:应用标识符(例如,发布的应用名称)、应用类型(例如,文字处理器、web浏览器或媒体播放器)、窗口或进程标识符、窗口层次结构、焦点中的用户元素、网络地址(例如,统一资源定位器(URL)和互联网协议(IP)地址)、与操作应用16或16’的用户相关联的帐户标识符、与客户机102相对应的装置标识符。应用元数据还可包括指示与经由客户机102上的应用16访问的应用16’的用户交互事件的交互数据。交互数据可以例如包括用户界面元素的激活、事件通知、通过输入/输出(IO)装置的用户输入或者用户在应用16’上访问的URL(例如,超链接)等。在一些实施例中,输送代理504可以从托管应用16’的服务器106获得应用元数据。在一些实施例中,输送代理504可以沿着客户机102和服务器106之间的一个或多个网络中的数据路径驻留,并且可以从经由该数据路径的通信中拦截应用元数据。在一些实施例中,输送代理504可以从经由应用16访问应用16’的客户机102获得应用元数据。在一些实施例中,输送代理504可以经由云服务或另一网络装置获得应用元数据。云服务可以包括与服务器106上托管的应用16’相关联的基于云的资源。
输送代理504可以将应用元数据发送到服务器侧设备604B(1346)。在一些实施例中,应用元数据可以由输送代理504经由服务器侧设备604B和客户机侧设备604A间接地发送到应用16。一旦获得,输送代理504就可以向服务器侧设备604B提供应用元数据。在一些实施例中,输送代理605可以经由与用于传送应用16和16’的分组流的一组虚拟通道分离的虚拟通道将应用元数据发送到服务器侧设备604B。可以在服务器侧设备604B和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。在一些实施例中,服务器侧设备604B可以经由云服务或另一网络装置获得应用元数据。云服务可以是与服务器106上托管的应用16’相关联的基于云的资源。
服务器侧设备604B可以将应用元数据转发到客户机侧设备604A(1348)。在一些实施例中,服务器侧设备604B可以经由与用于传送应用16和16’的分组流的一组虚拟通道分离的虚拟通道来发送应用元数据。可以在客户机侧设备604A和服务器侧设备604B之间建立单独的虚拟通道(本文有时称为带外)。客户机侧设备604A可以接收应用元数据。在一些实施例中,应用元数据可以由输送代理504经由单独的虚拟通道直接发送到客户机侧设备604A。可以在客户机侧设备604A和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。在一些实施例中,客户机侧设备604A和输送代理504可以经由认证协议建立单独的虚拟通道。在一些实施例中,客户机侧设备604A可以经由云服务或另一网络装置获得应用元数据。云服务可以是与服务器106上托管的应用16’相关联的基于云的资源。客户机侧设备600A可以将应用元数据转发到客户机102上的应用16(1350)。
随后,服务器106可以更新应用16’(1352)。对应用16’的更新可以对应于应用16’上的任何改变或者用户意图或交互的任何改变。例如,服务器106可以执行对应用16’的处理,从而响应于经由应用16从客户机102接收的用户输入来改变应用16’的执行。在一些实施例中,应用16’的更新可以对应于构成应用16’的基础的指令集(例如,软件)的改变。在一些实施例中,应用16’的更新可对应于应用元数据的改变(例如,添加交互数据)。
输送代理504可以为分组标记、分配或以其他方式添加应用标识符(1354)。在一些实施例中,输送代理504可以访问、接收或以其他方式识别要从服务器106上托管的应用16’流式传输的分组。可以根据任意数量的通信协议来生成分组,诸如传输层安全性(TLS)或数据报传输层安全性(DTLS)等。在一些实施例中,根据分组的通信协议,分组可以具有报头和主体。报头可以包括用于识别应用元数据的至少相关部分的标识符或标记。标识符可以是唯一地标识与分组(或其虚拟通道)相关的应用元数据的一部分的一组字母数字字符。在一些实施例中,输送代理504可以识别由分组的报头中的标识符标识的应用元数据的一部分。输送代理504可以生成应用元数据的一部分的标识符。输送代理504可以将标识符插入分组的报头内。在一些实施例中,输送代理504可以将标识符包括到具有明文扩展的TLS或DTLS分组的报头内。在一些实施例中,输送代理504可以标记分组以指定隧道协议(例如,网关协议报头中的位)。在一些实施例中,输送代理504可以为分组标记网络地址(例如,IP地址和端口号的组合)。在一些实施例中,输送代理504可以用匿名标记来标记分组以隐藏识别信息(例如,IP地址和端口号的组合)。一旦生成,输送代理504就可以将分组发送到服务器侧设备604B(1356)。
服务器侧设备604B可以解析分组以识别策略(1358)。服务器侧设备604B可以从输送代理504接收分组。在接收到后,服务器侧设备604B可以解析该分组以识别报头和/或主体。服务器侧设备604B可以从报头进一步识别用于标识应用元数据的相关部分的标识符。根据应用元数据的一部分,服务器侧设备604B可以选择或识别应用于要流式传输的分组的策略。在一些实施例中,策略可以指定服务质量(QoS)配置(例如,分组丢失、位速率、吞吐量、延迟和抖动的范围)。策略的QoS配置可以设置用于在客户机102和服务器106之间流式传输分组以访问应用16’的带宽的范围。例如,对于如在元数据中指示的文字处理应用中键入、主动滚动和读取的用户,策略可以指定使用低时延的链路和前向纠错。相反,对于在浏览器中观看视频或在探测器中传输文件的用户,策略可以指定使用高带宽链路以进行批量传输。在一些实施例中,策略可以指定一组访问控制规则(例如,防火墙)。策略可以根据分组的报头中包含的应用元数据来指定QoS配置或访问控制。
在识别策略后,服务器侧设备604B可以将该策略应用于要流式传输到客户机102的分组。在根据应用元数据的一部分应用策略时,服务器侧设备604B可以确定要分配给分组流中的至少一个的网络资源。分配给分组流中的一个或多个的网络资源可以包括带宽、带宽限制、时延范围、允许的抖动或数据传输速率(吞吐量)等。例如,服务器侧设备604B可以将网络资源设置为由所选择的策略的QoS规范指示的速率。通过根据策略分配网络资源,服务器侧设备604B可以向客户机侧设备604A和服务器侧设备604B之间的分组流提供目标QoS。
服务器侧设备604B可以路由流中的分组(1360)。服务器侧设备604B可以将流中的分组发送到客户机侧设备604A。流可以对应于在客户机侧设备604A和服务器侧设备604B之间建立的一组虚拟通道中的一个。在一些实施例中,服务器侧设备604B可以根据分配给要在其中传送分组的流的网络资源来控制分组的路由。客户机侧设备604A可以将分组从流发送到客户机102上的应用16(1362)。客户机侧设备604A可以从在客户机侧设备604A和服务器侧设备604B之间建立的一组虚拟通道中的一个接收分组流。在接收到后,客户机侧设备604A可以将分组从流发送到客户机102上的应用16(1362)。
现在参考图14,描述了用于经由中间装置优化虚拟应用输送的方法1400的流程图。可以使用执行至少一个应用16(例如,工作空间应用)的至少一个客户机102、至少一个客户机侧设备604A(例如,客户机侧SD-WAN设备)、至少一个服务器侧设备604B(例如,服务器侧SD-WAN设备)、至少一个输送代理504(例如,VDA)、以及托管应用16’(或网络应用)的至少一个服务器106,以及上文在A-E部分中详述的其他组件来执行方法1400。简言之,网络装置可以接收应用的元数据(1405)。网络装置可以接收分组流(1410)。网络装置可以针对标识符访问分组(1415)。网络装置可以应用策略(1420)。网络装置可以确定网络资源(1425)。网络装置可以发送元数据(1430)。网络装置可以发送分组流(1435)。
更详细地说,网络装置(例如,客户机侧设备604A或服务器侧设备604B)可以接收应用(例如,服务器106上的应用16’)的元数据(1405)。应用可以托管在服务器(例如,服务器106)上。服务器上托管的应用可以由客户机(例如,客户机102上的接收器502)经由网络装置进行访问。应用可能已经响应于从客户机接收到并且经由网络装置转发到服务器的对应用的请求而启动。应用的元数据可以包括描述应用或与应用相关的数据或信息,诸如:应用标识符、应用类型、窗口或进程标识符、窗口层次结构、焦点中的用户元素、网络地址或者与客户机的用户相关联的帐户标识符等。元数据还可以包括指示与客户机处的应用或活动的用户交互的数据或信息,诸如:用户界面元素的激活、事件通知、通过与客户机连接的输入/输出(IO)装置的用户输入或者在应用上访问的链路等。在一些实施例中,网络装置可以识别、检索或接收来自服务器上托管的应用的元数据。元数据可以包括关于支持与客户机处的应用或活动的用户交互的特征的可用性的数据或信息。在一些实施例中,网络装置可以识别、检索或接收来自另一装置的应用的元数据,另一装置诸如是输送代理(例如,输送代理504)或云服务等。在一些实施例中,网络装置可以接收来自在应用(例如,应用16)的本地实例上执行的客户机装置的元数据。
网络装置可以接收分组流(1410)。网络装置可以支持一个或多个虚拟通道,以用于应用在客户机和服务器之间传送数据(例如,分组流)。在一些实施例中,网络装置可以经由虚拟通道中的一个从输送代理接收分组流。在一些实施方式中,分组流的接收可以与应用的元数据的接收分离。例如,可以经由与用于接收应用的元数据的虚拟通道不同的虚拟通道来接收分组流。在一些实施例中,网络装置可以识别、检索或接收来自服务器上托管的应用的分组流。在一些实施例中,网络装置可以接收来自在应用的本地实例上执行的客户机装置的分组流。
网络装置可以针对标识符访问分组(1415)。可以根据任意数量的通信协议来生成流的分组,诸如传输层安全性(TLS)或数据报传输层安全性(DTLS)等。根据通信协议,分组(例如,部分或全部分组)可以具有报头和主体。报头可以包括与应用的元数据的至少一部分相关联的标识符。在一些实施例中,分组的报头可以包括具有明文扩展的TLS或DTLS报头。网络装置可以访问流中至少一个分组的报头,以提取或识别与应用的元数据的一部分相关联的标识符。使用来自流中的至少一个分组的标识符,网络装置可以识别应用的元数据。
网络装置可以应用策略(1420)。网络装置可以使用使用来自分组流中的至少一个分组的标识符识别的应用的元数据来识别要应用的策略。策略可以指定要分配的服务质量(QoS)配置(例如,分组丢失、位速率、吞吐量、延迟和抖动的范围)。QoS配置可以设置用于在客户机和服务器之间流式传输分组以访问应用的带宽的范围。通过识别,网络装置可以响应于所识别的应用的元数据来应用策略。
网络装置可以确定网络资源(1425)。网络装置可以设置或分配网络资源以跨虚拟通道传送分组流。网络资源可以对应于经由至少一个虚拟通道传送的分组流可用的容量,可以包括带宽、时延范围、允许的抖动或数据传输速率(吞吐量)等。在一些实施例中,网络装置可以根据所识别的应用的元数据的一部分来确定网络资源。在一些实施例中,通过将策略应用于所识别的元数据的一部分,网络装置可以确定分组流的目标QoS配置。目标QoS配置可以对应于给定所识别的元数据由策略指定的配置。目标QoS配置可以设置或分配网络资源,以跨应用的虚拟通道传送分组流。
网络装置可以发送元数据(1430)。网络装置可以经由网络装置支持和维护的虚拟通道中的一个转发、提供或以其他方式传输应用的元数据。元数据可以是由网络装置最初接收的相同元数据(或其至少一部分)。元数据可以由网络装置传输到另一网络装置(例如,客户机侧设备604A或服务器侧设备604B)、客户机、服务器或输送代理。网络装置可以在与传送分组流的虚拟通道分离的虚拟通道中或者通过该虚拟通道(或带外)发送元数据。
网络装置可以发送分组流(1435)。网络装置可以根据所确定的网络资源发送分组流。在一些实施例中,网络装置可以根据所识别的元数据的一部分,以所确定的带宽、带宽限制、时延范围、允许的抖动或数据传输速率经由虚拟通道发送分组流。网络装置可以经由网络装置支持和维护的虚拟通道中的一个转发、提供或以其他方式传输分组流。分组流可以由网络装置传输到另一网络装置(例如,客户机侧设备604A或服务器侧设备604B)、客户机、服务器或输送代理。网络装置可以在与传送应用的元数据的虚拟通道分离的虚拟通道上发送元数据。
经由中间装置控制对Web内容的访问
现在参考图15,描述了示出用于控制对重定向内容的访问的过程1500的序列图。可以使用执行至少一个应用16(例如,工作空间应用)的至少一个客户机102、至少一个客户机侧设备604A(例如,客户机侧SD-WAN装置)、至少一个服务器侧设备604B(例如,服务器侧SD-WAN装置)、至少一个输送代理504(例如,VDA)、至少一个web服务器106’、以及托管应用16’(例如,网络应用)的至少一个服务器106,以及上文在A-E部分中详述的其他组件来执行过程1500。例如,客户机侧设备604A和服务器侧设备604B可以是网络装置604的实例,并且客户机侧设备604A和服务器侧设备604B中的每一个都可以支持用于客户机102和服务器106以及其他组件之间的通信的一组虚拟通道。
更详细地说,客户机102可以尝试从web服务器106(例如,使用统一资源定位器(URL))访问web内容(1502)。URL可以包括主机名和文件路径名。主机名可以直接引用web服务器106’。文件路径名可以引用web服务器106’上托管的特定资源(例如,web内容)。客户机102调用的URL可以是通过互联网发送到web服务器106’的请求的一部分。客户机侧设备604A可以将规则应用于对URL的尝试访问(1504)。规则可以限制客户机102经由客户机侧设备604A直接访问web服务器106’上的资源。因为URL直接引用web服务器106’,所以客户机侧设备604A可以根据策略限制和阻止URL的启动。
随后,客户机102可以启动服务器106上托管的应用16’(1506)。服务器106上托管的应用16’(例如,网络应用,诸如虚拟应用、虚拟桌面、SaaS应用或web应用)可以经由客户机102上的应用16在客户机102上访问。应用16’可以包括经由远程桌面可访问的单个程序或一组程序。应用16(本文也称为工作应用)可以是在客户机102上执行的用于访问服务器106上托管的应用16’的代理。为了启动,在客户机102上运行的应用16可以生成并发送对服务器106上托管的应用16’的请求。该请求可以包括URL。请求的URL可以包括主机名和路径名。主机名可以引用托管应用16’的服务器106。路径名可以引用服务器106上托管的资源,诸如应用16’。
作为响应,服务器106可以启动应用16’(1508)。服务器106可以从客户机102接收对应用16’的请求。在接收到请求后,服务器106可以开始执行应用16’以提供给在客户机102上运行的应用16。在一些实施例中,服务器106可以识别先前实例化的应用16’,以远程供应给在客户机102上运行的应用16。服务器106可以使用通过客户机侧设备604A和服务器侧设备604B在客户机102和服务器106之间建立的一组虚拟通道向客户机102提供对应用16’的访问。每个虚拟通道可以在服务器106上运行的应用16’和客户机102上运行的应用16之间传送分组流。
通过向客户机102提供访问,在服务器106上运行的应用16’可以等待用户输入(1510)。用户输入可以包括与应用16’的一个或多个用户交互事件。在一些实施例中,客户机102上的应用16可以维护和运行事件侦听器以监测用户交互事件。用户交互事件可以例如包括通过输入/输出装置的用户输入,诸如悬停、点击、滚动、触摸屏、按键。用户交互可以包括激活经由客户机102上的应用16访问的应用16’的图形用户界面的用户界面元素。在检测到用户交互事件后,在客户机102上运行的应用16可以向在服务器106上运行的应用16’发送用户输入。在一些实施例中,在客户机102上运行的应用16可以经由客户机102和服务器106之间的虚拟通道中的一个或多个将用户输入发送到在服务器106上运行的应用16’。
服务器106上的应用16’可以访问URL引用的资源(1512)。在一些实施例中,应用16’可将URL标识为对应于从客户机102接收的(例如,在用户界面元素中的超链接上的)用户输入。URL可以包括主机名和路径名。URL的主机名可以直接或间接地(例如,使用网络地址转换(NAT))引用web服务器106’。路径名可以引用web服务器106’上托管的特定资源(例如,web内容)。
输送代理504可以提供与来自服务器106的应用16’相关联的应用元数据(1514)。应用元数据可以包括关于服务器106上托管的应用16’的任何信息。应用元数据可以例如包括:应用标识符(例如,发布的应用名称)、应用类型(例如,文字处理器、web浏览器或媒体播放器)、窗口或进程标识符、窗口层次结构、焦点中的用户元素、网络地址(例如,统一资源定位器(URL和互联网协议(IP)地址)、与操作应用16或16’的用户相关联的帐户标识符、与客户机102相对应的装置标识符。应用元数据还可包括指示与经由客户机102上的应用16访问的应用16’的用户交互事件的交互数据。交互数据可以例如包括用户界面元素的激活、事件通知、通过输入/输出(IO)装置的用户输入或者用户在应用16’上访问的URL(例如,超链接)等。
在一些实施例中,输送代理504可以从托管应用16’的服务器106获得应用元数据。在一些实施例中,输送代理504可以沿着客户机102和服务器106之间的一个或多个网络中的数据路径驻留,并且可以从经由该数据路径的通信中拦截应用元数据。可以根据应用16和16’使用的API(例如,Microsoft UI自动化API)获得包括交互数据的应用元数据。在一些实施例中,输送代理504可以从经由应用16访问应用16’的客户机102获得应用元数据。例如,应用16可以注册事件通知并且请求特定属性和控制模式信息。在一些实施例中,输送代理504可经由云服务或另一网络装置获得应用元数据。云服务可以是与服务器106上托管的应用16’相关联的基于云的资源。在一些实施例中,输送代理504可以使用虚拟窗口跟踪来识别焦点中的用户元素和窗口层次结构。在一些实施例中,输送代理504可以使用进程监测来识别用户元素和窗口层次结构。在一些实施例中,输送代理504可以根据应用16和16’使用的API获得交互数据,以枚举窗口层次结构并且识别焦点中的用户元素。
输送代理504可以将应用元数据发送到服务器侧设备604B(1516)。在一些实施例中,应用元数据可以由输送代理504经由服务器侧设备604B和客户机侧设备604A间接地发送到应用16。一旦获得,输送代理504就可以向服务器侧设备604B提供应用元数据。在一些实施例中,输送代理605可以经由与用于传送应用16和16’的分组流的一组虚拟通道分离的虚拟通道(例如,经由应用流虚拟通道)将应用元数据发送到服务器侧设备604B。可以在服务器侧设备604B和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。在一些实施例中,服务器侧设备604B可以经由云服务或另一网络装置获得应用元数据。云服务可以是与服务器106上托管的应用16’相关联的基于云的资源。
服务器侧设备604B可以将应用元数据转发到客户机侧设备604A(1518)。在一些实施例中,服务器侧设备604B可以经由与用于传送应用16和16’的分组流的一组虚拟通道分离的虚拟通道来发送应用元数据。可以在客户机侧设备604A和服务器侧设备604B之间建立单独的虚拟通道(本文有时称为带外)。客户机侧设备604A可以接收应用元数据。在一些实施例中,应用元数据可以由输送代理504经由单独的虚拟通道直接发送到客户机侧设备604A。可以在客户机侧设备604A和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。在一些实施例中,客户机侧设备604A和输送代理504可以经由认证协议建立单独的虚拟通道。在一些实施例中,客户机侧设备604A可以经由云服务或另一网络装置获得应用元数据。云服务可以是与服务器106上托管的应用16’相关联的基于云的资源。客户机侧设备604A可以将应用元数据转发到客户机102上的应用16’(1520)。
随后,在服务器106上运行的应用16’可以向输送代理504发送重定向URL(1522)。重定向URL可以是重定向请求的一部分(例如,具有3xx状态代码的HTTP消息),该重定向请求将在客户机102上运行的应用16指定到重定向URL中指示的另一URL。重定向URL可以包括主机名和路径名。重定向URL的主机名可以引用web服务器106’。重定向URL的路径名可以引用web服务器106’上托管的特定资源(例如,web内容)。重定向URL可以根据各种重定向技术而生成,诸如浏览器内容重定向(BCR)、具有客户机侧抓取的多媒体重定向以及闪存重定向等。重定向URL可以间接地指示与web服务器106’上托管的资源相对应的目标URL。例如,目标URL可以对应于媒体源或BCR目标URL。
输送代理504可以更新应用元数据,以包括要发送到服务器侧设备604B的重定向URL(1524)。输送代理504可以从在服务器106上运行的应用16’接收重定向URL。在一些实施例中,输送代理504可以从应用16’接收包括重定向URL的重定向请求。在一些实施例中,输送代理504可以用来自重定向请求的重定向URL替换包括在应用元数据中的原始URL。在更新后,输送代理504可以将具有重定向URL的应用元数据发送到服务器侧设备604B。
在接收到后,服务器侧设备604B可以设置规则(1526)。规则可以指定网络资源的分配,以用于客户机102经由服务器侧设备604B访问web服务器106’上的资源。在一些实施例中,服务器侧设备604B可以从输送代理504接收具有重定向URL的应用元数据。服务器侧设备604B可以解析应用元数据以识别重定向URL。根据如经由标记/标识符指定的应用元数据的相关部分(包括重定向URL),服务器侧设备604B可以选择、确定或识别应用于要流式传输的分组的规则。在一些实施例中,规则可以指定服务质量(QoS)配置(例如,要分配的网络资源,和/或分组丢失、位速率、吞吐量、延迟和抖动的可接受范围)。规则的QoS配置可以设置用于在客户机102和服务器106之间流式传输分组以访问应用16’的带宽的范围。在一些实施例中,规则可以指定一组访问控制规则(例如,防火墙规则)。规则可以根据分组的报头中包含的重定向URL来指定QoS配置和/或访问控制。
在识别规则后,服务器侧设备604B可以将该规则应用于要发送到客户机102的重定向URL。在根据应用元数据应用规则时,服务器侧设备604B可以确定要分配给访问web服务器106’上的资源的网络资源。分配给分组流中的一个或多个的网络资源可以包括带宽、带宽限制、时延范围、允许的抖动或数据传输速率(吞吐量)等。分配给分组流中的一个或多个的网络资源可以确定访问控制(防火墙操作),例如以允许或拒绝分组流量。例如,服务器侧设备604B可以将网络资源设置为由所选择的规则的QoS规范指示的速率。通过根据规则来分配网络资源,服务器侧设备604B可以向客户机102提供目标QoS,同时经由服务器侧设备604B访问web服务器106’上托管的资源。此外,服务器侧设备604B可以在经由服务器侧设备604B访问web服务器106’的资源期间,将网络资源的分配应用于客户机102。通过规则的设置,服务器侧设备604B可以将具有重定向URL的更新的应用元数据发送到客户机侧设备604A(1528)。客户机侧设备604A可以从服务器侧设备604B接收具有重定向URL的更新的应用元数据。
在接收到后,客户机侧设备604A可以设置规则(1530)。规则可以指定网络资源的分配,以用于客户机102经由客户机侧设备604A访问web服务器106’上的资源。在一些实施例中,客户机侧设备604A可以从输送代理504接收具有重定向URL的应用元数据。客户机侧设备604A可以解析应用元数据以识别重定向URL。在一些实施例中,客户机侧设备604A上的规则可以允许访问由重定向URL引用的资源。根据应用元数据的一部分(包括重定向URL),客户机侧设备604A可以选择、确定或识别应用于要流式传输的分组的规则。在一些实施例中,规则可以指定服务质量(QoS)配置(例如,分组丢失、位速率、吞吐量、延迟和抖动的范围)。规则的QoS配置可以设置用于在客户机102和服务器106之间流式传输分组以访问应用16’的带宽的范围。在一些实施例中,规则可以指定一组访问控制规则(例如,防火墙规则)。规则可以根据分组的报头中包含的重定向URL来指定QoS配置和/或访问控制。
在识别规则后,客户机侧设备604A可以将该规则应用于要发送到客户机102的重定向URL。在根据应用元数据应用规则时,客户机侧设备604A可以确定要分配的网络资源以访问web服务器106’上的资源。分配给分组流中的一个或多个的网络资源可以包括带宽、带宽限制、时延范围、允许的抖动或数据传输速率(吞吐量)等。例如,客户机侧设备604A可以将网络资源设置为由所选择的规则的QoS规范指示的速率。通过根据规则来分配网络资源,客户机侧设备604A可以向客户机102提供目标QoS,同时经由客户机侧设备604A和服务器侧设备604B访问web服务器106’上托管的资源。此外,客户机侧设备604A可以在经由客户机侧设备604A和服务器侧设备604B访问web服务器106’的资源期间,将网络资源的分配应用于客户机102。通过规则的设置,客户机侧设备604A可以将具有重定向URL的更新的应用元数据发送到在客户机102上运行的应用16(1532)。
随后,服务器106可以执行对应用16’的更新。对应用16’的更新可以对应于应用16’上的任何改变。例如,服务器106可以执行对应用16’的处理,从而响应于经由应用16从客户机102接收的用户输入来改变应用16’的执行。在一些实施例中,应用16’的更新可以对应于对构成应用16’的基础的指令集(例如,软件)的改变。在一些实施例中,应用16’的更新可以对应于应用元数据的改变(例如,添加交互数据)。
输送代理504可以为分组标记、分配或以其他方式添加应用标识符(1534)。在一些实施例中,输送代理504可以访问、接收或以其他方式识别要从服务器106上托管的应用16’流式传输的分组。可以根据任意数量的通信协议来生成分组,诸如传输层安全性(TLS)或数据报传输层安全性(DTLS)等。分组可以对应于重定向请求。在一些实施例中,根据分组的通信协议,分组可以具有报头和/或主体。报头可以包括标记或标识符,以用于标识应用16’的应用元数据的至少相关部分。标识符可以是唯一地标识与分组或其虚拟通道相关的应用元数据的一部分的一组字母数字字符。在一些实施例中,输送代理504可以识别应用元数据的一部分,并且提供相应的标识符以包括到分组的报头内。输送代理504可以生成应用元数据的一部分的标识符。输送代理504可以将标识符插入分组的报头内。在一些实施例中,输送代理504可以将标识符包括到具有明文扩展的TLS或DTLS分组的报头内。在一些实施例中,输送代理504可以标记分组以指定隧道协议(例如,网关协议报头中的位)。在一些实施例中,输送代理504可以为分组标记网络地址(例如,IP地址和端口号的组合)。在一些实施例中,输送代理504可以用匿名标记来标记分组以隐藏识别信息(例如,IP地址和端口号的组合)。
一旦生成,输送代理504就可以将具有重定向URL的分组发送到客户机102上的应用16(1536)。在一些实施例中,由输送代理504发送的分组可以对应于具有重定向URL的重定向请求。在一些实施例中,输送代理504可以经由与用于传送应用16和16’的分组流的一组虚拟通道分离的虚拟通道(例如,应用流虚拟通道)发送应用元数据。可以在客户机侧设备604A和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。客户机侧设备604A可以接收应用元数据(包括重定向URL)。在一些实施例中,应用元数据可以由输送代理504经由单独的虚拟通道直接发送到客户机侧设备604A。可以在客户机侧设备604A和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。带外虚拟通道可以利用媒体加速技术,诸如多媒体重定向或闪存重定向媒体源URL、浏览器内容重定向(BCR)目标URL。在一些实施例中,客户机侧设备604A和输送代理504可以经由认证协议建立单独的虚拟通道。
在客户机102上运行的应用16可以尝试访问重定向URL引用的资源(1538)。应用16可以直接或间接地(例如,经由服务器侧设备604B或客户机侧设备604A)接收来自输送代理504的包括重定向URL的分组。在一些实施例中,应用16可以解析分组以识别重定向URL。重定向URL可以包括主机名和文件路径名。主机名可以间接地引用(例如,使用诸如网络地址转换(NAT)的重写技术)web服务器106’。文件路径名可以引用web服务器106’上托管的特定资源(例如,web内容)。客户机102调用的重定向URL可以是经由客户机侧设备600A发送到web服务器106’的请求的一部分。
客户机侧设备604A可以将规则应用于重定向URL的启动(1540)。规则可以允许经由客户机侧设备604A访问服务器106’上的资源。客户机侧设备604A可以允许朝web服务器106’发送包括具有重定向URL的分组的请求。在发送分组时,客户机侧设备604A可以从在客户机102上运行的应用(例如,工作空间应用)接收应用元数据。应用元数据可以包括客户机102处关于经由应用16访问的应用16’的活动(例如,用户交互)。在一些实施例中,客户机侧设备可以对分组和/或应用元数据应用防火墙和QoS规则。
例如,使用从客户机102接收的应用元数据,客户机侧设备604A可以选择、确定或识别应用于要从web服务器106’流式传输到客户机102的分组的规则。在一些实施例中,规则可以指定服务质量(QoS)配置(例如,分组丢失、位速率、吞吐量、延迟和抖动的范围)。规则的QoS配置可以设置用于在客户机102和web服务器106’之间流传输分组以访问web内容的带宽的范围。在一些实施例中,规则可以指定一组访问控制规则(例如,防火墙规则)。规则可以根据分组的报头中包含的重定向URL来指定QoS配置或访问控制。在应用规则时,客户机侧设备604A可以确定要分配的网络资源,以用于客户机102访问web服务器106’上的资源。分配给分组流中的一个或多个的网络资源可以包括带宽、带宽限制、时延范围、允许的抖动或数据传输速率(吞吐量)等。例如,客户机侧设备604A可以将网络资源设置为由所选择的规则的QoS规范指示的速率。通过根据规则来分配网络资源,客户机侧设备604A可以向客户机102提供目标QoS,同时经由客户机侧设备604A访问web服务器106’上托管的资源。此外,当经由客户机侧设备604A访问web服务器106’的资源时,客户机侧设备604A可以向客户机102应用或强制执行网络资源的分配。
通过规则的设置,客户机侧设备604A可以启动重定向URL以发送到web服务器106’(1542)。客户机侧设备604A可以从客户机102向web服务器106’发送或转发分组,以访问web服务器106’上托管的资源(例如,web内容)。客户机侧设备604A还可以从与托管的资源相对应的web服务器106’接收分组流。可以经由在客户机侧设备604A和web服务器106’之间建立的至少一个通道传送分组流。分组可以包括来自web服务器106’的web内容和相关数据。在接收到后,客户机侧设备604A可以将分组转发到在客户机102上运行的应用16。在转发分组时,客户机侧设备604A可使在客户机102上运行的应用16合并和/或呈现来自web服务器106’的web内容和相关数据。在客户机102上运行的应用16还可以在客户机102上呈现时将web内容与应用16的数据集成。例如,应用16可以在客户机102上显示的(应用16’的)先前加载的图形用户界面上呈现媒体内容。
参考图16,描述了示出根据示意性实施例的控制对重定向内容的访问的方法1600的流程图。可以使用执行至少一个应用16(例如,工作空间应用)的至少一个客户机102、至少一个客户机侧设备604A(例如,客户机侧SD-WAN装置)、至少一个服务器侧设备604B(例如,服务器侧SD-WAN装置)、至少一个输送代理504(例如,VDA)、至少一个web服务器106’、以及托管应用16’(例如,网络应用)的至少一个服务器106,以及上文在A-E部分中详述的其他组件来执行方法1600。简言之,网络装置可以接收应用的元数据(1605)。网络装置可以接收用于web内容的标识符(例如,统一资源定位器(URL))(1610)。网络装置可以确定用于分配的规则(1615)。网络装置可以分配网络资源(1620)。网络装置可以引起呈现(1625)。
更详细地说,网络装置(例如,客户机侧设备604A或服务器侧设备604B)可以接收应用(例如,服务器106上的应用16’)的元数据(1605)。应用可以托管在服务器(例如,服务器106)上。服务器上托管的应用可以由客户机(例如,客户机102)经由网络装置进行访问。应用可能已经响应于从客户机(例如,客户机102)接收到的并经由网络装置转发的对应用的请求而启动。应用的元数据可以包括描述应用或与应用相关的数据或信息,诸如:应用标识符、应用类型、窗口或进程标识符、窗口层次结构、焦点中的用户元素、网络地址或与客户机的用户相关联的帐户标识符等。元数据还可以包括指示与客户机处的应用或活动的用户交互的数据或信息,诸如:用户界面元素的激活、事件通知、通过与客户机连接的输入/输出(I/O)装置的用户输入或在应用上访问的链路等。元数据还可以包括指示支持或启用与客户机处的应用或活动的用户交互的特征的可用性的数据或信息。在一些实施例中,网络装置可以从服务器上托管的应用识别、检索或接收元数据。在一些实施例中,网络装置可以从另一装置识别、检索或接收应用的元数据,另一装置诸如是输送代理(例如,输送代理504)或云服务等。输送代理可以在供应到网络装置之前更新元数据。由输送代理更新的元数据可以是提供给网络装置的相同元数据。在一些实施例中,网络装置可以从在应用(例如,应用16或工作空间应用)的本地实例上执行的客户机装置接收元数据。
网络装置可以接收用于web内容的标识符(例如,统一资源定位器(URL))(1610)。URL可以使客户机(例如,客户机102)能够从web服务器(例如,web服务器106’)访问web内容。可以经由客户机装置上的应用来访问或请求web内容。URL可以包括主机名和路径名。URL的主机名可以引用web服务器。URL的路径名可以引用web服务器上托管的特定web内容。客户机调用的URL可以是通过网络发送到web服务器的对内容的请求的一部分。在一些实施例中,另一网络装置(例如,客户机侧设备604A或服务器侧设备604B)可以限制客户机经由网络直接访问web服务器上托管的web内容。在一些实施例中,网络装置可以接收作为来自网络装置的重定向请求的一部分的重定向URL,其限制对web服务器上托管的web内容的直接访问。在一些实施例中,网络装置可以接收作为来自网络装置的重定向请求的一部分的元数据,其限制直接访问。网络装置可以支持用于web内容的一个或多个虚拟通道,以在客户机和web服务器之间传送数据(例如,分组流)。可以经由不同的虚拟通道传送,并且从不同的虚拟通道接收web内容、包括URL的请求以及应用的元数据。
网络装置可以确定用于分配的规则(1615)。规则可以基于元数据为客户机指定在经由web服务器访问web内容时的网络资源的分配。在一些实施例中,规则可以指定访问控制(例如,防火墙),以允许或限制对web服务器上托管的web内容的访问。在一些实施例中,规则可以指定要分配的服务质量(QoS)配置(例如,分组丢失、位速率、吞吐量、延迟和抖动的范围)。QoS配置可以设置用于在客户机和服务器之间流式传输分组以访问应用的带宽的范围。基于应用的元数据,网络装置可以选择、识别或确定要应用的规则。例如,网络装置可以基于与规则的条件(例如,标记或标识符)匹配的应用的元数据来选择规则。在一些实施方式中,网络装置可以基于客户机装置处的活动来确定要应用的规则。
网络装置可以分配网络资源(1620)。可以由网络装置根据所确定的规则为访问web服务器上托管的web内容对网络资源进行分配。通过应用规则,网络装置可以确定网络资源的分配,以访问web内容。例如,网络装置可以识别由给定元数据的规则指定的网络资源的分配。在一些实施例中,根据访问控制分配的网络资源可以包括客户机装置在访问web内容时的许可或限制。在一些实施例中,根据QoS配置分配的网络资源可以包括:带宽、带宽限制、时延范围、允许的抖动或数据传输速率(吞吐量)等,用于经由虚拟通道中的至少一个传送web内容。通过分配,网络装置可以根据所分配的网络资源向客户机装置提供对web内容的访问。在一些实施例中,网络装置可以根据为web内容确定的网络资源来设置或配置提供对web内容的访问的虚拟通道。
网络装置可以引起呈现(1625)。网络装置可以引起来自web服务器的web内容和应用的相关数据的呈现。在一些实施例中,网络装置可以将web内容和应用的数据从web服务器发送到客户机装置。可以经由网络装置维护和支持的虚拟通道中的一个或多个发送web内容和应用的数据。在接收到后,客户机装置可以呈现、显示或渲染web内容和应用的数据。在一些实施例中,网络装置可以使web内容与应用的数据集成,以在客户机装置处呈现。在一些实施例中,客户机装置可以将接收到的web内容与接收到的应用的数据组合或集成,以进行呈现。
基于网络状况管理协议分组流
结合图13和14并参考图11,网络装置(例如,客户机侧设备604A或服务器侧设备604B)可以支持用于客户机102和服务器106之间的通信的一组虚拟通道。服务器106可以执行应用16’和输送代理504。每个虚拟通道可以在服务器106上运行的应用16’和客户机102上运行的应用16之间传送分组流。在传送分组流时,网络装置可以监测客户机102和服务器106之间的网络状况。每个虚拟通道的网络状况可以包括带宽、链路状态(例如,活动或非活动)、链路号、(增加的)丢失速率、(增加的)时延、抖动速率和数据传输速率(吞吐量)等。在一些实施例中,网络装置可以测量每个虚拟通道处的带宽、链路状况、链路数量、丢失速率、时延、抖动速率和数据传输速率。
网络装置可以向输送代理504生成、传输和/或提供元数据。元数据可以指示所测量的网络状况。在一些实施例中,元数据可以例如包括在客户机102和服务器106之间建立的每个虚拟通道的所测量的网络状况。在一些实施例中,网络装置可以经由与用于传送应用16和16’的分组流的一组虚拟通道分离的虚拟通道来发送元数据。可以在网络状况和输送代理504之间建立单独的虚拟通道(本文有时称为带外)。在一些实施例中,网络装置可以经由用于将应用16和16’的分组流传送到输送代理504的虚拟通道中的一个或多个(本文有时称为带内)发送元数据。
通过供应元数据,网络装置可以引起或指示输送代理504设置、改变或以其他方式更新在客户机102和服务器106之间建立的虚拟通道的分组传输配置。分组传输配置可以例如指定哪些虚拟通道要用于在客户机102和服务器106之间传送分组流。在一些实施例中,分组传输配置还可以指定要分配给在客户机102和服务器106之间传送的分组流的网络资源。可以根据策略来更新分组传输配置。策略可以为虚拟通道指定服务质量(QoS)配置(例如,要分配的网络资源,和/或分组丢失、位速率、吞吐量、延迟和抖动的可接受范围)。策略的QoS配置可以设置或分配用于经由虚拟通道在客户机102和服务器106之间流式传输分组的带宽。在一些实施例中,策略可以为在客户机102和服务器106之间建立的虚拟通道指定一组访问控制规则(例如,防火墙)。输送代理504可以应用策略以更新分组传输配置。
在更新分组传输配置时,输送代理504可以改变虚拟通道的分组传输模式。分组传输模式可以指定在通过虚拟通道传送分组流时要使用的不同布置(例如,数据传输速率、带宽和加密)。输送代理504可以将至少一个虚拟通道从一个传输模式改变为另一传输模式。例如,当所测量的网络状况指示传输中的时延和/或分组丢失的增加时,输送代理504可以改变为另一传输模式,该另一传输模式具有比先前传输模式更有效的带宽(和/或损失更多或更不可靠)。这可能有利于用户体验(UX)的交互性,例如,到与应用16’的虚拟会话的图形和用户输入。用于传送分组流的传输模式的改变可以包括从H.264图形模式到Thinwire+图形模式的改变等。
输送代理504可以设置或改变对在客户机102和服务器106之间建立的虚拟通道的网络资源的分配。基于元数据,输送代理504可以确定要分配给分组流中的至少一个的网络资源。分配给分组流中的一个或多个的网络资源可以包括带宽、带宽限制、时延范围、允许的抖动或数据传输速率(吞吐量,例如经由节流)等。例如,输送代理504可以将网络资源设置为由所选择的策略的QoS规范指示的速率。通过根据策略来分配网络资源,输送代理504可以向客户机102和服务器106之间的分组流提供目标QoS。在一些实施例中,输送代理504可以通过施加带宽上限来设置虚拟通道的网络资源的分配。带宽上限可以由策略来指定,并且可以指示允许在虚拟通道(或在多个或所有虚拟通道)上使用的最大带宽。例如,当网络状况指示影响一个或多个虚拟通道的链路故障时,输送代理504可以减少对虚拟通道中的至少一些的带宽分配,或者可以丢弃虚拟通道中的一个或多个。
在一些实施例中,输送代理504可以基于指示网络状况的元数据来启用或禁用在客户机102和服务器106之间建立的虚拟通道中一个或多个。例如,当网络状况指示(例如,虚拟通道中的一个或多个的)带宽减少或链路故障时,输送代理504可以禁用一个虚拟通道以阻止通过该虚拟通道的分组流的传输。可以根据指示虚拟通道的优先级的列表来启用和禁用虚拟通道。列表可以基于某些虚拟通道的优先级和/或重要性和/或基于所测量的网络状况来指定禁用虚拟通道的顺序或序列。输送代理504可以基于网络状况按列表指定的序列来禁用虚拟通道。
现在参考图17,描述了示出基于网络状况管理协议分组流的方法1700的流程图。可以使用执行至少一个应用16(例如,工作空间应用)的至少一个客户机102、至少一个客户机侧设备604A(例如,客户机侧SD-WAN装置)、至少一个服务器侧设备604B(例如,服务器侧SD-WAN装置)、至少一个输送代理504(例如,VDA)、至少一个web服务器106’、以及托管应用16’(例如,网络应用)的至少一个服务器106、以及上文在A-E部分中详述的其他组件来执行方法1700,简言之,网络装置可以确定网络状况(1705)。网络装置可以传输元数据(1710)。网络装置可以引起对配置的更新(1715)。
更详细地说,网络装置(例如,客户机侧设备604A或服务器侧设备604B)可以确定网络状况(1705)。网络装置可以支持一个或多个虚拟通道,以用于应用在客户机(例如,客户机装置102)和服务器(例如,服务器106)之间传送数据(例如,分组流)。在一些实施例中,用于传送数据的虚拟通道可以在客户机装置和另一网络装置(例如,输送代理504)上的应用(例如,应用16)之间。在一些实施例中,网络装置可以测量、监测或确定每个虚拟通道中的网络状况。例如,网络装置可以通过虚拟通道发送测试分组(例如,ping),并且等待来自虚拟通道的响应。基于测试分组和响应(以及经过的时间),网络装置可以确定关于虚拟通道的各种度量。由网络装置确定的网络状况可以包括带宽、链路状态(例如,活动或非活动)、链路号、(增加/减少的)丢失速率、(增加/减少的)时延、抖动速率和数据传输速率(吞吐量)等。
网络装置可以传输元数据(1710)。元数据可以包括或指示所确定的网络状况,诸如每个虚拟通道的带宽、链路状态、链路号、丢失速率、时延、抖动速率和数据传输速率。元数据可以由网络装置传输到另一网络装置备(例如,服务器106或输送代理504)。在一些实施例中,网络装置可以使用所确定的网络状况生成元数据。在一些实施例中,网络装置可以接收应用的元数据,并且通过包括所确定的网络状况来更新接收到的元数据。在一些实施例中,网络装置可以经由虚拟通道中的一个或多个来发送元数据。在一些实施例中,元数据可以由网络装置经由虚拟通道或与用于分组流的虚拟通道分离的其他装置进行发送。
网络装置可以引起对配置的更新(1715)。通过发送元数据,网络装置可以使另一网络装置(例如,服务器106或输送代理504)设置或改变虚拟通道的分组传输配置。接收方网络装置可以根据元数据来设置、修改或改变虚拟通道的分组传输配置。在一些实施例中,分组传输配置可以指定要启用或禁用哪些虚拟通道来传送分组流。网络装置可以基于元数据来禁用或启用虚拟通道。在一些实施例中,分组传输配置可以指定用于启用或禁用虚拟通道的列表或优先级相关的顺序。网络装置可以根据配置的列表或顺序来禁用或启用虚拟通道。在一些实施例中,配置还可以指定要分配给虚拟通道的网络资源。网络资源可包括经由虚拟通道中的至少一个传送的分组流的带宽、带宽限制、时延范围、允许的抖动或数据传输速率(吞吐量)等。网络装置可以基于元数据来增加或减少分配给虚拟通道的网络资源。在一些实施例中,通过更新分组传输配置,网络装置可以设置或改变虚拟通道的分组传输模式。虚拟通道的模式可以例如包括H.264图形模式和Thinwire+图形模式等。
本文在一个或多个实施例的上下文中描述的各种元素可以单独提供或以任何合适的子组合提供。例如,本文描述的过程可以以硬件、软件或其组合来实现。此外,本文描述的过程不限于所描述的具体实施例。例如,本文描述的过程不限于本文描述的特定处理顺序,相反,过程块可以根据需要重新排序、组合、移除或并行或串行地执行,以实现本文所阐述的结果。
应该理解,上文描述的系统可提供这些组件中的任意多个组件或每一个组件并且这些组件可以在独立机器上提供,或者在一些实施例中,可在分布式系统的多个机器上提供。可以使用编程和/或工程技术将上文所描述的系统和方法实现为方法、设备或制品以生产软件、固件、硬件或上述的任何组合。此外,上述系统和方法可作为在一个或多个制品上实现或在其中实现的一个或多个计算机可读程序而被提供。本文使用的术语“制品”旨在包括从一个或多个计算机可读的装置、固件、可编程逻辑、存储器装置(例如,EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如,集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读的非易失存储单元(例如,CD-ROM、USB闪存、硬盘驱动器等)可访问的或嵌入其中的代码或逻辑。所述制品可以是从经由网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问的文件服务器可访问的。所述制品可以是闪存卡或磁带。所述制品包括硬件逻辑以及嵌入在计算机可读介质中由处理器执行的软件或可编程代码。通常,计算机可读程序可以以诸如LISP、PERL、C、C++、C#、PROLOG的任何编程语言、或者诸如JAVA的任何字节码语言来实现。软件程序可以作为目标代码被存储在一个或多个制品上或其中。
尽管已经描述该方法和系统的各种实施例,但是这些实施例是示意性的并且不以任何方式限制所述方法和系统的范围。相关领域中的技术人员可以在不背离所描述方法和系统的最宽范围的情况下对所描述的方法和系统的形式和细节进行修改。因此,本文描述的方法和系统的范围不应该通过这些示意性实施例来限定,而是应该根据所附权利要求书和其等价范围来限定。
将进一步理解,在不背离以下权利要求的范围的情况下,本领域技术人员可以对本文已经描述和示出的部件的细节、材料和布置进行各种改变。
Claims (60)
1.一种方法,包括:
由在客户机装置和服务器中间的网络装置确定网络状况,所述网络装置支持在所述客户机装置和所述服务器的输送代理上能够执行的应用之间的多个虚拟通道,所述虚拟通道传送分组流;
由所述网络装置向所述输送代理传输指示所确定的网络状况的元数据;以及
由所述输送代理响应于指示所确定的网络状况的所传输的元数据,更新所述虚拟通道的分组传输配置。
2.根据权利要求1所述的方法,其中,更新所述分组传输配置包括将所述虚拟通道中的至少一个的分组传输模式从第一模式改变为第二模式,所述第二模式比所述第一模式具有更高的带宽效率。
3.根据权利要求2所述的方法,其中,从所述第一模式改变为所述第二模式包括将所述虚拟通道中的一个从H.264图形模式改变为Thinwire+图形模式。
4.根据权利要求1所述的方法,其中,更新所述分组传输配置包括改变网络资源的分配以应用于所述虚拟通道。
5.根据权利要求4所述的方法,其中,所述网络状况包括对所述虚拟通道的带宽的减少,以及其中,改变网络资源的分配包括从所述多个虚拟通道中禁用第一虚拟通道。
6.根据权利要求5所述的方法,其中,从所述虚拟通道的列表或优先级相关顺序中选择要禁用的第一通道。
7.根据权利要求4所述的方法,其中,改变网络资源的分配包括对所述虚拟通道中的至少一个施加带宽上限。
8.根据权利要求4所述的方法,其中,所述网络状况包括链路故障,以及其中,改变网络资源的分配包括从所述多个虚拟通道中禁用第一虚拟通道或者减少对所述第一虚拟通道的带宽的分配。
9.根据权利要求1所述的方法,其中,所述网络状况包括对所述虚拟通道的时延或者分组丢失中的至少一个的增加,以及其中,更新所述分组传输配置包括将所述虚拟通道中的至少一个从第一传输模式改变为第二传输模式,所述第二传输模式比所述第一传输模式具有更多的损失。
10.一种网络装置,包括:
至少一个处理器,其被配置为:
确定网络状况,所述网络装置支持在客户机装置和服务器的输送代理上能够执行的应用之间的多个虚拟通道,所述虚拟通道传送分组流;
向所述输送代理传输指示所确定的网络状况的元数据;以及
其中,所述输送代理被配置为响应于指示所述所确定的网络状况的所传输的元数据,更新所述虚拟通道的分组传输配置。
11.根据权利要求9所述的网络装置,其中,更新所述分组传输配置包括将所述虚拟通道中的至少一个的分组传输模式从第一模式改变为第二模式,所述第二模式比所述第一模式具有更高的带宽效率。
12.根据权利要求11所述的网络装置,其中,从所述第一模式改变为所述第二模式包括将所述虚拟通道中的一个从H.264图形模式改变为Thinwire+图形模式。
13.根据权利要求10所述的网络装置,其中,更新所述分组传输配置包括改变网络资源的分配以应用于所述虚拟通道。
14.根据权利要求13所述的网络装置,其中,所述网络状况包括对所述虚拟通道的带宽的减少,其中,改变网络资源的分配包括从所述多个虚拟通道中禁用第一虚拟通道,以及其中,从所述虚拟通道的列表或优先级相关顺序中选择第一通道以禁用。
15.根据权利要求13所述的网络装置,其中,改变网络资源的分配包括对所述虚拟通道中的至少一个施加带宽上限。
16.根据权利要求13所述的网络装置,其中,所述网络状况包括链路故障,以及其中,改变网络资源的分配包括从所述多个虚拟通道中禁用第一虚拟通道或者减少对所述第一虚拟通道的带宽的分配。
17.一种存储程序指令的非暂时性计算机可读介质,所述程序指令用于使得一个或多个处理器:
确定网络状况,网络装置支持在客户机装置和服务器的输送代理上能够执行的应用之间的多个虚拟通道,所述虚拟通道传送分组流;
向所述输送代理传输指示所确定的网络状况的元数据;以及
其中,所述输送代理被配置为响应于指示所述所确定的网络状况的所传输的元数据,更新所述虚拟通道的分组传输配置。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,更新所述分组传输配置包括将所述虚拟通道中的至少一个的分组传输模式从第一模式改变为第二模式,所述第二模式比所述第一模式具有更高的带宽效率。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,从所述第一模式改变为所述第二模式包括将所述虚拟通道中的一个从H.264图形模式改变为Thinwire+图形模式。
20.根据权利要求17所述的非暂时性计算机可读介质,其中,更新所述分组传输配置包括改变网络资源的分配以应用于所述虚拟通道。
21.一种方法,包括:
由在客户机装置和服务器中间的网络装置从输送代理接收在所述服务器上托管的并且由所述客户机装置能够访问的应用的元数据;
由所述网络装置从所述输送代理接收标识符,所述标识符被配置为使得所述客户机装置能够从web服务器访问web内容;
由所述网络装置根据接收到的元数据确定网络资源的分配,以从所述web服务器访问所述web内容;以及
由所述网络装置基于所确定的网络资源的分配向所述客户机装置提供网络资源,以经由所述网络装置访问所述web内容。
22.根据权利要求21所述的方法,其中,所述元数据包括以下至少一项:应用的标识或者指示与所述应用的用户交互的交互数据。
23.根据权利要求21所述的方法,其中,接收所述标识符包括由所述网络装置从所述输送代理接收包括统一资源定位器(URL)的更新的元数据。
24.根据权利要求21所述的方法,其中,所述网络装置支持所述应用的至少一个虚拟通道,每个虚拟通道用于传送相应的分组流。
25.根据权利要求24所述的方法,其中,包括所述标识符的URL重定向请求经由所述至少一个虚拟通道的第一虚拟通道从所述输送代理传输到所述客户机装置,所述URL重定向请求使得所述客户机装置从所述web服务器访问所述web内容。
26.根据权利要求21所述的方法,其中,确定网络资源的分配包括由所述网络装置根据接收到的元数据确定用于分配网络资源以从所述web服务器访问所述web内容的至少一个规则。
27.根据权利要求22所述的方法,其中,用于分配网络资源以从所述web服务器访问所述web内容的至少一个规则包括以下至少一项:防火墙规则或者服务质量(QoS)规则。
28.根据权利要求26所述的方法,其中,应用网络资源的分配包括由所述网络装置应用用于分配网络资源以用于所述客户机装置经由所述网络装置访问所述web内容的至少一个规则。
29.根据权利要求21所述的方法,包括由所述网络装置经由与所述至少一个虚拟通道分离的虚拟通道,或者经由云服务或另一网络装置来接收所述应用的元数据。
30.根据权利要求21所述的方法,还包括使得所述web内容和所述应用的数据在所述客户机装置上呈现。
31.根据权利要求30所述的方法,还包括使得所述web内容与所述应用的数据集成,以在所述客户机装置处呈现。
32.根据权利要求21所述的方法,还包括由中间的网络装置从所述客户机装置的工作空间应用接收关于所述客户机装置处的活动的元数据。
33.根据权利要求32所述的方法,还包括由所述网络装置根据所述应用的元数据和关于所述客户机装置处的活动的元数据来确定用于从所述web服务器访问所述web内容的网络资源的分配。
34.一种网络装置,包括:
至少一个处理器,其被配置为:
从输送代理接收在服务器上托管的并且由客户机装置能够访问的应用的元数据;
从所述输送代理接收标识符,所述标识符被配置为使得所述客户机装置能够从web服务器访问web内容;
根据接收到的元数据确定确定网络资源的分配,以从所述web服务器访问所述web内容;以及
基于所确定的网络资源的分配向所述客户机装置提供网络资源,以经由所述网络装置访问所述web内容。
35.根据权利要求34所述的网络装置,其中,所述至少一个处理器被配置为通过从所述输送代理接收包括统一资源定位器(URL)的更新的元数据来接收URL。
36.根据权利要求34所述的网络装置,其中,所述至少一个处理器被配置为支持所述应用的至少一个虚拟通道,每个虚拟通道用于传送相应的分组流。
37.根据权利要求36所述的网络装置,其中,包括所述标识符的URL重定向请求经由所述至少一个虚拟通道的第一虚拟通道从所述输送代理传输到所述客户机装置,所述URL重定向请求使得所述客户机装置从所述web服务器访问所述web内容。
38.根据权利要求34所述的网络装置,其中,所述至少一个处理器被配置为通过根据接收到的元数据确定用于分配网络资源以从所述web服务器访问所述web内容的至少一个规则来确定网络资源的分配,以及
其中,用于分配网络资源以从所述web服务器访问所述web内容的至少一个规则包括以下至少一项:防火墙规则或者服务质量(QoS)规则。
39.根据权利要求34所述的网络装置,其中,所述至少一个处理器被配置为经由与所述至少一个虚拟通道分离的虚拟通道或者经由云服务或另一网络装置来接收所述应用的元数据。
40.一种存储程序指令的非暂时性计算机可读介质,所述程序指令用于使得一个或多个处理器:
从输送代理接收在服务器上托管的并且由客户机装置能够访问的应用的元数据;
从所述输送代理接收标识符,所述标识符被配置为使得所述客户机装置能够从web服务器访问web内容;
根据接收到的元数据确定网络资源的分配,以从所述web服务器访问所述web内容;以及
基于所确定的网络资源的分配向所述客户机装置提供网络资源,以经由所述网络装置访问所述web内容。
41.一种方法,包括:
由在客户机装置和服务器中间的网络装置确定网络状况,所述网络装置支持在所述客户机装置和所述服务器的输送代理上能够执行的应用之间的多个虚拟通道,所述虚拟通道传送分组流;
由所述网络装置向所述输送代理传输指示所确定的网络状况的元数据;以及
由所述输送代理响应于指示所确定的网络状况的所传输的元数据,更新所述虚拟通道的分组传输配置。
42.根据权利要求41所述的方法,其中,更新所述分组传输配置包括将所述虚拟通道中的至少一个的分组传输模式从第一模式改变为第二模式,所述第二模式比所述第一模式具有更高的带宽效率。
43.根据权利要求42所述的方法,其中,从所述第一模式改变为所述第二模式包括将所述虚拟通道中的一个从H.264图形模式改变为Thinwire+图形模式。
44.根据权利要求41所述的方法,其中,更新所述分组传输配置包括改变网络资源的分配以应用于所述虚拟通道。
45.根据权利要求44所述的方法,其中,所述网络状况包括对所述虚拟通道的带宽的减少,以及其中,改变所述网络资源的分配包括从所述多个虚拟通道中禁用第一虚拟通道。
46.根据权利要求45所述的方法,其中,从所述虚拟通道的列表或优先级相关顺序中选择要禁用的第一通道。
47.根据权利要求44所述的方法,其中,改变网络资源的分配包括对所述虚拟通道中的至少一个施加带宽上限。
48.根据权利要求44所述的方法,其中,所述网络状况包括链路故障,以及其中,改变网络资源的分配包括从所述多个虚拟通道中禁用第一虚拟通道或者减少对所述第一虚拟通道的带宽的分配。
49.根据权利要求41所述的方法,其中,所述网络状况包括对所述虚拟通道的时延或者分组丢失中的至少一个的增加,以及其中,更新所述分组传输配置包括将所述虚拟通道中的至少一个从第一传输模式改变为第二传输模式,所述第二传输模式比所述第一传输模式具有更多的损失。
50.一种网络装置,包括:
至少一个处理器,其被配置为:
确定网络状况,所述网络装置支持在客户机装置和服务器的输送代理上能够执行的应用之间的多个虚拟通道,所述虚拟通道传送分组流;
向所述输送代理传输指示所确定的网络状况的元数据;以及
其中,所述输送代理被配置为响应于指示所述所确定的网络状况的所传输的元数据,更新所述虚拟通道的分组传输配置。
51.根据权利要求50所述的网络装置,其中,更新所述分组传输配置包括将所述虚拟通道中的至少一个的分组传输模式从第一模式改变为第二模式,所述第二模式比所述第一模式具有更高的带宽效率。
52.根据权利要求51所述的网络装置,其中,从所述第一模式改变为所述第二模式包括将所述虚拟通道中的一个从H.264图形模式改变为Thinwire+图形模式。
53.根据权利要求50所述的网络装置,其中,更新所述分组传输配置包括改变网络资源的分配以应用于所述虚拟通道。
54.根据权利要求53所述的网络装置,其中,所述网络状况包括对所述虚拟通道的带宽的减少,其中,改变网络资源的分配包括从所述多个虚拟通道中禁用第一虚拟通道,以及其中,从所述虚拟通道的列表或优先级相关顺序中选择要禁用的第一通道。
55.根据权利要求53所述的网络装置,其中,改变网络资源的分配包括对所述虚拟通道中的至少一个施加带宽上限。
56.根据权利要求53所述的网络装置,其中,所述网络状况包括链路故障,以及其中,改变网络资源的分配包括从所述多个虚拟通道中禁用第一虚拟通道或者减少对所述第一虚拟通道的带宽的分配。
57.一种存储程序指令的非暂时性计算机可读介质,所述程序指令用于使得一个或多个处理器:
确定网络状况,网络装置支持在客户机装置和服务器的输送代理上能够执行的应用之间的多个虚拟通道,所述虚拟通道传送分组流;
向所述输送代理传输指示所确定的网络状况的元数据;以及
其中,所述输送代理被配置为响应于指示所述所确定的网络状况的所传输的元数据,更新所述虚拟通道的分组传输配置。
58.根据权利要求57所述的非暂时性计算机可读介质,其中,更新所述分组传输配置包括将所述虚拟通道中的至少一个的分组传输模式从第一模式改变为第二模式,所述第二模式比所述第一模式具有更高的带宽效率。
59.根据权利要求58所述的非暂时性计算机可读介质,其中,从所述第一模式改变为所述第二模式包括将所述虚拟通道中的一个从H.264图形模式改变为Thinwire+图形模式。
60.根据权利要求57所述的非暂时性计算机可读介质,其中,更新所述分组传输配置包括改变网络资源的分配以应用于所述虚拟通道。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962850348P | 2019-05-20 | 2019-05-20 | |
US62/850348 | 2019-05-20 | ||
US16/588280 | 2019-09-30 | ||
US16/588,638 US11627091B2 (en) | 2019-05-20 | 2019-09-30 | Systems and methods for managing streams of packets via intermediary devices |
US16/588638 | 2019-09-30 | ||
US16/588,280 US11489779B2 (en) | 2019-05-20 | 2019-09-30 | Systems and methods for managing streams of packets via intermediary devices |
PCT/US2020/033546 WO2020236782A2 (en) | 2019-05-20 | 2020-05-19 | Systems and methods for managing streams of packets via intermediary devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113940044A true CN113940044A (zh) | 2022-01-14 |
Family
ID=73456418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080042421.4A Pending CN113940044A (zh) | 2019-05-20 | 2020-05-19 | 用于经由中间装置管理分组流的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (4) | US11627091B2 (zh) |
EP (1) | EP3973396A2 (zh) |
CN (1) | CN113940044A (zh) |
AU (1) | AU2020279972A1 (zh) |
WO (1) | WO2020236782A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023202241A1 (zh) * | 2022-04-21 | 2023-10-26 | 华为云计算技术有限公司 | 一种通信方法及相关产品 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11627091B2 (en) * | 2019-05-20 | 2023-04-11 | Citrix Systems Inc. | Systems and methods for managing streams of packets via intermediary devices |
EP3981131A4 (en) * | 2019-06-04 | 2022-12-14 | Phantom Auto Inc. | PLATFORM FOR REDUNDANT WIRELESS COMMUNICATION OPTIMIZATION |
CN111628847B (zh) * | 2020-05-06 | 2022-04-08 | 上海幻电信息科技有限公司 | 数据传输方法及装置 |
US11645269B2 (en) * | 2020-06-24 | 2023-05-09 | International Business Machines Corporation | Automatic events detection from enterprise applications |
US11775359B2 (en) * | 2020-09-11 | 2023-10-03 | Apple Inc. | Methods and apparatuses for cross-layer processing |
US11582252B2 (en) * | 2020-09-11 | 2023-02-14 | Salesforce.Com, Inc. | Efficient monitoring of network activity in a cloud computing environment |
CN112153402A (zh) * | 2020-09-22 | 2020-12-29 | 北京达佳互联信息技术有限公司 | 电子资源分配方法、装置、电子设备和存储介质 |
WO2022091007A2 (en) * | 2020-10-29 | 2022-05-05 | Public Im Ltd. | End to end encrypted browse based ad hoc communication |
US11777760B2 (en) * | 2020-12-30 | 2023-10-03 | Hughes Network Systems, Llc | VPN classification to reduce usage costs while retaining responsiveness |
EP4040757A1 (en) * | 2021-02-09 | 2022-08-10 | Telia Company AB | Monitoring of communication |
CN112839105A (zh) * | 2021-02-20 | 2021-05-25 | 厦门宏泰科技研究院有限公司 | 智能运算控制系统及装置 |
CN114115718B (zh) * | 2021-08-31 | 2024-03-29 | 济南浪潮数据技术有限公司 | 分布式块存储系统服务质量控制方法、装置、设备及介质 |
US12019944B2 (en) * | 2021-12-14 | 2024-06-25 | Htc Corporation | Method for operating mirrored content under mirror mode and computer readable storage medium |
US20230251842A1 (en) * | 2022-01-13 | 2023-08-10 | Vmware, Inc. | Application installation on a remote desktop using local installation files |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020029285A1 (en) * | 2000-05-26 | 2002-03-07 | Henry Collins | Adapting graphical data, processing activity to changing network conditions |
US20110185068A1 (en) * | 2010-01-22 | 2011-07-28 | Microsoft Corporation | Multi-link remote protocol |
US20120281706A1 (en) * | 2011-05-06 | 2012-11-08 | Puneet Agarwal | Systems and methods for cloud bridging between intranet resources and cloud resources |
US20170317932A1 (en) * | 2016-04-29 | 2017-11-02 | Citrix Systems, Inc. | System and method for service chain load balancing |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3478218B2 (ja) | 1999-12-27 | 2003-12-15 | 日本電気株式会社 | エッジノード交換機と交換機 |
AU2001251195A1 (en) | 2000-03-30 | 2001-10-15 | Cygent, Inc. | System and method for establishing electronic business systems for supporting communications services commerce |
US8780898B2 (en) | 2002-10-31 | 2014-07-15 | Agere Systems Llc | Processor for packet switching between cell streams with optional virtual channel and channel identification modification |
GB2417401B (en) | 2004-08-18 | 2007-04-25 | Wecomm Ltd | Data transmission over a network |
CA2594118C (en) | 2004-12-08 | 2015-07-21 | Imagine Communications Ltd. | Distributed statistical multiplexing of multi-media |
US8788822B1 (en) | 2005-06-10 | 2014-07-22 | Blue Coat Systems, Inc. | Enhanced QoS solution for thin client or remote access sessions |
US7653749B2 (en) * | 2005-08-31 | 2010-01-26 | Microsoft Corporation | Remote protocol support for communication of large objects in arbitrary format |
US20110276993A1 (en) * | 2007-04-06 | 2011-11-10 | Ferguson Kenneth H | Media Content Programming Control Method and Apparatus |
US8577937B1 (en) * | 2007-05-09 | 2013-11-05 | Vmware, Inc. | Repository including exclusion list |
US9019830B2 (en) | 2007-05-15 | 2015-04-28 | Imagine Communications Corp. | Content-based routing of information content |
US8132247B2 (en) | 2007-08-03 | 2012-03-06 | Citrix Systems, Inc. | Systems and methods for authorizing a client in an SSL VPN session failover environment |
US8826339B2 (en) | 2007-12-21 | 2014-09-02 | General Instrument Corporation | RF/IP virtual channel mapping for a digital video receiver |
US8254909B1 (en) | 2008-01-03 | 2012-08-28 | At&T Intellectual Property I, L.P. | Computational syndrome detector |
WO2011143094A2 (en) | 2010-05-09 | 2011-11-17 | Citrix Systems, Inc. | Systems and methods for allocation of classes of service to network connections corresponding to virtual channels |
CN103392329B (zh) * | 2011-02-26 | 2016-11-16 | 英国电讯有限公司 | 服务会话资源管理 |
US8866701B2 (en) | 2011-03-03 | 2014-10-21 | Citrix Systems, Inc. | Transparent user interface integration between local and remote computing environments |
US10965480B2 (en) | 2011-09-14 | 2021-03-30 | Barco N.V. | Electronic tool and methods for recording a meeting |
US8681813B2 (en) | 2011-11-29 | 2014-03-25 | Wyse Technology L.L.C. | Bandwidth optimization for remote desktop protocol |
US9723091B1 (en) | 2012-11-09 | 2017-08-01 | Noble Systems Corporation | Variable length protocol using serialized payload with compression support |
US9338088B2 (en) | 2013-04-08 | 2016-05-10 | Google Inc. | Communication protocol for multiplexing data streams over UDP |
KR101725755B1 (ko) | 2013-06-28 | 2017-04-11 | 인텔 코포레이션 | 적응형 라우팅을 이용하여 자원 활용도를 제어하기 위한 메커니즘 |
US9742758B1 (en) | 2013-08-13 | 2017-08-22 | Amazon Technologies, Inc. | Techniques for network site validation |
CN105531992A (zh) | 2013-09-06 | 2016-04-27 | Lg电子株式会社 | 用于在数字广播系统中发送和接收用于高动态范围呈现的超高清晰度广播信号的方法和装置 |
US20150128110A1 (en) | 2013-11-05 | 2015-05-07 | Alexander Falk | Mobile application development and deployment |
US10250673B1 (en) | 2014-03-14 | 2019-04-02 | Amazon Technologies, Inc. | Storage workload management using redirected messages |
US9813341B1 (en) | 2014-06-12 | 2017-11-07 | Sprint Spectrum L.P. | Systems and methods for routing data traffic based on network conditions |
CN105337831B (zh) | 2014-08-08 | 2018-10-09 | 华为技术有限公司 | 虚拟专用网络的实现方法及客户端设备 |
US20160105727A1 (en) | 2014-10-08 | 2016-04-14 | Electronics And Telecommunications Research Institute | Method and device for rendering broadcast service |
BR112017008523A2 (pt) | 2014-11-19 | 2018-01-16 | Nec Corporation | sistema de medição de tempo de retardo de ida e volta, método de medição de tempo de retardo de ida e volta, método de retorno, dispositivo de comunicação, programa e estrutura de dados |
US9623558B1 (en) | 2014-12-17 | 2017-04-18 | Amazon Technologies, Inc. | Time-of-flight localization |
WO2016103006A1 (en) | 2014-12-23 | 2016-06-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Media performance monitoring and analysis |
CA2973991C (en) | 2015-01-14 | 2023-02-14 | Hughes Network Systems, Llc | Determining link conditions of a client lan/wan from measurement point to client devices and application servers of interest |
US9935789B2 (en) | 2015-02-11 | 2018-04-03 | Dell Products L.P. | Centralized pluggable authentication and authorization |
US10142068B2 (en) | 2015-05-22 | 2018-11-27 | Futurewei Technologies, Inc. | Methods and device for communications of OFDM signals over wideband carrier |
US10666534B2 (en) | 2015-06-29 | 2020-05-26 | Citrix Systems, Inc. | Systems and methods for measuring round trip time in network devices between the device and an endpoint |
US10015804B2 (en) | 2015-07-21 | 2018-07-03 | Aruba Netwroks, Inc. | System and method for providing context-based anticipatory dynamic resource reservation |
US10404808B2 (en) * | 2015-09-14 | 2019-09-03 | Colorado Code Craft Patent Holdco, LLC | Secure, anonymous browsing with a remote browsing server |
JP7120014B2 (ja) | 2016-08-17 | 2022-08-17 | 日本電気株式会社 | 遠隔制御装置、遅延調整装置、遠隔制御システム、遠隔制御方法、遅延調整方法、遠隔制御プログラムおよび遅延調整プログラム |
US10225239B2 (en) | 2016-09-29 | 2019-03-05 | Chelsio Communications, Inc. | Method for in-line TLS/SSL cleartext encryption and authentication |
CN111182641B (zh) | 2016-11-16 | 2022-11-25 | 上海朗帛通信技术有限公司 | 一种被用于用户和基站中的方法和设备 |
US10367856B2 (en) | 2016-12-14 | 2019-07-30 | Sterlite Technologies Limited | Failover management of SIP based multimedia communication sessions |
US10673870B2 (en) | 2017-01-27 | 2020-06-02 | Splunk Inc. | Security monitoring of network connections using metrics data |
US11194753B2 (en) | 2017-09-01 | 2021-12-07 | Intel Corporation | Platform interface layer and protocol for accelerators |
WO2019158598A1 (en) * | 2018-02-15 | 2019-08-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Redirection handling |
US10721142B1 (en) | 2018-03-08 | 2020-07-21 | Palantir Technologies Inc. | Computer network troubleshooting |
US11303543B2 (en) | 2018-11-15 | 2022-04-12 | Citrix Systems, Inc. | Real-time scalable virtual session and network analytics |
US11201790B2 (en) | 2019-03-27 | 2021-12-14 | Saudi Arabian Oil Company | System and method for virtual private network connectivity |
US11627091B2 (en) * | 2019-05-20 | 2023-04-11 | Citrix Systems Inc. | Systems and methods for managing streams of packets via intermediary devices |
-
2019
- 2019-09-30 US US16/588,638 patent/US11627091B2/en active Active
- 2019-09-30 US US16/588,616 patent/US11722422B2/en active Active
- 2019-09-30 US US16/588,280 patent/US11489779B2/en active Active
-
2020
- 2020-05-19 EP EP20730913.9A patent/EP3973396A2/en active Pending
- 2020-05-19 AU AU2020279972A patent/AU2020279972A1/en not_active Abandoned
- 2020-05-19 WO PCT/US2020/033546 patent/WO2020236782A2/en unknown
- 2020-05-19 CN CN202080042421.4A patent/CN113940044A/zh active Pending
-
2023
- 2023-06-21 US US18/338,919 patent/US20230370385A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020029285A1 (en) * | 2000-05-26 | 2002-03-07 | Henry Collins | Adapting graphical data, processing activity to changing network conditions |
US20110185068A1 (en) * | 2010-01-22 | 2011-07-28 | Microsoft Corporation | Multi-link remote protocol |
US20120281706A1 (en) * | 2011-05-06 | 2012-11-08 | Puneet Agarwal | Systems and methods for cloud bridging between intranet resources and cloud resources |
US20170317932A1 (en) * | 2016-04-29 | 2017-11-02 | Citrix Systems, Inc. | System and method for service chain load balancing |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023202241A1 (zh) * | 2022-04-21 | 2023-10-26 | 华为云计算技术有限公司 | 一种通信方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2020236782A2 (en) | 2020-11-26 |
WO2020236782A3 (en) | 2021-01-07 |
US11722422B2 (en) | 2023-08-08 |
US20230370385A1 (en) | 2023-11-16 |
US20200374238A1 (en) | 2020-11-26 |
US11627091B2 (en) | 2023-04-11 |
EP3973396A2 (en) | 2022-03-30 |
AU2020279972A1 (en) | 2021-12-02 |
US11489779B2 (en) | 2022-11-01 |
US20200374233A1 (en) | 2020-11-26 |
US20200374234A1 (en) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11489779B2 (en) | Systems and methods for managing streams of packets via intermediary devices | |
US11843527B2 (en) | Real-time scalable virtual session and network analytics | |
CN111448788B (zh) | 用于基于saas的应用的ssl优化的跟踪ssl会话状态的方法 | |
CN113940045A (zh) | 将策略应用于服务图的api | |
CA3121481C (en) | Detecting attacks using handshake requests systems and methods | |
CN113439428A (zh) | 操作具有dns高速缓存的装置的系统和方法 | |
EP3973668B1 (en) | Network traffic steering with programmatically generated proxy auto-configuration files | |
CN113994645A (zh) | 自动复制api调用以分离数据中心 | |
US20240106761A1 (en) | Adaptive scaling of buffers for communication sessions | |
US20220014521A1 (en) | Systems and methods for supporting unauthenticated post requests through a reverse proxy enabled for authentication |
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 |