Components of a Content Delivery Network (CDN) - Tech | 5G, SDN/NFV & Edge Compute


Tuesday, October 16, 2012

Components of a Content Delivery Network (CDN)

Components of a Content Delivery Network (CDN)

You can see a number of service providers getting into the market of offering CDN services. Many of them sign-up partnership and just resell services from popular CDNs such as Akamai, Limelight and Edgecast. If you are a newbie to the CDN space and wondering what are the various components required to build an end to end, Content Delivery Network (CDN), you have come to the right place.

1) Media Library - Media Library is a storage repository where the content from CDN's customers get published. Media Libraries are typically large file servers (such as NetApp, EMC/Isilon file servers). Media libraries are optimized for storage and not for content delivery. Hence, media libraries support only a small number of concurrent connections. Media Libraries are front-ended by media servers or caches that can scale to a large number of concurrent users. Media Libraries sit in the CDN's origin data centers.

2) Media servers - Media servers are responsible for serving content to the users (or to the caches in the network). They are optimized for media delivery and hence can simultaneously support a large number of concurrent users.

3) Caching servers - Caching servers are used for storing/serving popular content to the users. Caching servers are typically deployed throughout the Content Delivery Network in a hierarchical fashion. There will be 2 or 3 tiers of caches deployed in a CDN. The first tier is called the origin tier, which refers to the group of caches that are deployed near the Media Library. The second tier is the mid-tier, which refers to the group of caches that are deployed at the core of the network. The third tier is the edge-tier, which refers to the group of caches that are deployed at the edge of the network. Media gets served from the caches in the edge-tier to the users. If a given request cannot be fulfilled by an edge-tier cache, the request gets forwarded to the caches in the upper tier. Upon receiving content from the upper tier caches or from the media library, it gets served to the end user.

4) Content Routing System - When a user requests for content, the request typically goes to the Content Routing System first, before getting forwarded to the appropriate cache in the network. The duty of the Content Routing System is to route the user to the appropriate cache, which can serve the content. Content Routing system selects a cache from the network, based on a number of criteria such as
  • load metrics of the caching server
  • service availability of the caching server
  • geographical proximity of the user to the cache 
There are multiple ways of routing a user request to the appropriate cache. The most popular mechanism is DNS based request routing. When a user requests for, is resolved to the IP address of the cache in the edge-tier, which is closer to the user. Assuming that the media delivery protocol is HTTP, the browser/player establishes a TCP connection with the cache. The HTTP request from the browser/media player goes to the cache and the content gets served from the cache. Content Routing System should be highly available because, it is the crucial component of a Content Delivery Network.

Content Routing System gets the service availability and load information of the caches, through the Load Monitoring System.

5) Load Monitoring System - Load Monitoring System periodically sends probes to the caches and the media servers in the network to monitor their health and service availability. The load metrics that are collected from the caches/media servers are

  • Device load metrics such as CPU, memory, disks, and network ports utilization
  • Application load metrics such as # of TCP connections, amount of throughput served etc.,

The load metrics are collected using SNMP, HTTP API or through scripts that login to the devices directly to collect load metrics.

The Load Monitoring System also collects the service availability information of the caches/media servers. The load monitoring system shares the load information with the Content Routing System.

6) Logging Server - In a CDN network, several 100s and 1000s of log messages are generated every second. The log messages that get generated include service logs (such as access logs which are transactional), and system logs (such as syslogs which are generated when an important event occurs). In order to offload the media delivery servers from logging activity, CDNs deploy dedicated logging and log aggregation servers. The function of logging servers is to perform log collection, storage, and aggregation. The logs that are collected are used for generating historical reports. System logs are used for notifying administrators in case of a critical failure (such as network link failure).

7) Reporting / Analytics Server - The key differentiator of any CDN service is the reporting/analytics capability. Reporting/Analytics Servers produce two types of reports:

