桌面虚拟化显示协议研究综述_第1页
桌面虚拟化显示协议研究综述_第2页
桌面虚拟化显示协议研究综述_第3页
桌面虚拟化显示协议研究综述_第4页
桌面虚拟化显示协议研究综述_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、虚拟桌面显示协议研究综述摘要:随着云计算的不断发展,虚拟桌面解决方案VDI日益成熟,桌面虚拟化成为典型的云计算应用。虚拟桌面技术能够有效地解决传统个人计算机使用过程中存在的多种问题,降低企业的运维成本,受到业界的广泛关注。然而,虚拟桌面显示协议在当前的网络带宽环境下成为VDI的性能瓶颈,是各厂商竞争的焦点。不同的协议在应用效果、用户体验QoE方面各有特色。本文首先介绍了虚拟桌面的典型架构,然后从虚拟桌面显示协议方面总结了当前国内外桌面虚拟化技术的研究发展现状以及基本特征。基于此,分析了当前虚拟桌面显示协议的不足之处。最后,提出了桌面显示协议的发展趋势,对于当前桌面虚拟化技术的发展将起到一定的指

2、导作用。关键字:虚拟桌面,VDI,显示协议,QoE1 引言在当前的桌面云计算解决方案中,虚拟桌面基础架构VDI(Virtual Desktop Infrastructure)是主流的架构与部署方式。它基于底层的硬件资源和中间层的虚拟化软件,通过上层的桌面虚拟化应用软件,为终端用户提供虚拟桌面交付模式。VDI解决方案中所提供的桌面虚拟化不仅充分利用了服务器端的计算能力,而且提供了强大而灵活的用户PC管理能力,同时具有很强的可扩展性和显著的能源节约优势,消除了传统个人计算机管理模式中的很多缺点。VDI解决方案的主要设计思想是通过虚拟化技术,把传统意义上的个人物理PC转换为运行在虚拟化服务器上的一个

3、个虚拟桌面,即Virtual Desktop,通过提供对底层存储、网络等基础资源和上层虚拟桌面的集中管理和连接功能,为给终端用户提供灵活和良好的虚拟桌面使用体验。桌面虚拟化是一种基于中心服务器的计算模型,建立在服务器虚拟化的基础之上,沿用了瘦客户端模型,所有的桌面虚拟机在数据中心进行托管并统一管理,同时用户能够获得完整的PC使用体验,用户可以根据自己的需要使用虚拟桌面服务。系统管理员只需要维护部署在中心服务器上的系统即可,不需要更新升级客户机上的系统。桌面虚拟化与传统的远程桌面的关键不同之处在于,远程桌面技术是接入到一个真正安装在物理机上的操作系统,如果要大面积作为企业应用技术,不仅需要一个个

4、PC运行操作系统,还需要投入相应的很多终端,所以远程桌面仅作为远程控制和远程访问的一种方式。采用桌面虚拟化极大地降低了整体IT的采购成本和运维成本,提高系统的安全性和硬件系统的利用率。其中虚拟桌面显示协议是VDI解决方案的核心,其最终目的是为用户提供接近传统PC操作系统的桌面服务体验。当前主流的虚拟桌面技术厂商已经确定了各自主打的桌面显示协议,主要包括Microsoft的RDP、Citrix的ICA/HDX、Red Hat的SPICE、VMware的PCoIP等。不同的协议在应用效果、用户体验方面各有特色。虚拟化技术主要包括服务器虚拟化、应用虚拟化、桌面虚拟化。目前网络虚拟化,显卡虚拟化(GP

5、U虚拟化)等技术都在快速发展。桌面虚拟化技术是发展最快的,也是最有应用前景的技术。远程桌面技术可以说是桌面虚拟化技术的前身。内置在Windows中的远程桌面使用了RDP协议,用户可以从其他的电脑上远程登录、访问与使用目标桌面。在虚拟化技术日益成熟后,微软将Windows Server 2008上的Terminal Services重新定义为演示虚拟化技术。从技术演进发展的时间来看,2006年桌面虚拟化技术概念才开始形成,2007年出现了第一代VDI的方案,2008年开始出现比较完整的解决方案。目前桌面虚拟化对应的虚拟系统不直接与硬件打交道,而是通过一个中间管理层来进行资源的协调,使得虚拟系统不

6、会独占硬件资源。桌面虚拟化技术进一步发展,会实现虚拟桌面的网络化和集中化,虚拟桌面操作系统将被存储在网络上,进行集中化的管理。这样,用户的访问环境和运行环境分离开,用户将可以通过任何设备对网络上的桌面进行操作与访问。桌面通过服务的形式提供给最终用户,也就是桌面即服务DaaS(Desktop as a Service)。VDI的广泛使用尤其受限于网络环境。在VDI模式下,数千个桌面环境从用户终端迁移到数据中心,数据中心需要实时地将桌面图像返回到用户终端,同时还要处理用户的输入信息,这些对网络性能提出了很高的要求。在目前的带宽条件下,用户想获得与使用本地桌面相同的体验还是有一定困难的,尤其是视频、

7、3D图像以及多媒体应用等。因此,目前各大厂商围绕虚拟桌面显示协议展开竞争,使用各种技术对显示协议进行优化,减少需要传输的数量,提升用户使用体验。随着人们对虚拟桌面性能要求的不断提高,虚拟操作系统基础架构VOI(Virtual OS Infrastructure)成为一个新的桌面虚拟化发展方向。VOI的概念由IBM的Steve Mills最早提出,VOI可以看作桌面虚拟化发展的第三个阶段。VOI桌面虚拟化技术不仅可实现基于服务端的虚拟操作系统、虚拟应用、用户配置的按需交付,也可基于客户端实现,这样就可利用终端资源处理图形密集型应用,比如音视频、3D图形应用等,也可支持各种计算机外设以适

