Hoppa till innehållet

Virtual Network Computing

Från Wikipedia
Version från den 10 augusti 2010 kl. 13.28 av Balzac (Diskussion | Bidrag) (Länkar + div småfixar)
Virtual Network Computing - VNC
VNC i KDE
VNC i KDE
UtvecklareRealVNC
Senaste utgåva4.1.3
OperativsystemWindows, Mac, GNU/Linux
LicensGPL

Inom datorteknologin är Virtual Network Computing (VNC) en programvara för skärmdelning. Den använder RFB protokollet för att fjärrstyra en annan dator genom att överföra tangentbords och muskommandon från en dator till en annan. Skärmuppdateringar skickas tillbaka i den andra riktningen över nätverket.

VNC är plattformsoberoende - en VNC-klient på ett operativsystem kan koppla upp sig till en VNC-server som körs på ett annat operativsystem. Det finns klienter och servrar för många GUI-baserade operativsystem samt för Java. Multipla klienter kan koppla upp sig till en VNC-server på samma gång. Populära användningsområden för denna teknologi inkluderar fjärrstyrning av användares skrivbord vid datorsupport samt åtkomst av arbetsdator från hemmet eller vice versa.

Den ursprungliga källkoden för VNC och många moderna släktingar är öppen källkod under GNU General Public License.

Det finns ett antal varianter av VNC som erbjuder sin egen speciella funktionalitet; till exempel kan de vara optimerade för Microsoft Windows eller ha möjlighet till filöverföringar (vilket inte är en del av riktiga VNC). Många är kompatibla (förutom specialfunktioner) med riktig VNC på så sätt att klienten från en variant kan koppla upp sig till en annan; andra är baserade på VNC kod men är inkompatibla med standard VNC.

VNC är ett registrerat varumärke av RealVNC Ltd. i USA och i andra länder.[1]

Historia

VNC utvecklades ursprungligen vid Olivetti & Oracle Research Lab (ORL), vilket vid denna tidpunkt ägdes av Olivetti och Oracle. 1999 köptes labbet av AT&T som stängde det 2002.

Utvecklare som arbetade med VNC vid AT&T var:

  • Tristan Richardson (uppfinnare)
  • Andy Harter (projekt ledare)
  • Quentin Stafford-Fraser
  • James Weatherall

Efter stängningen av ORL 2002 så bildade flera medlemmar av utvecklingsteamet (inklusive Richardson, Harter, Weatherall och Hopper) företaget RealVNC för att kunna fortsätta arbeta på öppen källkodsprojekt och kommersiell VNC mjukvara under detta namn.

Flera andra versioner har utvecklats från den ursprungliga GPL:ade källkoden. Sådana här avknoppningar har inte lett till kompatibilitetsproblem då RFB-protokollet är utformat för att vara utbyggbart. VNC klienter och servrar informerar varandra om sina kapabiliteter genom handskakning vid uppkopplingen för att kunna använda de mest optimala inställningar som supportas i båda ändar.

Etymologi

Namnet 'Virtual Network Computer/Computing' kommer från ORL:s arbete med en tunn klient kallad Videotile som också använde RFB-protokollet. Detta var i huvudsak en en LCD med en penna för inmatning och snabb ATM-uppkoppling till nätet. Vid den här tidpunkten användes termen 'nätverksdator' synonymt med 'tunn klient'. VNC är väsentligen en mjukvaru (virtuell) version av denna nätverksdator.

Funktionalitet

Ett VNC system består av en klient, en server och ett kommunikationsprotokoll.

  • VNC-servern är programmet på maskinen som delar sin skärm. Servern tillåter passivt

att klienten tar kontroll över den.

  • VNC-klienten är programmet som tittar på, kontrollerar och interagerar med servern.

Klienten kontrollerar servern.

  • VNC-protokollet (RFB) är väldigt enkelt. Det är baserat på en grafisk primitiv från

server till klient ("Lägg en rektangel pixel data vid den specificerade X,Y positionen") samt händelsemeddelanden från från klient till server.

När det fungerar som vanligt så kopplar klienten upp sig mot en port (standard är 5900) på servern. Alternativt kan en browser koppla upp sig mot servern (standard är då 5800). En server kan också koppla upp sig mot klienten i 'lyssnarläge' på port 5500. En fördel med lyssnarläge är att servern inte är beroende av att kunna koppla upp sig mot port 5900 eller 5800; ansvaret ligger på klienten. Detta är användbart om den eller de som sitter vid servern har begränsad datorkompetens, klientanvändaren behöver dock större kompetens.

