Virtual Network Computing
Virtual Network Computing (VNC) is een manier om het bureaublad van een computer te delen, met behulp van het rfb (Remote FrameBuffer) protocol, hiermee kan een andere computer op afstand worden beheerd. Het verstuurt de toetsaanslagen en muisbewegingen van een computer naar een andere machine. Het beeld wordt de andere richting opgestuurd, via een computernetwerk.
VNC is platformonafhankelijk: een VNC Viewer (programma om VNC mee te bekijken) op een willekeurig besturingssysteem kan een VNC server op een ander besturingssysteem benaderen. Er zijn clients en servers voor vrijwel ieder besturingssysteem, ook voor Java. Meerdere clients kunnen een server op hetzelfde moment gebruiken. VNC is erg populair om vanaf afstand technische ondersteuning te bieden, en om vanaf een willekeurige plek gebruik te maken van de documenten op de computer thuis.
VNC is uitgevonden door AT&T. De originele broncode is open source onder de GNU General Public License, er zijn heden ten dage vele varianten van beschikbaar.
Geschiedenis
VNC werd ontwikkeld in het Olivetti & Oracle Research Lab, toentertijd eigendom van Olivetti en Oracle Corporation. In 1999 kocht AT&T het lab, en sloot in 2002 het researchgedeelte van het lab.
De naam stamt van een thin-client ATM Netwerkcomputer, de Videotile geheten, wat in essentie een LCD-scherm en een pen als invoermethode had, ondersteund door een snelle ATM-verbinding met het netwerk. VNC is in wezen een software-only versie van deze 'ATM Network Computer'.
Ontwikkelaars van VNC, nog in dienst van AT&T:
- Tristan Richardson
- Quentin Stafford-Fraser
- James Weatherall
- Ken Wood
- Andy Harter
- Charlie McLachlan
- Paul Webster
Hoe het werkt
VNC bestaat uit twee delen, een cliënt en een server. De server is het programma dat op de machine en het scherm hiervan deelt, en de cliënt (of de Viewer) is het programma dat signalen verzendt en ontvangt van de server.
VNC is een zeer eenvoudig protocol, gebaseerd op één grafische primitief: "Zet een rechthoek van pixelgegevens bij een bepaald x,y positie ". Dat wil zeggen, de server stuurt kleine rechthoekjes van de framebuffer naar de client. Dit gebruikt veel bandbreedte, dus zijn er verschillende manieren om dit te verkleinen. Bijvoorbeeld, er zijn diverse encoding-methodes om de meest efficiënte manier te bepalen om deze rechthoeken over te brengen. Het VNC-protocol zorgt ervoor dat de cliënt en de server overeenkomen welke methode zal worden gebruikt. De eenvoudigste methode, ondersteund door alle clients en servers, is raw encoding waar de gegevens van links naar rechts, en dan van boven naar beneden worden verzonden, wanneer het scherm geladen is zullen alleen gewijzigde pixels worden verzonden. Hierdoor is dit een uitstekende methode, wanneer een stukje van het beeld verandert. (Het bewegen van de muis, het typen van tekst), maar wanneer er veel verandert wordt het moeilijker. (Een uitstekend voorbeeld hiervan is het afspelen van een videoclip op volledig scherm.)
Standaard gebruikt vnc poorten 5900 tot 5906, waar elke poort een X-scherm vertegenwoordigt. (poorten 6000 tot 6006, voor schermen :0 to :6). Een Java-viewer is beschikbaar in veel implementaties, zoals RealVNC op poorten 5800 tot 5806, die hetzelfde patroon aanhouden. De poortnummers kunnen worden gewijzigd.
Projecten die van VNC gebruikmaken
- Workspot gebruikt VNC om een persoonlijke Linuxdesktop als gecodeerde Webdienst te verstrekken. Het gebruikt ook VNC om een gratis online Linux Desktopdemonstratie te leveren.
- Ndiyo neemt "lessen geleerd van VNC" in zijn ultra-thin-client, nivo, welke het voor gebruik in internetcafés ontwikkelt, vooral in Derde Wereldlanden, met behulp van het oorspronkelijke VNC-team.
- Fog Creek Copilot is een dienst die veilige verre hulp via internet verleent. Het is gebaseerd op een VNC-kern.
- Apple Remote Desktop versie 2 gebruikt het VNC protocol.
- VNC Scan Enterprise Console zorgt voor het uitrollen van VNC via LAN of WAN
- VNCon Simpele VNC-scanner
- vnc2swf Een opnameprogramma dat Macromedia Flash-filmpjes maakt van een VNC-scherm.
VNC en veiligheid
VNC is standaard geen veilig protocol. Hoewel wachtwoorden niet als platte tekst worden verzonden (zoals bij telnet), kan brute-force cracking succesvol zijn als zowel de encryptiesleutel als het gecodeerde wachtwoord van het netwerk worden afgeluisterd. Daarom wordt gebruik van een wachtwoord van minimaal 8 tekens aanbevolen.
VNC kan via een SSH of VPN-verbinding worden getunneld, wat een extra veiligheidslaag toevoegt. Jammer genoeg is dit niet altijd een werkbare oplossing, SSH-tunnels met Windows-machines openen is zeer moeilijk.
UltraVNC ondersteunt het gebruik van een open-source encryptieplugin die de gehele VNC-sessie inclusief het wachtwoord en bestandsoverdrachten beveiligt. Authenticatie via NTLM en Active Directory is ook mogelijk.
RealVNC biedt hoge sterkte encryptie bij het commeriële pakket.
Workspot brengt AES-patches uit voor VNC.
Hoewel sommige mensen geloven dat VNC gemakkelijk kan worden gebruikt om in een systeem binnen te dringen, moet een gebruiker gewoonlijk uitdrukkelijk toegang krijgen tot de poorten die door VNC worden gebruikt . Met andere woorden, een systeem met VNC op een netwerk kan slechts van binnen dat netwerk worden benaderd tenzij de gebruiker anders specificeert (zoals in de configuratie van een router).
VNC Versies en implementaties
- RealVNC - de officiële VNC-versie die door het AT&T team te Cambridge wordt beheerd.
- TightVNC - een VNC-versie die beter met bandbreedtebeheer om kan gaan.
- UltraVNC - Windows client/server met extra functies zoals bestandsoverdracht, NTLM en Active Directory-gebaseerde beveiliging, tekstchat vensters, sessie-encryptie en compatibel met oudere versies.
- MSRC4 DSM Plugin for UltraVNC
- x11vnc
- TridiaVNC
- MetaVNC
- ZVNC
- OSXvnc
- Chicken of the VNC - Macintosh client
- VNCDimension
- PocketPC VNCViewer - PocketPC client
- PocketPC VNCServer - PocketPC en WindowsCE.NET server
- PalmVNC - PalmOS client
- VNC Viewer voor de RiscPC
- ViNCe - een VNC client voor RISC OS
- VNC Viewer voor OS/2 PM
- J2ME VNC - VNC client voor Java ondersteunende mobiele telefoons
- VncSix - Roku PhotoBridge HD Client (om HDTV mee te bekijken)
- SmartCode VNC Manager - Commerciële VNC en RDP manager
- VNCScan Enterprise Console Commerciële VNC Management console
- krdc, de remote desktop client van KDE ondersteunt VNC
- VNCServer - VNC server voor MorphOS
- MorphVNC - VNC client voor MorphOS
- TwinVNC - VNC client voor MorphOS en AmigaOS (3.1 en 4.0)
Meer lezen
- Tristan Richardson, Quentin Stafford-Fraser, Kenneth R. Wood & Andy Hopper, "Virtual Network Computing", IEEE Internet Computing, Vol.2 No.1, Jan/Feb 1998 pp33-38 In PDF formaat
Zie ook
- Remote Desktop Protocol (RDP)
- NX technology - zorgt voor een snelle X11-omgeving via langzame verbindingen