Published on

CDN和DNS

Authors
  • avatar
    Name
    hpoenixf
    Twitter

什么是 CDN?它有什么好处?

在性能优化中,常见的建议是将资源部署到 CDN。那么,CDN 是什么?它的作用是什么?


DNS 简介

在讲 CDN 之前,先了解 DNS(Domain Name System) 的概念。

什么是 DNS?

DNS 是一个分布式数据库,用于将域名与 IP 地址联系起来。域名与 IP 地址的对应关系称为记录(record),常见记录类型包括:

  • A 记录:Address,域名指向的 IP 地址。
  • NS 记录:Name Server,保存下一级域名信息的服务器地址。
  • MX 记录:Mail eXchange,电子邮件服务器的地址。
  • CNAME 记录:Canonical Name,返回另一个域名,指向该域名的服务器。
  • PTR 记录:Pointer Record,用于 IP 地址查询域名。

DNS 的组成

  1. 名称解析器(Resolver)
  2. 域名空间(Domain Name Space)
  3. 名称服务器(Name Server)

DNS 查询的过程

当访问 www.example.com 时,DNS 通过以下步骤解析 IP 地址:

  1. 检查缓存

    • 浏览器缓存。
    • 操作系统缓存(如 hosts 文件)。
    • 路由器缓存。
  2. 向 ISP 提供的 LDNS(本地 DNS)查询。 如果 LDNS 找不到结果,则请求根域名服务器(Root Server)。

  3. 递归查询

    • 根服务器返回顶级域名(TLD)服务器地址(如 .com)。
    • TLD 服务器返回次级域名(SLD)服务器地址(如 example.com)。
    • SLD 服务器返回目标域名(如 www.example.com)的 IP 地址。
  4. 结果缓存 Local DNS Server 将结果缓存并返回给用户。


CDN 简介

什么是 CDN?

CDN(Content Delivery Network),即内容分发网络,是一种通过网络中的缓存服务器将内容分发给用户的技术。 CDN 会根据网络流量、节点负载、用户位置等信息,将用户的请求引导到最近的服务节点上,以提高内容的访问速度和质量。


CDN 的组成

  1. 分发服务系统

    • Cache 设备:负责直接响应用户请求,提供本地缓存内容。
    • Cache 设备同时负责与源站点同步内容。
  2. 负载均衡系统

    • 全局负载均衡(GSLB):根据用户位置选择最佳的 Cache 服务器。
    • 区域负载均衡(SLB):在节点内部对 Cache 设备进行负载均衡。
  3. 运营管理系统

    • 包括客户管理、计费管理、统计分析等功能。

使用 CDN 的过程

  1. 修改 DNS 解析,将域名的 CNAME 指向 CDN 提供的服务器。
  2. 用户访问资源时:
    • 未使用 CDN 时:用户通过 DNS 查找目标服务器的 IP,直接向源服务器请求数据。
    • 使用 CDN 时
      1. 本地 DNS 将解析权交给 CDN 的专用 DNS 服务器。
      2. CDN 的 DNS 返回全局负载均衡设备的 IP 地址。
      3. 全局负载均衡设备选择最近的区域负载均衡设备。
      4. 区域负载均衡设备选择最佳的 Cache 服务器。
      5. Cache 服务器响应用户请求,如果缓存中没有资源,则从源服务器拉取资源并缓存。

CDN 的优点

  1. 本地 Cache 加速 用户可从距离最近的 Cache 服务器获取资源,减少延迟。

  2. 镜像服务 消除不同运营商之间的网络瓶颈,保证跨网络的访问质量。

  3. 远程加速 自动选择最佳 Cache 服务器,提高加载速度。

  4. 带宽优化 分担网络流量,减轻源服务器压力。

  5. 抗攻击能力 通过分布式架构和流量分发,增强抵御 DDoS 等攻击的能力。

  6. 节约成本 减少网络流量和服务器负载,从而降低运维成本。


总结

CDN 通过优化内容分发过程,提升了网站性能和用户体验。结合 DNS 的知识,我们可以更好地理解 CDN 的工作原理及其优势:

  • DNS:解决了域名到 IP 地址的映射问题。
  • CDN:通过分布式缓存和负载均衡技术,提高内容加载速度,保障访问质量。

CDN 的广泛应用使其成为性能优化的重要手段之一。