用于传送和接收远程呈现图形数据的方法和系统的制作方法_4

文档序号:9923867阅读:来源:国知局
重传数据的机制。运些开销导致数据 传输等待时间。然而,如果使用不需要此类开销的有损链路,则擅染系统可继续W丢失数据 可在稍后时间被恢复的假设来继续擅染所接收的数据。通过使用远程呈现应用层之下的协 议的组合,可支持远程呈现应用的目标,同时可采用数据恢复机制来实现更针对所传输的 数据类型的有效的视频数据传输。例如,如果正在擅染客户机屏幕并且该屏幕的部分尚未 接收到,则采用各协议的组合可允许诸如通知服务器未接收到某些数据等决策。此外,服务 器可确定遗漏数据已被重传且不需要发送更多数据。
[0075] 通过使用运一机制,可使用具有较低的传输开销的有损协议并使用第二信道上的 用于扩展信息来允许数据恢复的无损协议来高效地流传送图形数据。例如,在一个实施例 中,可建立混合模式,其中使用诸如TCP等无损传输来作为控制信道。通过使用TCP来作为控 制信道,可简化对运一链路的要求,同时维持使用无损流协议的现有协议的互操作性优点。
[0076] 在一个实施例中,可提供辅助UDP连接来用于传送图形数据。图7描绘了远程呈现 服务器710和远程客户机700之间的连接。在典型的远程呈现配置中,客户机和服务器通过 无损链路720交换信息。运一信息可包括控制和图形数据两者。在一实施例中,有损链路730 被添加到客户机和服务器之间的连接。有损链路730可用于交换图形数据。无损链路720可 用于控制类型的数据,如加密密钥列表或位图高速缓存确认。
[0077] 在一个实施例中,可W与客户计算机建立第一连接,该第一连接是使用由有保证 的分组递送和分组次序表征的无损协议来建立的。然后可W与客户计算机建立连接能力来 确定客户计算机和/或图形源是否能支持第二连接。该第二连接可使用由无保证的分组递 送和分组排序表征的有损协议。如果两个端点都能支持第二连接,则可建立第二连接。一旦 建立,则可使用第一连接来管理向客户计算机的图形数据传送,并且可使用第二连接来将 远程呈现图形数据传送到客户计算机。由此,在某些实施例中,可建立使用诸如TCP等无损 协议的第一连接,并且任选地,端点可协商来建立使用例如UDP的第二有损链路来更高效地 传送图形数据。另外地或任选地,可终止第二连接,并且可使用第一连接来传送远程呈现图 形数据作为退路传送方法。例如,如果网络改变从而无法容忍对第二连接的使用,或者如果 因为例如有损链路无法穿越防火墙而引发连接性问题,则远程呈现会话可被降级到仅使用 第一连接来作为退路。在某些实施例中,该退路机制可自动发生。
[0078] 在无损链路上维持控制信道而通过有损信道传送数据W便交换关于有损链路的 状态的信息是有利的。例如,使用该控制信道,端点可交换关于连接是否已被关闭的信息, W及W其他方式管理连接,如管理连接的生存期。在某些实施例中,客户机可向服务器发送 关于任何预期数据是否未被接收到的反馈。在一个实施例中,服务器或图形源可使用第一 连接从客户计算机接收描述未接收到的远程呈现图形数据的反馈。响应于该反馈,服务器 或图形源可通过第二(有损)连接来传送未接收到的远程呈现图形数据。由此,在某些实施 例中,在数据损失问题的情况下,服务器或图形源可W只发送客户机所指示的任何未接收 的分组,而非重传该数据的大部分。在某些实施例中,服务器或图形源可W等待预定时间段 来获得对接收到的数据的确认。如果没有确认,则服务器或图形源可W假定未确认的数据 分组丢失且需要重传。
[0079] 在各实施例中,要传送的数据类型可被分成两个类别。一个类别可包括不应使用 有损链路的数据,如安全握手或能力协商。第二个类别可包括可使用有损链路的数据,如视 频数据。第一类别还可包括用于管理有损数据的数据,如指示未接收到客户机屏幕的特定 片断的数据。
[0080] 第一类别可W使用一般可被表征为保证数据递送并提供数据分组次序的指示的 无损链路的主链路。无损协议可W是一般可被表征为具有无损语义的协议的任何类型的协 议。运些协议可提供W下功能中的一个或多个:递送验证、丢失数据重传、W及数据分组的 隐式或显式排序。用于远程桌面呈现的较高级协议包括此处出于说明目的而使用的远程桌 面协议(RDP)。然而,所公开的概念和方法可结合其他远程呈现协议来使用。
[0081] 在一个实施例中,图形更新可被划分成帖。帖可包含表示在例如虚拟机会话期间 用于远程呈现的客户机屏幕的信息。在某些实施例中,客户机可假定帖的任何未接收到的 部分是在丢失分组中编码的且因此未被接收到。尽管在本发明中帖内所使用的图形元素被 假定为位图,但也可使用其他类型的图形元素。
[0082] 图8描绘了被分成矩形平铺块的用户桌面的示例用户屏幕800。桌面可按相等大小 的位图来"平铺",运些位图然后可被表示为帖。在该示例中,加深的平铺块810和820表示已 改变且要被发送到客户机的平铺块。由此,在运一情况下,要发送到客户机的帖将包含两种 类型的图形元素。未改变的平铺块可被表示为空矩形。已改变的平铺块可实际作为已编码 位图来发送。
[0083] 在标准RDP编码中,位图或图形元素通常在不考虑传输MTU的大小的情况下被编 码。MTU是最大传输单元,且通常W字节来表示最大协议数据单元的大小。在本发明的某些 实施例中,图形元素可被包含在一个或有限的一组底层传输分组中。如果图形元素被包含 在一个分组中,则分组可W是独立的,且客户机将能够从每一接收的分组中提取有用的信 息。由此,在一个实施例中,实际图形元素的大小可被约束到一个MTU。例如,如果MTU大小是 如WAN中典型的那样的1480字节,则服务器将能够在一个MTU中编码32x32像素的未压缩单 色位图。服务器还将能够编码用将位图大小削减到大约=分之一的算法来压缩的32x32的 32bpp位图。
[0084] 如上所述,在某些实施例中,所公开的协议可W对全帖操作。例如,服务器可W将 屏幕内容编码为全帖,且客户机可W将该内容重构为全帖。帖的任何"遗漏"区域可被认为 是丢失的PDU的结果。由此,在一个实施例中,包含在PDU中的图形元素可包含足够的信息, 使得客户机能够确定图形元素所属的帖W及该帖内该元素所占据的位置。
[0085] 图9例示了帖元素的两个示例编码。在由数据分组900示出的一个实施例中,PDU可 包括帖序号。该帖序号可由客户机用于确定包含在PDU中的图形元素所属的帖。帖序号的改 变还可指示新帖的开始。尽管帖序号不需要是绝对值,但该号码应足够大W便在全部帖丢 失的情况下标识帖过渡。
[0086] 在由数据分组910所示的另一实施例中,在帖中编码的元素可包含几何信息。例 如,如果图形元素是大小相等的位图,则该位图在屏幕上的放置可由该位图在网格内的位 置来标识。如果元素可W是任意的几何结构,则可通过矩形坐标来指定图形元素位置。
[0087] 在某些实施例中,可提供描述在PDU中编码了什么类型的图元的元素类型。例如, 对于未改变的区域,可使用"空矩形"元素类型。图形类型的另一示例是不透明矩形或位图 (即,图形元素不是透明的,且因此不需要新屏幕区域所覆盖的先前屏幕区域的位图)。
[0088] 当通过有损协议传送数据时,可能需要解决多个问题来支持远程呈现协议。例如, 通常在传送之前向远程呈现数据应用批量压缩。批量压缩器通常通过根据早先的数据来编 码数据来操作。然而,如上所述,将图形元素编码到一个MTU中是合乎需要的,且因此在有损 传输的情况下,解压所必需的数据应被自包含在PDU内。因此,批量压缩历史可能必须在压 缩/解压每一 PDU之前被重置。
[0089] 如果使用多PDU传输技术,则压缩历史只能在压缩了更新中的所有PDU之后被重 置。批量压缩是基于历史的压缩技术,且因此如果流中的分组之一丢失,则状态会变得不一 致且可能会丢失同步。在一个实施例中,压缩上下文可在传送了每一分组之后重置,由此允 许独立地解压每一分组。在另一个实施例中,要包括在解压中的分组的数量可被动态地确 定。例如,压缩历史可在每四个分组之后重置。如果数据分组之一丢失,则服务器或图形源 可能需要重发所有四个分组。如果数据分组丢失率太高,从而引起分组组的重复重传,则可 基于网络条件或其他因素来平衡压缩历史重置点,运些其他因素如丢失分组的概率W及在 重置上下文之前发送更多数据分组的效率。在一个实施例中,压缩历史中的分组数量可从1 至IjN来调整。
[0090] 当通过有损协议来传送数据时,还可能需要解决与数据加密有关的问题。通常期 望加密图形元素或帖。加密方案的示例包括通常用于为通过网络的通信提供安全性的安全 套接字层(S化)。在各个所公开的实施例中,可能需要在PDU的上下文中完成加密。为了在运 一上下文中提供安全性,服务器可能必须更频繁地生成新的加密密钥并将运些密钥传递给 客户机。由于丢失数据分组的可能性,在使用有损链路时,用于加密方案的上下文也应该被 确定。服务器可将新的加密密钥W及应对其使用新加密密钥的分组传递给客户机。在一个 实施例中,可为每一分组提供非加密序号。加密密钥可通过可靠 TCP链路连同密钥可应用到 的分组号的范围一起发送。
[0091] 尽管上下文可在一个分组处设置,但加密密钥可用于数据块。例如,可提供序列ID 来为一个或多个分组标识要使用哪一加密上下文。在一个实施例中,用于解密加密的远程 呈现图形数据的加密密钥可连同对其应使用该加密密钥的数据分组的范围的指示一起传 送给客户机。可协商加密密钥,使得可向客户机发送要用于将从给定时期接收的分组的一 组新的密钥。
[0092] 另外,每一分组可W与一唯一序号W及一唯一帖号相关联来进一步将密钥与适用 的数据分组相关联。在一个实施例中,可W使用无损连接将预定数量的加密密钥发送给客 户机,并且然后可将标识要用于解密远程呈现图形数据的密钥之一的选择传送给客户计算 机。在另一实施例中,可W提供服务器发送多个密钥的方案。可W通过向分组序号应用模函 数来选择特定密钥。
[0093] 当通过有损链路发送远程呈现图形数据时,在某些情况下,可能期望最大化插入 到MTU中的图形数据的量直到MT啡良制。使用更多MTU容量可提供更大的效率,因为每一分组 将携带更多图形数据同时诸如首部或底层的每分组延迟等协议开销保持固定。更高的效率 可提供批量协议吞吐量的改进。此外,当分组丢失时,最小化需要重传的分组数量可能是有 利的,且因此减小分组之间的相互依赖性可能是有利的。由此,在某些实施例中,将数据打 包成分组使得每一分组尽可能独立地可处理且可解码可能是有利的。
[0094] 然而,在某些情况下,图形元素可被适合到一个W上MTU或少量MTU中。MTU的数量 可基于预期的或在链路上已检测到的损失水平来自适应。数据分组的大小可增大,但如果 分组丢失,则会丢失更多数据。另一方面,从批量压缩的观点来看,较小的分组也不压缩,且 因此可考虑上述因素来确定要放置在分组上的数据的量。
[00M]在某些情况下,将图形元素的大小约束到MTU大小在可编码什么种类的图形元素 方面可能是限制的。例如,非压缩32x32位图可要求四倍WAN MTU的大小。如果期望编码更大 的图形元素,则在某些实施例中,可应用一算法,使得客户机可从多个MTU大小的分组中重 新组装运些元素。在运些情形中,如果包含图形数据的分组丢失,则重新组装原始图形元素 可能是不可行的,且包含专用于该元素的信息的任何其他分组可能必须被丢弃。
[0096]如前所述,在某些实施例中,所公开的协议基于客户机将预期完全描述的帖的概 念。因此,客户机可跟踪对一帖接收到的区域。一旦客户机检测到开始了新帖,则客户机可 初始化对应于整个屏幕的区域对象,且该区域对象可用于跟踪如所接收到的已编码数据所 表示的所接收的区域。当接收到更新时,客户机可从跟踪区域中减去更新所占据的区域。如 果接收到帖中的所有更新,则跟踪区域在本质上将是空的。如果区域不是
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1