VNC (Virtual Network Computing - Sanal Ağ Sistemi), bir ağ sunucusu üzerinde çalışan grafik arabirimli uygulamalara, başka bir ağ üzerindeki bilgisayardan erişerek bu uygulamaların kullanabilmesini ve yönetilebilmesini sağlar. Uzaktaki bir bilgisayara VNC sunucusu ve bağlanacak olan bilgisayara VNC istemcisi kurulur. VNC, kurulan sunucu ve istemcinin etkileşimini sağlar. VNC sunucusu masaüstü ve pencere görüntülerini, görüntü akışı şeklinde VNC istemcisine gönderir. VNC istemcisi video oynatıcı görevi alarak bu görüntüleri gösterir. İstemciden sunucuya bağlanıldığında kimlik doğrulama gerçekleşir. Kimlik doğrulama işlemi tamamlandığında, kullanılacak olan masaüstü biçimi ve piksel biçimi isteği istemciden sunucuya bildirilir. Etkileşim sonucunda bağlanılmak istenilen bilgisayarın masaüstü erişimi sağlanır. VNC ile sunucudan istemciye dosya aktarımı gerçekleştirilebilir, sunucuda sabit diskten dosya ve veri arama yapılabilir. Bu sayede istemci bilgisayara uzak masaüstü bağlantısı yapılmış olur. Bu bilgisayara işlem yapılabilir ve yönetilebilir.
VNC, bir ağ üzerinde bulunan bilgisayarda VNC istemci (VNC viewer) programını çalıştırır. Böylece başka bir ağ sunucusu üzerinde bulunan VNC sunucu (VNC server) ile etkileşimini sağlar. Bu etkileşim sonucunda uzaktaki bilgisayarın ekranını görerek, klavye ve fare hareketleri ile masaüstü erişimini sağlar.
VNC bağlantısı üzerinden istemci ve sunucu arasındaki iletişimde oturum başlatma ve kimlik doğrulama şeklindedir. Kimlik doğrulamada maksimum 8 karakterlik şifre kabul eder. Bu iletişim DES (Data Encryption Standard - Veri Şifreleme Standartı) ve farklı VNC uygulamalara bağlı olarak 3DES (Triple Data Encryption Standard - Üçlü Veri Şifreleme Standardı) şifreleme standartları ile şifrelenmektedir. DES verileri 64 bitlik bloklar halinde şifreleme algoritmalarıdır. Ayrıca 8 karakter ve daha az karakterli şifreleri kurtarmak ve kırmak daha kolaydır. Bu nedenle VNC şifrelerinin kırılması kolaydır. Şifrenin kırılması 1 günden kısa sürede mümkün olmaktadır. Bu sebepden dolayı VNC uzak masüstü bağlantısı için güvenli değildir. Aynı zamanda VNC sınama/yanıt (challenge/response) mekanizması kullanarak ağ üzerinde açık metin parola iletimini engellemeye yardımcı olur.
VNC protokolü, OSI (the Open System Interconnection-Açık Sistem Bağlantısı)'de 6. katman olan Sunum Katmanı (Presantation Layer)'nda çalışır. VNC protokolü sunum katmanı üzerinden istemci ve sunucu üzerinde çalışan yazılımların nasıl veri değişimi yapacağını belirler. Yollanan verinin istemci ve sunucu tarafından anlaşılabilir halde olmasını sağlar. Böylece farklı programların birbirlerinin verisini kullanabilmesine olanak sağlar.
VNC sistemi VNC istemcisi, VNC sunucusu ve bir haberleşme protokolü olan RFB (Remote Frame Buffer)’ dan oluşmaktadır.
- VNC istemci, VNC sunucusuna bağlanmayı sağlar.
- VNC sunucusu, bağlanılmak istenilen bilgisayara kurulur ve bu sayede istemci bilgisayarın kendisine bağlanarak yönetmesine olanak sağlar.
- RFB, grafik arayüzlerine uzaktan erişimi ile bilginin sunucudan istemciye iletilmesini sağlayan bir haberleşme protokolüdür. RFB protokolü ile klavye ve fare hareketleri ağ üzerinden başka bir bilgisayara gönderilip meydana gelen grafik bilgisi ve cevapları görüntülü olarak geri alınır. RFB protokolü TCP/IP protokolü üzerinden uzaktan erişimi sağlar. TCP, OSI katmanlarından 4.sü olan Taşıma Katmanı (Transport Layer), IP ise 3.katman olan Ağ Katmanı (Network Layer) protokolleridir. RFB protokolü TCP üzerinden yollanacak veriyi parçalara bölünmesini ve alıcı sistem olan VNC sunucusu üzerinde tekrar birleştirilmesini sağlar.
RFB protokolü sayesinde ağ üzerinde uzak masaüstü bağlantısı yapılan bilgisayar ile ona bağlanılmak istenen bilgisayarın işletim sisteminin aynı olması gerekmez. Bunun yanında VNC ile birçok istemci aynı anda bir sunucuya bağlanma özelliğine sahiptir.
VNC'nin çalışma şekli, istemci bilgisayardan gönderdiği klavye ve fare hareketlerini RFB protokolü sayesinde hedef bilgisayara gönderip ve hedef bilgisayarın ekranını görmeyi ve yönetmeyi sağlayan grafik arayüzlü uzak masaüstü paylaşımı şeklindedir. Farklı işletim sistemleri arasında uzak masaüstü bağlantısı yapması ve dosya paylaşımı, sıkıştırma ve güvenlik gibi özellikleri destekleyecek şekilde geliştirilmiş olmasından dolayı VNC kullanımı fonksiyoneldir.