RFB Protocol
Encyclopedia
RFB is a simple protocol
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...

 for remote access
Remote access
In telecommunication, the term remote access has the following meanings:#Pertaining to communication with a data processing facility from a remote location or facility through a data link...

 to graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

s. Because it works at the framebuffer
Framebuffer
A framebuffer is a video output device that drives a video display from a memory buffer containing a complete frame of data.The information in the memory buffer typically consists of color values for every pixel on the screen...

 level it is applicable to all windowing system
Windowing system
A windowing system is a component of a graphical user interface , and more specifically of a desktop environment, which supports the implementation of window managers, and provides basic support for graphics hardware, pointing devices such as mice, and keyboards...

s and applications, including X11, Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and Macintosh. RFB is the protocol used in Virtual Network Computing
Virtual Network Computing
In computing, Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer...

 (VNC) and its derivatives.

Description

By default a viewer/client use TCP port 5900 to connect to a server (or 5800 for browser access). Alternatively, a server can connect to a viewer in "listening mode" on port 5500. One advantage of listening mode is that the server site does not have to configure its firewall/NAT to allow access on port 5900 (or 5800); the burden is on the viewer, which is useful if the server site has no computer expertise, while the viewer user would be expected to be more knowledgeable.

Although RFB started as a relatively simple protocol it has been enhanced with additional features (such as file transfers) and more sophisticated compression
Data compression
In computer science and information theory, data compression, source coding or bit-rate reduction is the process of encoding information using fewer bits than the original representation would use....

 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.

History

RFB was originally developed at Olivetti Research Laboratory
Olivetti Research Laboratory
The Olivetti Research Laboratory was a research institute in the field of computing and telecommunications founded in 1986 by Hermann Hauser and Andy Hopper.-History:...

 (ORL) as a remote display technology to be used by a simple thin client
Thin client
A thin client is a computer or a computer program which depends heavily on some other computer to fulfill its traditional computational roles. This stands in contrast to the traditional fat client, a computer designed to take on these roles by itself...

 with ATM
Asynchronous Transfer Mode
Asynchronous Transfer Mode is a standard switching technique designed to unify telecommunication and computer networks. It uses asynchronous time-division multiplexing, and it encodes data into small, fixed-sized cells. This differs from approaches such as the Internet Protocol or Ethernet that...

 connectivity called a Videotile. In order to keep the device as simple as possible, RFB was developed and used in preference to any of the existing remote display technologies.

RFB found a second and more enduring use when VNC was developed. VNC was released as open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 software and the RFB specification published on the web. Since then RFB has been a free protocol which anybody can use.

When ORL was closed in 2002 some of the key people behind VNC and RFB formed RealVNC
RealVNC
RealVNC is a company that provides remote access software. The software consists of a server and client application for the Virtual Network Computing protocol to control another computer's screen remotely.-History:...

, Ltd.in order to continue development of VNC and to maintain the RFB protocol. The current RFB protocol is published on the RealVNC website.

Protocol versions

Published versions of the RFB protocol are as follows:
Version Published Date Specification
RFB 3.3 ORL January 1998 The Remote Framebuffer Protocol 3.3
RFB 3.7 RealVNC Ltd August 2003 The Remote Framebuffer Protocol 3.7
RFB 3.8 (current) RealVNC Ltd June 2007 The Remote Framebuffer Protocol 3.8


Developers are free to add additional encoding and security types but they must book unique identification numbers for these with the maintainers of the protocol so that the numbers do not clash. Clashing type numbers would cause confusion when handshaking a connection and break cross-compatibility between implementations. The list of encoding and security types is maintained by RealVNC Ltd and is separate from the protocol specification so that new types can be added without requiring the specification to be reissued.

A community version of the RFB protocol specification which aims to document all existing extensions is hosted by the TigerVNC
TigerVNC
TigerVNC is a VNC server and client started in 2009, started as a fork of TightVNC.Red Hat started this fork because RealVNC was focusing on their enterprise non-open VNC and there had been no update since 2006....

 project.

Encoding types

0x00000000 Raw

0x00000001 CopyRect

0x00000002 RRE (Rising Rectangle)

0x00000004 CoRRE (Compact Rising Rectangle)

0x00000005 Hextile

0x00000006 Zlib

0x00000007 Tight

0x00000008 ZlibHex

0x00000009 Ultra

0x00000010 ZRLE

0x00000011 ZYWRLE

0xFFFF0001 CacheEnable

0xFFFF0006 XOREnable

0xFFFF8000 ServerState (UltraVNC)

0xFFFF8001 EnableKeepAlive(UltraVNC)

0xFFFF8002 FTProtocolVersion (File Transfer Protocol Version - UltraVNC)

0xFFFFFF00 - 0xFFFFFF09 CompressLevel (Tight encoding)

0xFFFFFF10 XCursor

0xFFFFFF11 RichCursor

0xFFFFFF18 PointerPos

0xFFFFFF20 LastRect

0xFFFFFF21 NewFBSize

0xFFFFFFE0 - 0xFFFFFFE9 QualityLevel(Tight encoding)

Limitations

In terms of transferring clipboard data, "there is currently no way to transfer text outside the Latin-1 character set".

The VNC protocol is pixel based. Although this leads to great flexibility (i.e. any type of desktop can be displayed), it is often less efficient than solutions that have a better understanding of the underlying graphic layout like X11 or desktop such as RDP
Remote Desktop Protocol
Remote Desktop Protocol is a proprietary protocol developed by Microsoft, which provides a user with a graphical interface to another computer. The protocol is an extension of the ITU-T T.128 application sharing protocol. Clients exist for most versions of Microsoft Windows , Linux, Unix, Mac OS...

. Those protocols send graphic primitives or high level commands in a simpler form (e.g. open window), whereas RFB just sends the raw pixel data.

See also

  • Virtual Network Computing
    Virtual Network Computing
    In computing, Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer...

  • Comparison of remote desktop software
  • X Window System
    X Window System
    The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK