Virtual Network Computing 본문
Virtual Network Computing>동네청년< 2007. 2. 14. 17:04
Virtual Network Computing
From Wikipedia, the free encyclopedia
Virtual Network Computing (VNC) is a desktop sharing system which uses the RFB (Remote FrameBuffer) protocol to remotely control another computer. It transmits the keyboard presses and mouse clicks from one computer to another relaying the screen updates back in the other direction, over a network.
VNC is platform-independent ? a VNC viewer on any operating system can connect to a VNC server on any other operating system. There are clients and servers for almost all operating systems and for Java. Multiple clients may connect to a VNC server at the same time. This technology's popular uses include remote technical support, and accessing files on one's work computer from one's home computer.
The name originates from a thin client asynchronous transfer mode (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 who worked on VNC while still at the AT&T Research Lab are:
- Tristan Richardson
- Quentin Stafford-Fraser
- James Weatherall
- Ken Wood
- Andy Hopper
- Charlie McLachlan
- Paul Webster
A VNC a client and a server. The server is the program on the machine that shares its screen, and the client (or viewer) is the program that watches and interacts with the server.
The VNC protocol is very simple, 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 to the client. This in its simplest form uses a lot of bandwidth, 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 (like a mouse pointer moving across a desktop, or text being written at the cursor), but bandwidth demands get very high if a lot of pixels change. (Full screen video is the most radical example of this.)
VNC by default uses TCP ports 5900 to 5906, each representing the corresponding x screen (ports 5900 to 5906, for screens :0 to :6). 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.
By default, VNC is not a secure protocol. While passwords are not sent in plain-text (as in telnet), brute-force cracking 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 be used. There is also an 8-character limit on some versions of VNC. If a password is sent exceeding 8 characters, the excess characters are removed and the truncated string is compared to the password.
However, VNC may be tunnelled over an SSH or VPN connection which would add an extra security layer with stronger encryption. SSH clients are available for all major platforms (and many smaller platforms as well); SSH tunnels can be created from UNIX clients, Windows clients, Macintosh clients (including Mac OS X and System 7 and up) ? 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 user accounts.
RealVNC offers high-strength encryption as part of its commercial package.
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.
 Comparison of VNC software
|VNC software||Client||Server||Runs on Windows||Runs on Mac OS X||Runs on Linux||FLOSS||Java viewer||Encryption||Multiple Sessions|
|RealVNC Free ||Yes||Yes||Yes||No||Yes||Yes||Yes||No|
|UltraVNC ||Yes||Yes||Yes||No||No||Yes||Yes||Yes (plugin)|
|Chicken of the VNC||Yes||No||No||Yes||No||Yes|
|Vine Server(OSXvnc) ||No||Yes||No||Yes||No||Yes|
|Apple Remote Desktop||Yes||Yes||No||Yes||No||No||Yes|
 See also
- Remote Desktop Protocol
- NX technology - allows very fast remote X11 on slow connections
- Ndiyo - ultra-thin client
- Synergy (software) - for sharing a keyboard and mouse between multiple computers
- Virtual private network
 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 PDF format
 External links
- VNC - archive of original AT&T Virtual Network Computing site
- Gentoo-wiki/VNC - An overview and a set of guides to the various flavours of VNC
- TightVNC - a free, open-source, cross-platform VNC server and client software
- RealVNC ? a version of VNC maintained by the original team from AT&T Laboratories in Cambridge
- Vine-OSXvnc - VNC client and open-source server for Mac OS X
- RFB 3.8 Protocol Standard
- Secure VNC Hosted, secure VNC installed silently On Demand
- several VNC clients and servers are listed at the Open Directory Project.
- Eggplant - Testing and Automation tool using VNC connections for cross-platform interaction.
- HOWTO: Set up a Windows SSH Server for VNC Tunneling