据统计,超过80%的互联网用户会重复访问20%的信息资源,这一现状给缓存技术的应用提供了先决条件。
为减少网络中冗余数据的重复传输,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)用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
(1)当浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;
(2)在此过程中,使用全局负载均衡DNS解析,并根据地理位置信息解析对应的IP地址,使得用户能就近访问;
(3)此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
(4)缓存服务器根据浏览器提供的要访问的域名,通过cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
(5)缓存服务器从实际IP地址得到内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程;
(6)客户端得到由缓存服务器返回的数据后显示出来并完成整个浏览的数据请求过程。
典型的CDN系统由分发服务系统,负载均衡系统和运营管理系统组成,其中最核心的当属负载均衡系统。
负载均衡系统负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。两级调度体系分为全局负载均衡和本地负载均衡。
全局负载均衡主要根据用户就近性原则,通过对每个服务节点进行“最优”判断,确定向用户提供服务的cache的物理位置。本地负载均衡主要负责节点内部的设备负载均衡。
当下的视频、直播等内容分发渠道已成为企业争夺流量入口的主战场,CDN作为网络基础应用设施,自始至终都发挥着不可或缺的作用。
CDN不仅可以降低延时,提高稳定性,还起到了缓解服务器带宽压力和保护源站服务器的作用。即便是针对动态内容的的恶意请求,CDN的调度系统也可以卸载源站服务器压力,维护系统平稳。
这就是你使用CDN的第一个也是最重要的原因:为了加速网站的访问
除此之外,CDN还有其他一些作用:
1.加速网站访问
CDN在客户流量最为集中的区域或线路部署多个缓存服务器,如果客户获取静态资源的话,可以直接就近访问缓存服务器,无需集中访问源站,这样就大大降低了源服务器的压力,同时对于客户而言,访问距离缩短,线路得到分配,访问的速度也大大加快。
2.为了实现跨运营商、跨地域的全网覆盖
互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点商,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。
3.为了保障你的网站安全
CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。
4.为了异地备援
当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站可以做到永不宕机。
5.为了节约成本投入
使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。