VNC works by allowing client computers (the users’ computers) to connect to the machine running the server part of the software. The server software transmits a compressed image, usually a JPEG, of its current desktop to any authorized clients. Each client can use its mouse and keyboard to control the server. VNC uses the remote framebuffer protocol to transmit the server’s desktop, as it changes, in the most efficient way possible, conserving bandwidth over the network. It works by updating only a rectangle around the most recent change; this keeps things fast but makes intensive activities like watching videos or playing games in the VNC client window unlikely. Another design factor intended to keep information moving fast is that in most versions of the software, data is transferred over VNC essentially unencrypted, making it relatively easy for malicious activity to take place.
VNC runs on nearly every operating system
So how does VNC shape up against Remote Desktop Protocol (RDP), the protocol used in Windows’ default ’Remote Desktop Connection’ software? It lacks many of the features of RDP, such as strong encryption. Also lacking is the ability to use files on the client machine as if they were on the server. This means that programs on the server cannot access local files, which could be problematic if they are needed. On the other hand, VNC is incredibly widely used, because it is available on nearly every conceivable platform, so compatibility is not an issue. RDP is not an open source protocol and is still unavailable on some platforms, which could lead to problems.
Since becoming open source software, VNC has been implemented in a wide range of software, such as RealVNC (created by the original makers of VNC) and TightVNC. The latter version attempts to offer improved performance by using a slightly better compression algorithm, which allows a higher framerate, making videos play at almost acceptable speeds. Choosing one of these pieces of software is really a matter of personal preference, as they all work using the same protocol and are all interoperable; for example, a TightVNC server will allow RealVNC clients with the right password and vice-versa. This wealth of programs exists on nearly all operating systems, from Windows to Linux and even OS/2. Of course this means a Windows user can use VNC to access a Linux machine, allowing for many uses, both common sense and a little obtuse.