A Content Delivery Network or Content Distribution Network, abbreviated to CDN, is a network of computers that can contain copies of data. Computers on the CDN can request data they don’t already have from other computers on the network that can then be delivered.
If, for example, someone wanted to do a live video broadcast from London who has visitors from all over the world wanting to watch at the same time. This would put a massive load on the Video Streaming Server server delivering the media, in this example a video stream. Imagine if the viewers of this webcast wanted to watch from Australia, New York, Los Angeles and Japan. The streaming server in London would have to broadcast this live video stream to all those locations which means the video streams would have to ‘hop’ many times before reaching their destinations on the various continents. This compromises the speed of delivery and puts a massive load on the internet connection being used by the streaming server. It also means the video stream may experience ‘packet corruption’ or even ‘packet loss’ meaning the quality of the video being watched could be compromised. This is more relevant if the broadcast is using UDP. If the broadcast is being done over TCP there are more ‘load’ issues because there is a constant communication between server and client.
So the answer to this problem is to have a ‘Point of origin’ server that takes the original video stream, which then passes it on to ‘Point of presence’ servers, or PoPs, around the world upon request. So now our streaming server in London does not have to deliver to Australia, New York, Los Angeles and Japan as in our above example. A visitor that would like to watch the video stream in Australia would use the same online player as people in London to watch the video, but now the player is looking at a CDN for a video stream rather than the single streaming server in London. The CDN would know from the requesting IP address that the request is coming from Australia and would request the video stream from a ‘Point of presence’ server nearest to Australia. If that stream does not exist, probably because it has not been requested from this location before, the ‘Point of presence’ server would request it from the ‘Origin server’. This process would be the same for the viewers in New York, Los Angeles and Japan.
The advantages of this are that the workload to broadcast the video stream is balanced across many servers rather than just one. The bandwidth is also balanced because all the streams are not coming from the same source, which means more concurrent users can view the video stream with much greater stability. All the CDN servers, the ‘Point of origin’ and the ‘point of presence servers’, are strategically placed around the world on an internet backbone making the delivery speed between servers very fast and reliable.
Content delivery networks are not bound to only sharing the load of video and audio streams. We can share images and PDF files in the same way. In fact any digital media can be requested over a CDN. We are not only confined to media being distributed over a CDN, websites can be cached which obviously makes for faster delivery around the world. This is very important for corporate websites that have millions of hits.
Another advantage of using a CDN is that once your digital media is on the ‘Origin’ servers or on the ‘Point of presence’ servers, it is effectively backed up. If a client requests data from a CDN server that is down, the CDN can make a request to another server on the network and is still able deliver the media.
The last thing I would like to point out about using Content Delivery Networks is that the ‘Point of origin’ servers can be your company’s servers in your company’s server farm. They do not have to be a CDN server. This practice is not recommended by most CDN’s as it is more likely to be your company’s server that is down or experiencing connection issues rather than a CDN server. The one advantage of having your own ‘Point of origin’ server is it does allow you to maintain local backups of your content should you need to.