深入了解 CDN 加速机制

2026-01-08 12 0

一、CDN 的定义

CDN 全称为内容分发网络。其目的在于通过在现有互联网中添加一层新的缓存层,将网站内容发布到最接近用户的网络节点,使用户能够快速获取所需内容,从而提升用户访问网站的响应速度。技术上,它解决了因网络带宽小、用户访问量大、网点分布不均等问题所造成的访问速度慢的问题。简单来说,CDN 的工作原理是将源站的资源缓存到全球各地的 CDN 节点上,当用户请求资源时,从最近的节点返回缓存的资源,避免网络拥堵、减轻源站负担,确保用户访问资源的速度与体验。

CDN节点

CDN 对网络的优化作用包括以下几个方面
  • 解决服务器端的首公里问题
  • 缓解或消除不同运营商之间互联瓶颈的影响
  • 减轻各省出口带宽的压力
  • 缓解骨干网的负担
  • 优化网上热点内容的分布

二、CDN 的工作机制

传统的访问过程

传统访问过程

用户访问未使用 CDN 缓存的网站的过程为:

  1. 用户输入域名,操作系统向 LocalDns 查询域名的 IP 地址。
  1. LocalDns 向 ROOT DNS 查询域名的授权服务器(假设 LocalDns 缓存过期)。
  2. ROOT DNS 将域名授权 DNS 记录回应给 LocalDns。
  3. LocalDns 得到域名授权 DNS 记录后,继续向域名授权 DNS 查询域名的 IP 地址。
  4. 域名授权 DNS 查询域名记录后,回应给 LocalDns。
  5. LocalDns 将得到的域名 IP 地址,回应给用户端。
  6. 用户得到域名 IP 地址后,访问站点服务器。
  7. 站点服务器应答请求,将内容返回给客户端。

CDN 的访问过程

CDN访问过程

使用 CDN 缓存后的网站访问过程变为:

  1. 用户输入域名,操作系统向 LocalDns 查询域名的 IP 地址。
  1. LocalDns 向 ROOT DNS 查询域名的授权服务器(假设 LocalDns 缓存过期)。
  2. ROOT DNS 将域名授权 DNS 记录回应给 LocalDns。
  3. LocalDns 得到域名授权 DNS 记录后,继续向域名授权 DNS 查询域名的 IP 地址。
  4. 域名授权 DNS 查询域名记录后(一般是 CNAME),回应给 LocalDns。
  5. LocalDns 得到域名记录后,向智能调度 DNS 查询域名的 IP 地址。
  6. 智能调度 DNS 根据一定的算法和策略(如静态拓扑、容量等),将最适合的 CDN 节点 IP 地址回应给 LocalDns。
  7. LocalDns 将得到的域名 IP 地址,回应给用户端。
  8. 用户得到域名 IP 地址后,访问站点服务器。
  9. CDN 节点服务器应答请求,将内容返回给客户端。(缓存服务器一方面在本地保存以备后用,另一方面将获取的数据返回给客户端,完成数据服务过程。)

通过以上分析可以看出,为实现普通用户访问的透明性(使用缓存后用户客户端无需进行设置),需要使用 DNS 来引导用户访问缓存服务器,以实现透明的加速服务。用户访问网站的第一步是域名解析,因此通过修改 DNS 引导用户访问是最简单有效的方式。

CDN 网络的构成要素

对于普通互联网用户,每个 CDN 节点相当于一个放置在其周围的网站服务器。通过接管 DNS,用户的请求被透明指向离他最近的节点,节点中的 CDN 服务器会像网站的原始服务器一样响应用户请求。由于它离用户更近,因此响应时间更快。

在上图中,虚线圈起来的部分就是 CDN 层,这层位于用户端和站点服务器之间。

  • 智能调度 DNS(如 f5 的 3DNS)是 CDN 服务中的关键系统。当用户访问加入 CDN 服务的网站时,域名解析请求最终由“智能调度 DNS”负责处理。它通过一组预定义策略,将当时最接近用户的节点地址提供给用户,使用户能够快速获得服务。同时,它需要与分布在各地的 CDN 节点保持通信,跟踪各节点的健康状态、容量等信息,确保将用户的请求分配到最近可用的节点。
  • 缓存功能服务、负载均衡设备(如 lvs、F5 的 BIG/IP)、内容 Cache 服务器(如 squid)、共享存储

三、名词解释

CNAME 记录(CNAME record)

CNAME 即别名(Canonical Name);用来将一个域名解析到另一个域名。当 DNS 系统查询 CNAME 左侧名称时,会转向 CNAME 右侧名称进行查询,直到追踪到最后的 PTR 或 A 名称,成功查询后才会回应,否则失败。例如,你有一台服务器上存放了很多资料,使用 docs.example.com 访问这些资源,但希望通过 documents.example.com 也能访问这些资源,那么可以在 DNS 解析服务商添加一条 CNAME 记录,将 documents.example.com 指向 docs.example.com,添加该条记录后,所有访问 documents.example.com 的请求都会转到 docs.example.com,获取相同内容。

CNAME 域名

接入 CDN 时,在 CDN 提供商控制台添加完加速域名后,会得到一个 CDN 分配的 CNAME 域名,需在 DNS 解析服务商添加 CNAME 记录,将加速域名指向该 CNAME 域名,这样该域名的请求将转向 CDN 的节点,达到加速效果。

DNS

DNS 即域名系统,是域名解析服务的意思。它在互联网中的作用是将域名转换为网络可识别的 IP 地址。人们习惯记忆域名,但机器间只认 IP 地址,域名与 IP 地址之间是一一对应的,转换过程称为域名解析,由专门的域名解析服务器完成,整个过程自动进行。比如:上网时输入的 www.baidu.com 会自动转换为 220.181.112.143。常见的 DNS 解析服务商包括:基石云解析、万网解析、DNSPod、新网解析、Route53(AWS)、Dyn、基石云等。

回源 host

回源 host:决定回源请求访问到源站上的具体某个站点。

例子1:源站是域名源站为 www.a.com,回源 host 为 www.b.com,实际回源请求到 www.a.com 解析到的 IP,对应的主机上的站点 www.b.com
例子2:源站是 IP 源站为 1.1.1.1,回源 host 为 www.b.com,实际回源的是 1.1.1.1 对应的主机上的站点 www.b.com

协议回源

指回源时使用的协议与客户端访问资源时的协议保持一致,即如果客户端使用 HTTPS 方式请求资源,当 CDN 节点上未缓存该资源时,节点会使用相同的 HTTPS 方式回源获取资源;同理如果客户端使用 HTTP 协议请求,CDN 节点回源时也使用 HTTP 协议。

相关文章

无备案CDN与高防IP组合更合适
高防CDN的定义及其优势