为什么与其他远程控制软件相比,RDP速度如此快?

31

我使用基于RDP的Windows远程客户端桌面实用程序从我的笔记本电脑连接到我的台式机。与TeamViewer等远程控制应用程序相比,它速度更快,外观更好。

出于好奇,为什么RDP更好?

谢谢。


2
我想提一下这篇关于RDP的优秀MSDN文章“Top 10 RDP Protocol Misconceptions”(第1部分第2部分),它提供了一些见解。 - nixda
3
^ 实时链接:第1部分第2部分 - Miscreant
2个回答

20

RDP是一种特定的协议,允许传输低级别的屏幕绘图操作,并且能够识别屏幕上的像素图实体。例如,当图标被绘制时,它可以理解并在客户端缓存它(通常以有损压缩格式)。

其他软件没有这种低级别的访问权限:它等待屏幕更改,然后重新传输屏幕截图或更改区域的捕获。每当屏幕更改时,都必须传输像素图表示。由于通常进行有损压缩,因此外观也更差。


7
值得注意的是,低级别的屏幕绘制操作在数据大小方面比其他格式传输的位图要小得多。在传输过程中传输的数据越少,远程控制速度就越快。 - Bob

20

决定远程控制产品性能的有两个主要因素:

如何检测屏幕上的变化?

一些 RC 产品将屏幕分成平铺,周期性地扫描屏幕帧缓冲区以确定是否发生了任何更改。

其他产品将直接连接到操作系统。过去,这是通过拦截视频驱动程序来完成的。现在,您可以创建一个镜像驱动程序,所有绘图操作都会被操作系统“镜像”到其中。这显然要快得多。

如何将这些更改发送到网络?

某些产品(例如VNC)始终会发送任何更改区域的位图。

其他产品将发送导致更改的实际操作。例如,在坐标(x,y)处使用字体f呈现文本字符串s,或者使用给定的参数绘制Bezier曲线,并当然进行位图渲染。这样做也会更快。

RDP在两种情况下都使用更快(且更难实现)的技术。我相信它使用的实际协议是T.128。

位图通常会被压缩。一些产品(如Carbon Copy)还会在连接的两端维护同步的位图缓存,以便挤出更多性能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接