What is VNC? - A practical introduction
VNC stands for Virtual Network Computing. It is, in essence, a remote
display system which allows you to view a computing 'desktop' environment
not only on the machine where it is running, but from anywhere on the Internet
and from a wide variety of machine architectures.
What makes it different from other systems?
For this simple mode of operation, you could achieve a similar effect
by installing an X server on your PC. The important factors which distinguish
VNC from other remote display systems such as X are as follows:
- No state is stored at the viewer. This means you can leave
your desk, go to another machine, whether next door or several hundred
miles away, reconnect to your desktop from there and finish the sentence
you were typing. Even the cursor will be in the same place.
With a PC X server, if your PC crashes or is restarted, all the remote
applications will die. With VNC they go on running.
- It is small and simple. The Win32 viewer, for example, is about
150K in size and can be run directly from a floppy. There is no installation
needed.
- It is truly platform-independent. A desktop running on a Linux
machine may be displayed on a PC. Or a Solaris machine. Or any number of
other architectures. The simplicity of the protocol makes it easy to port
to new platforms. We have a Java viewer, which will run in any Java-capable
browser. We have a Windows NT server, allowing you to view the desktop of
a remote NT machine on any of these platforms using exactly the same viewer.
(The NT server is not multi-user ). And other people have ported VNC to a
wide variety of other platforms. Click the 'Contributed' button on the left
for details.
- It is sharable. One desktop can be displayed and used by several
viewers at once, allowing CSCW-style applications.
Scope for Improvement
Improvements in VNC
VNC has some scope for distribution. A few of them being as follows
Improving Display
VNC has a good display but there are various drwabacks also. A few being,
konsole does not look proper, keyboard stop working sometimes , movie player
on remote machine crashes , colour depth can be increased.
Sound
Presently ,the VNC server does not allow sound to be exported.Thus programs
like XMMS may be played but the sound can't be exported.The ESD(Enlightenment
Sound Daemon) could be used to export sound to our working machine.
Security
VNC uses a single TCP/IP connection, so a version which runs over Secure
Sockets should be easy to build. Some users have reported that wrapping
the connection using SSH works well and gives you compression as well.
But it would be nice to have it built-in, not least because SSH for Windows
is not free.
People have built the viewer to allow access outward through SOCKS firewalls.
Compression
The VNC protocol is fairly efficient in the way it transmits areas
of the screen, but on slow networks a generic compression system would
be worth incorporating. The important requirements are:
It should be possible to switch it off, so that it doesn't increase latency
on fast networks. This would probably mean adding an extra message
to the VNC protocol.
The compression code needs to be easily portable to all platforms including
Java.
The code needs to be freely distributable under the GPL.