Servern skickar små rektanglar av framebuffern till klienten. I sin enklaste form kan protokollet förbruka mycket bandbredd, så olika metoder har utvecklas för att reducera förbrukningen. Till exempel så finns det olika kodningar (metoder för att bestämma de mest effektiva sättet att överföra rektanglarna). RFB-protokollet låter klienten och servern förhandla om vilken kodning som skall användas. Den enklaste kodningen, som supportas av alla klienter och servrar, är råformatskodning där pixeldata skickas vänster-till-höger i scanline ordning. När hela den ursprungliga skärmbilden överförts överförs bara de rektanglar som förändras. Denna kodning fungerar mycket bra om bara en liten del av skärmbilden förändras från en frame till nästa (som en muspekare som rör sig över en desktop, eller text som skrivs vid kursorn), men bandbreddsbehovet blir stort om många pixlar förändras på en gång, som när man skrollar ett fönster eller tittar på fullskärmsvideo.

Standardbeteendet för VNC är att använda TCP portarna 5900 till 5903, där varje port motsvarar en separat skärm (:0 to :3). En Java-klient finns tillgänglig i många implementationer som till exempel RealVNC på portarna 5800 till 5806, detta tillåter klienter att interagera med, bland annat, en webbrowser med Java-stöd. Andra portar kan användas så länge som både klient och server konfigureras för detta.

Det går bra att använda VNC över Internet om användaren har en bredbandsuppkoppling i båda ändar. Det kan dock krävas en avancerad NAT, brandvägg eller router konfiguration, till exempel port forwarding för att få uppkopplingen att fungera. En del använder VPN lösningar för att göra användning över Internet lättare. Ett annat alternativ kan vara att göra uppkopplingen genom en SSH-tunnel.

Notera att maskinen som VNC-servern körs på inte behöver ha en fysisk display, mus eller tangentbord. Xvnc är Unix VNC-servern, vilken är baserad på en standard X-server. Xvnc kan anses ha två servrar i en; för applikationer är det en X-server, för fjärranvändare är det en VNC-server. Applikationer kan visa sig själva på Xvnc som om det var en normal X skärm, men de kommer visas på uppkopplade VNC-klienter istället för den fysiska skärmen.

Skärmen som visas av VNC-servern är inte nödvändigtvis den samma som ses av en användare på den fysiska servern. På Unix/Linux datorer som supportar multipla simultana X11-sessioner så kan man specificera att VNC-servern skall visa en redan existerande X11-session, eller skapa en ny. Det är också möjligt att köra multipla VNC-sessioner från samma dator. På Microsoft Windows visas alltid den existerande användarsessionen.

Det är vanligt att VNC används som ett plattformsoberoende fjärrskrivbordssystem. Till exempel så kan en Mac OS X dator koppla upp sig mot ett existerande Linux skrivbord eller till ett nytt skrivbord. En Linux dator kan koppla upp sig mot ett Mac OS X skrivbord eller ett Microsoft Windows skrivbord. Allt detta förutsatt att rätt programvara används med rätt konfiguration.

Säkerhet

Som standard är inte VNC ett säkert protokoll. Lösenorden skickas inte i klartext som med telnet men brute-force cracking kan lyckas om både krypteringsnyckeln och det kodade lösenordet sniffas från nätverket. Därför rekommenderas att man använder ett lösenord som är minst åtta tecken långt. Några versioner av VNC har en åttateckensbegränsning i sin lösenordshantering. Om ett lösenord skickas som har mer än åtta tecken tas de överflödiga tecknen bort och denna sträng jämförs med det lagrade lösenordet.

VNC kan tunnlas över en SSH eller VPN uppkoppling vilket lägger till ett extra säkerhetslager med med starkare kryptering. SSH-klienter finns alla större plattformar och många mindre. SSH-tunnlar kan skapas från Unix-klienter, Microsoft Windows klienter, Macintosh klienter (inklusive Mac OS X samt System 7 och uppåt) - och många andra. Det finns freeware applikationer som snabbt skapar VPN-tunnlar mellan datorer.

UltraVNC supportar användandet av en öppen källkods plugin som krypterar hela VNC-sessionen inklusive lösenords autenticering och datatransport. Den tillåter också att autenticering kan göras baserad på NTLM och Active Directory användarkonton. Användning av den här typen av krypteringsplugins gör den dock inkompatibel med andra VNC-program. RealVNC erbjuder kraftfull kryptering i sin kommersiella distribution. Workspot släppte AES krypterings patchar för VNC.

[...]

Se även

Referenser

Ursprungsversionen av denna artikel är i huvudsak en översättning av artikeln i engelska wikipedia: [1]

Externa länkar

Mall:Fri programvarustub