Virtual Network Computing - Virtual Network Computing
Ved computing er Virtual Network Computing ( VNC ) et grafisk desktop-delingssystem, der bruger Remote Frame Buffer-protokollen (RFB) til fjernstyring af en anden computer . Den sender tastatur- og musinput fra en computer til en anden og videresender de grafiske skærmopdateringer over et netværk .
VNC er platformuafhængig-der er klienter og servere til mange GUI-baserede operativsystemer og til Java . Flere klienter kan oprette forbindelse til en VNC -server på samme tid. Populære anvendelser af denne teknologi omfatter fjern teknisk support og adgang til filer på ens arbejdscomputer fra sin hjemmecomputer eller omvendt.
VNC blev oprindeligt udviklet på Olivetti & Oracle Research Lab i Cambridge, Storbritannien. Den oprindelige VNC kildekode og mange moderne derivater er open source under GNU General Public License .
Der er en række varianter af VNC, der tilbyder deres egen særlige funktionalitet; f.eks. nogle optimeret til Microsoft Windows eller tilbyder filoverførsel (ikke en del af den korrekte VNC) osv. Mange er kompatible (uden deres tilføjede funktioner) med den korrekte VNC i den forstand, at en fremviser af en smag kan oprette forbindelse til en server fra en anden ; andre er baseret på VNC -kode, men ikke kompatible med standard VNC.
VNC og RFB er registrerede varemærker af RealVNC Ltd. i USA og visse andre lande.
Historie
Olivetti & Oracle Research Lab (ORL) i Cambridge i Storbritannien udviklede VNC på et tidspunkt, hvor Olivetti og Oracle Corporation ejede laboratoriet. I 1999 erhvervede AT&T laboratoriet og lukkede i 2002 laboratoriets forskningsindsats.
Udviklere, der arbejdede på VNC, mens de stadig var på AT&T Research Lab, omfatter:
- Tristan Richardson (opfinder)
- Andy Harter (projektleder)
- Quentin Stafford-Fraser
- James Weatherall
- Andy Hopper
Efter lukningen af ORL i 2002 dannede flere medlemmer af udviklingsteamet (herunder Richardson, Harter, Weatherall og Hopper) RealVNC for at fortsætte arbejdet med open-source og kommerciel VNC-software under dette navn.
Den originale GPLed -kildekode er indført i flere andre versioner af VNC. Sådanne gafler har ikke ført til kompatibilitetsproblemer, fordi RFB -protokollen er designet til at kunne udvides. VNC -klienter og servere forhandler deres muligheder med håndtryk for at bruge de mest passende muligheder, der understøttes i begge ender.
Fra 2013 hævder RealVNC Ltd udtrykket "VNC" som et registreret varemærke i USA og i andre lande.
Etymologi
Navnet Virtual Network Computer/Computing (VNC) stammer fra ORL's arbejde med en tynd klient kaldet Videotile, som også brugte RFB -protokollen. Videotilen havde et LCD -display med penindgang og en hurtig pengeautomatforbindelse til netværket. På det tidspunkt blev netværkscomputeren almindeligvis brugt som et synonym for en tynd klient; VNC er i det væsentlige en software-only (dvs. virtuel) netværkscomputer.
Operation
- VNC -serveren er programmet på maskinen, der deler en vis skærm (og er muligvis ikke relateret til en fysisk skærm - serveren kan være "hovedløs" ), og giver klienten mulighed for at dele kontrol over den.
- VNC -klienten (eller seeren) er det program, der repræsenterer skærmdataene, der stammer fra serveren, modtager opdateringer fra den og formodentlig styrer den ved at informere serveren om indsamlet lokalt input.
- VNC -protokollen ( RFB -protokollen ) er meget enkel, baseret på at overføre en grafisk primitiv fra server til klient ("Sæt et rektangel af pixeldata på den angivne X, Y -position") og hændelsesbeskeder fra klient til server.
Ved den normale betjeningsmetode opretter en fremviser forbindelse til en port på serveren (standardport: 5900). Alternativt (afhængigt af implementeringen) kan en browser oprette forbindelse til serveren (standardport: 5800). Og en server kan oprette forbindelse til en fremviser i "lytttilstand" på port 5500. En fordel ved lytttilstand er, at serverwebstedet ikke behøver at konfigurere sin firewall for at give adgang til port 5900 (eller 5800); pligten er på seeren, hvilket er nyttigt, hvis serverwebstedet ikke har computerekspertise, og seerbrugeren er mere vidende.
Serveren sender små rektangler af rammebufferen til klienten. I sin enkleste form kan VNC -protokollen bruge meget båndbredde , så der er udtænkt forskellige metoder til at reducere kommunikationsomkostningerne. For eksempel er der forskellige kodninger (metoder til at bestemme den mest effektive måde at overføre disse rektangler på). VNC -protokollen giver klienten og serveren mulighed for at forhandle, hvilken kodning de vil bruge. Den enkleste kodning, der understøttes af alle klienter og servere, er rå kodning , der sender pixeldata i venstre-til-højre scanlinierækkefølge , og efter at den originale fuldskærm er blevet transmitteret, overfører kun rektangler, der ændres. Denne kodning fungerer meget godt, hvis kun en lille del af skærmen ændres fra en ramme til den næste (som når en musemarkør bevæger sig hen over et skrivebord, eller når der skrives tekst ved markøren), men kravene til båndbredde bliver meget høje, hvis meget pixel ændres på samme tid (f.eks. når du ruller et vindue eller ser video i fuld skærm).
VNC bruger som standard TCP -port 5900+ N , hvor N er displaynummeret (normalt: 0 for en fysisk skærm). Flere implementeringer starter også en grundlæggende HTTP- server på port 5800+ N for at tilvejebringe en VNC-fremviser som en Java-applet , hvilket giver nem forbindelse via en Java-aktiveret webbrowser. Forskellige portopgaver kan bruges, så længe både klient og server er konfigureret i overensstemmelse hermed. En HTML5 VNC -klientimplementering til moderne browsere (ingen plugins kræves) findes også.
Selvom det er muligt selv ved lav båndbredde, er det lettere at bruge VNC over internettet, hvis brugeren har en bredbåndsforbindelse i begge ender. Det kan dog kræve avanceret netværksadresseoversættelse (NAT), firewall og routerkonfiguration , f.eks. Videresendelse af port, for at forbindelsen kan gå igennem. Brugere kan etablere kommunikation via virtuelle private netværk (VPN) teknologier for at lette brugen over internettet eller som en LAN -forbindelse, hvis VPN bruges som en proxy eller via en VNC -repeater (nyttig i nærvær af en NAT).
Xvnc er Unix VNC -serveren, som er baseret på en standard X -server . For applikationer vises Xvnc som en X "server" (dvs. den viser klientvinduer), og for eksterne VNC -brugere er det en VNC -server. Applikationer kan vise sig selv på Xvnc, som om det var et normalt X -display, men de vil blive vist på alle tilsluttede VNC -seere frem for på en fysisk skærm. Alternativt kan en maskine (som kan være en arbejdsstation eller en netværksserver) med skærm, tastatur og mus konfigureres til at starte og køre VNC -serveren som en tjeneste eller dæmon, så kan skærmen, tastaturet og musen fjernes og maskinen er opbevaret på et ude af vejen sted.
Desuden er det display, der betjenes af VNC, ikke nødvendigvis det samme display, som en bruger ser på serveren. På Unix/Linux -computere, der understøtter flere samtidige X11 -sessioner, kan VNC indstilles til at betjene en bestemt eksisterende X11 -session eller til at starte en af sine egne. Det er også muligt at køre flere VNC -sessioner fra den samme computer. I Microsoft Windows er den serverede VNC -session altid den aktuelle brugersession.
Brugere implementerer normalt VNC som et krydsplatforms fjernt desktop-system. For eksempel fungerer Apple Remote Desktop til Mac OS X (og for nylig " Tilbage til min Mac " i 'Leopard' - Mac OS X 10.5) med VNC og opretter forbindelse til en Unix -brugers nuværende skrivebord, hvis det serveres med x11vnc , eller til en separat X11 -session, hvis man bliver betjent med TightVNC . Fra Unix opretter TightVNC forbindelse til en Mac OS X -session betjent af Apple Remote Desktop, hvis VNC -indstillingen er aktiveret, eller til en VNC -server, der kører på Microsoft Windows.
I juli 2014 udgav RealVNC et eksempel på en Wayland -udvikler.
Sikkerhed
Som standard er RFB ikke en sikker protokol. Selvom adgangskoder ikke sendes i ren tekst (som i telnet ), kan revnedannelse vise sig at være vellykket, hvis både krypteringsnøglen og den kodede adgangskode blev snuset fra et netværk. Af denne grund anbefales det, at der bruges et kodeord på mindst 8 tegn. På den anden side er der også en grænse på 8 tegn på nogle versioner af VNC; hvis en adgangskode sendes med mere end 8 tegn, fjernes de overskydende tegn, og den afkortede streng sammenlignes med adgangskoden.
UltraVNC understøtter brugen af et open-source krypteringsplugin, der krypterer hele VNC-sessionen, herunder adgangskodegodkendelse og dataoverførsel. Det gør det også muligt at udføre godkendelse baseret på NTLM- og Active Directory -brugerkonti. Imidlertid gør brugen af sådanne krypteringsplugins det inkompatibelt med andre VNC -programmer. RealVNC tilbyder højstyrke AES-kryptering som en del af sin kommercielle pakke sammen med integration med Active Directory. Workspot frigav AES -krypteringsrettelser til VNC. Ifølge TightVNC er TightVNC ikke sikker, da billeddata overføres uden kryptering. For at omgå dette skal det tunneleres gennem en SSH -forbindelse (se nedenfor).
VNC kan være tunnelleret over en SSH- eller VPN -forbindelse, hvilket ville tilføje et ekstra sikkerhedslag med stærkere kryptering. SSH -klienter er tilgængelige for de fleste platforme; SSH -tunneler kan oprettes fra UNIX -klienter, Microsoft Windows -klienter, Macintosh -klienter (herunder Mac OS X og System 7 og nyere) - og mange andre. Der er også freeware -applikationer, der opretter øjeblikkelige VPN -tunneler mellem computere.
En yderligere sikkerhedsproblem ved brug af VNC er at kontrollere, om den anvendte version kræver autorisation fra fjerncomputeren, før nogen tager kontrol over deres enhed. Dette vil undgå den situation, hvor ejeren af den computer, der er adgang til, indser, at der er nogen, der kontrollerer deres enhed uden forudgående varsel.
Se også
Referencer
eksterne links
- RFB 3.8 -protokolstandard
- AT&T VNC - Originalt AT & T -Cambridge VNC -websted