各种远程软件的对比-mstsc VS vnc : 远程桌面最快的原因在于RDP协议

2017-02-26 16:52:25
啊超
7828
最后编辑:小蜜蜂 于 2017-02-26 21:36:31


作者:柳北风儿

mstsc VS vnc : 远程桌面最快的原因在于RDP协议



经过一番讨论,才明白为什么windows自带的远程桌面mstsc比Ultr***NC要快。

 

协议,还是协议。从控制命令上入手,传送GDI命令参数,而不是屏幕的数值。绘图都由Client端实时完成。Server几乎是idle的,仅传送命令参数。

 

Microsoft的远程桌面协议(Remote Desktop Protocol,简称RDP)

 

它仅传输服务器所显示的对象的属性变化的控制值,实现快速远程控制,相对于其它采用抓屏图片压缩的远程控制软件,如PCAnyWhere等而言,速度更快,控制更准确。

 

1) winxp 使用自带的mstsc,占用资源少,节约CPU。

 

看mov确实不卡。 时间流上看不出来。但是用souceinsight,word这些可能就是不行。一直在交互。毕竟有严迟。感觉上不爽。

 

2) VNC系列。

 

Ultr***NC,从驱动程序入手,自带Video Mirror Driver,速度极大提升。比起其他抓屏幕的垃圾算法软件,改善很多。 

 

刷新还是太卡。 屏幕没有像mstsc自适用。

 

3) Dameware

 

Dameware一直以来以速度快,支持客户端免安装(实际上是远程自动安装)而在远程控制软件领域深受广大管理员喜爱.

 

支持Microsoft RDP协议, 用这个远程控制winxp和win2003,效果和微软的远程桌面工具一样快。

 

4) 提高终端服务并发连接数: ThinSoft.WinConnect.Server.XP

 

windows xp的rdp有1个并发数的连接限制。

 

而WinConnect.Server.XP可以突破这个限制,最大可以拥有21个并发连接数。

 

官方网站:

 

http://www.thinsoftinc.com/products_winconserver_info.html

 

针对xp/2k3 sp1。

 

5)其他的,抓屏幕的垃圾设计软件:

 

Radmin不比VNC快。延迟比较严重。有放卡片的感觉。切换窗口时。没什么强的。不如VNC。

 

PCAnywhere 块头太大了,垃圾一个,性能太差。以前win98年代还有竞争力。现在不实用。

 

写这些软件的猪头们,“只顾埋头拉车,不会抬头看路”。

 

一点也没有理解控制报文和数据报文的区别!设计上就是垃圾,算法再好,也是没有效率的。

 

设计是软件的核心。核心是烂的,什么也别说了。再改进也没什么意义。

 

其他讨论:

 

6)

 

与朋友的讨论,搜到一篇帖子:

 

Ask Slashdot: Which VNC Software is Best?

 

http://ask.slashdot.org/article.pl?sid=04/10/20/0132236&tid=185&tid=201&tid=4

 

这个帖子里面,每个人使用的感觉都不同("YMMV--Your mileage may vary" 真是很好用的一句话),

 

有人说这个好,有人说那个好,每个人的经验/感觉都不同。下面是其中的一篇总结:

 

RealVNC: the original.

 

TightVNC: optimized for low-bandwidth

 

Ultra: tons of extras - file transfer, chat, video driver, NT/AD security

 

Tridia: get around firewalls, more management features

 

其他相关的东西:

 

1. VNC Loop

 

http://en.wikipedia.org/wiki/VNC_Loop

 

2. RealVNC Password Decrypter

 

http://jonas.pie.la/page/code.html#vncdec

 

3. FreeNX (据说速度比 VNC 快很多,号称可以达到接近本地的速度)

 

http://freenx.berlios.de/download.php

 

7)

 

http://topic.csdn.net/t/20040612/20/3086704.html

 

远程传输屏幕行为的方案!(讨论)

 

HunterForPig (留着口水的猪)     2004-06-12 20:50:24 在 VC/MFC / 网络编程 提问

 

实现方式: 

 

在网络上传输这一屏幕行为 

 

每秒钟截屏12次!压缩成jpeg, 

 

所以每截一次,传输图像数据一次 

 

 

 

发现服务器端cpu使用率为100%, 

 

晕了,不知还有何其它方法记录下屏幕行为, 

 

或者降低cpu使用率! 

 

 

 

Video   Mirror   Driver 

 

如果想解决CPU占用率的问题,最根本的解决方案是从驱动程序入手,Windows   2000以上已经支持Mirror   Driver,

 

并且已经有一些远程监控的产品使用了此技术。如果搂主熟悉驱动编程,或许可以研究研究此种方法。 

 

诸位讨论很热烈,那我也来凑凑热闹。     

 

shootingstars,你的知识面看来比较广,在这个问题上考虑到了驱动程序。事实上,运用过滤驱动截图是最好的解决方案,主要包括以下两个技术点: 

 

 

 

1   第一屏传输。第一屏的速度是衡量屏幕传输效率的重要参数,一般来说,用过滤驱动完成截图,并直接压缩到Socket的缓冲区,能够获取最快的速度,

 

       压缩算法中Intel   MPEG4是一个很好的选择。

 

 

 

2   局部截屏传输。屏幕并不是一个整体,而是大量象素组合成的,我们只需要以一定的速率(祯率)来截取变化的像素,并发送到目标机器,就可以获得极高的传输速率。    

 

当然,如何对屏幕进行局部截取,以及如何判断变化的像素,都是很大的难题,需要用过滤驱动来解决。事实上,国内外的一些软件已经实现了这一功能,比如WinXP和Lanstar。