Episode ini membedah arsitektur internal VNC dan RDP: model server-to-client pada RFB, kaitan display dengan port 5900, peran vncpasswd, mekanisme encoding Tight, Hextile, dan ZRLE yang menentukan kualitas dan latensi, hingga NLA pada arsitektur RDP.

Di episode 1 kalian sudah mengenal asal-usul remote desktop. Episode 2 masuk lebih dalam: bagaimana sebenarnya VNC dan RDP bekerja di balik layar? Kalian tidak perlu menjadi penulis protokol, tapi memahami arsitektur ini akan menyelamatkan kalian saat koneksi lambat, layar hitam, atau refresh yang patah-patah.
Fokus episode ini ada tiga: model komunikasi server-client pada protokol RFB, mekanisme encoding yang menentukan efisiensi bandwidth, dan arsitektur RDP beserta NLA. Di akhir episode, kalian akan tahu kenapa VNC kadang terasa "berat" di jaringan lambat, dan mengapa RDP lebih unggul di skenario tersebut.
VNC bekerja dengan pola server-to-client: server memegang framebuffer — representasi piksel dari layar yang di-share — lalu mengirim potongan-potongan layar ke viewer. Arah sebaliknya hanya berisi event input: gerakan mouse, klik, dan penekanan tombol keyboard.
Inilah kenapa VNC sangat portable: karena yang ditransfer adalah piksel, bukan instruksi aplikasi, maka VNC bisa men-share hampir semua sistem yang bisa merender grafis — Linux, Windows, bahkan sistem tanpa GUI murni.
Setiap VNC server punya nomor display. Display :0 berarti port 5900, display :1 berarti port 5901, dan seterusnya dengan rumus 5900 + nomor display. Koneksi bisa dilakukan dalam dua format:
host:display — contoh server:1host:port — contoh 192.168.1.20:5901Saat pertama kali server dibuat, kalian harus menetapkan password dengan vncpasswd. Password inilah yang akan diminta viewer saat handshake:
vncpasswdPerintah vncpasswd menuliskan password ke file ~/.vnc/passwd secara terenkripsi (DES). File ini dipakai server untuk memvalidasi client pada saat koneksi dibuka. Detail keamanannya — termasuk kelemahan VNC password — akan kita bedah di episode 12.
Karena VNC mengirim piksel, cara piksel itu dikodekan sangat menentukan kecepatan. Mekanisme ini disebut encoding, dan setiap client-server menyepakati encoding yang dipakai saat handshake. Empat encoding yang paling penting:
Pemilihan encoding adalah kompromi antara CPU, bandwidth, dan kualitas:
vncviewer -encodings zrle server:1Opsi -encodings zrle pada vncviewer memberitahu viewer untuk memprioritaskan ZRLE. Di episode 19 kita akan membahas tuning ini lebih jauh saat optimasi performa dan bandwidth.
Berbeda dengan VNC, RDP bukan sekadar "kirim piksel". RDP adalah protokol bidirectional yang memisahkan presentasi data, input, dan channel periferal dalam lapisan-lapisan tersendiri. Koneksi RDP bisa membawa tidak hanya layar dan input, tapi juga clipboard, printer, sound, dan drive mapping — semua dalam satu sesi.
Port default RDP adalah 3389. Server RDP di Linux biasanya memakai xrdp, yang akan kita bahas menyeluruh di episode 15.
Salah satu fitur keamanan kunci RDP adalah NLA (Network Level Authentication). Dengan NLA, client harus melakukan autentikasi — biasanya dengan kredensial pengguna — sebelum sesi desktop penuh dibangun. Ini mencegah serangan di mana penyerang berinteraksi dengan layar login palsu atau memboroskan resource server.
xfreerdp /v:192.168.1.20 /u:arman /sec:nlaPerintah xfreerdp /v:... /sec:nla memaksa autentikasi NLA ke server RDP. Dibanding VNC yang autentikasinya "password sebelum layar", RDP mengautentikasi user utuh dengan mekanisme Windows/Linux.
Dengan memahami arsitekturnya, kalian bisa membandingkan secara adil:
| Aspek | VNC | RDP |
|---|---|---|
| Transfer | Framebuffer piksel | Protokol berlapis + channel |
| Efisiensi WAN | Tergantung encoding | Kompresi bawaan agresif |
| Autentikasi | Password statis | NLA kredensial |
| Periferal | Keyboard + mouse | Clipboard, printer, sound, drive |
| Ekstensibilitas | RFB spec terbuka | Proprietary |
Aturan praktisnya: di LAN dengan koneksi cepat, VNC dengan encoding Tight/Hextile nyaris tanpa beda dengan RDP. Di WAN dengan bandwidth terbatas, RDP hampir selalu menang karena kompresinya dirancang untuk itu. Tapi VNC tetap juara untuk cross-platform dan kasus di mana kalian hanya butuh melihat layar, bukan memetakan drive atau printer.
LAN -> VNC (hextile / tight)
WAN -> RDP (NLA + kompresi bawaan)Episode 2 membuka kotak hitam VNC dan RDP: model server-to-client pada RFB dengan pengiriman framebuffer, rumus port 5900 + display, peran vncpasswd, mekanisme encoding Tight/Hextile/ZRLE yang menentukan kualitas dan latensi, hingga arsitektur RDP dengan NLA dan channel periferal.
Inti yang harus dibawa pulang:
host:display.Di episode 3 selanjutnya kita mulai praktik: instalasi VNC server di Linux — memilih antara x11vnc, TigerVNC, TightVNC, dan GNOME Remote Desktop, lengkap dengan perintah install di Debian/Ubuntu, RHEL/Rocky, dan Arch. Pastikan mesin server kalian siap, karena mulai episode ini kita serius menyentuh terminal.