Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop)
先看看Windows 7中的远程桌面给我们带来了些什么新的功能:
支持Windows 7 Aero效果的3D桌面 支持在Remote Desktop中流畅运行Direct 2D和Direct 3D 10.1的各类应用程序 真正的多显示器支持 远程桌面协议的内核性能增强,包括网络传输的优化和压缩 支持低延时的音频回放 双向的音频传输接下来,我以PDC上关于RDP的课程为主,分以下几个部分详细的跟大家探讨一些远程桌面的技术和Windows 7中最新的进展。
RDP协议的发展和应用历程RDP是Remote Desktop Protocol的缩写,这是远程桌面的具体实现协议,微软在MSDN上公布了RDP的协议细则,据说有差不多2000多页的文档。RDP不是微软的专属协议,在Liunx等平台上也有不少实际的应用。如果你对RDP本身感兴趣,可以去看看wikipedia中关于RDP的描述。RDP在Windows平台下最常见的应用是大家熟悉的远程桌面,其实,除了远程桌面,以RDP为底层的应用还包括:
Terminal Server Remote Desktop Remote Assistance Windows Meeting spaces Media Center Extenders and XBox 360 SCCM Remote control Hyper-V Remote Control Windows Live MeshRDP是对网络有密集依赖的应用,它的架构和分层如下:
近些年来,随着多媒体、3D应用和用户体验的不断提高,Windows下的远程桌面已经不能满足一些日益增多的需求。为此,Windows 7下的RDP和远程桌面做出了革命性的变化。
Windows 7中的RDP设计架构(RDP Graphics Architecture)在Windows 7的RDP设计中,一个非常重要的概念是对3D图像图形的渲染,通常,当我们玩3D游戏时,这些渲染是在本地计算机完成的。在Windows 7的RDP中,3D渲染既可以在本地计算机(我们称为Host机)完成,也可以在运行Remote Desktop的计算机(我们称为Client机)上完成。
具体的来说:Host机上执行3D渲染时,RDP采用了缓存、压缩等技术确保Demote Desktop上图像的流畅;在进行Client机的3D渲染时,Host机可以通过GDI, Direct 3D, Media, DWM等3D指令集,把需要渲染的数据包通过RDP传送到Client计算机,由Client计算机的CPU和显卡GPU完成硬件的渲染计算。
从这张架构图,我们可以看出,在RDP协议的上层,为D2D、DX10.1、DWM、Media App、GDI App等提供了接口。使用这些协议的3D游戏、高清视频播放软件,可以将数据流先通过RDP传送到Remote Desktop所在的Client计算机,再由Client计算机上的硬件完成渲染和执行。有这样的架构,也就不难理解,为什么可以在远程桌面中流畅的运行3D游戏了!
大家可能比较感兴趣,什么样的应用是在Host机上完成渲染的,什么样的应用是在Client机上完成渲染的,具体的任务分工如下:
Host机渲染:
Client机渲染:
Windows 7中RDP的另一个法宝,就是对网络带宽的充分利用和压缩。相比XP和Vista下的RDP,Windows 7 RDP节省了大约40%的网络开销,具体的测试数据如下:

我们已经比较清楚,如果想在远程桌面流畅的玩游戏、看电影,必须满足以下的要求:
客户机和远程计算机都必须是Windows 7或Windows Server 2008 R2以上的版本 如果是2D游戏,需要支持Direct2D;如果是3D游戏,需要支持Direct 3D 10.1 本地计算机上必须有播放电影视频文件对应的Codec 本地计算机的CPU或者显卡应该满足渲染3D和视频的基本要求如果想让自己开发的应用程序支持最新的RDP协议,需要研究一下这三个东西。我对开发的技术不是非常了解,原文照搬如下,大家可以到MSDN里面查一下RDP的具体API。
Dynamic Virtual Channels APIs
Client/Server extensibility for RDP Bi-directional streams that extend RDP Internal features use same technologyRemote Desktop ActiveX APIs
Host/customize full RDP client in your apps Usable from web, managed or native codeRDP Windows Desktop Sharing APIs
RDP Platform for screen sharing Enables sharing console, multiparty connections Basis of Remote Assistance开发人员可以用下面的API来检测应用程序当前时候运行在远程桌面的会话中,并且根据情况进行优化和调整。
//Managed System.Windows.Forms.SystemInformation.TerminalServerSession //Win32 GetSystemMetrics(SM_REMOTESESSION)关于开发方面我就不深入的讨论了,大家可以看PDC上的有关课程。最后再贴几张网上找到的Windows 7远程桌面的运行效果图:
PingBack from http://www.perday.tv/news/?p=15472
请教下喻老师,下面的本地计算机是指运行远程桌面客户端的电脑吗?
?本地计算机上必须有播放电影视频文件对应的Codec
?本地计算机的CPU或者显卡应该满足渲染3D和视频的基本要求
引文来源 Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop) - 喻勇(Frank Yu)的技术博客 - Site Home - TechNet Blogs
Windows7引入了远程桌面增强功能,支持Aero效果的3D桌面、流畅运行Direct2D和Direct3D 10.1应用、多显示器支持及音频传输等功能。通过改进的RDP协议,大幅减少了网络带宽需求,使用户能在远程环境中享受流畅的游戏体验和高清视频播放。
1043

被折叠的 条评论
为什么被折叠?



