Virtual Network Computing
# Virtual Network Computing

I Virtual Network Computing (o VNC) sono applicazioni software di accesso/controllo remoto utilizzate per l'amministrazione del proprio computer a distanza, potendo essere anche usate per controllare in remoto server che naturalmente non posseggono né monitor né tastiera. Tipicamente si tratta di tools ad interfaccia testuale; quando sono ad interfaccia grafica si parla di applicazione di desktop remoto.

## Storia

VNC è stato creato inizialmente nel laboratorio della Olivetti & Oracle Research Lab, mantenuto poi dalla Olivetti e Oracle Corporation.

Nel 1999 AT&T ha acquistato il laboratorio, quindi nel 2002 ha chiuso definitivamente la parte di laboratorio dedicata alla ricerca.

## Descrizione

Il sistema è composto da un server e da un viewer (client): i VNC server sono applicazioni software da installare sulla macchina da controllare a distanza e rappresentano un modo comodo per poter gestire molti computer in rete (Internet o Intranet che siano) utilizzando una sola postazione, la quale deve essere munita di un viewer che permette di vedere e utilizzare le periferiche del computer da controllare.

Installando un server VNC sulla propria macchina ed impostando una opportuna password si consente ai client VNC di ricevere una immagine dello schermo e di inviare input di tastiera e mouse al computer server tramite una connessione remota. In pratica si può gestire il computer server da un'altra postazione, come se fosse il proprio computer fisico (applicazione di desktop remoto).

### Software

Il software necessario è spesso open source, e questo ha contribuito al diffondersi di moltissime versioni che migliorano sicurezza o velocità.

Tra il software più utilizzato troviamo:

* RealVNC (di cui fa parte il team originario della AT&T)
* UltraVNC
* Vinagre
* TightVNC
* PuTTY

Il protocollo di comunicazione usato a livello di trasporto è il TCP sulla porta di default 5900, ma è possibile usare anche una interfaccia HTTP (solitamente utilizzata per connessioni da parte di client scritti in Java) sulla porta 5800.

