据统计,超过80%的互联网用户会重复访问20%的信息资源,这一现状给缓存技术的应用提供了先决条件。
为减少网络中冗余数据的重复传输,CDN技术因运而生。通过CDN将广域传输转为本地或就近访问,解决了因分布、带宽、服务器性能带来的访问延迟问题。
CDN,内容分发网络,全称Content Delivery Network,是指将源站内容分发至最接近用户的节点服务器,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。
CDN的基本思想
传统的http访问过程是用户在浏览器填入要访问的域名,浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;
再通过IP地址向域名的服务主机发出数据访问请求,得到请求数据,最终返回所需要的内容。
CDN的基本思路则是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,通过在网络各处放置节点服务器构成在现有互联网基础之上的智能虚拟网络。
CDN系统能够实时地根据网络流量和各节点的连接、负载状况,以及到用户的距离和响应时间等综合信息,将用户的请求重新导向离用户最近的服务节点。
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的调度系统也可以卸载源站服务器压力,维护系统平稳。