- Real time reports (mostly generated based on statistics / counters retrieved via SNMP or through CSV files from the caching/media servers)
- Historical reports (mostly generated based on access logs)

Reports/Analytics are used
  • To monitor the health of the CDN network including service utilization, and service availability.
  • To perform capacity management and to plan for capacity upgrades
  • To gather information for marketing / promotion of new services
  • To gather insights to expand/provide additional services
8) Provisioning & Management Systems - Provisioning and Management is an important component of any CDN.

There are two types of provisioning / management systems:
  • Service provisioning/management system 
  • Network provisioning/management systems
In a CDN network, Service provisioning/management systems are responsible for provisioning/managing services such as Live Streaming, On-demand streaming, and SSL offload. If a CDN customer wants to sign-up for a live streaming service, the service provisioning system gets all the required information from the CDN customer (such as domain, live publishing point, # of concurrent viewers, bandwidth etc.,) and uses that information to enable services by configuring various network equipment in the CDN network. Service provisioning system gets service related configuration and converts them to device configuration commands. The device configuration commands are then sent to the network provisioning/management systems. The network provisioning/management systems configure the devices such as routers/switches, load balancers and the caching/media servers.

In most cases, the Service & Network Provisioning / Management may very well be done by the same system in the CDN network.

9) Customer Portal - Customer Portal is the front-end used by the CDN customer to sign-up for services and enter service configuration information. Customer Portal also provides reporting/analytics that are specific to the customer.

10) Network Operations Control (NOC) Portal - NOC Portal is used by the CDN administrators/employees to manage/monitor the CDN network. NOC portal can be used for configuring the network equipment deployed at the CDN and in monitoring the health of the equipment. When a device generates an SNMP trap or syslog, that becomes available at the NOC Portal. The administrator can take an action based on the criticality of the event. NOC Portal provides an over-all view of the network, whereas customer portal provides only the customer specific view.

11) Load Balancers - Load Balancers are deployed at the POPs to distribute the load across the available caches in the POP. They also monitor the health of the caches before forwarding the request to the cache. Load Balancers deployed at the POP can distribute requests based on L4 or L7 based load distribution mechanisms. Many routers/switches support L4 based load distribution techniques, avoiding the need for costly Load Balancers. When L4 load balancers are used, load distribution decisions are made based on the L4 parameters such as IP address of the source/destination, TCP/UPD port numbers etc., When L7 load balancers are used, load distribution decisions can be made using L7 parameters (such as HTTP request URL, HTTP URL query parameters and HTTP request headers).

12) Dynamic Site Accelerators - Dynamic Site Accelerators are required for providing service to CDN customers such as e-commerce portals and banking websites. DSA servers support a number of optimizations such as TCP connection pooling, TCP connection persistence, Compression of content, and SSL offloading. CDNs that offer DSA services, deploy Dynamic Site Accelerators in their network.

13) Digital Rights Management Server - DRM servers are required for authorizing users before serving content to users. Premium video delivery services and services that provide per-user specific media viewing experience would need DRM servers. Licensed Media assets are served to users only after authorizing their eligibility for the service.


  1. Saro, great way to break it out all down and explain the elements in a simple fashion. Thank-you for putting the CDN pieces together, very helpful.

    Cheers, Andrea Livingston

  2. Thanks Andrea for the feedback ! I'm glad that you liked it.

  3. Is there a difference between the CDN providers out there and their ability to handle digital rights management? That is, does anyone do a better job than the other in protecting the video assets?

  4. Is there a difference between the CDN providers out there and their ability to handle digital rights management? That is, does anyone do a better job than the other in protecting the video assets?

  5. All of them integrate standard DRM technologies from vendors such as Widewine or Verimatrix.

    The video streaming server providers also integrate with their own DRM service (for ex., Adobe Flash Access). You can select your DRM from the CDN service provider.

  6. Thanks for sharing great articles, CDN is content delivery network which is a globally distributed network of proxy servers that delivers web page content to users.