我的玻璃盒子
[转]RFB与RDP的区别
转自:
http://blog.163.com/vinstars@126/blog/static/16362819120104610273654/
RFB (
remote
framebufer)和RDP(
Remote
Desktop Protocol)
RFB的典型应用有VNC,HP的RGS也是类似的设计,另外一些远程控制软件也可以归为RFB RDP的典型应用有Windows的远程桌面,同时Linux, FreeBSD, Solaris ,Mac OS X以及PalmOS都有对RDP的支持。
二者具体的区别比较可以参考
:
http://www.gnome.org/~markmc/
remote
-desktop.html
两种设计在声音以及协同操作方面上有不同,但对两种设计在窗口显示上进行比较,更能说明它们的本质区别。下面举两个具体的例子:
1、在一台装有高端显卡的图形工作站上运行一个使用了高版本OpenGL的实时交互窗口程序,如果采用RFB,那么即使本地客户端配置较低,用的是较低端的显卡,只要网络通畅就一般能跑得很顺畅,但如果用的是RDP,即使网络再好,这个程序也永远跑不起来。
2、还是用显卡配置较低的客户机登录到远端服务器,由于登录后的系统配置要求的屏幕分辨率较高,客户机不可能使用这个分辨率进行显示,为了继续运行,使用RFB的应用显示了这个桌面,这时你会发现它只显示了桌面的一部分,或者将整个桌面按比例缩小后显示出来;而使用RDP的应用就很麻烦了,客户端将通知服务器目前的状态,希望服务器改变当前配置以适应客户端能接受的分辨率。
由以上的例子可以看出:
RFB是在服务器端将窗口在显存中画好之后将图像传给客户端,客户端只充当一个图像解码显示的角色; RDP则将画图的工作交给了客户端,服务器需要了解客户端显示能力的具体情况,以便作出相应调整。
总结起来可以认为,
RFB主要传图像,RDP主要传指令
。就一般应用而言,RFB数据量太大,RDP对客户端要求较高,因此RFB适用于瘦客户端,RDP适用于低速网络。
What's RDP?
Remote
Desktop Protocol (RDP) is a multi-channel protocol that allows a user to connect to a computer running Microsoft Terminal Services. Clients exist for most versions of Windows (including handheld versions), and other operating systems such as Linux, FreeBSD, Solaris and Mac OS X, as well as PalmOS has a client. The server listens by default on
TCP port 3389
.Microsoft refers to the official RDP client software as either
Remote
Desktop Connection (RDC) or Terminal Services Client (TSC).
What's RFB?
RFB (“
remote
framebuffer
”) is a simple protocol for
remote
access to graphical user interfaces. Because it works at the
framebuffer
level it is applicable to all windowing systems and applications, including X11, Windows and Macintosh. RFB is the protocol used in Virtual Network Computing (VNC) and its derivatives.
Although RFB started as a relatively simple protocol it has been enhanced with additional features (such as file transfers) and more sophisticated compression and security techniques as it has developed. To maintain seamless cross-compatibility between the many different VNC client and server implementations, the clients and servers negotiate a connection using the best RFB version, and the most appropriate compression and security options, that they can both support.
VNC by default uses
TCP ports 5900 through 5906,
each port corresponding to a separate screen (:0 to :6).
What's VNC?
VNC(Virtual Network Computing,虚拟网络计算)最早是一套由英国剑桥大学AT&T实验室在2002年开发的轻量型的远程控制计算机软件,其采用了 GPL 授权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC viewer。用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行 VNC viewer 控制被控端。
VNC server 与 VNC viewer 支持多种操作系统,如 windows,Linux,MacOS 及 Unix 系列(Unix,Solaris等),因此可将 VNC server 及 VNC viewer 分别安装在不同的操作系统中进行控制。RealVNC 的优越性还在于如果操作系统的主控端计算机没有安装 VNC viewer,也可以通过一般的网络浏览器(如 IE 等)来控制被控端(需要 Java 虚拟机的支持)。
整个 VNC 一般运行的工作流程如下:
(1) VNC 客户端通过浏览器或 VNC Viewer 连接至 VNC Server。
(2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取的 VNC Server 显示装置。
(3) 在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。
(4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。
(5) 被控端将画面显示控制权交由 VNC Server 负责。
(6) VNC Server 将把被控端的桌面环境利用 VNC 通信协议送至客户端,并且允许客户端控制 VNC Server 的桌面环境及输入装置。
RFB协议
:
http://en.wikipedia.org/wiki/RFB
RDP协议
:
http://en.wikipedia.org/wiki/
Remote
_Desktop_Protocol
常见远程桌面软件对比
:
http://en.wikipedia.org/wiki/Comparison_of_
remote
_desktop_software
posted on 2011-05-26 11:34
深蓝色系统
阅读(4280)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2008年1月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
统计
随笔 - 49
文章 - 9
评论 - 588
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(75)
给我留言
查看公开留言
查看私人留言
随笔分类
ATL/COM/WTL(1)
(rss)
Firefox开发(8)
(rss)
Skills(3)
(rss)
Tools
(rss)
Windows开发(4)
(rss)
皮皮片片(15)
(rss)
随笔档案
2017年3月 (1)
2013年3月 (1)
2011年5月 (4)
2011年2月 (1)
2009年8月 (3)
2009年7月 (2)
2009年1月 (1)
2008年11月 (9)
2008年4月 (1)
2008年3月 (1)
2008年2月 (8)
2008年1月 (17)
文章分类
ATL/COM(1)
(rss)
GDI/GDI+(2)
(rss)
Java(1)
(rss)
OpenSource(1)
(rss)
PM(1)
(rss)
UI/UE(1)
(rss)
WTL(2)
(rss)
程序人生(1)
(rss)
文章档案
2008年3月 (1)
2008年1月 (8)
搜索
最新评论
1. re: 【原创】我的Firefox插件开发之旅(4)——XULRunner的一个例子
您好 我这边调用的是xulrunner-41.0b9.en-US.win64.sdk,请问这个需要怎么调用;1.8版本没有问题
--伟迪
2. re: 【原创】我的Firefox插件开发之旅(7)——为插件添加和脚本交互的能力
报错:无法解析外部符号_NPN_CreateObject,很纳闷啊!
--zzx
3. re: ATL与网页进行事件交互(连载中……)
乌鲁木齐电脑维修,专业的维修电脑网站
希望可以与您交互网站链接
www.addu8.com
--娃娃我
4. re: 【原创
sdf
--dfs
5. re: 【原创】我的Firefox插件开发之旅(6)——FF插件的一些基础知识
支持作者分享自己的学习体验!
--初来刚到
阅读排行榜
1. 【原创】 搜狐白社会阳光牧场外挂(暂时不能工作聊~~%>_<%)(33558)
2. 【原创】我的Firefox插件开发之旅(1)——从零开始(29631)
3. 【原创】我的Firefox插件开发之旅(5)——编译和测试第一个Plugin例子:npruntime(19381)
4. 【原创】我的Firefox插件开发之旅(7)——为插件添加和脚本交互的能力(16631)
5. 【原创】我的Firefox插件开发之旅(4)——XULRunner的一个例子(16424)
评论排行榜
1. 【原创】 搜狐白社会阳光牧场外挂(暂时不能工作聊~~%>_<%)(454)
2. 【原创】搜狐白社会阳光牧场外挂 UI源代码(32)
3. 【原创】阳光牧场外挂的主要编写思路介绍(23)
4. 【原创】我的Firefox插件开发之旅(5)——编译和测试第一个Plugin例子:npruntime(17)
5. 【原创】我的Firefox插件开发之旅(6)——FF插件的一些基础知识(13)