Virtual Network Computing

Virtual Network Computing

In computing, Virtual Network Computing (VNC) is a graphical desktop sharing system which uses the RFB protocol to remotely control another computer. It transmits the keyboard and mouse events from one computer to another, relaying the graphical screen updates back in the other direction, over a network.

VNC is platform-independent — a VNC viewer on any operating system usually connects to a VNC server on any other operating system. There are clients and servers for almost all GUI operating systems and for Java. Multiple clients may connect to a VNC server at the same time. Popular uses for this technology include remote technical support and accessing files on one's work computer from one's home computer, or vice versa.

VNC was originally developed at the Olivetti Research Laboratory in Cambridge, United Kingdom. The original VNC source code and many modern derivatives are open source under the GNU General Public License.

History

VNC was created at the Olivetti & Oracle Research Lab (ORL), which was then owned by Olivetti and Oracle Corporation. In 1999 AT&T acquired the lab, and in 2002 closed down the lab's research efforts.

Developers who worked on VNC while still at the AT&T Research Lab are:

* Tristan Richardson (inventor)
* Andy Harter (project leader)
* Quentin Stafford-Fraser
* James Weatherall
* Ken Wood
* Andy Hopper
* Charles McLachlan
* Paul Webster
* Hendrik Ekkelenkamp, Ekkelenkamp IT, advisor

Following the closure of ORL in 2002, several members of the development team (including Richardson, Harter, Weatherall and Hopper) formed RealVNC in order to continue working on open source and commercial VNC software under that name.

Several other versions of VNC have been developed from the original GPLed source code. Such forking has not led to compatibility problems because the RFB protocol is designed to be extensible. VNC clients and servers negotiate their capabilities when handshaking in order to use the most appropriate options supported at both ends.

Etymology

The name 'Virtual Network Computer/Computing' originates from ORL's work on a thin client called the Videotile which also used the RFB protocol. This was essentially an LCD with a pen input and a fast ATM connection to the network. At the time, network computer was commonly used as a synonym for 'thin client'. VNC is essentially a software-only (i.e virtual) version of this network computer.

Operation

A VNC system consists of a client, a server, and a communication protocol.
* The VNC server is the program on the machine that shares its screen.
* The VNC client (or viewer) is the program that watches and interacts with the server.
* The VNC protocol (RFB) is very simple, based on one graphic primitive from server to client ("Put a rectangle of pixel data at the specified X,Y position") and event messages from client to server.

The server sends small rectangles of the framebuffer to the client. In its simplest form, the VNC protocol can use a lot of bandwidth, so various methods have been devised to reduce the communication overhead. 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 the original full screen has been transmitted, only transfers rectangles that change. 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 at the same time, such as when scrolling a window or viewing full-screen video.

VNC by default uses TCP ports 5900 through 5906, each port corresponding to a separate screen (:0 to :6). A Java viewer is available in many implementations such as RealVNC on ports 5800 through 5806, allowing clients to interact through, among other things, a Java-enabled web browser. Other ports can be used as long as both client and server are configured accordingly.

Using VNC over the Internet works well if the user has a broadband connection at both ends. However, it may require advanced NAT, firewall and router configuration such as port forwarding in order for the connection to go through. Some users may choose to use instant private networking applications such as Remobo or VPN applications such as Hamachi to make usage over the Internet much easier.

