前言
许多的个人站长在建站初期会经常看到一个词叫“CDN”,而有些网站简直把它说成了神,那么CDN到底有什么作用以及它的工作方式又是什么呢,让我们往后看。
简介
内容分发网络(英语:Content Delivery Network或Content Distribution Network,缩写:CDN)是指一种透过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。 ——WIKI
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。 ——百度百科
上面是一段来自WIKI和百度百科的简介,是不是有点懵?别急,继续往后看。
我们先来说一下加cdn和不加cdn从用户角度来看有什么区别:
不加CDN:
用户直接从源站(服务器)获取内容,距离(源站)较近的用户往往能获得较好的访问体验而距离(源站)的用户的延迟就会增加访问体验也会变差。
且源站带宽有限,一个用户访问就会占一份的带宽,用户一多体验就会变差甚至短时间内无法访问。
有CDN:
CDN节点将网站的静态资源从源站(服务器)中存储下来,用户访问时直接从CDN节点处访问资源而不进行回源操作。减少源站的压力,占用更少的带宽,支持更多用户访问。
作用
简单的一句话来说就是使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
也就是使用户访问离自己最近的资源从而获得更好的用户体验,和
- 解决服务器端的“第一公里”问题
- 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
- 减轻了各省的出口带宽压力
- 缓解了骨干网的压力
- 优化了网上热点内容的分布
工作原理
简单来说也就是缓存服务器,它记录了用户所需内容,而且离用户较近,负载较小,因此提高了服务器响应速度。实际上CDN的工作过程要更复杂,为了便于理解,上面只是简述。我们从用户访问一个URL地址说起:访问URL => CNAME指向的CDN专用DNS服务器对URL解析 => 负载均衡设备根据解析的ip地址和内容选择一台缓存服务器 => 返回缓存服务器ip地址给用户……
域名解析流程简要说明
- 用户向 LocalDns 查询域名 www.cdntest.com
- LocalDns 向 授权DNS 查询www.cdntest.com
- 授权DNS 判断用户使用的 LocalDns的ip地址,匹配上述设置的ip范围,如果范围在网通,就将网通对应的ip地址(192.168.0.1),回应给LocalDns(其他依此类推)
- LocalDns 将得到的域名ip地址,回应给 用户端 (域名解析完成)
说明:再此过程中,我们简化了主DNS 到 智能DNS 之间的CNAME过程(为了简要说明问题). 这里使用的是静态拓扑(根据ip范围)的方法,也称为地域化方法,只是判断LocalDns的IP.
此简化方案中的存在的问题
- 如果用户设置错误的dns,可能会导致用户访问比原来慢(比如网通用户设置了电信的DNS)
- 不能判断CDN节点服务器的健康状态和容量状态,可能会把用户定向到不可用的CDN节点
- 由于静态拓扑方法,可能存在用户访问的CDN节点不是最优化和最快的
- …..可能还有其他想不到的….
现在很少见到按这种工作的CDN了
总结
CDN是为了用户取得更好体验的,不好的CDN反而会将用户体验降低!