Virtual Network Computing (VNC) – How it works
Virtual Network Computing provides remote control of a computer at some other location allowing users to operate that computer as if they were sitting in front of it. Any resources that are available at the remote computer, such as printers and network drives, are available.
What is Virtual Network Computing (VNC)?
VNC stands for Virtual Network Computing. It is a cross-platform screen-sharing system that was created to remotely control another computer. This means that a computer’s screen, keyboard, and mouse can be used from a distance by a remote user from a secondary device as though they were sitting right in front of it.
VNC works on a client/server model. A server component is installed on the remote computer (the one you want to control), and a VNC viewer, or client, is installed on the device you want to control. This can include another computer, a tablet, or a mobile phone. When the server and viewer are connected, the server transmits a copy of the remote computer’s screen to the viewer.
Not only can the remote user see everything on the remote computer’s screen, but the program also allows for keyboard and mouse commands to work on the remote computer from afar, so the connected user has full control (after being granted permission from the remote computer).
VNC was created in Cambridge in the late 1990s by the founders of RealVNC and was commercialized in 2002 when the company was established.
How does Virtual Network Computing Work?
VNC works by grabbing and sending screen graphics frame buffers using the remote frame buffer (RFB) protocol. RFB considers a viewed screen of GUI graphic rasters as a set of grids dividing the screen into smaller areas. When a grid changes, only the changed grid is sent. Every single change on a screen doesn’t require the app to send the entire viewed screen as a full 100% new raster. This conserves bandwidth and transmission when communicating changes from the VNC server screen to the VNC viewer. The least common denominator between VNC packages is that they support RFB, and keyboard and mouse use.
Multiple concurrent VNC server GUIs can be viewed by a single client, port access, and application permits. For this reason, some VNC clients are used for multiple server GUI viewing as low-grade and cost-management consoles. VNC is also used to control IoT devices, where the IoT device supports a real window manager rather than terminal or text-based graphics.
Virtual Network Computing controls keyboards, video, and mouse movement only. USB, sound/audio, and connected devices are typically not controllable; such resources cannot usually be redirected across the same network circuit. For this reason, VNC is used more as tech support or remote control tool rather than a network resource re-director, or virtualization. VNC is typically used over networks and requires proxies to work through IP network address translation (NAT).
Today, there are many variants of VNC that all attempt to do a similar task; accessing networked windows, desktop UIs, and application graphics. VNC and its variants are largely open sources, and available for a very wide variety of Windows variants (XP through 10 and server versions), macOS, Linux, BSD varieties, Android varieties, and more. A clear network path must exist between the two hosts in a VNC conversation. Ports 5900 and 5901 are typically used. For security purposes, some VNC products easily permit changing port numbers to ones that are not commonly used for VNC. Whatever ports are chosen, the ports must match the VNC server and the client.
Differences between VNC and RDP
Both VNC and RDP connect devices through a network, either via server or peer-to-peer. But even though their goals are the same – to provide graphical remote desktop capabilities to a device – they also differ in how they achieve that goal.
- RDP has limited platform capabilities, whereas VNC works across multiple operating systems.
- RDP can be faster than VNC.
- Security levels can vastly differ between the two protocols.
- VNC connects directly to the computer, but RDP connects to a shared server.
- RDP is not very compatible if you need to implement a remote desktop solution across a wide range of devices.
- Because of this, RDP can limit the ability to help IT.
Security of Virtual Network Computing
Since there are many VNC clients, and it offers consumers a wide selection of them, in a similar way, there are many variations of security available as well. The RFB protocol that VNC operates through offers password encryption; however, due to the weakness in how the passwords are processed, they can be easily compromised by a highly skilled cybercriminal. There are some up-to-date VNC that encrypt the entire connection, so everything is encrypted; however, not all VNC clients do this.
If you are keen on using a VNC client that doesn’t offer modern security and secure encryption up to date, it’s possible to process the VNC through a VPN. This will encrypt the entire connection; therefore, the actual VNC connection session and its encryption become less of an issue. An advantage that VNC offers over a VPN is the security of the environment that it separates. When connected to a remote network through a VPN, if the local computer has any viruses, they may be able to be passed onto the remote network you are connected to. That is less likely to happen when you are in a VNC session since only the keyboard and mouse clicks are transferred to between the remote and local operating systems. For a virus to be transferred between the systems, there would have to be a file shared for the virus to infect the remote network.
Pros and Cons of Virtual Network Computing
- High degree of interoperability can be expected among differing VNC family versions
- VNC server and client apps are available for many diverse operating systems
- Differing screen resolutions can be accommodated automatically among many VNC versions
- VNC can be easily installed and uses few resources when not actively in use
- Fast VNC screen refreshes are typical across comparatively slow networks
- Some versions will transport audio devices and can use other VNC server-attached devices and storage
- Generally, VNC is not a secure application and requires additional encryption and authentication to meet best-practices standards, especially when using the Internet
- Some versions are not maintained, while others have frequent updates/patches/fixes offered
- Generally, VNC uses a weak username and password authentication with unenforced difficulty
- Audio and other devices may not be supported or work poorly if network latency is poor
- Very high-resolution VNC server screens may be difficult to translate to smaller-resolution VNC viewers; this also impacts mouse precision
- Requires a network IP port to be open unless transported via a proxy protocol such as SSH or HTTPS
- VNC requires a proxy to work across network address translation; some versions include proxy and encryption and authentication as part of a product, typically with a commercial subscription
- Keyboard languages must generally match between hosts. UTF-8 character sets may require adaptation between hosts so that data entry matches between VNC client and server character sets
Common uses of VNC
Many companies allow workers to remotely access their desktops while away from the office using VNC. This provides some security because employees don’t need to take company documents and emails with them to respond to after-hour issues. Instead, they can always just log in to their work computer and the company data never has to leave the premises.
Business Continuity Processes (BCP)
Many disasters can occur which makes physical access to a workplace impractical. Having VNC access to work computers removes the necessity to have physical access to a computer and can help work continue during these times.
It’s also quite common today for parts, or all, of a company’s networking infrastructure to be located offsite; sometimes very far away in a cloud somewhere. When access to servers is completely remote, it’s possible to lose access to a server via normal means. Some cloud providers offer the ability to launch a temporary VNC instance to allow remote access to the console in those cases.
Remote Technical Support
In this case, Virtual Network Computing is the best solution for tackling technical issues remotely. VNC allows the technician to remotely control your computer as if they were sitting right in front of it, and it doesn’t require any specialized knowledge for the person who needs the support. Many corporations have VNC for their IT departments to assist in any help that other employees require. Some companies hire third-party companies to assist in technical support through a VNC. It also becomes highly helpful for the person receiving the support, since they can watch what is happening. If it’s a minor technical issue, they can learn how to avoid it in the future, or perhaps when the technician requires the person to enter a password; they can interact and assist the support person in this.