8、应复杂的应用环境以及未来的应用扩展。VOI对网络和服务器的依赖性将大大降低,在网络中断或服务器故障后终端也可继续离线使用,数据可在云端集中存储,也可在本地加密存储,且终端应用数据不会因网络或服务端故障而丢失。从实际应用方面考虑,VOI具有更强和更符合用户环境的适应性。2 虚拟桌面显示协议概要目前各个厂商都推出了自己的虚拟桌面显示协议,每种协议都有不同的特性。2.1主流虚拟桌面显示协议2.1.1 RDP协议RDP协议是微软虚拟桌面产品中采用的显示协议。在应用过程中,在服务器侧用于生成远程桌面屏幕显示内容的图像设备接口GDI指令被RDP驱动截获,在服务器侧进行渲染,然后以光栅图像的形式传送到用户终

9、端上输出。同时,用户终端上安装RDP协议的客户端把用户通过鼠标、键盘等设备输入的信息通过RDP重定向到服务器侧, 进而在服务器侧使用相应的驱动进行处理。RDP协议是在国际电信联盟ITU T.120协议族的基础上进行的扩展,通过建立多个独立的虚拟通道,承载不同的数据传输和设备通信,其总体架构如图所示:传输层:用于处理数据传输,管理连接过程,基于传输层,RDP协议能够提供多播服务,支持点到点和点到多点的连接。安全层:由加密和签名算法以及服务组成,防止未经认证的用户对RDP连接进行监控。RDP协议采用RC4算法进行加密,同时采用MD5和SHA-1组合算法进行签名。虚拟通道复用层:多个虚拟通道可以复用

10、同一个RDP连接,虚拟通道具有可扩展性,每个虚拟通道内部可以增加新的内部属性,也可以开放给第三方使用。压缩层:利用压缩算法(微软的点对点压缩协议)针对各个虚拟通道的数据进行压缩。用户对虚拟桌面体验的要求不断提高,微软在windows server 2008 R2的远程桌面服务Remote Desktop Service(RDS)产品中提出了RemoteFX技术,对RDP协议进行增强。RemoteFX技术通过提供虚拟3D显示适配器、智能编/解码和USB重定向等技术为用户提供良好的桌面体验,已经应用在微软的VDI和SBC虚拟桌面解决方案中。VDI解决方案对RemoteFX的应用能全面体现Remot

11、eFX的技术特征,RemoteFX的技术架构如图所示:RemoteFX是与RDP7.1以及之后版本的RDP协议整合使用的,其中RDP协议为RemoteFX提供加密、认证、管理和设备支持等功能。RemoteFX需要与微软的服务器虚拟化技术Hyper-V集成,其图像处理组件分别运行在Hyper-V的父分区和子分区。父分区包括RemoteFX的管理组件,用于管理图像的处理过程。在子分区中运行的主要有虚拟GPU。GPU虚拟化是RemoteFX增强技术的核心,当虚拟机中的应用通过DirectX或GDI调用图像处理操作时,相关命令将传递给虚拟GPU,然后由虚拟GPU将命令从子分区传递给Hyper-V的父分

12、区并在物理GPU上高效处理。最新的RDP协议是8.0版本,其新特性包括1:通过 RemoteFX for WAN 功能,WAN 网络上的用户可以使用智能与自适应 UDP 传输、网络丢包率和恢复等高级技术获取快速流畅的体验。RemoteFX 网络自动检测功能会自动检测网络特征并相应地优化用户体验。RemoteFX 自适应图形功能可以提供丰富的图形体验,能够动态适应服务器负载、客户端访问设备负载和网络特征。对于所有媒体内容格式,RemoteFX 媒体流功能都能够让用户在 WAN 网络上获得流畅的媒体体验。通过 RemoteFX USB 重定向功能,即使远程桌面计算机未安装 RemoteFX vGP

13、U,用户也能够使用带有RemoteApp应用程序和远程桌面的USB设备。特定场景下,RDP 8.0支持在远程桌面连接会话中运行其他远程桌面连接会话。通过性能计数器(RemoteFX 图形和 RemoteFX 网络计数器组),管理员可以监视和解决用户体验问题。2.1.2 ICA/HDX协议ICA协议为桌面内容和外设数据在服务器和用户终端之间的传输提供了多种独立的虚拟通道,每个通道可以采用不同的交互时序、压缩算法、安全设置等。ICA虚拟通道是在服务器和用户终端之间建立双向连接,可用于传输声音、图像、打印数据、外设驱动等信息,其虚拟通道实现原理如图所示:在ICA的基础上,Citrix在2009年发布

14、了HDX(High Definition eXperience)技术对ICA协议进行了改进和增强,其目标是在桌面领域的多媒体、语音、视频和3D图形等内容为虚拟桌面提供更好的高清使用体验。HDX技术的核心内容如下2:HDX Plug-n-Play:本地虚拟桌面支持多种外设,并简化了设备的连接,包括USB设备、打印机、扫描仪、智能卡等外设。HDX RichGraphics:充分利用服务器的处理能力,提供高分辨率图像的处理,优化图形密集型及富媒体应用的性能。HDX MediaStream:将经过压缩处理的音频和视频发送到用户终端并在本地进行播放,提升多媒体的播放效果。HDX RealTime:主要用

