返回文章
阅读时间 8 分钟

关于 CDN

本文将深入探讨 CDN 的概念、工作原理以及相关的常见术语。

什么是 CDN?

CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,通过部署在多个地理位置的服务器节点,将用户请求的内容(如网页、视频、图片等)快速、可靠地分发到用户的设备上。

CDN 解决了什么问题?

通常情况下,用户与服务器的物理距离越远,访问时间越长。

CDN 通过在全国或全球范围内设立边缘服务器,并将内容缓存到这些服务器上,当用户访问网站时,它能根据用户的地理位置,选择最近的边缘服务器提供服务,从而减少延迟,提高访问速度。

CDN 的工作原理

用户在访问一个没有使用 CDN 的站点时,其访问流程大致为:

  1. 用户在浏览器中输入域名,浏览器向本地 DNS 服务器请求域名对应的 IP 地址。
  2. 本地 DNS 服务器未找到域名对应的 IP 地址,向网站授权的 DNS 服务器请求域名对应的 IP 地址(忽略完整的 DNS 解析过程)。
  3. 网站授权的 DNS 服务器找到域名对应的 IP 地址,返回给本地 DNS 服务器。
  4. 本地 DNS 服务器将 IP 地址返回给浏览器。
  5. 浏览器向 IP 地址对应的服务器请求资源。
  6. 服务器处理请求,并将资源返回给浏览器。

我们可以通过一张图来理解整个流程:

Not Using CDN

而站点使用了 CDN 后,用户的访问流程大致为:

  1. 用户在浏览器中输入域名,浏览器向本地 DNS 服务器请求域名对应的 IP 地址。
  2. 本地 DNS 服务器未找到域名对应的 IP 地址,向网站授权的 DNS 服务器请求域名对应的 IP 地址(忽略完整的 DNS 解析过程)。
  3. 网站授权的 DNS 服务器未找到域名对应的 IP 地址,只找到对应的 CNAME(域名别名) 记录,返回给本地 DNS 服务器。
  4. 本地 DNS 服务器根据 CNAME 找到 CDN 的 DNS 服务器,请求 CNAME 对应的 IP 地址。
  5. CDN 的 DNS 服务器调度系统会根据用户的地理位置(通常是用 IP 来锁定的)、运营商网络、边缘服务器负载情况等,选择最近的、最合适的边缘服务器,将 IP 地址返回给本地 DNS 服务器。
  6. 本地 DNS 服务器将 IP 地址返回给浏览器。
  7. 浏览器向 IP 地址对应的边缘服务器请求资源。
  8. 边缘服务器处理请求,如果有资源,则将资源返回给浏览器,如果没有资源,则先向源站请求资源,再返回给浏览器。

我们可以通过一张图来理解整个流程:

Using CDN

整个访问流程中,有几个关于域名解析的关键名词需要我们理解:

  • DNS 服务器:将域名解析为 IP 地址的服务。
  • 本地 DNS 服务器:由网络服务提供商(ISP)提供或由企业内部配置,用于处理用户设备的 DNS 解析请求。
  • 网站授权的 DNS 服务器:即权威 DNS 服务器,是为域名提供真实 DNS 记录的服务器,由域名所有者配置和管理。
  • CNAME:将一个域名映射到另一个域名,常用于设置别名。在域名解析时遇到 CNAME 记录,会继续解析 CNAME 记录指向的域名的 IP 地址。
  • CDN 的 DNS 服务器:由 CDN 服务商提供的特殊 DNS 服务器,用于解析域名到分布式的边缘服务器,确保用户能从最近的服务获取内容。

关于 CDN 的常见名词

以下是 CDN 中一些经常会出现的名词:

  • 边缘服务器:部署在各地的服务器,用于存储和分发内容,也称作 CDN 节点。
  • 源站:网站的原始服务器,存储网站的全部资源和数据。它是 CDN 节点获取内容的最终来源。
  • 回源:是指当 CDN 节点无法满足用户请求时(如缓存中无数据或数据已过期),向源站发起请求以获取所需内容。
  • 缓存:即 CDN 节点存储的资源副本。
  • 命中率:访问的资源正好在缓存里,可以直接返回,命中次数与所有访问次数之比。
  • 回源率:访问的资源不在缓存里,需要回源站获取资源,回源次数与所有访问次数之比。