I am trying to understand how a VNC works using X11 and RFB protocols.
I see my XVnc process listens on 59xx(RFB), 58xx(HTTP) and 60xx(X11) ports.
I do not know what is HTTP for, but I think we can exclude that from picture and still can understand how Xvnc uses RFB and X11 protocols.
From the definition in here: https://www.rfc-editor.org/rfc/rfc6143, I understand that RFB protocol is for remote access through GUI and which uses framebuffers.
Each client session has a dedicated framebuffer which is accessed by client, modified on client request and updates on it are sent to client.
X11 is this protocol is to display any GUI applications like it tells how to display a window or text etc.
So, is my following understand correct?
- The client communicates to server on :59xx port using RFB protocol and sends any requests.
- The requests are then processed by a component of Xvnc service running on :59xx port and a request to :60xx port is created in X11 protocol.
- The Xvnc service component on :60xx port then provides an output and is processed by Xvnc service and updates the frame buffer.
- The update is sent to client in RFB protocol in simplest way using different methods to reduce network data.