CDN技术原理以及所用技术介绍

CDN(Content Delivery Network)即内容分发网络。

通过在现有的Internet中增加一层新的网络架构,部署边缘服务器,将网站的内容发布到最接近用户的Cache服务器,使用户可以就近取得所需的内容,实现用户就近访问,有效提升网站的访问效果、安全性和稳定性。

CDN原理

要了解CDN的实现原理,首先让我们来回顾一下网站传统的访问过程,以便理解其与CDN访问方式之间的差别:

由上图可见,传统的网站访问过程为:

1. 用户在浏览器中输入要访问的域名;
2. 浏览器向域名解析服务器发出解析请求,获得此域名对应的IP地址;
3. 浏览器利用所得到的IP地址,向该IP对应的服务器发出访问请求;
4. 服务器对此响应,将数据回传至用户浏览器端显示出来。

与传统访问方式不同,CDN网络则是在用户和服务器之间增加Cache层,将用户的访问请求引导到Cache节点而不是服务器源站点,要实现这一目的,主要是通过接管DNS实现,下图为使用CDN缓存后的网站访问过程:

由上图可见,使用CDN缓存后的网站访问过程演变为:

1. 用户在浏览器中输入要访问的域名;
2. 浏览器向域名解析服务器发出解析请求,由于CDN对域名解析过程进行了调整,所以用户端一般得到的是该域名对应的CNAME记录,此时浏览器需要再次对获得的CNAME域名进行解析才能得到缓存服务器实际的IP地址。
注:在此过程中,全局负载均衡DNS解析服务器会根据用户端的源IP地址,如地理位置(深圳还是上海)、接入网类型(电信还是网通)将用户的访问请求定位到离用户路由最短、位置最近、负载最轻的Cache节点(缓存服务器)上,实现就近定位。定位优先原则可按位置、可按路由、也可按负载等。
3. 再次解析后浏览器得到该域名CDN缓存服务器的实际IP地址,向缓存服务器发出访问请求;
4. 缓存服务器根据浏览器提供的域名,通过Cache内部专用DNS解析得到此域名源服务器的真实IP地址,再由缓存服务器向此真实IP地址提交访问请求;
5. 缓存服务器从真实IP地址得到内容后,一方面在本地进行保存,以备以后使用,同时把得到的数据发送到客户端浏览器,完成访问的响应过程;
6. 用户端得到由缓存服务器传回的数据后显示出来,至此完成整个域名访问过程。

通过以上分析可以看到,不论是否使用CDN网络,普通用户客户端设置不需做任何改变,直接使用被加速网站原有域名访问即可。对于要加速的网站,只需修改整个访问过程中的域名解析部分,便能实现透明的网络加速服务。 

例如:客户端要访问www.xxx.com,无论该站是否使用CDN技术,都是一样的访问方式。如果要通过客户端看某个网站是否使用CDN,这里有个粗略的方法,看网站的发向客户端的
HEADER信息,如果header信息里面有X-Cache MISS from cache.xxx.com.cn, MISS from cache.xxx.com.cn类似这样的头部,就可能使用了CDN,不过也不好说,因为服务器使用了反向代理技术(如squid)也会发出这样的头部。
 

CDN的实现需要依赖多种网络技术的支持,其中负载均衡技术、动态内容分发与复制技术、缓存技术是比较主要的几个,下面让我们简单看一下这几种技术。

负载均衡技术 

  负载均衡技术不仅仅应用于CDN中,在网络的很多领域都得到了广泛的应用,如服务器的负载均衡、网络流量的负载均衡。顾名思义,网络中的负载均衡就是将网络的流量尽可能均匀分配到几个能完成相同任务的服务器或网络节点上,由此来避免部分网络节点过载。这样既可以提高网络流量,又提高了网络的整体性能。在CDN中,负载均衡又分为服务器负载均衡和服务器整体负载均衡(也有的称为服务器全局负载均衡)。服务器负载均衡是指能够在性能不同的服务器之间进行任务分配,既能保证性能差的服务器不成为系统的瓶颈,又能保证性能高的服务器的资源得到充分利用。而服务器整体负载均衡允许Web网络托管商、门户站点和企业根据地理位置分配内容和服务。通过使用多站点内容和服务来提高容错性和可用性,防止因本地网或区域网络中断、断电或自然灾害而导致的故障。

  在CDN的方案中服务器整体负载均衡发挥着重要作用,其性能高低将直接影响整个CDN的性能。如图所示的全局调度服务器就可以看做一个服务器全局负载均衡。它根据网民的位置决定CDN系统哪个Cache服务器为网民服务。在使用CDN服务的时候,全局调度服务器可以进行智能域名解析,网站需要将原来的域名CNAME到全局调度服务器智能解析的域名上,这样CDN的工作就做到了对网民的透明,网民可以访问到部署在边缘的Cache服务器。

具体到一个Cache节点,对网民看是一个的服务个体,其实内部实现也是一个服务器负载均衡。当单台服务器不能满足该地区的Cache业务时,负载均衡器扮演了重要角色,它将Cache服务集群联系到一起,其服务能力也是多台Cache服务能力的总和。

动态内容分发与复制技术 

  大家都知道,网站访问响应速度取决于许多因素,如网络的带宽是否有瓶颈、传输途中的路由是否有阻塞和延迟、网站服务器的处理能力及访问距离等。多数情况下,网站响应速度和访问者与网站服务器之间的距离有密切的关系。如果访问者和网站之间的距离过远的话,它们之间的通信一样需要经过重重的路由转发和处理,网络延误不可避免。

  为了避免网络延误,就需要一个有效的方法将占网站主体的大部分静态网页、图像和流媒体数据分发复制到各地的加速节点上。同时在国内又有南北互联的问题,电信联通间的访问速度非常不好,所以动态内容分发和复制技术显得更为必要,因此动态内容分发与复制技术也是CDN所需的一个主要技术。

缓存技术

  缓存技术已经不是一种新鲜技术。Web缓存服务通过几种方式来改善用户的响应时间,如代理缓存服务、透明代理缓存服务、使用重定向服务的透明代理缓存服务等。通过Web缓存服务,用户访问网页时可以将广域网的流量降至最低。对于公司内联网用户来说,这意味着将内容在本地缓存,而无须通过专用的广域网来检索网页。对于Internet用户来说,这意味着将内容存储在他们的ISP的缓存器中,而无须通过Internet来检索网页。这样无疑会提高用户的访问速度。CDN的核心作用正是提高网络的访问速度,所以,缓存技术将是CDN所采用的又一个主要技术。

  各地的Cache服务器保存着源站静态内容的一份有效拷贝,网民无需直接访问源站,就可以在离自己最近的Cache服务器上获得新鲜正确的内容。目前缓存服务器可以有多种选择,大名鼎鼎的squid,还有ngnix(ncache),vanish都可以用作Cache服务器。Cache服务器的主要工作提高内容HIT率,使得大多数的访问都能在Cache设备获得,而不用MISS回源去取.技术要点是过期机制等内容更新管理,此外Cache服务器可以将源站的一些功能分担出来,实现起来更加灵活。

 

综上,CDN从技术上解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题,关注全国范围内不同网络中的用户都能得到优质的访问质量的网站可以采用CDN来提高网站的体验水平。

posted @ 2016-04-12 10:08  熊星  阅读(245)  评论(0)    收藏  举报