【科普文章】CDN的作用和工作原理

2023-04-24 16:21:42 浏览数 (2)

前言

许多的个人站长在建站初期会经常看到一个词叫“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地址给用户……

域名解析流程简要说明

  1. 用户向 LocalDns 查询域名 www.cdntest.com
  2. LocalDns 向 授权DNS 查询www.cdntest.com
  3. 授权DNS 判断用户使用的 LocalDns的ip地址,匹配上述设置的ip范围,如果范围在网通,就将网通对应的ip地址(192.168.0.1),回应给LocalDns(其他依此类推)
  4. LocalDns 将得到的域名ip地址,回应给 用户端 (域名解析完成)

说明:再此过程中,我们简化了主DNS 到 智能DNS 之间的CNAME过程(为了简要说明问题). 这里使用的是静态拓扑(根据ip范围)的方法,也称为地域化方法,只是判断LocalDns的IP.

此简化方案中的存在的问题

  1. 如果用户设置错误的dns,可能会导致用户访问比原来慢(比如网通用户设置了电信的DNS)
  2. 不能判断CDN节点服务器的健康状态和容量状态,可能会把用户定向到不可用的CDN节点
  3. 由于静态拓扑方法,可能存在用户访问的CDN节点不是最优化和最快的
  4. …..可能还有其他想不到的….

现在很少见到按这种工作的CDN了

总结

CDN是为了用户取得更好体验的,不好的CDN反而会将用户体验降低!

0 人点赞