CDN(ContentDeliveryNetwork,内容分发网络)技术上是通过在现有的中叠加一层新的网络架构,将网站内容发布到离用户最近的"边缘节点"上,使用户能就近取得所需内容,解决跨域访问网站的线路瓶颈,提高网站的访问及响应速度。要了解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网络,普通用户客户端设置不需做任何改变,直接使用被加速网站原有域名访问即可。对于要加速的网站,只需修改整个访问过程中的域名解析部分,便能实现透明的网络加速服务。CDN应用与架构CDN速度快、传输安全、扩展性强,尤其在应对大容量迸发时游刃有余,主要应用于跨地域的门户及行业网站,如游戏、娱乐、IT、新闻传媒、VOD、远程教育、音视频、下载、IPTV、金融证券等。利用CDN网络,网站用户无需投资价值不菲的服务器、网络带宽及相应的人力成本,便能实现将网站内容发布到离终端用户距离最近、路由最短的网际边缘Cache节点,创造完美、快捷的网站使用体验。构建CDN网络的通常有三类机构,一是基础电信运营商(如中国电信、中国网通等),二是纯粹以CDN为主营业务的专业服务商(如ChinaCache等),三是IDC运营服务商(如SouIDC等)。虽然上述机构建设CDN网络的出发点、侧重点不尽相同,但有一点却是相通的,即都是为用户提供完美的网站加速服务。IDC运营商部署在各地的IDC中心机房,非常有利于其快速建立起适合自身业务拓展的CDN网络,投资少见效快。其最大优势在于可以利用现有的IDC托管用户资源,进一步挖掘其潜在的增值服务空间。同时对于其IDC托管用户来讲,只需很少的投入便可实现网站的平滑加速,并保持了服务及支持上的无缝延续。SynCDN便是SouIDC构建的CDN网站加速运营平台。一般来讲,CDN网络主要由中心节点、边缘节点两部分构成。CDN架构导引最简单的CDN网络只需一台负责全局负载均衡的DNS和各节点一台Cache,即可运行。DNS支持根据用户源IP地址解析不同的IP,实现就近访问。为了保证高可用性等,CDN网管中心需要监控各节点的流量、健康状况等。一个节点的单台Cache承载数量不够时,才需要多台Cache,多台Cache同时工作时,才需要负载均衡器,使Cache群协同工作。CDN中心节点中心节点包括CDN网管中心和全局负载均衡DNS重定向解析系统,负责整个CDN网络的分发及管理。CDN网管中心是整个CDN能够正常运转的基础保证,它不仅能对整个CDN网络中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统数据库中,使网管人员能够方便地进行进一步分析。一套完善的网管系统,允许用户按需对系统配置进行修改。全局负载均衡DNS通过一组预先定义好的策略,将当时最接近用户的Cache节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在各地的所有CDN节点保持持续通信,搜集各节点的通信状态,确保不会将用户的请求分发到不可用、或不健康的Cache节点上。CDN边缘节点CDN边缘节点主要指异地分发节点,由负载均衡设备、高速缓存服务器两部分组成。负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时还负责收集节点与周围环境的信息,保持与全局负载均衡DNS的通信,实现整个系统的负载均衡。高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中Cache服务器就像网站的原始服务器一样,响应终端用户的请求。因其距离用户更近,故其响应时间才更快。
据统计,超过80%的互联网用户会重复访问20%的信息资源,这一现状给缓存技术的应用提供了先决条件。为减少网络中冗余数据的重复传输,CDN技术应运而生。通过CDN将广域传输转为本地或就近访问,解决了因分布、带宽、服务器性能带来的访问延迟问题。CDN,即内容分发网络,是指将源站内容分发至最接近用户的节点服务器,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。
一、CDN基本思想
传统的http访问过程是用户在浏览器填入要访问的域名,浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;再通过IP地址向域名的服务主机发出数据访问请求,得到请求数据,最终返回所需要的内容。CDN的基本思路则是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,通过在网络各处放置节点服务器构成在现有互联网基础之上的智能虚拟网络。CDN系统能够实时地根据网络流量和各节点的连接、负载状况,以及到用户的距离和响应时间等综合信息,将用户的请求重新导向离用户最近的服务节点。
二、基础架构
最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:
(1)当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
(2)CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
(3)用户向CDN的全局负载均衡设备发起内容URL访问请求。
(4)CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
(5)区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
(6)全局负载均衡设备把服务器的IP地址返回给用户。
(7)用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
三、CDN访问的具体流程
(1)当浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;
(2)在此过程中,使用全局负载均衡DNS解析,并根据地理位置信息解析对应的IP地址,使得用户能就近访问;
(3)此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
(4)缓存服务器根据浏览器提供的要访问的域名,通过cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
(5)缓存服务器从实际IP地址得到内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程;
(6)客户端得到由缓存服务器返回的数据后显示出来并完成整个浏览的数据请求过程。
四、CDN的关键技术
典型的CDN系统由分发服务系统,负载均衡系统和运营管理系统组成,其中最核心的当属负载均衡系统。负载均衡系统负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。两级调度体系分为全局负载均衡和本地负载均衡。全局负载均衡主要根据用户就近性原则,通过对每个服务节点进行“最优”判断,确定向用户提供服务的cache的物理位置。本地负载均衡主要负责节点内部的设备负载均衡。
当下的视频、直播等内容分发渠道已成为企业争夺流量入口的主战场,CDN作为网络基础应用设施,自始至终都发挥着不可或缺的作用。CDN不仅可以降低延时,提高稳定性,还起到了缓解服务器带宽压力和保护源站服务器的作用。即便是针对动态内容的的恶意请求,CDN的调度系统也可以卸载源站服务器压力,维护系统平稳。
五、CDN有哪些作用?
这就是你使用CDN的第一个也是最重要的原因:为了加速网站的访问除此之外,CDN还有其他一些作用:
1.加速网站访问CDN在客户流量最为集中的区域或线路部署多个缓存服务器,如果客户获取静态资源的话,可以直接就近访问缓存服务器,无需集中访问源站,这样就大大降低了源服务器的压力,同时对于客户而言,访问距离缩短,线路得到分配,访问的速度也大大加快。
2.为了实现跨运营商、跨地域的全网覆盖互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点商,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。
3.为了保障你的网站安全CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。
4.为了异地备援当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站可以做到永不宕机。
5.为了节约成本投入使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。
中科三方作为中科院旗下域名管理专家,专注域名相关网络技术领域20载,已通过公安部信息安全等级保护(三级)认证,是中石油、工商银行、家乐福、百事可乐等知名企业和大多数省部级以上国家机关的共同选择。
CDN的全称是ContentDeliveryNetwork,即内容分发网络。其目的是通过在现有的中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。内容分发网络采用智能路由和流量管理技术,及时发现能够给访问者提供最快响应的加速节点,并将访问者的请求转发到该加速节点,由该加速节点提供内容服务。利用内容分发与复制机制,CDN客户不需要改动原来的网站结构,只需修改少量的DNS配置,就可以加速网络的响应速度。当用户访问了使用CDN服务的网站时,域名解析请求最终由重定向DNS负责处理。它通过一组预先定义好的策略(如内容类型、地理区域、网络负载状况等),将当时能够最快响应用户的节点地址提供给用户,使用户可以得到快速的服务。同时,它还与分布在不同地点的所有CDN节点保持通信,搜集各节点的健康状态,确保不将用户的请求分配到任何一个已经不可用的节点上。而网宿CDN还具有在网络拥塞和失效情况下,能拥有自适应调整路由的能力。使用了CDN服务后,用户的访问流程如下图所示:图CDN用户访问流程图☆用户向浏览器提供要访问网站的域名,域名解析的请求被发往网站的DNS服务器;☆由于网站的DNS服务器对此域名的解析设置了CNAME,请求被指向CDN网络中的路由系统;☆CDN对域名进行智能解析,将响应速度最快的节点IP返回给用户;☆浏览器在得到实际的IP地址以后,向CDN节点发出访问请求;☆由于是第一次访问,CDN节点将回到源站取用户请求的数据并发给用户;☆当有其他用户再次访问同样内容时,CDN将直接将数据返回给客户,完成请求/服务过程。用户向浏览器提供要访问网站的域名,域名解析的请求被发往网站的DNS服务器;由于网站的DNS服务器对此域名的解析设置了CNAME,请求被指向CDN网络中的路由系统;CDN对域名进行智能解析,将响应速度最快的节点IP返回给用户;浏览器在得到实际的IP地址以后,向CDN节点发出访问请求;由于是第一次访问,CDN节点将回到源站取用户请求的数据并发给用户;当有其他用户再次访问同样内容时,CDN将直接将数据返回给客户,完成请求/服务过程。通过以上的分析我们可以看出,CDN服务对网站访问提供加速的同时,可以实现对普通访问用户透明,即加入缓存以后用户客户端无需进行任何设置,直接输入被加速网站原有的域名即可访问。