15、于改善用户访问的实时性,支持双向音频,支持基于虚拟桌面的视频会议。HDX Broadcast:针对不同的网络环境,利用压缩、缓存等技术提高访问远程桌面和应用的效果。HDX WAN Optimization:优化广域网的访问性能和带宽消耗,提供自适应的加速能和QoS保证。HDX Smart Access:支持用户在任何地点、任何设备上安全地访问虚拟桌面,支持SSO。HDX Adaptive Orchestration:自适应调整HDX的配置,全面优化用户体验。通过灵活地部署和应用各项HDX技术,能够全面、有效地优化虚拟桌面服务的交付效果,在各种网络条件下为用户提供更好的体验。2.1.3 SPIC

16、E协议SPICE(Simple Protocol for Independent Computing Environment )协议最早由Qumranet开发,同时Qumranet还创建了KVM虚拟化技术。Red Hat收购Qumranet之后,继续在KVM虚拟化的基础上采用SPICE作为桌面交付协议为用户提供VDI解决方案。SPICE是一个具有三层架构的协议。QXL驱动:部署在服务器侧提供虚拟桌面服务的虚拟机中,用于接收操作系统和应用程序的图形命令,并将其转换为KVM的QXL图形设备命令。SPICE客户端:部署在用户终端上的软件,负责显示虚拟桌面,同时接收终端外设的输入。QXL设备:部署在K

17、VM服务器虚拟化的Hypervisor中,用于处理各虚拟机发来的图形图像操作。SPICE协议最大的特点是其架构中增加的位于Hypervisor中的QXL设备,本质上是KVM虚拟化平台中通过软件实现的PCI显示设备,利用循环队列等数据结构共虚拟化平台上的多个虚拟机共享实现了设备的虚拟化。但是这种架构使得SPICE协议紧密地依赖于服务器虚拟化软/硬件基础设施,SPICE必须与KVM虚拟化环境绑定。SPICE协议能够自动判断和调整图像处理的位置,如果用户终端能够处理复杂的图像操作,就尽可能地传输图像处理命令而不是渲染后的图像内容,这样可以减少网络上传输的数据量。SPICE协议传输的内容主要包括两种命

18、令流:一种是图形命令数据流,一种是代理命令数据流。图形命令数据流是从服务器侧流向用户侧,将服务器侧需要显示的图形图像信息传送到用户终端;代理命令数据流从用户终端流到服务器,主要传输虚拟机中部署的代理模块接收到的用户在终端进行的键盘、鼠标等的操作信息。SPICE协议的图形命令流的传输过程如下图所示:应用SPICE协议时,需要在KVM虚拟化环境的QEMU中安装libspice库,这样KVM才能成为SPICE服务器。提供虚拟桌面服务的虚拟机(即图中的Quest OS)上的应用程序向操作系统的图形引擎(GDI/X Engine)发出图形处理操作,图形引擎把绘图命令发送给QXL驱动,QXL驱动将操作系统

19、的绘图命令转换为QXL命令后推送到QXL设备的图形命令循环队列中,libspice库从中获取绘图命令,添加到图形命令树上。图形命令树主要负责对QXL命令进行组织和优化,同时负责对视频流进行侦测。经过图形命令树优化的QXL命令放入到发送队列,由libspice库维护,并发送到SPICE客户端更新显示内容3。SPICE协议支持多通道设置,利用不同的通道传输不同的内容。每个通道中的内容都可以通过相应的图形命令数据流或代理命令数据流进行传输。同时能够独立进行加密,支持不同的QoS。2.1.4 PCoIP协议PCoIP协议是Teradici在现有的标准IP网络的基础上研发的以显示压缩方式连接远程桌面的协

20、议,支持高分辨率、全帧速的图像显示和媒体播放,同时还支持多屏幕显示设备、完整的USB外设和高质量的音频。VMware收购Teradici后在虚拟桌面产品VMware View中实现了利用服务器的通用处理器进行的基于软件的PCoIP协议处理。2012年1月,Teradici发布了PCoIP协议的专用板卡来降低服务器通用处理器的负载,实现性能加速,改进虚拟桌面的显示效果和应用体验。提供虚拟桌面服务的虚拟机中,存在软件和硬件两种PCoIP协议的处理方式。硬件处理方式是在VMware服务器虚拟化平台对专用的PCoIP板卡进行虚拟化后由各个虚拟机共享,板卡的主要功能是处理图像编码。VMware虚拟桌面产

21、品的PCoIP协议主要特征有:服务器侧渲染PCoIP主要是在服务器进行图像的渲染,渲染完成后将加密后的像素通过网络传送到客户端,客户端只需要对像素进行解码并显示。服务器侧渲染降低了由客户端渲染导致的延迟问题。多种编码/解码方式PCoIP协议对图像进行分析并进行元素分解,对图形、文本、图表、视频等内容进行区分,然后使用合适的编码/解码算法对相关像素进行压缩。智能图像分解和图像编码优化能够更有效地进行数据的传输,降低网络负载。动态适应网络状态PCoIP协议能够根据网络状态自动调整图像质量。PCoIP传输的是像素,而不是传输数据文件,因此可以保证响应速度快、交互性强的用户体验。PCoIP协议的底层采

