CDN
A CDN is a group of geographically distributed proxy servers. A proxy server is an intermediate server between a client and the origin server.
Requirements
Functional
Retrieve
Request
Deliver
Search
Update
Delete
Non-Functional
Performance
Availablity
Scalability
Reliability & security
Design CDN
CDN Components
Clients
Routing system
Scrubber servers - separates the good traffic from malicious traffic and protect against well known attacks like DDoS.
Proxy Servers (or Edge proxy servers) - Servers content to the users. Stores hot data in RAM and cold in SSDs.
Distributed System - distributing content to all the edge proxy servers. Uses broadcast-like approache.
Origin Server
Managment System
Content Caching Strategy
Push CDN
Origin server sends the contents to the CDN Proxy server
Good for static content
Maintains more replicas and improves availability
Pull CDN
CDN Proxy server retrieves the content from the Origin server, when a resource is requested and is not already cached.
Good for dynamic content.
Dynamic content caching optimization
Execution of scripts at the proxy server instead of the origin server (Edge computing)
Edge Side Includes (ESI)
Solves the problem of fetching entire page, when only a small portion of the page changes. Eg. User's name in account area on a news site.
For Videos, Dynamic Adaptive Streaming one HTTP (DASH) uses manifest file with URIs of the video with different resolutions so that the client can fetch whatever is appropriate as per prevailing network and end node conditions. Netflix uses a proprietarty DASH version with a Byte-range in teh URL for further content reqeust and delivery optimizations.
Problems that CDN Tackles
High latency:
Transmission delays (function of available bandwidth)
Propagation delay (function of distance)
Queuing delay (function of network congestion)
Nodal processing delays
Data-intensive applications
small Path Message Transmission Units (MTU) links can reduce the throughput of applications.
Different portions of network will have different congestion characteristics.
Scarcity of data center resources.
computational capacity and bandwidth become a limitaiton with increase in users.
Last updated
Was this helpful?