什么是CDN

CDN(Content Delivery Network)内容分发网络,简单的说就是通过在不同地点缓存内容,然后通过负载平衡等技术将用户请求定向到最近的缓存服务器上获取内容,提高用户访问网站的响应速度。和简单的内容镜像不同,CDN通过用户就近性和服务器负载的判断,以一种更为高效的方式为用户的请求提供服务。

CDN包括分布式存储负载均衡网络请求的重定向内容管理,其中内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。内容服务基于缓存服务器,也称作代理缓存(Surrogate),这样的缓存服务器分布在各地,为就近用户提供服务,缓存内容从数据中心自动获取,对用户透明。据说采用CDN技术能处理整个网站页面的 70%~95%的内容访问量,对于一些大型网站来说,没有CDN,单靠数据中心支撑所有访问量是不可想象的。

CDN中的关键技术包含以下几个方面;

  • 内容发布:借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;
  • 内容路由:整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
  • 内容交换:根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
  • 性能管理:通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。

部署CDN后,用户访问网站的流程如下图:
CDN

  1. 用户请求页面,域名解析的请求发送到网站的DNS域名解析服务器;
  2. 网站的DNS服务器将请求指向到智能DNS负载均衡系统;
  3. 智能DNS负载均衡系统对域名进行智能解析,将响应速度最快的CDN节点IP返回给用户;
  4. 浏览器向速度最快的CDN节点发出访问请求;
  5. 如果请求的内容是第一次访问,CDN节点将回到数据中心获取用户请求的数据,缓存并发给用户;
  6. 当有其他用户再次访问同样内容时,CDN将直接将缓存数据返回给客户,完成请求/服务过程。

从以上流程可以看到,CDN其实也没有什么特别的,主要是通过负载均衡访问路由转向本地代理缓存来加速网站访问,同时对于用户访问来说是透明的,用户端无须进行任何设置。

对于CDN一无所知,从网上找了点资料,主要内容参考的这里



无觅相关文章插件,快速提升流量

4条评论

  • At 2008.06.19 10:24, Amark said:

    我想请教一下如果用户访问的是动态页面,那么CDN如何保证实时数据的准确性。

    • At 2008.06.19 10:57, NinGoo said:

      这个要靠缓存机制来保证了。在http头中有关于过期,时间等标志,缓存服务器可以根据这些标志来判断数据是否缓存,缓存了的数据有否更新,缓存是否过期等。更具体的技术细节我也不是很清楚了。可以Google一下反向代理,squid等关键字,可以了解更多关于代理缓存的东西。

    • At 2008.07.10 13:30, xds2000 said:

      你提的问题,使用-动态CDN就可以解决。但这种技术在国内尝试的用户有多少,不得而知,效果如何也不得而知。
      参考一个动态CDN的广告:
      http://www.chinacache.com/viewproduct.asp?id=431
      我的思路是,没钱就自动架设Cache,有钱就上CDN。

      • At 2011.08.10 20:59, what is cdn | Aj's Blog said:

        (Required)
        (Required, will not be published)