22、用TCP协议和UDP协议,TCP协议主要是用于会话的建立和控制,而UDP则用于优化传输多媒体内容,能够降低对带宽的要求,优化交互体验。2.1.5 RFB协议RFB 协议全称为远程帧缓冲(Remote Frame Buffer)协议,是用于VNC(Virtual Network Computing)系统中的一个远程显示协议。RFB协议是一个简单的远程图形传输协议,不依赖于具体的图形接口,因此在所有的窗口系统(X11、Windows、Mac等)和应用程序中都可使用。RFB协议显示部分基于一条简单的显示原语“在给定的x,y位置上显示一个矩形像素数据”,通过一列矩形区域显示的更新来达到一次帧缓冲更新。

23、RFB传输的是图像,是在服务器端将窗口在显存中画好之后将图像传给客户端,客户端只充当一个图像解码显示的角色。RFB协议中的编码方法主要包括Raw,Copy Rectangle、RRE、Hextile和ZRLE等方法4。采用Raw编码方式,屏幕上的像素点简单地从左到右扫描,然后发送到客户端。服务器端默认采用这种方式。Copy Rectangle编码使用客户端缓冲区中的数据,此时客户端已有了待传输的数据,只需将更新区域的坐标发送给客户端,然后客户端在缓冲区中相应位置拷贝即可。RRE(rise-and-run-length)编码是将像素值相同的矩形区域作为一个整体传输,从而减少了传输的数据量。RRE

24、编码首先传输的是一个背景色(屏幕上最常用的像素值)和一个矩形计数值N,然后是小矩形块,每个小矩形块的信息包括矩形的左上坐标、高度、宽度以及一个前景色值。在客户端显示时,先填充背景色,然后再在每个小矩形陵域填充对应的前景色即可。RRE的解码效率较高,可以减轻客户端的处理负担。Hextile是RRE编码的变种,Hextile编码把整个屏幕分割成一个个16x16的小片,遵守从左到右,自上而下的顺序。每个小片采用的编码方式可以是Raw编码,也可以是RRE编码的变种。ZRLE(Zlib run-length encoding)编码结合了zlib压缩、分片、调色板和run-length编码等技术,在传输时

25、,首先传输的是个4字节的长度值紧接着是该长度的zlib压缩数据。每个RFB连接使用的是单一的zlib流对象,因此ZRLE编码的矩形必须严格地按照顺序进行编解码。RFB协议的这些编码方式的特点是编码速度快,但压缩率很低,对于普通应用能够满足要求,但是对于视频等屏幕刷新频率很高的应用来说不能满足。2.2其他显示协议(1) X协议X协议5主要是Linux系统中使用的图形显示协议,X窗口系统通过软件工具及架构协定来创建操作系统所用的图形用户界面,后来逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X协议。X协议采用的是客户端/服务器模型,X服务器程序运行在有图形显示的计算机

26、上,可以与不同的X客户端进行通信。X服务器作为用户和X客户端之间的通信程序,接收用户的鼠标、键盘输入转发给X客户端,同时从X客户端接收图形信息,显示给用户。X服务器运行在用户本地计算机上,X客户端可以运行在不同的远程计算机上。X服务器和X客户端之间通过网络通道进行数据包交换。首先由X客户端发起连接,发送的第一个数据包,服务器发回应答的数据包,说明接受或拒绝的连接请求。连接建立后,X服务器和X客户端之间交换的报文有4类:Ø 请求报文:客户端请求服务器的报文,或者请求服务器执行动作。Ø 回应报文:服务器回应请求,并不是所有的请求都会产生回应。Ø 事件报文:服务器发送事

27、件给客户端,例如,键盘或滑鼠的输入,或移动、调整、显示视窗。Ø 错误报文:如果请求无效时,服务器会发送错误报文。请求是以队列的方式进行处理的,所以请求所产生的错误报文不会立即传送。(2) AIP协议AIP(Adaptive Internet Protocol)是由Tarantella公司研发的瘦客户端显示协议。AIP协议能够自动适应用户的终端环境,根据不同的网络环境提供最佳的性能6。Tarantella Server为每个用户维持一个会话,使得用户可以在任何其他地方重新连接当前会话,继续执行应用。同时用户也可以使用其他终端设备重连会话,AIP能自动感知终端设备的任何变化,并自动适应。

28、Tarantella安全桌面企业版是一个三层架构的解决方案。三层的功能如下:Ø 终端设备终端设备中能够运行支持java的浏览器即可,可以是完整的桌面系统,也可以是各种PDA设备。Ø Tarantella ServerTarantella Server使得Application Server中的应用程序能够在客户端设备上显示出来。Ø 应用服务器所有的应用程序真正运行在应用服务器中,可以是Windows、Unix或者其他的大型机。Tarantella Server通过一些标准的远程协议(RDP、X11等)与应用服务器进行通信。通过AIP协议,Tarantella Se

29、rver与终端设备进行通信。AIP协议包括协议引擎和显示引擎两部分,对于应用服务器上的每一类应用都必须有一对关联的协议引擎和显示引擎。比如,运行图形应用需要图像协议引擎和相应的图像显示引擎,运行字符相关的应用需要字符协议引擎和显示引擎。协议引擎运行在Tarantella Server里,将应用服务器发送的标准远程协议转换为显示引擎可以理解的AIP协议。Tarantella Server和终端设备之间通信过程如图所示:AIP协议中的关键字是自适应,AIP能够自动适应终端设备、网络带宽和网络负载。如果终端设备的处理能力很弱或者网络负载很高,AIP会把大部分工作再服务器端进行处理;另一方面,如果终端

