CDN技术详解及原理

1、为什么使用CDN?

在互联网领域有一个“8秒定律”,用户访问一个网站时,如果等待网页打开的时间超过8秒,会有超过30%的用户放弃等待。

“第一公里” 是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽。 这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量 。如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户。(还有“中间一公里” 和“最后一公里”分别代表互联网传输传输和万维网流量向用户传送的最后一段接入链路)

使用CDN会极大简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商、跨地域的用户覆盖

2、CDN关键技术:

  • 缓存算法[Squid];
  • 分发能力;
  • 负载均衡[Nginx]
  • 基于DNS[BIND];
  • 支持协议;

缓存算法决定命中率、源服务器压力、POP节点存储能力

分发能力取决于IDC能力和IDC策略性分布

负载均衡(智能调度)决定最佳路由、响应时间、可用性、服务质量

基于DNS的负载均衡以CNAME实现[to cluster],智取最优节点服务,

缓存点有客户端浏览器缓存、本地DNS服务器缓存
缓存内容有DNS地址缓存、客户请求内容缓存、动态内容缓存

支持协议如静动态加速(图片加速、https带证书加速)、下载加速、流媒体加速、企业应用加速、手机应用加速

CDN提供一种机制,当用户请求内容时,该内容能够由以最快速度交付的Cache来向用户提供,这个挑选“最优”的过程就叫做负载均衡

从功能上看,典型的CDN系统由分发服务系统,负载均衡系统和运营管理系统组成

  • 分发服务系统:最基本的工作单元就是Cache设备,cache(边缘cache)负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用 户。同时cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存在本地。Cache设备的数量、规模、总服务能力是衡 量一个CDN系统服务能力的最基本的指标

  • 负载均衡系统:主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。两级调度体系分为全局负载均衡(GSLB)和本 地负载均衡(SLB)。GSLB主要根据用户就近性原则,通过对每个服务节点进行“最优”判断,确定向用户提供服务的cache的物理位置。SLB主要负 责节点内部的设备负载均衡

  • 运营管理系统:分为运营管理和网络管理子系统,负责处理业务层面的与外界系统交互所必须的收集、整理、交付工作,包含客户管理、产品管理、计费管理、统计分析等功能。

HTTP协议中的缓存技术:新 鲜度(时间值)和验证(验证信息如ETag或last-modified)时确定内容可否直接提供服务的最重要依据。如果缓存内容足够新鲜,缓存的内容就 能直接满足HTTP访问的需求了;如果内容过期,而经源服务器验证后发现内容没有发生变化,缓存服务器也会避免将内容从源服务器重新传输一遍

cdn,高可用等等

CDN技术详解及原理

3、CDN实质

CDN是构建在现有网络基础之上的智能虚拟网络,是一种新型网络构建方式。
搭建CDN系统可以选择3种主流方案:

  • squid
  • varnish
  • Nginx+memcache

而squid和varnish的区别:
squid加速器(代理缓存服务器)是将从服务器要回来的资源放在自己的硬盘里,客户读取的速率很慢,代理的效率低

现在的varnish加速器(代理缓存服务器)是将从服务器要回来的资源放在自己的内存里,客户读取的速率很快,代理的效率高

varnish代理服务器的工作方式有两种:
(1)仅仅作为一个代理服务器:帮客户端去问服务端要数据,要回来的数据直接给客户端自己不缓存一份,这种情况是客户的隐私信息、
热点信息、更新比较快的数据,不缓存,只代理。
(2)既代理又缓存:帮客户端去问服务端要数据,要回来的数据先给自己缓存一份,然后再发给客户端,这种情况是用于更新比较慢的数据,此时varnish既代理又缓存。

总结:CDN只是一种构建新型网络的方式,而varnish、squid等等是实现这种方式的方案即执行者。