Content Delivery Networks

From 118wiki

Jump to: navigation, search

Content Delivery Networks

We saw previously how Web Caching can improve the performance, especially by reducing latency, of HTTP client-server interaction. Latency is a fundamental problem in the Internet because communication typically involves many "hops" (one hop is equal to one step in a routing path from one place to another; this step is essentially a link from one Internet router to another), as well as significant propagation delay. The communication latency can be the dominant factor in total delay (as opposed to the processing delay of a server). It follows that another way to reduce latency is the following clever idea: move the server closer to the client. It's common sense: if the server is close to the client, latency will be reduced.

How to get the server closer to the client? A cache, perhaps at a firewall (networking) or proxy, perhaps even at an ISP, partly does this, at least when the response to a request can be delivered from the cache. A more systematic way to move service closer to the client is a Content Delivery Network or CDN. A CDN consists of a collection of servers with replicated content, plus some techniques so that client requests are routed to nearby servers in the CDN. A CDN not only improves performance, but can customize content to the client, based on the client's location (advertisements relevant to Iowans might only be inserted into requests coming from Iowa IP numbers) or the type of client device (provide a different kind of response to requests from cellphones). Here are the main ingredients of a CDN:

  • The CDN servers are arranged in an overlay network
  • Numerous Internet routers have been modified to route requests based on the content of the request (instead of just using IP numbers, the way that Internet routing was originally designed); two special techniques are
    • DNS routing, in which the translation from FQDN to IP number will depend on who is asking for the translation, and where they are
    • Layer 4-7 switching, which overrides the network layer (layer 3) forwarding based only in IP address by making routing decisions based on such factors as port number (layer 4 multiplexing) or looking at HTTP request fields (layer 7); sometimes this is called content switching, see multilayer switch
  • Interior CDN protocols: the companies that build CDNs need to devise their own protocols to ensure that replicated servers have up-to-date, if not identical content; the two main strategies of these protocols are
    • push technology (or just "push"), where a root server can proactively distribute changes to content by sending the changes to the replicated servers even before they need it or ask for it, and
    • "pull", where replicated servers ask the root server, either periodically or when content expires, for updates to content
  • Other important ingredients for CDNs include large amounts of primary and back-up storage, mirroring and other techniques for synchronizing replicas in data bases, special facilities for streaming protocols that deliver movies, music, etc, at a playable rate.
Personal tools