30、有很强的处理能力,AIP会把更多的工作交由终端处理。这种自适应性需要不断地监视网络负载和客户端性能,调整内部模型并做出相应的反应。(3) EOP协议vWorkspace是Quest公司推出的桌面虚拟化管理平台,目前已经被Dell收购。vWorkspace提供了用户访问接口和管理控制台,同时保证良好的用户使用和管理体验。vWorkspace使用Experience Optimized Protocol(EOP)协议交付虚拟桌面环境,EOP是RDP协议的一系列扩展和增强,使用多种方法提升虚拟桌面体验,EOP旨在解决RDP协议存在的问题,确保集中化的桌面部署能够提供同本地桌面环境一样的用户体验。EO

31、P支持双向语音、VoIP应用,还提供了图接口形渲染和动画功能,包括浏览器和Flash的图像加速处理,同时EOP能够处理网络延时超过200ms的情况,防止应用程序未响应。EOP主要包括以下特性:Ø EOP多媒体加速:windows media player和Flash媒体的重定向加速Ø EOP音频:提供高质量双向音频体验Ø EOP通用USB:支持通用的USB设备Ø EOP文字回显:支持输入文字的及时显示Ø EOP打印:支持通用打印机、网络打印机Ø EOP多显示器:支持多个显示器Ø EOP图像加速:可选择有损压缩来加速图像的传输

32、速度Dell在vWorkspace7.2 MR1中引入了对RemoteFX的支持,EOP Xstream用来增强RemoteFX的性能。(4) ALP协议Sun公司通过Sun Ray产品提供远程桌面访问,其核心组件是Appliance Link Protocol(ALP)协议,在图形密集型应用环境中提供的高效工作能力。Sun Ray终端适于显示服务器托管的虚拟桌面。ALP协议是Sun Ray连接器和Sun Ray终端之间进行通信的协议,Sun Ray连接器运行在Sun Ray服务器中,并通过RDP协议与Windows终端服务(Terminal Server)进行通信。(5) RGS远程图形软件

33、Remote Graphics Software(RGS)是基于HP压缩算法开发的高性能远程图形传输协议,非常适合于文本、图形、视频混合的远程图形传输。RGS在保证图形传输质量的同时实现高压缩比、实时压缩/解压缩,可以跨平台使用在多种硬件和操作系统上。RGS捕获远程系统的桌面,然后使用高效的图像压缩技术将桌面图像通过标准网络环境传输到终端设备,特别适合于文本、数码图像、高帧率的视频应用等。RGS支持广泛的客户端虚拟化技术,包括多用户VDI解决方案、刀片工作站、桌面PC、移动PC等。RGS的特性图像硬件加速:Server端通过硬件加速来提升性能。HP图像压缩/解压算法:RGS使用HP自主研发的高

34、性能图像压缩算法,支持无损实时的远程虚拟化。屏幕选择性更新:只有屏幕上发生变化的部分才会被捕获、压缩、传输到终端设备安全:RGS包括很多安全特性,包括像素级别的数据加密多用户协作:RGS允许多个用户登录到同一个远程桌面,多个用户可以共享同一个桌面会话和应用程序。(6) UXP协议用户扩展协议UXP(User eXtension Protocol)是NComputing公司研发的高效虚拟桌面显示协议,旨在为用户提供完整、丰富的使用体验,包括富媒体、全屏、视频流、Flash、动态图像、无缝响应等。UXP负责NComputing vSpace服务器和客户端设备或软件之间的通信。(7) NX协议7NX

35、是NoMachine在X协议的基础上研发的使用优化的压缩算法进行数据传输的协议,能够在低带宽的网络情况下使用X协议,并且在客户端和服务器端都使用了高效缓存机制。NX协议最初的目的就是提供高效的X协议压缩技术,使得用户可以不用修改X桌面环境,直接在标准X Server上运行。NX协议在3个层次上对X协议进行操作:使用多种技术压缩网络流量,包括消息差分算法、高效缓存机制、图像的无损和有损压缩等。减少网络往返时延,提高吞吐量。根据网络状态,实时自适应网络带宽。NX的主要特性如下:NX 通过在远程机器上虚拟一个 X Server,将远程的应用程序绘制的图像都绘制到虚拟的 X Server上,再通过NX

36、协议将图像发送到客户端来,并接受客户端的键盘和鼠标事件。NX允许对传输的图像进行压缩,在网络带宽有限的情况下,NX可以动态地牺牲部分图像质量,获得更流畅的操作效果。NX根据显示的内容,提供X协议的数据压缩,压缩比从10:1到100:1,在LAN环境下能够获得很好的性能。NX使用的是系统SSH协议,没有单独的身份验证机制,因此安全性完全依赖于系统SSH的安全性,不会引入新的安全隐患。NX内置了对于文件共享、打印机共享以及本地声音系统共享的转发机制,连接到远程系统的时候可以非常方便地使用本地的资源。目前DotRiver、QVD等桌面虚拟化解决方案使用了NX协议。3 虚拟桌面显示协议分析与比较3.1

