4

什么是CDN

CDN全称是Content Delivery Network,即内容分发网络,也称为内容传送网络CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

简单理解了,CDN是利用缓存技术,解决如何将数据快速可靠从源站传递到用户的问题。用户获取数据时,不需要直接从源站获取,通过CDN分发,用户可以从一个较优的服务器获取数据,从而达到快速访问,并减少源站负载压力的目的。

CDN快速访问缘由

问:为什么我们不直接从源站直接获取数据,而要通过CDN这个中间转发了?

如果网络上的数据都是直接从源站返回给用户的话,那么极有可能就会出现网络拥塞,服务器过载的情况。那如果能有一种技术,将数据缓存在离用户最近的地方,使用户以最快的速度获取,那么就可以减少压力,减少网络传输的拥堵,起到很大的作用。CDN便是这样的一种技术方案,由此孕育出来。

CDN原理

CDN基本原理是采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

用户通过浏览器访问未使用CDN加速的网站大致过程如下:
用户访问网站过程

  1. 用户在浏览器中输入要访问的域名;
  2. 浏览器向DNS服务器请求对该域名的解析;
  3. DNS服务器返回该域名的IP地址给浏览器;
  4. 浏览器使用该IP地址向服务器发送请求内容;
  5. 服务器将用户请求的内容返回给浏览器;

用户访问的网站使用了CDN,其过程会变成以下这样:
用户访问网站过程

  1. 用户向浏览器输入www.processon.com这个域名,浏览器第一次发现本地没有DNS缓存,则向网站的DNS服务器请求;
  2. 浏览器向DNS服务器请求对该域名的解析。由于CDN对域名进行了调整,DNS服务器最终会将域名解析权交给CNAME指向CDN专用的DNS服务器;
  3. CDN的DNS负载均衡系统解析域名,把对用户响应速度最快的IP地址返回给用户;
  4. 用户向该IP地址(CDN服务器)发出请求;
  5. CDN负载均衡设备会为用户选择一台合适的缓存服务器提供服务;
  6. 用户向缓存服务器发出请求;
  7. 缓存服务器响应用户请求,将用户所需的内容返回给用户;

总结

网站和用户之间引入CDN之后,用户不会有任何与原来不同的感觉。CDN的基本思路就是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快,更稳定。CDN便是让用户以最短的路径,最快的速度对网站进行访问,减少源站中心的负载压力。


提莫找蘑菇
1.9k 声望39 粉丝

不要给我说什么:react/angular/Typescript/vue/es6/es7/babel/webpack....老夫就用Jquery!0.0