当前位置:  开发笔记 > 运维 > 正文

RDP /终端服务和VNC流技术之间的区别

如何解决《RDP/终端服务和VNC流技术之间的区别》经验,为你挑选了1个好方法。

作为客户端支持工具的一部分,我想提供一些功能,以便能够请求查看/远程控制桌面会话.有很多方法可以获取屏幕截图然后流式传输,但我想特别了解为什么RDP(远程桌面/终端服务与VNC体验如此不同.我使用的是RDP vs VNC只是因为它们似乎使用截然不同的方法将屏幕流式传输到客户端.

如果我不得不猜测,RDP似乎传输位图图形块(比如说100x100px)以构建完整的图片(这可能非常慢),但似乎可以非常快速地将正常绘制的形状/填充或字体绘制传输到客户端.VNC似乎拍摄了屏幕的巨型快照,比较了之前的图像并将更改流式传输到客户端.

我觉得RDP是一种比其他任何东西都要高质量和流畅的协议,那么它用什么技术来实现呢?

编辑 - 只是为了澄清,我问这些图形技术特别是作为流协议编程方法 - 而不是用于解决此业务需求的现有产品/技术.



1> Renaud Bompu..:

正如您所发现的那样,它们在流动方式上的变化非常不同.来自MS的RDP协议是可以在线购买的ITU标准(T.128)的扩展.

RDP实现了许多带宽节省技术,这些技术相互补充,并使其在低带宽上非常高效.

另一方面,VNC具有非常基本的压缩技术:它将发送已经改变的位图块,并将使用基本类型的压缩,从RLE到jpeg,以有效地传输这些块.
不幸的是,它在低带宽上仍然非常浪费.

VNC基本上不了解用于构建屏幕的底层图形基元.这使得在任何机器上都可以轻松使用,因为它只是监视屏幕位图的变化.
另一方面,RDP更深入地嵌入到Windows API中,并且能够基于在客户端上生成相同更新所需的最少量信息来优化其流.

如果要集成远程桌面功能,可以选择以下几种方法:

对于RDP,您可以使用用于Web远程功能的ActiveX.您可能希望查看包装器以将其集成到您自己的软件中.
如果您想深入了解这一点,可以使用linux rdesktop客户端的源代码,它可以连接到RDP上的Windows机器.

对于VNC,有许多开源实现.
FogCreek的Copilot实际上使用了一个,你可以在TightVNC上获得它的来源

在RDP和VNC上的CodeProject上还有许多项目.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有