带你了解 CDN 基础知识

199 阅读4分钟

图片.png

「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战

CDN 概念

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

最初的核心理念,是将内容缓存在终端用户附近。在靠近用户的地方,建一个缓存服务器,把远端的内容,复制一份,放在这里,不就OK了?因为这项技术是把内容进行了分发,所以它的名字就叫做CDN(Content Delivery Network,内容分发网络)。

CDN就是采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。

传统的网络访问形式

  • 用户向浏览器提供要访问的域名

  • 浏览器对域名进行解析,得到此域名对应的IP地址

  • 浏览器用IP地址,向域名的服务主机发出数据访问请求

  • 浏览器根据域名主机返回的数据显示网页的内容

使用CDN的访问形式

  • 用户向浏览器提供要访问的域名

  • 浏览器对域名进行解析,由于 CDN 对域名解析过程进行了调整,所以解析函数库得到的是该域名对应的 CNAME 记录(由于现在已经是使用了 CDN 服务,CNAME 为 CDN 服务商域名),为了得到实际 IP 地址,浏览器需要再次对获得的 CNAME 域名进行解析以得到实际的 IP 地址;在此过程中,使用的全局负载均衡 DNS 解析,如根据地理位置信息解析对应的 IP 地址,使得用户能就近访问。(CDN服务来提供最近的机器)

  • 此次解析得到 CDN 缓存服务器的 IP 地址,浏览器在得到实际的 IP 地址以后,向缓存服务器发出访问请求

  • 缓存服务器根据浏览器提供的要访问的域名,通过 Cache 内部专用 DNS 解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求

  • 缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程

  • 客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程

CDN 网络是在用户和服务器之间增加 Cache 层,通过接管 DNS,将用户的请求引导到 Cache 上获得源服务器的数据。

其实,CDN 本身就是一种 DNS 劫持,只不过是良性的。 不同于黑客强制 DNS 把域名解析到自己的钓鱼 IP 上,CDN 则是让 DNS 主动配合,把域名解析到临近的服务器上。

CDN关键技术

  1. 缓存算法:缓存算法决定命中率、源服务器压力、POP节点存储能力
  2. 分发能力:分发能力取决于IDC能力和IDC策略性分布
  3. 负载均衡:负载均衡(智能调度)决定最佳路由、响应时间、可用性、服务质量
  4. 基于DNS:基于DNS的负载均衡以CNAME实现[to cluster],智取最优节点服务,缓存点有客户端浏览器缓存、本地DNS服务器缓存,缓存内容有DNS地址缓存、客户请求内容缓存、动态内容缓存
  5. 支持协议:如静动态加速(图片加速、https带证书加速)、下载加速、流媒体加速、企业应用加速、手机应用加速

CDN的不足

实时性不太好是CDN的致命缺陷,解决方法是在网络内容发生变化时将新的网络内容从服务器端直接传送到缓存器,或者当对网络内容的访问增加时将数据源服务器的网络内容尽可能实时地复制到缓存服务器。

CDN的应用场景

  • 网站站点/应用加速

  • 音视频点播/大文件下载分发加速

  • 移动应用加速

参考文章: