RFB protocol

The Remote Frame Buffer Protocol ( RFB ) is a network protocol for accessing the graphical user interfaces (GUI ) on the other computer. It is used by VNC for transferring screen contents and user input.

Basic principle

A RFB server provides a so-called " desktop " on. This is a graphical working environment, running on a remote computer or the associated applications. The RFB client usually presents this desktop on the workstation of the user represents, takes user input ( keystrokes, mouse movements and clicks, etc.) and forwards them to the RFB server wider, so the local working environment is controlled.

Since it works on the level of the bitmap -based graphics memory ( the framebuffer ), the application on any windows systems such as Windows, Mac OS or X11 is possible. The screen contents are transmitted as bitmaps, with only the respective changes - in a suitable encoding, see below - are transferred to the client. It supports 8, 16 and 32 bits per pixel color depth, the RFB client requests the desired color depth and encoding from the server and the server has to conform to the wishes of the client, provided it supports the desired encoding.

The design of the RFB is designed to simply keep the requirements of the client and thus support the use of thin clients.

RFB connections are stateless, so that disconnections or the change of the RFB client problems are possible, without the associated session is lost. The aim of RFB and VNC is ultimately the support of remote working on computers under a single working environment.

Port and desktop numbers

In the original Unix version of VNC is any VNC server a separate X server and provides exactly one X desktop is ( Xvnc ). It is this standard is the first free X server number of VNC. If a local X server is already running on the machine, thus the X desktop: 0 is in VNC gets the desktop: 1 The space used by VNC TCP port number is 5900 desktop number under Unix therefore usually 5,901th Some VNC servers provide on port 5800 or 5800 desktop number a Java applet available with the considered the desktop with a web browser and can be controlled.

Under Windows and Mac OS X usually runs no local X server (but can be installed as from the Mac OS X Install DVD ), so that the VNC Desktop: 0 and thus the TCP port number 5900 assigned. This port is also used by the Unix program x11vnc, which the local X server: 0 serving as a VNC desktop.

Handshake Authentication &

Once the TCP connection is established, the server sends it supports RFB version number to the client, which the latter responds with its protocol version number. The protocol version has major.minor building. It is assumed that the protocol versions with the same major version are compatible with each other. The largest supported by both partners version number applies to the following link as agreed. However, it is up to each communication partner to end after the exchange of protocol versions the connection if it can not communicate with the negotiated protocol version, or should.

Version identifiers

The version identifier is always a 12 -byte ASCII string, which is terminated by a linefeed character. The most common versions are 3.3, 3.7 and 3.8:

Some clients report that erroneously a protocol version 3.5. This should be handled by the server as version 3.3.