37、影响虚拟桌面性能的主要因素就虚拟桌面显示协议本身而言,影响虚拟桌面性能的主要因素是显示编码原语、屏幕更新机制以及压缩编码和缓存。(1) 显示编码原语显示编码原语分为基于像素和基于图形的绘图原语。使用基于像素的显示编码的瘦客户端,显示更新在服务器端处理,送到客户端的仅是需要显示的像素数据。该方法平台立性好、客户端计算简单。基于图形的显示编码,与操作系统的窗口操作和显示命令联系紧密,负责处理更新的显示命令和需要显示的屏幕数据都需要从服务器传输到客户端,并在客户端处理显示更新。其平台立性较差、客户端计算复杂。像素原语能使系统显示像素区域的所有更新。它不需要任何有关显示内容的语义信息。图形原语用于系统

38、从图像中分离要显示的图形。(2) 显示更新机制显示更新机制包括更新时机(Timing of Display Updates)及刷新模式。更新时机有客户端拉动(Client-pull)和服务器推动(Server-push)两种;每种技术又可采用两种刷新模式,即懒惰更新(Lazy Update)和急切更新(Eager Update)中的一种8。客户端拉动是一种由客户端驱动的显示更新技术,由客户端决定屏幕更新的时机。服务器并不是将每次更新都发送给客户,只有收到来自客户机的请求时,才将最近的显示更新发送出去。服务器推动是由服务器驱动的显示更新技术,由服务器决定屏幕更新的时机。它需要根据刷新模式来确定何

39、时发送屏幕更新给客户。急切模式是当服务器上的应用程序产生绘图命令时,瘦客户端立即将命令转换为基本的显示编码原语并把显示刷新数据发送到客户端,它使服务器能跟上应用程序的翻译命令。懒惰刷新模式是将若干翻译命令首先缓冲,然后再需要时懒惰地发送合并的显示刷新到客户端。对于实时视频显示,懒惰显示刷新模式导致许多视频帧在服务器端被合并和覆盖,使发送刷新的频率降低。它虽然能减少数据量的传输,但影响了系统的视频性能。(3) 压缩编码和缓存在当前的网络环境下,压缩编码技术的好坏直接影响了虚拟桌面的使用体验。图像的压缩方式直接决定了从服务器传输到客户端的数据量以及编码解码的效率。客户端缓存用来保存经常使用的显示元

40、素,如字体和位图等,如果当前需要显示的元素在缓存中,客户端就可以直接从缓存中获得,而不必重复向服务器端发送请求获得。在高带宽环境下,网络不是瓶颈,此时缓存会造成一些附加的计算,影响平台性能。但是在低带宽环境下,性能与数据传输量有直接关系,缓存和良好的压缩算法有利于提高虚拟桌面的性能。3.2虚拟桌面显示协议的比较(1) 显示编码方式比较RFB协议支持2D绘图原语,如对文本窗口的屏幕区域,采用单色或双色的位图填充。RFB也可设置为仅使用Raw像素编码。Sun Ray使用的ALP协议同样采用2D绘图原语。Citrix的ICA、微软的RDP和Tarantella的AIP协议采用基于底层图形的显示编码,

41、支持字形、图标、图像和绘图命令等绘图原语。SPICE协议基于高级绘图命令,将虚拟机中的绘图指令转换为QXL命令传给QEMU中的QXL设备。X协议使用高层图形的显示编码。单独测试协议显示编码原语对系统性能的影响,在100 Mbps带宽网络环境的性能测试中,传输内容相同的情况下,AIP响应时间最短,其次是采用2D绘图原语的RFB,而ICA和RDP则具有相同的延迟时间且响应时间最长。在传送数据量方面,如果传输相同内容的文本图像混合网页,RFB传输的数据量最少,AIP、ICA和RDP传输的数据量相同且大于RFB。如果是传输相同内容的纯文本网页,则RDP和ICA传输的数据量最小,AIP次之,RFB最大。

42、由此可见,采用基于图形的显示编码在传送纯文本时比RFB的带宽效率高9。(2) 显示更新方式比较在RFB中采用客户端拉动的懒惰更新模式。当客户端请求时,更新被懒惰地发送。但常常由于客户运行的VNC已被大量地加载,客户端变成申请显示刷新的瓶颈,导致在客户机端产生下一个更新请求前,服务器端已将那些被合并和覆盖的视频丢失了,所以其视频播放的性能较差。ICA和RDP依赖于服务器推动的懒惰更新模式。它比RFB的视频性能要好一些,不会在客户端产生显示刷新的瓶颈,但仍然会放弃或者融合服务器端的显示。AIP使用服务器推动技术,刷新模式则能根据带宽情况在急切和懒惰中进行智能选择。它在100 Mbps的视频性能测试

43、中表现很好,尤其对于多媒体视频应用程序。AIP使用懒惰模式来适应较低的带宽。在100Mbps网络环境中。RDP、ICA和RFB传送低质量视频,相比之下ICA、RDP要比RFB好一些,而AIP能传送超过90%的视频质量,但在10Mbps降到仅有大约50%的视频质量。传送的数据量从大到小依次为AIP、RDP、ICA和RFB。(3) 压缩及缓存比较10RFB主要是在二维运动步长编码(2D run-length encoding, RLE)的基础上进行的改进,如Copy Rectangle、RRE (Rise-and-Run-Length)、CoRRE (Compact RRE)和 Hextile等,

44、缺省时使用Hextile编码。RFB采用本地帧缓存,如果需要显示的数据在当前的缓存中,客户端只需将其拷贝到屏幕所需的区域,而不用再发送请求给服务器。但RFB仅保留当前显示的数据,没有保留足够的历史数据,因此不能很好地减少数据传输量。如果仅在屏幕中移动窗口或滚动窗口内的内容时,RFB能表现出良好的性能11。ICA和RDP协议使用运动步长RLE(run-length encoding)编码压缩方式,字体以及小的位图都保存在客户端缓存中,大的位图保存到客户端磁盘中。AIP协议使用了两种编码压缩方式:RLE和LZW (Lempel-Ziv-Welch),并且使用一种自适应机制来适应网络带宽的变化,在高

