CDN
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像 缓存 流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。 下面是一个简单的CND示意图
simple_cdn.png
如上图所示,是CDN一个常见的架构示意图,其工作流程可以总结为:当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技术确定最接近用户的最佳CDN节点,同时将用户的请求指向该节点。当用户的请求到达指定节点时,CDN的服务器(节点上的高速缓存)负责将用户请求的内容提供给用户。具体流程为: 用户在自己的浏览器中输入要访问的网站的域名,浏览器向本地DNS请求对该域名的解析,本地DNS将请求发到网站的主DNS,主DNS根据一系列的策略确定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户,用户向给定的CDN节点请求相应网站的内容
工作原理
CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问时间。 首先,让我们看一下传统的未加缓存服务的访问过程:
visit.png
如图可以看出,传统的网络访问的流程如下:
1:用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址; 2:LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期); 3:ROOT DNS将域名授权dns记录回应给 LocalDns; 4:LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址; 5:域名授权dns 查询域名记录后,回应给 LocalDns; 6:LocalDns 将得到的域名ip地址,回应给用户端; 7:用户得到域名ip地址后,访问站点服务器; 8:站点服务器应答请求,将内容返回给客户端.
下面让我们看一下使用CDN缓存后的网站的访问过程:
cdn.png
如上图,是使用CDN缓存后的网络访问流程:
1:用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址; 2:LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期); 3:ROOT DNS将域名授权dns记录回应给 LocalDns; 4:LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址; 5:域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns; 6:LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址; 7:智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns; 8:LocalDns 将得到的域名ip地址,回应给用户端; 9:用户得到域名ip地址后,访问站点服务器。 宗上,CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问的速度。