我使用基于RDP的Windows远程客户端桌面实用程序从笔记本电脑连接到我的桌面。它比TeamViewer等远程控制应用要快得多,看起来也更好。
出于好奇,为什么RDP更好?
谢谢。
发布于 2009-08-16 11:23:40
RDP是一种允许传输低级屏幕绘制操作的特定协议。它还可以感知屏幕上的像素图实体。例如,它可以识别何时绘制图标,并将其缓存到客户端(通常是以有损压缩格式)。
其他软件没有这种低级访问权限:它等待屏幕更改,然后重新传输屏幕或已更改区域的捕获。每当屏幕发生变化时,都必须传输像素图表示。因为这通常是有损压缩的,所以看起来也很糟糕。
发布于 2009-08-16 11:49:07
有两个主要因素决定了远程控制产品的性能:
如何检测屏幕上何时发生更改?
一些RC产品将屏幕划分为多个平铺,并定期扫描屏幕帧缓冲区,以确定是否发生了任何更改。
其他的将直接挂接到操作系统上。在过去,这是通过拦截视频驱动程序来完成的。现在您可以创建一个镜像驱动程序,操作系统将所有绘制操作“镜像”到该驱动程序中。显然,这要快得多。
如何通过网络发送这些更改?
某些产品(如VNC)将始终发送任何更改过的区域的位图。
其他人将发送导致更改的实际操作。例如,使用坐标(x,y)处的字体f来呈现文本字符串s,或者使用给定的一组参数来绘制bezier曲线,当然,还可以呈现位图。同样,这也要快得多。
RDP在这两种情况下都使用更快(且更难实现)的技术。我相信它实际使用的协议是T.128。
位图通常是压缩的。一些产品(如Carbon Copy)还在连接的两端维护同步的位图缓存,以便挤出更多的性能。
https://stackoverflow.com/questions/1284055
复制相似问题