CDN Concepts

The Wikipedia entry for CDN states: A content delivery network or content distribution network (CDN) is a large distributed system of servers deployed in multiple data centers across the Internet. The goal of a CDN is to serve content to end-users with high availability and high performance. CDNs serve a large fraction of the Internet content today, including web objects (text, graphics, and scripts), downloadable objects (media files, software, documents), applications (e-commerce, portals), live streaming media, on-demand streaming media, and social networks.

The Internet is a network of networks. To get content from a server on the other side of the planet, IP packets have to travel through a series of backbone servers and public network cables.

CDNs like the Rackspace CDN augment the
transport network by employing various techniques to optimize content delivery. It is fairly easy to see how CDNs help by looking at how the Internet works. A traceroute to an Internet address tells us how many network jumps, or hops, a simple request takes. The following example is a traceroute to

 Tracing route to [] over a maximum of 30 hops:
 1     1 ms     1 ms     1 ms
 2    11 ms     9 ms     9 ms
 3    11 ms     9 ms     9 ms
 4    11 ms     9 ms     9 ms []
 5    16 ms    19 ms    16 ms []
 6    16 ms    16 ms    18 ms []
 7    19 ms    17 ms   106 ms []
 8    18 ms    18 ms    17 ms []
 9    18 ms    18 ms    17 ms []
 Trace complete. 

Additional hops mean more time to render data from a request on the user's browser. The speed of delivery is also constrained by the slowest network in the chain. The solution is a CDN that places servers around the world and, depending on where the end-user is located, serves the user with data from the closest or most appropriate server. CDNs reduce the number of hops needed to handle a request. The difference is shown in the following figures.

Before the use of a CDN

  • End-user requests (origin server) in a browser.
  • End-user's browser receives content through multiple servers.

After the use of a CDN

  • End-user requests (origin server) in a browser.
  • End-user's browser receives content from the optimum servers.

CDNs focus on improving the performance of web page delivery. CDNs like the Akamai CDN support progressive downloads, which optimizes the delivery of digital assets such as web page images. CDN nodes and servers are deployed in multiple locations around the globe over multiple Internet backbones. These nodes cooperate to satisfy data requests by end-users, transparently moving content to optimize the delivery process. The larger the size and scale of a CDN's Edge Network deployments, the better the CDN.

CDNs generally push the Edge Network closer to end-users. The Edge Network grows outward from the origin server by the addition of co-location facilities, bandwidth, and servers. CDNs choose the best location for serving content while optimizing for performance. They might choose locations that are the fewest hops or the fewest number of network seconds away from the requesting client. CDNs choose the least expensive locations while optimizing for cost. CDNs use various techniques such as web caching, serverload balancing, and request routing to achieve the optimization goals.

  • Because closer is better, web caches store popular content closer to the user. These shared network appliances reduce bandwidth requirements, reduce server load, and improve the client response times for content stored in the cache.
  • Server load-balancing uses a web, content, or multilayer switch to share traffic among several servers or web caches. The CDN assigns a single virtual IP to it. Incoming traffic is directed to one of the real servers attached. This has the advantages of balancing the load, increasing total capacity, improving scalability, and providing increased reliability by redistributing traffic of a failed web server and providing server health checks.

Global Server Load Balancing

  • Request routing directs client requests to the content source best able to serve the request. This might involve directing a client request to the service node that is closest to the client, or to the node with the most capacity. A variety of algorithms for Global Server Load Balancing (shown in the preceding diagram) are used to route the request. Choosing the closest service node is done using a variety of techniques including proactive probing and connection monitoring.