What is a CDN (content delivery network)?

A content delivery network (CDN) is a system of servers spread throughout different data centers located around world. This proxy server network is ideal for extending your website’s reach or expanding the customer base of your web application. Using such a network means that your webserver connects to many other servers. And with the help of a distribution system, your webserver’s static content can be transferred to replica servers. A request routing system determines which replica server in the CDN is best suited for delivering data when users access certain content on your website. Depending on the provider, CDNs vary in several ways: the distribution and number of servers as well as the degree to which high-performance backbone networks are integrated are a few examples of how they can differ. 

How data is delivered in CDNs

When accessing information through a CDN, users are unaware of whether they are accessing data directly from a given website’s exit server or from a replica server. Most users never really catch wind of this process and will only notice the shorter loading times, if anything at all.

The most important aspects regarding the two components involved in delivering data within CDNs are the distribution system and the request routing system. The distribution system transfers content to the replica server and also ensures that the right data has been sent and is up to date. There are two ways of going about this process: one method occurs when the distribution system immediately sends new and modified data to all other servers within the Content Delivery Network. Another option involves sending the replica server a message telling the CDN that the updated content is available and can be requested when needed. In order to ensure that user requests find their way to the right servers, a request routing system is used. In just two steps, this mechanism makes sure that requests are rerouted in the best possible way.

Wanted: the right replica server

For the first part of this process, the most suitable server for answering the user’s request needs to be located. The request routing system uses key indicators that are calculated with the help of a host of different measurement techniques. These various indicators identify, for example, whether a client-side or serverside connection is at hand. By using serverside readings (e.g. general CPU utilization or the number of active server hits), the replica server with the smallest usage rate is identified. By taking into account the properties between the client and the server, the request routing system identifies the server with the best connection to the client. Latency period, the average transfer rate, packet loss rate, and geographic proximity are all factors of a CDN that are considered during this step. Client side key indicators reveal the identity of users requesting access. This information is then used by the CDN should content be delivered in varying degrees of quality (i.e. standard vs. premium customers).

The weighting of various key indicators always depends on the data that’s being requested: dynamically generated content generally requires servers with good key indicators, while a stable connection between the client and server is the most important requirement when using streaming media.

Forwarding requests

Once the target server has been determined in the CDN, the second step in this processes consists of forwarding the requests through the request routing system. There are many different methods for this ‘request redirection’ process. Most of them vary from one another in that they are directed from different locations: from the client, in the network, or on the replica server.

Directing the request from the client is a relatively simple method to carry out, and the client also has a large selection of replica servers at their disposal. The disadvantage here is that the content delivery network has very little influence in allocating the client to the right server. The serverside HTTP-302 redirection status code is also easy to implement and is equipped with useful information on the CDN. In this case, the exit server replies to the request with the status code mentioned above, and through this informs the client about the best suited replica server, which is then automatically contacted through a further request. Doubling the required connections is the main disadvantage of this process.

The most popular forwarding method is known as DNS-based request routing. Requests placed by clients on a local DNS server are forwarded to a special DNS server within the content delivery network, which in turn returns the IP address of a replica server. The biggest disadvantage of this process is that constantly looking up information in the domain system leads to access delays.   

The perks of a CDN

Thanks to a global network of servers scattered across the globe, customers benefit from quicker loading times and smaller burdens on bandwidths. But operators also have some considerable advantages with CDNs: by forwarding queries, not only are server occupancy rates minimized, cached data is also more secure. This is because security breaches, like DDoS attacks, don’t reach the exit servers at first. Requirements for protecting cached data include keeping user names and passwords out of the CDN, as this increases the chances of a successful attack. Assigning a custom domain for the outsourced CDN content is well worth the work, since this prevents attacks from spreading onto other parts of the website. Here’s a summary of all the advantages of a CDN:

•    Static elements like HTML pages, images, stylesheets, documents, or client-side scripts are buffered in the replica server’s cache and needn’t be requested from your webserver any longer. This spares your server from overuse and also shortens the loading time for users. All of this leads to lower bounce rates and good search engine rankings.
•    The limited usage of the server as well as all involved applications protects your server from overuse and other potential threats, such as outages. This has a positive effect on the hardware needed for hosting.
•    Server operators can decide which static elements clients in the content delivery network are supposed to download. For example, should you only wish to store images from your blog, they can then be loaded alongside the rest of the page, ensuring a faster overall loading time.
•    When it comes to streaming videos and music, websites benefit from delivery with CDNs, as large sums of data need to be processed over a short period of time. This also counts for live-streams.
•    Spikes in traffic and increasing visitor numbers are easy to overcome with a CDN. The request routing system’s search for replica servers with free capacity is especially worthwhile when working with files that are available for download. It’s also beneficial for those operating online stores.
•    CDNs don’t only cut down on loading times, they also limit the bandwidth usage that is connected with the information request of your content.
•    The security of your server, data, and used applications increases by using a CDN. This is because attacks can be detected and dealt with early in the game.

1