A CDN (Content Delivery network) means different things to different people. The word is used in many different contexts in a way that can confuse. That confusion is partly understandable because most CDNs utilise many different types of technology. So I thought I’d try and explain what a comprehensive CDN, like ours, does. What follows concentrates on the word delivery.
First some background. A web page today is made up, on average, of around a hundred objects. An object is a picture, some text, some html code or some Java-script. You will be familiar with a web page loading in your browser in bits and pieces. Those are the objects you can see but other objects are loading in the background to control actions on the screen.
Some of those objects are static and some are dynamic. Static objects are sent to every person. Dynamic objects are unique to the person making the request; they are generated at the time the person clicks on the URL to open the web page. If you use a web application like email or access a shopping cart, or do anything that involves the personalisation of the content displayed, then some of the objects delivered are dynamic.
Almost every web page has a mixture of static and dynamic content. The balance between the two differs depending on the type of page.
There is a huge amount of empirical evidence that shows that the speed at which a web page loads determines how much revenue is made from that page and how high the customer’s satisfaction is with the experience. And that linkage is measured in fractions of a second. And it’s just as important if you are only delivering some of the objects like the video or a file. Speed is vital for web site owners. The current expectation from all of us, as Internet users, is that a web page loads in around two seconds and that a video starts immediately and never buffers.
OK so what is a CDN? A CDN is designed to do two things within a secure environment*; Speed up the delivery of entire web pages or some objects on a web page, Distribute the load associated with delivery so that the host web location isn’t overwhelmed with demand.
A CDN achieves these goals in five ways;
- Reducing the number of bits that need to be delivered. Both static and dynamic objects can be compressed in various ways. Smaller objects are sent over the Internet quicker than larger objects.
- Combining objects into a smaller number of packages. All of those objects are requested one after the other by the browser. Every request has to be made through the Internet and takes time. Less requests result in the delivery time being lower.
- Replicating static objects closer to everyone’s computer. This is called caching and streaming. The compressed and combined static objects from 1 and 2 above are stored, or cached, at many locations so that the distance they actually have to be transmitted is shorter and therefore takes less time. Or a video object is streamed from many locations. These techniques also achieve the distribution goal as well.
- Building fast paths through the Internet. A dynamic object cannot be cached or replicated because everyone receives a different version. These objects always have to be delivered further across the Internet; – usually from a single host or origin location. The protocol that the Internet uses (Transmission Control Protocol or TCP) was designed for simplicity and for congestion avoidance. It wasn’t designed for speed. The good news is that there are a variety of clever treatments that can be made that optimize TCP flows to make best use of available bandwidth. These dramatically increase the speed with which dynamic objects travel. These treatments also need to be adaptive because they need to adjust, in real time, to changing conditions on the Internet.
- Delivering content before it is requested. The CDN is designed to dynamically track the way people travel through web sites. In real time the CDN updates what the most likely next click through a web site is for all the various types of users. And in anticipation of that click the objects that are most likely to be requested next are sent to the browser. They are then ready for instantaneous display when a link is clicked. Feels like magic but is based on some very clever algorithms.
And that’s it! Simple. Well, maybe simple to explain but there are a lot of very clever people writing code and deploying technology throughout the Internet that actually make all this happen; And improving it every day.
Some CDN’s don’t do all of these things but are still called CDNs. Some CDNs, like ours, do a lot more than delivery but are still called CDNs. The industry is full of different acronyms and a lack of transparency that I don’t think helps customers.
All we are trying to do is deliver web pages, and objects within those web pages, as fast as possible while not overloading any particular part of the network with excessive demand. Can your CDN provider say as much with clarity, simplicity and without resorting to incomprehensible language?
*A CDN also has to operate in a safe and secure environment … but more of that in another blog post