ATT Labs

AT&T Laboratories
Cambridge

Home page About Us Interactive research Software Opportunities

The RFB Protocol

The RFB protocol is a simple protocol for sending graphics to be displayed on a remote display (RFB stands for "remote framebuffer"). It is far simpler than X or ICA and therefore it places very little demand on the remote display in terms of processing power, memory, etc.

The two endpoints in the RFB protocol are referred to, unsurprisingly, as the client and the server. The RFB client is the remote display. It simply takes rectangles of screen data with a given position and size and puts them into its framebuffer so that they appear in the correct place on the screen.

The RFB server can be anything capable of producing a stream of such rectangles of screen data. In the dumbest implementation this could just repeatedly dump the whole of a framebuffer as fast as possible. This would be somewhat wasteful for a typical computer display where most of the screen is static for long periods. A better implementation sends updates only when changes to the screen are required, and only sends the areas of the screen which have changed.

In our current implementation the RFB server consists of an X server with an extension which detects regions of the screen which have changed, plus an X application to actually send the appropriate rectangles from the X server's framebuffer. However the RFB protocol is at a low enough level that it is truly window-system independent. There is no reason why a Windows-based or Mac-based RFB server could not be provided.

It is possible to hook the RFB server into a workstation's normal display, in which case the remote display is simply duplicating what is on the workstation's screen. More likely however is that the RFB server is not associated with an existing physical screen. Instead it has a "virtual framebuffer" - an area of ordinary memory treated like a framebuffer - where graphics and text are rendered by the windowing system and its applications. In this case the remote display is the only physical screen showing the contents of the framebuffer.

We are also likely to want to interact with the windowing system and its applications from the remote display. Keyboard and mouse/pen input is fed back to the windowing system by a simple addition to the RFB protocol.

Originally the RFB protocol was developed as a means of interacting with applications from an ATM network display device called the Videotile. The same basic RFB protocol is also used in the Virtual Network Computer.

For comments, suggestions and further information please contact us.
Copyright © 2001 AT&T Laboratories Cambridge