Note that on some machines, the server does not necessarily have to have a physical display. "Xvnc" is the Unix VNC server, which is based on a standard X server. Xvnc can be considered to be two servers in one; to applications it is an X server, and to remote VNC users it is a VNC server. Applications can display themselves on Xvnc as if it were a normal X display, but they will appear on any connected VNC viewers rather than on a physical screen. [cite web | url=http://www.cl.cam.ac.uk/research/dtg/attarchive/vnc/xvnc.html | title=X-based VNC server | author=AT&T Laboratories Cambridge | date=1999 | work=Virtual Network Computing | accessdate=2007-03-24]

In addition, the display that is served by VNC is not necessarily the same display seen by a user on the server. On Unix/Linux computers that support multiple simultaneous X11 sessions, VNC may be set to serve a particular existing X11 session, or to start one of its own. It is also possible to run multiple VNC sessions from the same computer. On Microsoft Windows the VNC session served is always the current user session.

VNC is commonly used as a cross-platform remote desktop system. For example, Apple Remote Desktop for Mac OS X (and more recently, "Back to My Mac" in 'Leopard' - Mac OS X 10.5) interoperates with VNC and will connect to a Linux user's current desktop if it is served with x11vnc, or to a separate X11 session if one is served with TightVNC. From Linux, TightVNC will connect to an OS X session served by Apple Remote Desktop if the VNC option is enabled, or to a VNC server running on Microsoft Windows.

Security

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. On the other hand, 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, Microsoft Windows clients, Macintosh clients (including Mac OS X and System 7 and up) — and many others. There are freeware applications that create instant VPN tunnels between computers such as Remobo. Hamachi has been purchased by LogMeIn and is no longer freeware.

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. Workspot released AES encryption patches for VNC.

See also

* Remote Desktop Protocol
* Virtual private network
* Comparison of remote desktop software
* X Window System

References

*

External links

* [http://www.hep.phy.cam.ac.uk/vnc_docs/index.html AT&T VNC] - Original AT&T-Cambridge VNC website
* [http://gentoo-wiki.com/VNC Gentoo-wiki/VNC] - An overview and a set of guides to the various flavours of VNC
* [http://www.realvnc.com/products/beta/ce VNC Enterprise Edition (beta) Viewer for PocketPC] - RealVNC beta viewer for PocketPC (ARM)
* [http://ple-q.com/2008/01/03/membuat-vnc-server-di-ubuntu/ Setup VNC Server on Ubuntu (Indonesian Version)]
* [http://www.karlrunge.com/x11vnc/ x11vnc: a VNC server for real X displays] (with acceleration)
* [http://variableghz.com/2008/09/getting-serious-about-vnc/ a how-to prevent dynamic IP issues with VNC and routers]
* lists available VNC viewers and servers.
* [http://www.sinfocol.org/herramientas/vncauth.php VNC Hash] VNC Hash, is an online tool that allow to cipher and decipher VNC Hash


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Virtual Network Computing — (VNC) est un système d accès à un bureau distant qui permet de prendre le contrôle d un ordinateur distant. Il permet de transmettre les saisies au clavier ainsi que les clics de souris d un ordinateur à l autre, à travers un réseau informatique …   Wikipédia en Français

  • Virtual Network Computing — (VNC)  система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер). Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с… …   Википедия

  • Virtual Network Computing — typische VNC Sitzung in einem eigenen Fenster Virtual Network Computing, kurz VNC, ist eine Software, die den Bildschirminhalt eines entfernten Rechners (Server) auf einem lokalen Rechner (Client) anzeigt und im Gegenzug Tastatur und… …   Deutsch Wikipedia

  • Network computing — is a generic term in computing which refers to computers or nodes working together over a network. It may also mean: Cloud computing Distributed computing Virtual Network Computing This disambiguation page lists articles associated with the same… …   Wikipedia

  • Configurable Network Computing — or CNC is JD Edwards s (JDE) client–server proprietary architecture and methodology that implements its highly scalable enterprise wide business solutions software that can run on a wide variety of hardware, operating systems (OS) and hardware… …   Wikipedia

  • Berkeley Open Infrastructure for Network Computing — BOINC Der BOINC Client für Windows …   Deutsch Wikipedia

  • Network virtualization — In computing, Network Virtualization is the process of combining hardware and software network resources and network functionality into a single, software based administrative entity, a virtual network. Network virtualization involves platform… …   Wikipedia

  • Virtual Interface Architecture — The Virtual Interface Architecture (VIA) is an abstract model of a user level zero copy network, and is the basis for InfiniBand and iWARP. Created by Microsoft, Intel, and Compaq, the original VIA sought to standardize the interface for high… …   Wikipedia

  • Virtual security switch — A Virtual Security Switch is a software Ethernet switch with embedded security controls within it that runs within Virtual Environments such as VMware, Citrix, Microsoft and Virtual Iron. The primary purpose of a Virtual Security Switch is to… …   Wikipedia

  • Virtual security appliance — A Virtual Security Appliance is a computer appliance that runs inside virtual environments. It is called an appliance because it is pre packaged with a hardened operating system and a security application and runs on a virtualized hardware. The… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”