What is a Content Delivery Network?
Various Web 2.0 technologies have transformed the Internet and the Internet is now enabling content to be delivered in various forms – Text, Images, Flash, Audio, Video, etc. When companies need to serve such diverse forms of content, most of the time, they distribute them by hosting them in servers in their data center(s). But the consumer pattern is not always uniform. There may be sudden bursts of traffic requesting web based content from consumers located around the globe. To accommodate for the demand, companies need to estimate and provision additional servers in quantities enough for handling peak loads. More over, on the Internet, there is always a factor of RTT (Round Trip Time) and Packet Loss that needs to be considered, and these parameters have a higher effect on the consumers who are located at greater distances from the servers.
It is to accommodate for these limitations, that Content Delivery Networks were created. A Content Delivery Network is a network of servers hosted by a service provider in multiple locations of the world (usually shared with multiple customers) so that the content could always be served from a server that is nearest to the consumer requesting for it. And besides, since multiple servers are used, the load is distributed and consumers get better quality content, faster. There are many more advantages to a CDN, which we will see in the final section of this article.
A Content Delivery Network (CDN) consists of two components: The Origin Server(s) – where the content to be distributed over Internet is originally stored & Cache Server(s) – where the content is duplicated. There is generally one Origin Server (either in the customer’s data center or in the cloud, with the content delivery network service provider – for example) and many cache servers (in multiple locations across the globe) so that, when a consumer is requesting a particular content on the Internet, it can be served by a cache server nearest to the consumer’s geographical location if the content is available there. Other wise, cache server fetches the content quickly from the origin server after protocol/route optimizations.
Content Delivery Networks provide the following (at a glance):
- Serving the content from the closest possible geographic location to minimize network latency.
- Replication (Caching) and deployment of large number of servers to minimize the server latency.
- Capacity On Demand.
- Monthly charges as per the content delivery (without high initial investments).
- Application Acceleration, Compression, Protocol optimization, etc.
- Route optimization (to identify and route traffic through the best/shortest/least congested route between origin server and cache servers.
- Static/ Dynamic/ Encrypted content optimization and faster delivery.
Some technologies used by Content Delivery Network (CDN):
Apart from Caching and geographically accessible placement of servers, content delivery networks employ many more technologies to make sure that the content is delivered faster and more efficiently to the consumers. Some of the common technologies employed by CDN are given below to get an idea.
- While the static content can be cached on the cache servers to be served immediately to the consumers, dynamic content/ embedded objects etc, cannot. So, CDN takes advantage of the http request procedure: When a website is requested, the html is served first, and the embedded objects are served on the subsequent round trips/ requests. So, cache servers store the html parts of frequently accessed content and that is served first, while the embedded objects are requested from the Origin server simultaneously by the cache servers so that by the time the request from the consumer comes for embedded objects, they are already present, and can be served immediately.
- The fastest and the least congested route (between the cache server and the origin server) is estimated continuously, and the traffic is sent in that route. The communications between the various servers in the CDN are always optimized for performance.
- The geographically nearest cache server is chosen by the CDN for serving requests. But, if those servers are being utilized to their full capacity, the users are automatically re-routed to the best cache server (irrespective of the distance) that can serve the consumer at that point of time.
- Some CDN’s can prioritize the Interactive/ multimedia traffic in their networks to improve their performance.
- CDN can use Pull or Push technologies, or both. A pull technology requests for content from the origin server on the receipt of a request from consumers, and also saves it in the process. A push technology involves origin server pushing out all content to cache servers before hand.
- Some CDN’s send multi-cast streams from the origin server to the cache servers and there-on send uni-cast streams to individual users. This can save a lot of bandwidth and processing resources for the origin server.
- Protocol optimization is used extensively in CDN. For example, multiple handshakes required for establishing / tearing down web connection with http is replaced with a set of long lived and persistent connections (for connections between cache servers and origin servers). This also allows for multiple http requests to be sent using a singe connection, all of which reduce the tame taken for serving requests.
- Data can be compressed en-route, saving bandwidth and enabling faster responses.
Advantages of Content Delivery Network (CDN):
- Some CDN’s are large enough to accommodate thousands of servers across many networks in multiple countries. This gives a good reach and ensures that users from many countries get fast and reliable access to content.
- Content Delivery Networks allow for monitoring (and proactive fault rectification) of various parameters like successful delivery of content, traffic patterns/ peak times etc. Some of them even allow for real time notifications of threshold values set by the customers.
- When compared to in-house hosting, content delivery networks are advantageous because there is no high initial investment in hardware/ bandwidth/network required as most CDN’s charge per month and only for the amount of content delivered.
- CDN’s are the best way to serve a large number of random users across the globe through the Internet. Alternative technologies like application delivery controllers can accelerate applications over WAN but require that these hardware devices be present in sending as well as receiving locations.
- Reduced content delivery latency/ reduced load on origin server.
- Easy, fast and on-demand scalability.
- Best technology to handle unexpected peaks in web traffic.
- CDN’s are highly redundant as requests can always be transferred to other servers (if one of them is down) and hence they almost provide 100% availability.
- Integration with authentication/ encryption systems are supported by CDN.
- Few CDN’s also distribute content using Peer to Peer technology where a large number of user PC’s are used to deliver content to nearby users. These networks can expand to support virtually unlimited users especially with the latest developments in P2P like ‘Peer Assignment Algorithms’ that distribute the traffic more efficiently between peers.
- CDN’s reduce RTT (Round Trip Time) between the users and servers as servers are located near the users.
In case you want to add any points or have any questions you can use the comment form below or contact us using the contact form. You could also keep yourself updated with the various technologies in the computer networking domain by subscribing with your email address in the sidebar box mentioned as “Get Email Updates When New Articles are Published”.