45、带宽时关闭压缩,在低带宽时打开。AIP在客户端使用显示对象缓存。RGS主要采用惠普自主研发的核心图形压缩技术HP2,HP2是HP独有的具有超高压缩比、超高压缩质量的一种压缩/解压缩技术。它采用了当前最先进的压缩算法(HP专利),是一种专门为文本、图表和自然图像交互的富媒体开发出来的技术。在保证图形质量的前提下,HP2拥有更快的压缩/解压缩进程和更高的压缩比。与JPEG压缩算法相比,HP2压缩后的图形,其文字和行距不会发生扭曲,也不会出现伪影12。SPICE提供了3种无损图像压缩算法,分别是QUIC、LZ、GLZ压缩算法,3种算法可以在Server启动时设定,也可以在运行过程中动态切换。QUIC

46、和LZ算法都是本地压缩算法,分别独立地编码每一张图像。GLZ在LZ算法的基础上使用一个全局的历史字典机制,利用图像之间的重复模式减少传输的数据量。针对视频流,SPICE使用有损压缩算法Motion JPEG,SPICE Server识别出视频流后切换到视频压缩算法。RFB在压缩纯文本数据时,可以压缩到原数据量的3%;而在压缩图像数据和视频数据时,这个比例分别为6%和30%。ICA在压缩纯文本数据时,可压缩到原数据的30% ;而在压缩图像和视频数据时,压缩比分别可以达到45%和68%。RDP在压缩纯文本数据和图像数据时,可将数据量压缩到原来的40% ;在压缩视频数据时,压缩比可达58%。对于视频

47、数据而言,ICA压缩后的视频质量会降低近一半,而RDP压缩后的视频质量几乎不变。对于AIP,压缩时视频质量从高于90%降到不足30%。AIP不能单独设置压缩,当压缩被打开时,缓存也同时被打开。在100 Mbps带宽下,其等待时间增加了13%,这主要是由缓存的额外开销所影响的。在100 Mbps带宽下,RFB和RDP使用缓存在等待时间、数据传输量和视频性能上几乎没有什么影响。ICA的高速缓存使平均网页等待时间增长了40%。这说明在高带宽网络环境中ICA缓存的额外开销超过它的好处。但ICA的缓存机制却减少了数据量的传输。ICA传输文本数据、图像数据和视频数据时,数据量分别减少为原来的55%、34%

48、和62%。但此时由于传输速度减慢、传输数据量减少,严重降低了视频质量,致使视频质量从大约50%降到不足5%。这说明ICA高速缓存的额外开销在高带宽环境下超过其对性能的贡献。(4) 显示性能比较ICA针对Microsoft Office应用程序做过优化,在一定的网络环境下,比RDP协议能提供更好的用户体验QoE,对于Office应用中的图形密集操作,比如在Excel中创建图表或者向Word中插入图片等操作,ICA协议也能提供较好的性能。网络传输过程中数据包丢失都会在一定程度上影响用户的使用体验,在这样的网络环境下,RDP协议明显优于ICA协议,ICA需要更长的时间来显示office操作结果13。

49、ICA协议在理想的网络环境下能够提供良好的用户体验,适用于局域网环境。在局域网环境下,一般的应用RDP和ICA都能正常运行,RDP协议使用的网络流量较多,对于性能的影响不太大。在网络环境较好的情况下(10Mbps或者100Mbps的网络带宽),X协议、RDP、ICA、AIP、RFB以及AIP协议针对web浏览类型的应用来说,都可以提供很好的使用体验,X协议和AIP协议性能更好些,延时在300ms内,其他协议延时在500ms内。网络带宽降低时对X协议和ALP协议的影响较大。在128Kbps带宽的网络环境,这些协议都不能提供良好的性能。针对视频播放,即使在100Mbps环境下,ICA、RDP、RF

50、B协议提供的性能也很差,X协议、AIP和ALP可以提供90%以上的视频质量,但在10Mbps环境下只能提供50%的视频质量。14主流显示协议的特性比较如表1所示。表1 主流虚拟桌面显示协议比较特性PCoIPRDPSPICEICARGS传输带宽要求高高中低中图像展示体验高低高中高双向音频支持低中高高高视频播放支持低中高中中用户外设支持低高中高中传输安全性高中高高高支持厂商VMwareMicrosoftRed HatCitrixHP(5) 适用场景比较火星探险可以说是应用惠普RGS核心压缩技术HP2最成功的应用,NASA与HP实验室合作共同开发了该压缩技术。同时RGS被梦工厂应用于3D动画创作,实

51、现全球动画专家的实时协作。借助于HP2压缩技术,RGS适用于图像密集型应用,并提供了比较好的使用效果。Sun Ray使用的ALP协议在图形密集型应用环境中能够提供的高效工作能力。ICA协议通过HDX WAN optimization技术能够有效地在各种网络条件,特别是在低带宽、高延时的广域网环境下,提供较好的用户体验。RDP协议借助于RemoteFX增强技术,通过GPU的虚拟化获得图形加速能力,可以执行各种高保真视频、2D/3D图形图像以及富媒体的处理操作。4 虚拟桌面显示协议的发展4.1 虚拟桌面显示协议的改进针对虚拟桌面协议的不足,学术界及工业界都在不断地进行协议改进与优化。(1) 混合桌

