设为首页 收藏本站
查看: 1316|回复: 0

[经验分享] windows 7 RDP 增强

[复制链接]

尚未签到

发表于 2015-12-16 08:40:13 | 显示全部楼层 |阅读模式
08年的夏天,我在微软总部的一次技术展览会上第一次看到了Windows 7下的RemoteDesktop。当时,那位做演示的同事在玩一个非常新的3D游戏,确切地说,他是在远程桌面的窗口中玩3D游戏。我当时就被雷到了!跟那个同事聊了很久,才知道这是Windows7中会包含的一个新的功能,采用的DirectX重定向和网络压缩等最新的技术,使得通过网络传输的远程桌面,可以流畅的显示和运行多媒体的内容!当时由于Windows 7还在秘密研发阶段,这些内容都不能向外透露。如今Widows7的beta已经发布,我终于可以跟大家分享一下这个功能的具体细节了!   先看看Windows7中的远程桌面给我们带来了些什么新的功能:

  • 支持Windows 7 Aero效果的3D桌面
  • 支持在Remote Desktop中流畅运行Direct 2D和Direct 3D 10.1的各类应用程序
  • 真正的多显示器支持
  • 远程桌面协议的内核性能增强,包括网络传输的优化和压缩
  • 多媒体增强

    • 支持Media Foundation
    • 支持DirectShow

  • 支持低延时的音频回放
  • 双向的音频传输
  接下来,我以PDC上关于RDP的课程为主,分以下几个部分详细的跟大家探讨一些远程桌面的技术和Windows 7中最新的进展。

  • RDP协议的发展和应用历程
  • Windows 7中的RDP设计架构(RDP Graphics Architecture)
  • 应用范围和演示
RDP协议的发展和应用历程
  RDP是Remote DesktopProtocol的缩写,这是远程桌面的具体实现协议,微软在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 Mesh
  RDP是对网络有密集依赖的应用,它的架构和分层如下:
DSC0000.png
  近些年来,随着多媒体、3D应用和用户体验的不断提高,Windows下的远程桌面已经不能满足一些日益增多的需求。为此,Windows 7下的RDP和远程桌面做出了革命性的变化。
Windows 7中的RDP设计架构(RDP Graphics Architecture)
  在Windows7的RDP设计中,一个非常重要的概念是对3D图像图形的渲染,通常,当我们玩3D游戏时,这些渲染是在本地计算机完成的。在Windows7的RDP中,3D渲染既可以在本地计算机(我们称为Host机)完成,也可以在运行RemoteDesktop的计算机(我们称为Client机)上完成。
  具体的来说:Host机上执行3D渲染时,RDP采用了缓存、压缩等技术确保DemoteDesktop上图像的流畅;在进行Client机的3D渲染时,Host机可以通过GDI, Direct 3D, Media,DWM等3D指令集,把需要渲染的数据包通过RDP传送到Client计算机,由Client计算机的CPU和显卡GPU完成硬件的渲染计算。
DSC0001.png
  从这张架构图,我们可以看出,在RDP协议的上层,为D2D、DX10.1、DWM、Media App、GDIApp等提供了接口。使用这些协议的3D游戏、高清视频播放软件,可以将数据流先通过RDP传送到RemoteDesktop所在的Client计算机,再由Client计算机上的硬件完成渲染和执行。有这样的架构,也就不难理解,为什么可以在远程桌面中流畅的运行3D游戏了!
  大家可能比较感兴趣,什么样的应用是在Host机上完成渲染的,什么样的应用是在Client机上完成渲染的,具体的任务分工如下:
  Host机渲染:

  • WPF
  • Silverlight
  • Flash
  • 早于Direct3D 10.1版的3D应用
  • 其他的多媒体信息
  Client机渲染:

  • GDI
  • Direct2D
  • Direct 3D 10.1版之后的3D应用
  • 在Clieng机上有Codec的,并且是没有进行DRM加密的多媒体视频文件
  Windows 7中RDP的另一个法宝,就是对网络带宽的充分利用和压缩。相比XP和Vista下的RDP,Windows 7 RDP节省了大约40%的网络开销,具体的测试数据如下:
DSC0002.png
DSC0003.png
应用范围和演示
  我们已经比较清楚,如果想在远程桌面流畅的玩游戏、看电影,必须满足以下的要求:

  • 客户机和远程计算机都必须是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 technology
  Remote Desktop ActiveX APIs

  • Host/customize full RDP client in your apps
  • Usable from web, managed or native code
  RDP 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远程桌面的运行效果图:
DSC0004.png DSC0005.png
DSC0006.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-151760-1-1.html 上篇帖子: Windows驱动开发WDM (7)- 异步IRP? 下篇帖子: Windows Installer XML,wxs文件概述
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表