VNC remote desktop solution and principle introduction

1. Introduction to VNC principles

VNC (Virtual Network Computing) is a remote desktop protocol that allows you to remotely access and control the graphical desktop of other computers over the network.

The following are the core technologies used by VNC:

  1. RFB (Remote Framebuffer Protocol) : RFB is the core protocol of VNC, which defines the rules for communication between the client and the server. Through the RFB protocol, the server can transmit its graphical desktop content (framebuffer) to the client and receive user input (such as mouse and keyboard operations) from the client. The RFB protocol allows VNC servers and clients to run on different operating systems and hardware platforms, making cross-platform remote desktop access possible.
  2. Framebuffer : In VNC, the server's graphical desktop content is stored in the framebuffer. This is a bitmap memory area that represents pixel data for the entire graphics desktop. When the VNC client connects to the server, the server transmits the pixel data in the frame buffer to the client, thereby realizing the display of the remote desktop.
  3. Image compression and encoding : VNC uses image compression and encoding technology to reduce the amount of data transferred, thereby improving the performance of remote access. The server compresses and encodes the image in the frame buffer, and then transmits the compressed data to the client. The client decodes and decompresses this data to display the remote desktop.
  4. Mouse and keyboard event transmission : When the VNC client operates the mouse or keyboard locally, the client will transmit these input events to the VNC server. The server receives these events and applies them to its local desktop. Likewise, the server's local mouse and keyboard events are transmitted to the client for reflection on the client's remote desktop.
  5. Authentication and Security : VNC allows authentication upon connection to ensure that only authorized users can access the remote desktop. This can be achieved through password authentication or other security methods. In addition, VNC can provide encrypted connections through TLS/SSL protocols to enhance the security of data transmission.

2. VNC remote desktop solution

1.TigerVNC

TigerVNC is an open source VNC server and client software that began to develop independently in 2009 as a branch of TightVNC. It is a high-performance VNC server and client implementation that supports multiple platforms and provides a smooth remote desktop experience.

The advantages of TigerVNC are as follows:

  • High performance: TigerVNC is a high-performance VNC solution derived from TightVNC and improved in performance to provide a smooth remote desktop experience
  • Cross-platform support: TigerVNC supports multiple platforms, including Linux, Windows, Mac, etc., so it can run on different operating systems, making cross-platform remote access possible; there is no server for macOS, and starting from version 1.11.0, The Windows version of VNC Server is no longer maintained.
  • Image compression: Supports image compression, suitable for low-bandwidth environments, which can reduce the amount of data transmission and improve performance

Official website address: https://tigervnc.org/Source
code address: https://github.com/TigerVNC/tigervnc

2.TightVNC

TightVNC is an open source VNC client and server that focuses on performance optimization under low-bandwidth connections. It supports multiple platforms and various authentication methods.

The advantages of TightVNC are as follows:

  • Low-bandwidth optimization: TightVNC is a popular VNC software that focuses on performance optimization under low-bandwidth connections and can provide better performance in low-speed network environments.
  • Multi-platform support: Supports multiple operating systems, such as Linux, Windows, etc.
  • Easy to use: TightVNC provides an easy-to-use interface for those interested in basic remote desktop functionality.

Official website address: https://www.tightvnc.com/

3.UltraVNC

UltraVNC is also an open source VNC client and server, adding more features and user experience, mainly suitable for Windows systems.

The advantages are as follows:

  • Provides VNC client and server versions, and adds more functions and new features

The main features are as follows:

  • File transfer function
  • Chat function
  • Features optional DSM encryption to protect communications between viewer and server
  • Compatible with multiple VNC implementations

Official website address:
https://uvnc.com/Open
source code:
https://github.com/ultravnc/UltraVNC
Reference materials:
https://uvnc.com/docs/uvnc-server.html
https://uvnc.com /docs/uvnc-viewer.html

4.RealVNC

RealVNC also provides client and server functions, supporting cross-platform features, including Windows, Linux, and MacOS. RealVNC mainly provides commercial versions, which require a fee, but also provide more features.

Official website address: https://www.realvnc.com/en/a/

5.x11VNC

x11vnc only provides the function of vnc server and does not provide vnc client. Currently, x11vnc only supports Linux and Unix systems and does not support Windows systems.

x11vnc is part of the LibVNCServer project and is free software provided under the GNU General Public License. x11vnc is written by Karl Runge.

x11vnc supports many UltraVNC extensions to VNC, including file transfer functions.

Open source code:
https://github.com/LibVNC/x11vnc, the latest version of x11vnc is version 0.9.16.

6. LibVNC

libvnc includes LibVNCServer and LibVNCClient

libvnc is a cross-platform C language library that allows you to easily implement VNC server or client functions in your program. It includes two basic libraries, LibVNCServer and LibVNCClient, and can customize VNC functions according to your needs.

Open source code: https://github.com/LibVNC
Reference documentation: https://libvnc.github.io/

3. Summary

For cross-platform support TigerVNC might be a good choice. If you value security and advanced features, and are willing to consider a commercial version, RealVNC is worth considering. And if you are a Windows user and need some additional practical features, UltraVNC may be more suitable for you.

四、RDP vs VNC

VNC(Virtual Network Computing)::

The technology used by VNC is the display screen sharing of the RFB (Remote Frame Buffer) protocol. It can be independent of the operating system and cross-platform because its working principle is to draw the image locally and then send it remotely. The client performs decoding and display. Therefore, the bandwidth requirements will be relatively high. In terms of sessions, sessions are shared . For example, if you need to assist someone remotely, screen sharing brings natural advantages. But there will also be security risks. For example, if the Admin is using Windows at this time, if you VNC over it, you can use the entire Windows together.

RDP (Remote Destkop):
Most Windows support this protocol and can remotely access the operating desktop. Unlike VNC, it has higher requirements on the client. It requires the client to complete the drawing task itself , that is, it will use the bandwidth The drawing instructions are sent to the client through the network, and the client performs the drawing itself, so the bandwidth requirements will be relatively low. **At the same time, for the session itself, RDP will provide you with an independent new session, which is actually beneficial to multiple users, and everyone is indifferent.

Reference article:
https://www.toutiao.com/article/6940087932715844100/?&source=m_redirect

Guess you like

Origin blog.csdn.net/xiao3404/article/details/131948771