■ 上海 郑智杰
笔者认为CDN在传统网站访问过程一共有4个步骤。
1.浏览器首先检查自身的缓存文件,是否存在域名对应的IP地址,若存在,则调用IP地址,完成域名解析。
2.若浏览器无法从自身缓存文件中获取IP地址,则进一步查找操作系统的缓存文件,若存在域名与之对应IP地址,则返回,完成解析。
3.若操作系统本地缓存文件未获得域名解析,则向操作系统中设置的DNS服务器也称本地DNS服务器发出域名解析请求,若要查询的域名包含在首选DNS服务器的配置文件或系统缓存中,则返回解析给客户主机,完成域名解析。
4.若本地DNS服务器从系统配置文件或缓存中无法完成解析,则将根据本地DNS服务器的转发模式进行下一步查询。
(1)若本地DNS启用转发模式,则本地DNS服务器会把用户主机的域名解析请求转发给本地DNS的上级DNS服务器,由上级DNS服务器再按照是否设置转发模式进行后续操作,以此循环,直至获取IP地址或解析失败。
(2)若本地DNS未启用转发模式,则本地DNS服务器会将请求直接递交给“根DNS服务器”,“根DNS服务器”收到请求后将返回该域名的顶级域名服务器IP地址。本地DNS服务器获取到顶级域名服务器IP地址后,再向该域名顶级服务器发送域名解析请求,返回该域名二级域名服务器IP地址,以此循环,直到获取到域名的主机DNS服务器。
(3)无论是否启用转发模式,域名解析的结果最终均会返回到本地DNS服务器,再由本地DNS服务器返回给客户主机。
CDN关键技术
CDN的关键技术主要有路由选择、内容分发和数据存储。
路由选择的作用是将用户的访问请求通过DNS负载均衡策略,获取到整个CDN网络中的相对于用户请求的最佳节点IP地址。最佳节点可以通过多种策略选出,比如路由距离最短、边缘节点负载最少等。故策略准确性、实时性及多种策略的加权平均都会影响整个CDN网络的性能。
内容分发是指从主站将内容发布到各个CDN边缘节点的过程。内容分发形式主要有PUSH和PULL两种模式。
PUSH模式是指主站主动将一些比较热点的内容推送至各个边缘节点。
PULL模式是指用户请求CDN边缘节点时,若资源未命中,则向CDN中心节点或主机源进一步获取资源。
数据存储就是保存主站的资源文件副本,终端用户可直接访问边缘节点中的主站文件副本,就像直接访问主站那样,此时随着主站文件的增多,文件副本的数量也会增长,那么边缘节点服务器的本地存储容量就无法满足要求,此时可通过直连存储DAS、网络存储NAS和存储区域网络SAN进行文件容量扩容,扩容方案可结合内容容量、读取速度及数据冗余机制等做出合理制定,在保障数据可用性的情况下,考虑到同步数据的时间和数据同步时意外情况,建议采用RAID-6磁盘阵列机制。