See Also

Virtual Network Computing

Virtual Network Computing is a desktop sharing system which uses the RFB  protocol to remotely control another computer Computer

A computer is a machine [i] for manipulating data [i] according to a list of instructions [i] ... 

. It transmits the keyboard Computer keyboard

A computer keyboard is a peripheral [i] modeled after the typewriter keyboard [i]. ... 

 presses and mouse Mouse (computing)

In the context of computing [i], a mouse consists of a hand-held pointing device [i], designed to sit u ... 

 clicks from one computer to another relaying the screen Computer display

[i]s in the [[larynx]... 

 updates back in the other direction, over a network Computer networking

Computer networking is the scientific [i] and engineering [i] discipline concerned with communic ... 

. VNC is platform-independent: a VNC viewer on any operating system Operating system

An operating system is a software program [i] that manages the hardware [i] and software [i] ... 

 can connect to a VNC server on any other operating system. There are clients and servers for almost all operating systems and for Java Java

style="margin-left: inherit; font-size: medium;" | Java ... 

.

Discussions

  Discussion Features

   Ask a question about 'Virtual Network Computing'

   Start a new discussion about 'Virtual Network Computing'

   Answer questions about 'Virtual Network Computing'

   'Virtual Network Computing' discussion forum


Encyclopedia


Virtual Network Computing is a desktop sharing system which uses the RFB  protocol to remotely control another computer Computer

A computer is a machine [i] for manipulating data [i] according to a list of instructions [i] ... 

. It transmits the keyboard Computer keyboard

A computer keyboard is a peripheral [i] modeled after the typewriter keyboard [i]. ... 

 presses and mouse Mouse (computing)

In the context of computing [i], a mouse consists of a hand-held pointing device [i], designed to sit u ... 

 clicks from one computer to another relaying the screen Computer display

[i]s in the [[larynx]... 

 updates back in the other direction, over a network Computer networking

Computer networking is the scientific [i] and engineering [i] discipline concerned with communic ... 

.

VNC is platform-independent: a VNC viewer on any operating system Operating system

An operating system is a software program [i] that manages the hardware [i] and software [i] ... 

 can connect to a VNC server on any other operating system. There are clients and servers for almost all operating systems and for Java Java

style="margin-left: inherit; font-size: medium;" | Java
... 

. Multiple clients may connect to a VNC server at the same time. Popular uses of the technology include remote technical support, and accessing files on one's work computer from one's home computer.

VNC was originally developed at AT&T AT&T

AT&T Inc. is the largest provider of both local and long distance telephone services, wireless service, ... 

. The original VNC source code Source code

Source code is any series of statements written in some human-readable [i] computer programming language [i] ... 

 is open source Open source

Open source describes practices in production and development that promote access to the end product's s... 

 under the GNU General Public License GNU General Public License

The GNU General Public License is a widely used free software license [i], originally written by Richard Stallman [i] ... 

, as are many of the variants of VNC available today.

History


VNC was created at the Olivetti & Oracle Research Lab, which was then owned by Olivetti Olivetti

Ing. C. Olivetti & Co., SpA. is an Italian [i] manufacturer of computer [i]s, printer [i] ... 

 and Oracle Corporation Oracle Corporation

Oracle Corporation is one of the major companies developing database management system [i]s, tools for ... 

. In 1999 AT&T acquired the lab, and in 2002 closed down the research part of the lab.

The name originates from a thin client Thin client

A thin client is a computer in client-server [i] architecture networks which depends primarily on the c ... 

 ATM Network Computer called the Videotile, which was essentially an LCD with a pen input and a fast ATM connection to the network. VNC is essentially a software-only version of this 'ATM Network Computer'.

Developers that worked on VNC while still at the AT&T Research Lab:
  • Tristan Richardson
  • Quentin Stafford-Fraser
  • James Weatherall
  • Ken Wood
  • Andy Harter
  • Charlie McLachlan
  • Paul Webster

How it works


VNC has two parts, a client and a server. The server is the program on the machine that shares its screen, and the client is the program that watches and interacts with the server.

VNC is a very simple protocol, based on one graphic primitive: "Put a rectangle of pixel data at a given x, y position". That is, the server sends small rectangles of the framebuffer Framebuffer

[i]
... 

 to the client. This in its simplest form uses a lot of bandwidth Bandwidth

Bandwidth is a measure of frequency [i] range and is typically measured in hertz [i].
... 

, so various methods are used to reduce it. For example, there are various encodings - methods to determine the most efficient way to transfer these rectangles. The VNC protocol allows the client and server to negotiate which encoding will be used. The simplest encoding, which is supported by all clients and servers, is the raw encoding where pixel data is sent in left-to-right scanline order, and after initial setup, then only transfers rectangles that change. Because of that, this encoding works very well if only a small portion of the screen changes from one frame to the next , but bandwidth demands get very high if a lot of pixels change.

VNC by default uses ports 5900 to 5906, each representing the corresponding X screen . A Java viewer is available in many implementations such as RealVNC on ports 5800 to 5806, following the same pattern. These ports can be changed.

Most Windows computers can only use a single port because Windows lacks the multisession features of UNIX-based servers. The default display number for Windows-based computers is 0 which maps to TCP port 5900.

Security in VNC


By default, VNC is not a secure protocol. While passwords are not sent in plain-text , brute-force cracking Brute force attack

In cryptanalysis [i], a brute force attack is a method of defeating a cryptographic [i] scheme by trying ... 

 could prove successful if both the encryption key and encoded password are sniffed from a network. For this reason it is recommended that a password of at least 8 characters is used.

However, VNC may be tunnelled over an SSH Secure Shell

In computing [i], Secure Shell or SSH is a set of standards and an associated network protocol [i] ... 

 or VPN connection which would add an extra security layer with stronger encryption. SSH clients are available for all major platforms ; SSH tunnels can be created from UNIX clients, Windows clients, Macintosh clients - and many others.

UltraVNC supports the use of an open-source encryption plugin which encrypts the entire VNC session including password authentication and data transfer. It also allows authentication to be performed based on NTLM and Active Directory Active Directory

Active Directory is an implementation of LDAP [i] directory service [i] ... 

 user accounts.

RealVNC Virtual Network Computing

Virtual Network Computing is a desktop sharing [i] system which uses the RFB [i] protocol [i] t ... 

 offers high-strength encryption as part of its commercial package.

Workspot released AES encryption patches for VNC.

On July 31, 2005, Tridia announced that they were discontinuing development of their free product Tridia VNC and suggested users instead pay for their commercial remote administration software iTvity, claiming that software based on the VNC protocol is unsuitable for deployment in a business environment due to design deficiencies in VNC itself.

See also

  • Remote Desktop Protocol Remote Desktop Protocol

    Remote Desktop Protocol is a multi-channel protocol that allows a user to connect to a computer running ... 

  • NX technology - allows very fast remote X11 on slow connections
  • Ndiyo - ultra-thin client
  • VNC Loop VNC Loop

    A Virtual Network Computing Loop is a simple pattern that develops after one or more computers VNC into ... 

     - a mildly amusing effect of recursive VNC connections
  • Synergy  - for sharing a keyboard and mouse between multiple computers

Further reading

  • Tristan Richardson, Quentin Stafford-Fraser, Kenneth R. Wood & Andy Hopper, "Virtual Network Computing", IEEE Internet Computing, Vol.2 No.1, Jan/Feb 1998 pp. 33–38

External links

  • - a version of VNC maintained by the original team from AT&T Laboratories in Cambridge Cambridge

    The city [i] of Cambridge is an old English [i] university [i] ...