No products in the cart.
CDNs, or Content Delivery Networks, are the unsung heroes of the internet world. But what exactly is a CDN? In this article, we'll demystify CDNs. A CDN is a geographically distributed network of servers that work together to deliver web content to users more quickly and efficiently. It caches content like images, scripts, and stylesheets, reducing the load time of websites. This not only enhances
IntroductionWith the rapid development of the Internet, we as end-users, from the Internet to get more and more rich content, high-definition video, application services, live and other multimedia content. Then, as users, of course, we hope that the experience of high bandwidth, fast response, low latency. As a content provider, it needs a more efficient mechanism to distribute content to cope with the rapid growth of demand for high-performance, high-availability services, while reducing costs and network load.
Then CDN (Content Delivery Network) came into being.
1. CDN overview
CDNs improve end-user access to Internet content sites by replicating content to mirror servers (PoP (point of presence), edge or replica servers) that are located at the edge of the ISP's (Internet provider's) network closer to the end-user, with the edge servers being close to the user and the replicated content acting as a cache, streaming and download performance for end users, while reducing the cost of service for content providers. A properly configured CDN can also help protect a website from certain common malicious attacks, such as DDOS attacks. As shown in the diagram below, the source site serves the content to the edge server, which then delivers it to the end user, rather than serving each individual request directly from the content provider's source site. Today, CDNs are a prerequisite for providing a high-quality online experience for real-time, linear, and on-demand delivery of websites and media content.CDNs typically utilize cloud (compute and storage) infrastructure and services to provide scalability, elasticity, availability, and performance.
There are many practical application scenarios for CDNs, such as: Accelerated Web performance. CDNs help improve the delivery of Web content (static and dynamic) so that sites perform better, load faster, and generate more revenue for content providers.
Software updates and downloads. CDNs enhance the automatic or on-demand delivery of software or file downloads, including software patches.For example, consumers can quickly download the latest version of an operating system or word processing software version online.
CDNs are used for Internet Protocol Television (IPTV), such as updates to catch-up shows on video sites and live online video channels.Such services feature delivery of most media types, digital rights management (DRM), multi-bitrate streaming, and distribution of video content to multiple regions. ipTV services on CDNs apply both linear content delivery and on-demand content delivery.
Live streaming. Leverage the end-to-end performance of the CDN to handle the high bandwidth demands of live streaming to create an end-to-end delivery chain that provides true differentiation through a high-quality user experience. and the ability to manage and deliver user-generated content.
Managing and delivering user-generated content.CDNs are often used to facilitate the hosting and distribution of user-generated content.
YouTube is using CDNs to deliver content uploaded by end users.
2. How CDNs work At the heart of a CDN is a network of servers designed to deliver content as quickly, cheaply, reliably and securely as possible. To improve speed and connectivity, CDNs place servers at exchange points between different networks.[5] The CDN architecture varies depending on the content/services it provides to its customers. In terms of functional attributes, CDNs can be described in four dimensions, namely: the structure of the CDN, content distribution and management, request routing and performance measurement.
(1) In the CDN architecture, there is a set of edge servers used to build the content delivery, and then specific mechanisms are used to redirect end-user requests to the edge servers, and interaction protocols are used to communicate between CDN components.
(2) Content distribution and management is critical in CDN for efficient content delivery and overall performance.Content distribution includes selecting and delivering content based on the type and frequency of a particular end-user request; how to place edge servers in the right location so that they are close to end-users and content acquisition in order to decide which method to follow for the acquired content.
Content distribution and management depends heavily on cache organization techniques (i.e., cache technology, cache maintenance, and cache updates).
(3) A request routing mechanism is used to select the best edge server to respond to a given request. (4) Finally, performance measurements are performed on the CDN to evaluate its ability to deliver the required content and/or services to its customers.
3. Types of Content Delivery by CDNs Below, we briefly discuss five different types of content delivery.
3.1 Static Content Delivery (Traditional CDN) The basic use case for a CDN is the delivery of static content such as static HTML pages, embedded images, PDF documents, files, and software patches. The following diagram shows the interaction flow for the delivery of embedded static content on a website.
Users request content by specifying their unique URL in a Web browser. The user's request passes through and intermediate network links and routing infrastructure, eventually reaching the source site.When the source site receives a request, it provides only basic content (e.g., the site's index page). For frequently asked-for content (such as embedded object images, logos, navigation bars, and banner ads), the user's request is redirected to the CDN infrastructure, which fetches content from the source and distributes it among replica servers in edge locations. Using a selection algorithm (often proprietary), the edge server closest to the end user is chosen to serve the requested embedded object. The selected edge server serves the user's request and caches it for serving subsequent requests.3.2 Dynamic Content Delivery (Application CDN)
Dynamic content is generated on-demand using Web applications. Dynamic content changes based on contextual circumstances, such as user profiles and interaction characteristics. For example, a Web site that displays the current time is actually displaying dynamic content: the information (the number displayed) changes depending on the situation (the current time). Types of dynamic content include animations, altered text, content generated using server-side scripting (ASP, ColdFusion, Perl, PHP, Ruby, WebDNA) or client-side scripting (JavaScript, ActionScript) and DHTML. Dynamic content delivery is accomplished by the web system's multi-tiered logic (below), an architecture that layers the HTTP interface front-end layer, the application layer (or business logic), the back-end, and the user profile layer for generating personalized content. Each layer of the Web system is replicated when a CDN is used to deliver dynamic content. In the following, we describe how each layer works.
(1) Front-end layer. The front-end receives HTTP connection requests from end-users, provides static content from the file system, and provides interfaces that represent application logic.
It can employ techniques such as fragment-based (i.e., storing content fragments), or sequential caching (i.e., storing partial stream segments) to reduce buffer size [1].Fragment-based caching typically uses Edge Side Includes (ESI) [1, 2], an XML-based markup language that distinguishes between cacheable (static) content and non-cacheable (dynamic) content.
The edge server performs page fragment identification and tagging to assemble the dynamic web content before delivering it to the end user.
In addition to this, CDNs can use FEO techniques to reduce the number of page resources required to download a given page, allowing browsers to process the page faster.
(2) Application Layer. The application layer is used to process business logic and computation in response to dynamic content. Content generation usually requires interaction with the back-end and user profile layers.
This layer improves the delivery of dynamically generated content through the use of client-side or server-side scripts or a combination of both. Client-side scripts are Web applications that are executed on the client side by the end user's Web browser. Client-side scripts are typically embedded in HTML or XML documents, but they may also be contained in separate files that are referenced by the document that uses it. Upon request, the necessary script files are sent to the user's computer by a CDN.
The user's browser executes the script and then displays the document, including any visible output from the script. Server-side scripts are applications that run on the CDN's edge servers and change the content of various web pages. Such web pages are usually created with the help of server-side languages such as ASP, Perl, PHL, Ruby, and WebDNA.
Server-side scripts are embedded in the HTML source code, which results in client requests to a Web site being processed by scripts running on the edge server before responding to the client request. Server-side scripts are typically used to provide interfaces and restrict access to proprietary databases or other data sources. These scripts can combine client-side features and customize responses based on those features, user needs, and access rights. Combinations of client-side and server-side scripts are also common.
Ajax is a Web development technique for dynamically exchanging the content of data requests sent to an edge server. The edge server returns the requested data, which is then formatted by the client-side script. This technique reduces loading time because the client does not request the entire web page, but only transmits the content that is going to be changed.Google Maps is an example of the use of Ajax technology.
(3) Back-end layer. It mainly manages the information repository for Web-based services. It usually consists of database servers and key information stores used to generate dynamic content. This layer provides additional scalability for the management of application data. Replication of back-end data can be complete or partial. Partial replication of data can be achieved using caching mechanisms for different data stores, such as the most frequently queried caching mechanism (content-blind caching) or obtained through active replication of portions of back-end data selected based on usage patterns, network (content-aware caching). (4) User profile layer. It stores information about user preferences and context. This information is mainly used to generate dynamic content and provide personalized services. User profiles can be updated manually through web forms or automatically based on user behavior.