在不一样地域的用户访问网站的响应速度存在差别,为了提升用户访问的响应速度、优化现有Internet中信息的流动,须要在用户和服务器间加入中间层CDN. 使用户能以最快的速度,从最接近用户的地方得到所需的信息,完全解决网络拥塞,提升响应速度,是目前大型网站使用的流行的应用方案.php
CDN的全称是Content Delivery Network,即内容分发网络。其目的是经过在现有的Internet中增长一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络"边缘"的节点,使用户能够就近取得所需的内容,提升用户访问网站的响应速度。从技术上全面解决因为网络带宽小、用户访问量大、网点分布不均等缘由,提升用户访问网站的响应速度。html
Cache层的技术,消除数据峰值访问形成的结点设备阻塞。Cache服务器具备缓存功能,因此大部分网页对象(Web page object),如html, htm, php等页面文件,gif,tif,png,bmp等图片文件,以及其余格式的文件,在有效期(TTL)内,对于重复的访问,没必要从原始网站从新传送文件实体, 只需经过简单的认证(Freshness Validation)- 传送几十字节的Header,便可将本地的副本直接传送给访问者。因为缓存服务器一般部署在靠近用户端,因此能得到近似局域网的响应速度,并有效减小广域带宽的消耗。不只能提升响应速度,节约带宽,对于加速Web服务器,有效减轻源服务器的负载是很是有效的。前端
根据加速对象不一样,分为 客户端加速 和 服务器加速算法
客户端加速 : Cache部署在网络出口处,把常访问的内容缓存在本地,提升响应速度和节约带宽;缓存
服务器加速 : Cache部署在服务器前端,做为Web服务器的代理缓存机,提升Web服务器的性能,加速访问速度
若是多台Cache加速服务器且分布在不一样地域,须要经过有效地机制管理Cache网络,引导用户就近访问(好比经过DNS引导用户),全局负载均衡流量,这是CDN内容传输网络的基本思想.服务器
CDN对网络的优化做用主要体如今以下几个方面 - 解决服务器端的“第一千米”问题 - 缓解甚至消除了不一样运营商之间互联的瓶颈形成的影响 - 减轻了各省的出口带宽压力 - 缓解了骨干网的压力 - 优化了网上热点内容的分布网络
咱们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差异:负载均衡
由上图可见,用户访问未使用CDN缓存网站的过程为:性能
用户输入访问的域名,操做系统向 LocalDns 查询域名的ip地址.优化
LocalDns向 ROOT DNS 查询域名的受权服务器(这里假设LocalDns缓存过时)
ROOT DNS将域名受权dns记录回应给 LocalDns
LocalDns获得域名的受权dns记录后,继续向域名受权dns查询域名的ip地址
域名受权dns 查询域名记录后,回应给 LocalDns
LocalDns 将获得的域名ip地址,回应给 用户端
用户获得域名ip地址后,访问站点服务器
站点服务器应答请求,将内容返回给客户端.
CDN网络是在用户和服务器之间增长Cache层,主要是经过接管DNS实现,将用户的请求引导到Cache上得到源服务器的数据
下面让咱们看看访问使用CDN缓存后的网站的过程:
经过上图,咱们能够了解到,使用了CDN缓存后的网站的访问过程变为:
用户输入访问的域名,操做系统向 LocalDns 查询域名的ip地址.
LocalDns向 ROOT DNS 查询域名的受权服务器(这里假设LocalDns缓存过时)
ROOT DNS将域名受权dns记录回应给 LocalDns
LocalDns获得域名的受权dns记录后,继续向域名受权dns查询域名的ip地址
域名受权dns 查询域名记录后(通常是CNAME),回应给 LocalDns
LocalDns 获得域名记录后,向智能调度DNS查询域名的ip地址
智能调度DNS 根据必定的算法和策略(好比静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns
LocalDns 将获得的域名ip地址,回应给 用户端
用户获得域名ip地址后,访问站点服务器
CDN节点服务器应答请求,将内容返回给客户端.(缓存服务器一方面在本地进行保存,以备之后使用,二方面把获取的数据返回给客户端,完成数据服务过程)
经过以上的分析咱们能够获得,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,须要使用DNS(域名解析)来引导用户来访问Cache服务器,以实现透明的加速服务. 因为用户访问网站的第一步就是 域名解析 ,因此经过修改dns来引导用户访问是最简单有效的方式.