CDN(Content Delivery Network,内容分发网络)技术上是通过在现有的Internet中叠加一层新的网络架构,将网站内容发布到离用户最近的"边缘节点"上,使用户能就近取得所需内容,解决跨域访问网站的线路瓶颈,提高网站的访问及响应速度。
要了解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服务器就像网站的原始服务器一样,响应终端用户的请求。因其距离用户更近,故其响应时间才更快。