RFB (Remote Frame Buffer) protocol enables remote users to share the desktop of the server either exclusively or on a sharing basis.
RFB (remote frame buffer) is a simple protocol for remote access to graphical user
interfaces. Because it works at the frame buffer level it is applicable to all windowing
systems and applications, including X11, Windows 3.1/95/NT and Macintosh.
The remote endpoint where the user sits (i.e. the display plus keyboard and/or pointer) is
called the VNC client. The endpoint where changes to the frame buffer originate (i.e. the
windowing system and applications) is known as the VNC server.
RFB truly a thin client protocol. The emphasis in the design of the RFB protocol is
to make very few requirements of the client. In this way, clients can run on the widest
range of hardware, and the task of implementing a client is made as simple as possible.
In the present scenario of distributing information using a Client â€œ Server environment there exist communication mechanisms such as TELNET etc. These are only character based in nature and do not provide an easy way for communication across network. Also the communication may not always be platform independent. We need a protocol that can well support GUI-based client-server interaction and allows multiple clients to share the desktop of the server.
The RFB (Remote Frame Buffer) protocol was proposed by Tristan Richardson and Kenneth R. Wood, ORL, Cambridge in January 1998. The protocol is based around a single graphics primitive: put a rectangle of pixel data at a given x, y position.
The RFB relies on sending encoded pixels to the client that contains the information of the Server Desktop. The client then decodes the pixels and draws them on a graphical application running on its machine. Events occurring at the client side are trapped and sent to the Server where the changes are reflected.
For this purpose the RFB protocol suggests the use of a Frame Buffer. The Frame Buffer actually contains the desktop information which is updated when the client generates an event. This updated buffer must be sent to the Server which updates its own desktop accordingly. Similarly when the Server generates events that affect the desktop, the updated buffer is redrawn at the Client. This provides a synchronized desktop sharing facility.
VNC consists of two types of components. A server, which generates a display, and a viewer (client ), which actually draws the display on your screen. There are two important features of VNC:
The server and the viewer may be on the different machines and on the different architectures. We expect the most common use to be the display of UNIX X desktop on a PC, for example. The protocol, which connects the server and the viewer, is simple, open, and platform independent.
No state is preserved at the client end. Breaking the viewerâ„¢s connection to the server and then reconnecting will not result in any loss of data. Because the connection can be remade from somewhere else, you have easy mobility.
So, to get started with VNC you need to run a server, and then connect to it with a viewer . the VNC software requires a TCP/IP connection between the server and the viewer, though there is no reason why the software couldnâ„¢t be modified to use ,for example ,RS232 or Firewire. But for now weâ„¢ll need to know the name or the IP address of the server machine.
In VNC RFB protocol allow server to update the frame buffer displayed on a version. When the connection between a client and server is first established the server begins by requesting authentication from the client using a challeng_response scheme which typically results in the user being prompted for password at the client end .the client then requests and update for the entire screen and the session begins. Because of the stateless nature of the client either side can also the connection at any time without adverse consequences. The protocol is designed to make the client as simple as possible, so it is usually up to the server to perform any necessary translations.
Most people will be running either a Unix server or a Windows server, though similar principles will apply to other platforms.
1.4 Requirements Specification:
The technical aspects of the Software Hardware are as follows:
Independent of platform: Since the project is done using JAVA feature, it has acquired a great feature of JAVA: Platform Independent. So any special hardware not required. It works in any platform that supports JDK1.2.2 or advanced version.
Minimum of 32MB RAM is required. But 64MB is recommended for better performance.
15MB Hard disk space is required to install the project.
All network hardware is required.
JDK1.1.7 or any advanced version.
Language Used :
Ã‚Â§ Java Applets
Ã‚Â§ Java Sockets