VPNs are tools used to better your online privacy and security. Invented back in the 90s, they are nothing new. With the advent of an ever-increasing awareness amongst general internet users and the swelling rate of cybercrime, they have become more popular than ever. A VPN is a network just like a LAN. It connects a client to a server. Although virtual, it is a very secure and private network. Just like any other network, it has a gateway, a server, and a client. It works on a protocol and tunnels the user to a remote server to ensure uninterrupted, secure, and private access to the internet. There are many other components of a VPN but, in this article, we will be focusing on the VPN client. We will explore the client-server architecture of a VPN and answer questions like what is a VPN client and its uses are.
Any network is a combination of multiple devices interlinked and sharing information with one other. The computers on a network are all connected to facilitate the flow of information; a network has to rely on protocols and designate servers and clients. A VPN is a network; thus, it has servers and clients too. Generally, a client is an end-user application(software) or hardware at the client/user end. The primary function of a client is to access resources and information from a server. But is a VPN client the same? To learn more about VPN clients and how they work, we have to first look at what a client is.
What do we mean by a client in networking
We tend to view VPNs as commercial products. However, before they were a tool for privacy, VPNs were used to facilitate inter-business communication. A VPN as technology is similar to a network. Comparable to other networks, VPNs, too, have multiple devices interlinked sharing resources. But what a VPN facilitates is not communication but remote access of servers via clients. So, before we try to understand a VPN client, we need to learn more about what role a client plays in networking.
What is a client?
A client is a device (computer or an application/program) that connects to and uses the resources of a remote computer (server). It is at the receiving end of a service (requestor) located on a network. It can be a single application or a whole system of applications that accesses services provided by a server. The client is most often on a different device, accessible via a network. Initially, clients were devices (hardware) unable to run their stand-alone programs. However, with the growth of technology, a client can even be on the same machine as the server. It connects to a server through different means like domain sockets, named, shared memory, or internet protocols, which is the most common method adopted since the widespread application of the internet.
A client works on a client-server model and is a part of the client-server architecture. It is at the receiving end. The server provides resources like files, information, internet access, and external computing power to a client. Any operation on the server end is known as server-side work, and, unsurprisingly, on the client end, as client-side work.
Client examples
Prominent examples of a client are:
- Web browsers — In essence, browsers are clients that, via the internet (network), request the server for information and retrieve results (web pages) for display.
- Email clients — Email clients (end-user email applications) retrieve emails from the server for the user.
- Online chat — The provider connects various clients over a network. A server stores and retrieves data accordingly.
- Multiplayer games — Each player is a client that connects to a server to share information/resources (it translates into action on the game interface).
- End-user software — Any commercial application will have end-user software to allow their users to access the promised resources.
Types of a client
Although vague, a client can be of three types: Thin client, Thick/Fat client, and Hybrids.
Thick/Fat client
A Thick client is also known as a rich client or a fat client. It is a client that performs the bulk of any data processing itself. It doesn’t rely much on the server. A PC is a typical example of a thick client.
Thin client
A minimal sort of client that relies heavily on servers for operation. A Thin client uses the resources on a server and generally only presents the processed data provided by a server. A device using web apps is a thin client.
Hybrid
A Hybrid, as the name suggests, is a mixture of the above two clients. It processes locally, like a Fat client but relies on servers for storing persistent data. This approach offers features from both clients.
- Fat clients – multimedia support and high performance.
- Thin clients – high manageability and flexibility.
Gaming consoles that run online games are the best example of a hybrid client.
VPN client definition
A VPN provider not only gives you access to their network and servers but may also provide an end-user software/application to facilitate easier connectivity. VPNs work in the background, and a typical user doesn’t even know what a VPN does on their device. As such, there are several ways to configure a VPN connection. However, with the growing demand for commercial VPNs, the providers, recognizing the market potential, have started to make their end-user clients easier to use. Nowadays, a user can connect to a VPN server with a single click. This click button within the VPN application that runs on your devices is what we call a client.
Like we mentioned above, VPN infrastructure consists of several components such as gateways, servers, protocols, and clients. A client is the ultimate receiver of services. As such, be it as a technology or a product, VPN services for the sake of clients/users. To make this transition smoother, a network (like VPN) will make its client easily accessible. A VPN client is software that works with the VPN server to establish a secure connection between your device and the server.
Technically, a VPN client is an end-user device – hardware or software which connects to the VPN server to gain remote access to the internet. It can either be a stand-alone purpose-built device or a standard networking device installed and configured with VPN client software. A VPN client requires authentication before it can connect to a server and gain resources.
Functions of a VPN client
A VPN client has only two jobs:
- It provides the user with a secure connection (tunnel) to the server and, thus, remote access to the web.
- It encrypts and decrypts the flow of data from the user to the server and vice versa.
How does a VPN client work?
Before a VPN client and server initiate communication, they authenticate each other over data packets. This is a crucial step, as it ensures that the client is communicating with the correct server and vice versa. Then, the VPN client encrypts your data and sends it over to the server, which then decrypts it before forwarding it to the internet. When the server receives the reply from the web, it encrypts the reply and sends it along to the VPN client, which decrypts it and presents it for you to view.
Due to this tunnel-like structure between a VPN client and server, your data remains safe from the prying eyes of the ISP, government, or criminals.
- First, the VPN Client establishes a connection to the server, and both ends verify and authenticate each other.
- Then the client and the server exchange their public keys; A public key is a one-way equation that allows encryption but not decryption.
- The VPN client takes the server’s public key and uses it, thus making outgoing data unreadable to anyone except the server.
- The data reaches the server, which uses its private key to make that data usable.
- The server sends the decrypted data to the website or service the user wants to reach.
- The server also puts its IP address on the data, so the online destination thinks the user is connecting from the server’s location.
- Note. This is pivotal for bypassing geo-restrictions and censorship.
- The server collects the reply, uses the client’s public key to encrypt it, and sends it back.
- The VPN client receives this data, which it decrypts using its key and presents the information for you to view.
Types of a VPN client
Generally, there are two types of VPN clients:
- Native or built-in client — Pre-installed or pre-configured VPN clients that are available in some operating systems. Examples: Windows, macOS, iOS, Android, and Linux distros like Ubuntu.
- Third-party client
- By protocol developers — End-user clients from VPN protocol developers like OpenVPN or SoftEther client.
- By VPN providers — End-user software from VPN providers. Generally, a client by a VPN provider will have many extra features, like kill switch, server selection panel, ability to change protocols, etc.
Importance of a VPN client
As we know, that there are several ways for us to configure a VPN connection. Some prefer manual configuration. However, there are benefits linked to an end-user VPN client such as:
- Easy interface — VPNs are user-centric. Without an end-user client, people will have to control the VPN via command prompt (or alternative on different platforms). However, most users don’t want to open up the command prompt to type in commands. Being able to control everything with a few clicks is a great benefit to most people.
- Up-to-date information — A VPN client will ensure that the user has the latest information regarding the VPN. Here are 3 examples. What servers are out there? How busy are they? Is the connection established? These help the user make an educated decision.
- Customizability — VPN clients empower the users. They allow for the maximum control a user can have on the connection e.g., enable them to select the tunneling protocol. Another common use is setting up a VPN to launch at device start-up.
- Enables additional features — VPN providers offer various extra features to make their services appear more attractive to potential users. As such, their end-user application has much to offer. Features like split tunneling or kill switch have become increasingly common because of VPN clients.