RFB (protocol)
RFB, or Remote Frame Buffer, is a simple protocol for remote access to graphical user interfaces. It operates at the framebuffer level, meaning it transmits raw pixel data between a server and a client. This makes it relatively platform-independent, as it doesn't rely on specific windowing systems or operating system APIs.
The protocol works on a client/server model. The server, typically a computer with a graphical display, shares its framebuffer. The client, often running on a separate machine, connects to the server and receives updates to the screen. The client can then send input events (mouse clicks, keyboard strokes) back to the server, allowing it to control the server's GUI remotely.
RFB is characterized by its simplicity and ease of implementation. However, this simplicity comes at the cost of bandwidth efficiency. Sending raw pixel data can consume significant network resources, especially for high resolutions and frame rates. Various encoding schemes, such as Tight and Hextile, are often used to compress the data and reduce bandwidth requirements.
The RFB protocol is the foundation upon which Virtual Network Computing (VNC) is built. VNC servers and clients communicate using RFB, although VNC implementations may add extensions and features on top of the basic protocol.
Key features of RFB include:
- Framebuffer-level access: Operates directly on pixel data, providing platform independence.
- Client/server architecture: Clearly defined roles for the server and client.
- Remote input: Allows the client to control the server's GUI remotely.
- Encoding options: Supports various compression algorithms to improve bandwidth efficiency.
- Used by VNC: Forms the basis for the widely used VNC remote access software.
While RFB is a foundational technology in remote access, its inherent bandwidth limitations have led to the development of more sophisticated protocols that offer better performance and features.