6.8 CDN


内容分发网络(CDN)

CDN是内容分发网的简称,Content Distribution Network。

现今几乎所有的视频流公司都利用CDN存储视频或Web内容,包括文档、图片和音频的副本。

常用于视频流:Internet 带宽的主要消耗者(Youtube、Netfix)

Netflix, YouTube 分别消耗了 37%, 16% 的住宅ISP 流量

需求产生

  • 如何应对(Youtube)十亿的用户的访问
  • 如何从海量的视频中,挑选出某个用户想要的内容

单个服务器(X)

如果打造单个超级视频服务器,可能遇到问题,太多了

  • 该服务器故障
  • 单点故障
  • 单点网络拥塞
  • 远距离用户的访问路径很长
  • 输出链路上发送同一视频的多份重复拷贝

CDN!

将多份拷贝存储在地理上分散的不同站点来提供服务(CDN)

深入:

  • 将CDN服务器部署在众多的接入网络中
  • 离终端用户近一点(方便用户,不方便维护者)

邀请做客:

  • 在少量(例如10个)靠近接入网的关键位置(例如IXP),建造大集群,邀请到ISP做客
  • 离终端用户远一点

流程

上图假设一个内容提供商NetCinema雇佣了第三方内容提供商KingCDN来分发视频

在NetCinema的Web网页上,它的每个视频都被指派了一个URL

如我们要访问video.netcinema.com/23425235 ,接下来将会发生图中的6个步骤:

  1. 用户访问www.NetCinema.com , 其返回一个video.netcinema.com/23425235 ;
  2. 用户主机再访问这个返回的video.netcinema.com/23425235 时,该用户的主机发送了一个对于video.netcinema.com的DNS请求
  3. 用户的本地DNS服务器(LDNS)将该DNS请求中继到一个用户NetCinema的权限DNS服务器,该服务器看到是video,就将DNS请求移交给KingCDN,NetCinema权威DNS服务器不返回IP地址,而是返回一个KingCDN域的主机名,如123.kingcdn.com
  4. 当LDNS拿到KingCDN域的主机名,又去请求KingCDN权威DNS服务器,KingCDN权威DNS服务器这时返回的才是KindCDN服务器的IP地址
  5. LDNS把KindCDN服务器的IP地址返回给用户
  6. 用户拿到KindCDN服务器的IP地址后,就发起连接请求,并获取资源

自此,整个流程结束。