52、面显示协议14提出了一种混合的桌面显示协议,该协议包括经典的虚拟桌面显示协议和一种实时桌面流协议。应用程序的图形输出经过GPU处理后通过基于H264/AVC的视频编码转换为视频流发送到用户终端,终端只需要解码视频流即可。如图所示,在图形库和设备驱动之间插入了一个驱动决策抽象层,用来接收图形库发来的绘图命令,然后决定转发给硬件显卡驱动还是虚拟的软件驱动。如果图形库发来的绘图命令需要GPU的支持,驱动决策层会检测命令的复杂度,然后做出决策。如果绘图命令转发到显卡驱动进行处理,GPU处理后的图像会被实时视频编码器编码成视频流发送到客户端。驱动决策层也会根据图像里的动作的数量来进行判断,同时,实时视频

53、编码器也会向驱动决策层发送动作反馈。如果动作数量低于某个阈值,则由虚拟驱动进行处理。测试结果表明,实时视频流传输的数据量明显低于传统的虚拟桌面显示协议。视频质量在不限带宽的情况下能保证80%的质量,如果限制带宽3Mbit/s,则能保证70%的质量。(2) 数据传输上下游的优化8针对虚拟桌面显示协议数据传输的上下游两个方向进行了协议优化,提出一种自适应终端、服务器、网络环境以及用户体验的方法。下游方向,提出了基于调度的屏幕刷新模式,根据客户端需求和网络环境来调度屏幕刷新。上游方向,如果把用户产生的每个操作事件都单独封装起来发送到服务器端,则会产生大量的分组开销(Packetization Ove

54、rhead),因此提出在考虑到用户响应的情况下将用户的输入事件缓存起来,然后再一起打包发送,这样可以有效地降低分组开销。基于调度的屏幕刷新模式如图所示:客户端根据本地系统的运行状态(电量、处理速度、支持的解码方式、可用的带宽、延时等),计算出调度值,以Scheduling Request消息的形式发送给服务器。除了最大更新频率,消息里还可以包含一些具体的刷新指标,比如刷新区域、编码模式等。服务端接收到该消息后需要重新计算调度值,然后服务端在检测到屏幕更新后,就基于新的调度值进行屏幕刷新。通过动态适应客户端和服务端的处理能力以及网络环境,可以使用更少的带宽为用户提供可接受的QoE。客户端拉动模型

55、中上游流量数据主要包括3类,TCP协议产生的ACK确认报文、用户事件以及刷新请求。每个用户事件都封装在一个TCP/IP包中会导致大量的分组开销,因为一个键盘事件只有8Byte,需要32Byte的TCP头部和20Byte的IP头部,分组开销高达87%。针对此问题,该优化方法提出一个TCP/IP分组中包含多个协议消息,但是会增加用户操作和响应之间的延时,降低用户的使用体验,因此缓存时间需要根据网络状况进行动态调整。在t时刻决定缓存时间BD(t)的一个比较直接的计算方法如公式1所示:BD(t) = UPPER_BOUNDARY RTT(t)公式1UPPER_BOUNDARY的值可以根据应用程序的需求

56、进行确定。用户对于文本编辑可容忍的延时是150ms,对于游戏等高交互性应用可容忍延时是80ms15。(3) RFB协议的改进RFB协议可以工作在任何可靠传输协议上,无论是字节流或基于消息的。一般来说,它使用TCP/IP协议进行数据的传输4。16提出了一种改进的RFB协议,其改进的地方主要是用UDP协议作为传输协议并在RFB头部增加了一些额外的控制字段。该协议主要适用于局域网环境系下,针对零客户端进行的改进。使用UDP进行数据传输,可以有效地简化硬件配置,可以降低数据冗余。但是UDP协议没有检错机制,在网络拥塞时数据包会丢失。针对这些问题,在RFB头部增加了一个序号字段,同时使用IEEE 802

57、.1p定义的服务类别(CoS)来区别高优先级队列。为了简化RFB协议的解释过程,添加了一个额外的RFB命令字段。修改后的RFB头部如下所示:IPv4 HeaderUDP HeaderRFB Command (1 byte) Sequence Number (1 byte) RFB header (4) 多用户服务协议优化在一台服务器上如果有多个用户同时运行3D应用,服务器需要执行所有的3D渲染命令同时将处理结果发送到用户终端,这将会给服务器造成很大的负载压力。17提出一种隔离软件运行系统SSES(separated software execution system),主要是将3D渲染命令或其

58、他绘图命令通过Internet发送到用户终端,由终端执行相应的图像命令。SSES可以有效地支持多用户3D应用的同时运行。该方法对用户终端的配置有一定的要求,限制了访问的灵活性。(5) wRFB协议18提出了轻量级虚拟桌面LVD(Lightweight Virtual Desktop),并提出了wRFB(window-based Remote Frame Buffer)协议,旨在高效地传输应用显示命令。wRFB协议支持同时运行不同操作系统中应用程序。在传统的VDI解决方案中,每个用户分配一个特定的桌面环境,可以是Windows、Linux或其他操作系统,如果用户需要运行其他平台上的应用,则必须要面对多个虚拟桌面并在多个桌面环境之间进行切换。wRFB协议可以从多个虚拟机中获取应用程序的用户界面,所有的图像融合后传输到同一个用户终端进行显示。4.2 SPICE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论