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

发布于 2024-08-01 19:15:20 字数 124 浏览 1 评论 0原文

我使用基于 RDP 的 Windows 远程客户端桌面实用程序从笔记本电脑连接到桌面。 它比 TeamViewer 等远程控制应用程序更快、看起来更好。

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

谢谢。

I use RDP-based Windows' Remote Client Desktop utility to connect to my desktop from my laptop. It's much faster and looks better than remote control applications like TeamViewer etc.

Out of curiosity, why is RDP better?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素食主义者 2024-08-08 19:15:20

RDP 是一种允许传输低级屏幕绘图操作的特定协议。 它还知道屏幕上的像素图实体。 例如,它了解何时绘制图标并将其缓存(通常以有损压缩格式)在客户端。

其他软件没有这种低级访问权限:它等待屏幕更改,然后重新传输屏幕或更改区域的捕获。 每当屏幕发生变化时,就必须传输像素图表示。 因为这通常是有损压缩,所以看起来也更糟。

RDP is a specific protocol which allows to transmit low-level screen drawing operations. It is also aware of pixmap entities on the screen. For example it understands when an icon is drawn and caches it (typically in a lossy compressed format) on the client side.

Other software does not have this low-level access: It waits for the screen to change and then re-transmit a capture of the screen or the changed regions. Whenever the screen changes, a pixmap representation has to be transmitted. Because this is lossy compressed in general, it also looks worse.

佞臣 2024-08-08 19:15:20

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

如何检测屏幕上发生的变化?

一些遥控产品将屏幕划分为图块并定期扫描屏幕帧缓冲区以确定是否发生任何变化。

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

它如何通过网络发送这些更改?

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

其他人将发送导致更改的实际操作。 例如,在坐标 (x,y) 处使用字体 f 渲染文本字符串 s,或使用给定的一组参数绘制贝塞尔曲线,当然还有渲染位图。 这又快得多。

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

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

There are two major factors at work which determine the performance of a remote control product:

How does it detect when changes occur on the screen?

Some RC products divide the screen into tiles and scan the screen frame buffer periodically to determine if any changes have occurred.

Others will hook directly into the OS. In the past this was done by intercepting the video driver. Now you can create a mirror driver into which the OS "mirrors" all drawing operations. This is, obviously, much faster.

How does it send those changes across the wire?

Some products (like VNC) will always send bitmaps of any area that changed.

Others will send the actual operation that caused the change. e.g. render text string s using font f at coordinates (x,y) or draw bezier curve using a given set of parameters and, of course, render bitmap. This is, again, much faster.

RDP uses the faster (and more difficult to implement) technique in both cases. I believe the actual protocol it uses is T.128.

Bitmaps are usually compressed. Some products (like Carbon Copy) also maintain synchronized bitmap caches on both sides of the connection in order to squeeze out even more performance.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文