A content delivery network (CDN), also called content distribution network, is a global network that optimizes content delivery to end users on the Web. By using a CDN, content providers can greatly increase video, audio, software, and game downloading speeds.
When not using a CDN, download speeds may vary significantly depending on the user’s distance from the server because of the different numbers of TCP/IP routers (“hops”) the downloadable content has to go through. Keeping content on multiple CDN servers means that the user often can download it from the nearest server, so the download speed can be much higher.
Using a content delivery network reduces the number of hops, which both increases the content download speed and makes it more stable while the user is downloading the content. So a CDN can be useful for streaming HD video, streaming video with a certain QoS, or downloading large files.
A content delivery network can minimize latency, network failures, and packet losses on congested backbones and at points of interconnect. When using a CDN, the provider can manage load on backbones and nodes by balancing it between multiple CDN servers.
You can greatly increase the network capacity by placing CDN servers as close to the end users as possible. Otherwise you could have, say, a 100 Mbps port, but the actual speed would be much lower (say, 10 Mbps). But if you have 10 CDN servers, the total capacity may increase to 10x100 Mbps (that is, 1 Gbps).
A content delivery network performs data integrity checks at all network elements to guarantee content availability even in case of a failure of a remote server (or even of the central server), or in case of loss of connection between the hosts.
Commercial CDNs provide detailed statistics to content providers, so that they can access real-time data on content downloads, availability, and actuality in any presence region.
A content delivery network consists of multiple geographically dispersed platforms that offer rich functionality. They work together to optimize users’ requests handling when users download content.
When using a CDN, the downloadable content stored on the central server is copied to the edge nodes, each of which contains a full or partial copy of the content. So even if the central server fails, the users will still get the necessary data.
The CDN tries to send content to the user by the shortest possible route with the smallest number of hops. The actual length of the route depends on the topological or geographical distance between the user’s computer and the server, or on the traffic cost charged by the Internet service provider in the presence region.
A CDN is often implemented as a data caching system to optimize both network backbone capacity and disk space. It should be noted that the first user who requests data from the content provider’s server usually has to wait the longest time for the data, but the following users in that region requesting the same data will be downloading copies of the data from the closest edge node. In other words, only the most popular and the most actual content is stored on the edge nodes.
Large content delivery networks often consist of a large number of edge nodes located in local Internet service providers’ networks. Most CDN providers lay emphasis on the capacity of network backbones and the minimum number of points of interconnect in the presence region. But whatever the network architecture, the main purpose of using a CDN is to improve content download speeds.
Though content delivery networks greatly increase web page loading speeds and save the user’s time, they make it much harder to analyze employee Internet usage reports. The existence of multiple CDN domains (cdn.rubiconproject.com, cdn.cxense.com, and tens of thousands of others) makes such reports pretty difficult to understand. Thankfully, this problem has been solved in ProxyInspector by using the CrystalWeb technology.