Přeskočit na obsah

Virtual Network Computing

Z Wikipedie, otevřené encyklopedie

Virtual Network Computing (VNC) je grafický program, který umožňuje vzdálené připojení ke grafickému uživatelskému rozhraní pomocí počítačové sítě. VNC pracuje jako klient-server, kde server vytváří grafickou plochu v operační paměti počítače a komunikuje přes síť s klientem, který plochu zobrazuje uživateli (většinou na jiném počítači). Pro komunikaci se používá protokol RFB (anglicky remote framebuffer), jehož cílem je minimalizovat objem přenášených dat mezi klientem a serverem a umožnit tak komunikaci i přes pomalejší datové linky (např. přes Internet).

Historie

VNC byl původně vyvinut v Olivetti Research Laboratory (ORL) v Cambridge v Anglii. Původní zdrojový kód VNC a mnoho moderních odnoží je publikováno jako open source pod licencí GPL. V roce 1999 byla firma ORL koupena společností AT&T a v roce 2002 byl ukončen výzkum.

Na VNC pracovali vývojáři: Tristan Richardson, Andy Harter, Quentin Stafford-Fraser, James Weatherall, Ken Wood, Andy Hopper, Charles McLachlan, Paul Webster a další.

Po uzavření ORL byl v roce 2002 zformován několika členy vývojového týmu projekt RealVNC, jehož cílem bylo pokračovat ve vývoji VNC nejen jako open source, ale též komerčního software.

Charakteristika

Kompletní VNC systém vyžaduje spolupráci klienta, serveru a komunikačního protokolu. Tímto VNC serverem je program, který sdílí obrazovku počítače, na kterém je nainstalován. Komunikace mezi serverem a obrazovkou se nazývá klient (nebo prohlížeč).

Protokol RFB přenáší pohyb myši a stisknuté klávesy na klávesnici z počítače, na kterém běží klient, na počítač, na kterém běží serverová část VNC a zároveň přenáší ke klientovi změny, ke kterým na serveru došlo.

VNC je platformně nezávislý, protože používá framebuffer. Klient (anglicky VNC viewer) může být spuštěn na odlišném operačním systému, než je spuštěn VNC server. Serverová část ke své činnosti nepotřebuje grafickou kartu ani běžící grafické prostředí, protože vytváří obraz pracovní plochy v operační paměti počítače. VNC server může klientovi zasílat také obraz aktivního grafického uživatelského rozhraní (a umožnit tak spolupráci dvou či více osob na jedné ploše).

VNC standardně používá TCP porty od 5900 až po 5906, každý port odpovídá jiné obrazovce. Na portech od 5800 až po 5806 je k dispozici v různých provedeních (např. RealVNC) Java prohlížeč, který umožňuje klientovi komunikovat přes webový prohlížeč s podporou java. Ostatní porty mohou být použity v případě, že server a klient jsou příslušně nakonfigurovány. Používání VNC po internetu pracuje dobře, jestliže uživatel má širokopásmé připojení na obou stranách, což může vyžadovat náročnější konfiguraci NAT, firewallu a routeru. Někteří uživatelé mohou zvolit soukromé síťové aplikace pro jednodušší užívání, jako třeba Remobo nebo VPN aplikace (např. Hamachi).

Některá zařízení nepotřebují žádný displej. Xvnc může být považován za dva servery v jednom, pro aplikace to je X server, a pro VNC klienty to je VNC server. Aplikace se mohou zobrazit na XVnc jako kdyby byly na normálním X displeji, ale upřednostňují zobrazení pomocí jakéhokoli VNC prohlížeče. Navíc displej obsluhovaný VNC není bezpodmínečně ten samý display, který vidí uživatel serveru. Na počítačích se systémy Unix/Linux, které podporují několik současných sekcí X11, VNC může sloužit již existující sekci X11 nebo vytvořit svou vlastní sekci. Je také možné spustit několik VNC sekcí na stejném počítači. V Microsoft Windows představuje VNC sekce vždy aktuální sekci uživatele.

Klientská i serverová část VNC je k dispozici pro různé operační systémy, které používají grafické uživatelské rozhraní. Na jeden server může být připojeno najednou více klientů. VNC je velmi oblíbený nástroj pro vzdálenou technickou podporu nebo přístup na pracovní počítač z domova a podobně.

Bezpečnost

Komunikace mezi klientem a serverem standardně zabezpečena není. Samotná autentizace je poměrně bezpečná, protože se pro ověření hesla používá systém challenge-response (náhodná výzva a kontrolovaná odpověď), takže heslo neputuje po síti v nezašifrované podobě (jsou omezeny útoky Man in the middle i Replay attack). Po autentizaci už však síťový provoz mezi klientem a serverem zašifrován není, a tak může být veškerá komunikace odposlouchávána (a rekonstruován nejen obsah obrazovky, ale zachyceny i všechny pohyby myši a stisky kláves). Proto se doporučuje VNC relaci navázat skrz zabezpečený tunel (SSH, VPN) nebo použít doplňující moduly, které umožňují automaticky veškerou komunikaci zašifrovat.

V tomto článku byl použit překlad textu z článku VNC na anglické Wikipedii.