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