Akamai Content Delivery Network Slides from Bruce Maggs
HTML Title Page for with Embedded Objects <html><head> Welcome to xyz.com! Welcome to xyz.com! </head><body> <img src=“ Welcome to our Web site! Welcome to our Web site! Click here to enter Click here to enter </body></html>
3 Content Provider’s Web Server DNS 1 Downloading - before Akamai User enters enters Browser requests IP address for requests IP address for Browser requests embedded objectsBrowser requests embedded objects Content provider’s web server returns HTMLContent provider’s web server returns HTML Browser requests HTMLBrowser requests HTML DNS returns IP addressDNS returns IP address Browser obtains IP addresses for hostnames listed in URLs of objects embedded on pageBrowser obtains IP addresses for hostnames listed in URLs of objects embedded on page Content provider’s web server returns embedded objectsContent provider’s web server returns embedded objects
DNS Resolution Browser’s Cache 1 OS 2 Local Name Server 3.com.net Root (InterNIC) 4 xyz.com DNS Servers TTL: 1 Day TTL: 30 Minutes
Problems with the Centralized Approach SlowSlow -content must traverse multiple backbones and long distances UnreliableUnreliable -delivery may be prevented by congestion or backbone peering problems Not scalableNot scalable -usage limited by bandwidth available at master site Inferior streaming qualityInferior streaming quality -packet loss, congestion, and narrow pipes degrade stream quality
The Akamai Solution Monitors the Internet and routes around trouble spotsMonitors the Internet and routes around trouble spots Distributes all forms of content and supports applicationsDistributes all forms of content and supports applications Provides feedback on hit counts to content providersProvides feedback on hit counts to content providers
6 3 Content Provider’s Web Server Downloading - The Akamai way User enters enters Browser requests IP address for requests IP address for Browser obtains objects from optimal Akamai serverBrowser obtains objects from optimal Akamai server Content provider’s web server returns page with Akamaized URLsContent provider’s web server returns page with Akamaized URLs Browser requests HTMLBrowser requests HTML DNS returns IP addressDNS returns IP address4 Browser obtains IP address of optimal Akamai server for embedded objectsBrowser obtains IP address of optimal Akamai server for embedded objects 1 DNS 2 5
Content Delivery Using Akamai <html><head> Welcome to xyz.com! Welcome to xyz.com! </head><body> <img src=“ Welcome to our Web site! Welcome to our Web site! Click here to enter Click here to enter </body></html> Embedded URLs are Converted to ARLs ak
Page Served by Akamai78% Typical Page Content Total page87,550 bytes Total Akamai Served 68,756 bytes Navigation Bar 9,674 bytes Banner Ads 16,174 bytes Logos 3,395 bytes Gif links 22,395 bytes Fresh Content 17,118 bytes
End User Akamai DNS Resolution Akamai High-Level DNS Servers 10 g.akamai.net 1 Browser’s Cache OS 2 Local Name Server 3 xyz.com’s nameserver 6 ak.xyz.com 7 a212.g.akamai.net Akamai Low-Level DNS Servers 12 a212.g.akamai.net xyz.com.com.net Root (InterNIC) akamai.net8
Advantages of the Akamai Solution FastFast -Content is served from locations near to end users ReliableReliable -No single point of failure -Automatic fail-over ScalableScalable -Master site no longer requires massive available bandwidth
Current Installations Network Deployment Servers 500+ Networks 55+ Countries
Results Web Site Performance Typical Improvement with Akamai Noon May 15 Noon May 16 Noon May 17 Noon May 18 Noon May 19Noon May 20 Noon May 21 Noon May 22 Noon May 23 Noon May 24 Noon May 25Noon May 26Noon May 27 Web object delivered by AkamaiWeb object delivered without Akamai
Over 1300 Web Sites are Now Akamaized
Hashing E.g., h(x) = (((a x + b) mod P) mod |B|), where P is prime, P > |U| a,b chosen uniformly at random from Z P x is a serial number Universe U of all possible objects, set B of buckets. object: set of web objects with same serial number bucket: web server Hash function h: U B Assigns objects to buckets
f(d) = d + 1 mod 5 Difficulty changing number of buckets bucket object f(d) = d + 1 mod 4
Consistent Hashing Idea: Map both objects and buckets to unit circle. object bucket Assign object to next bucket on circle in clockwise order. new bucket