|
| 1 | +--- |
| 2 | +title: 关于 CDN |
| 3 | +topic: content/topics/network.mdx |
| 4 | +date: 2024-12-12T16:00:00.000Z |
| 5 | +draft: false |
| 6 | +--- |
| 7 | + |
| 8 | +本文将深入探讨 CDN 的概念、工作原理以及相关的常见术语。 |
| 9 | + |
| 10 | +### 什么是 CDN? |
| 11 | + |
| 12 | +CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,通过部署在多个地理位置的服务器节点,将用户请求的内容(如网页、视频、图片等)快速、可靠地分发到用户的设备上。 |
| 13 | + |
| 14 | +### CDN 解决了什么问题? |
| 15 | + |
| 16 | +通常情况下,用户与服务器的物理距离越远,访问时间越长。 |
| 17 | + |
| 18 | +CDN 通过在全国或全球范围内设立边缘服务器,并将内容缓存到这些服务器上,当用户访问网站时,它能根据用户的地理位置,选择最近的边缘服务器提供服务,从而减少延迟,提高访问速度。 |
| 19 | + |
| 20 | +### CDN 的工作原理 |
| 21 | + |
| 22 | +用户在访问一个没有使用 CDN 的站点时,其访问流程大致为: |
| 23 | + |
| 24 | +1. 用户在浏览器中输入域名,浏览器向本地 DNS 服务器请求域名对应的 IP 地址。 |
| 25 | +2. 本地 DNS 服务器未找到域名对应的 IP 地址,向网站授权的 DNS 服务器请求域名对应的 IP 地址(忽略完整的 DNS 解析过程)。 |
| 26 | +3. 网站授权的 DNS 服务器找到域名对应的 IP 地址,返回给本地 DNS 服务器。 |
| 27 | +4. 本地 DNS 服务器将 IP 地址返回给浏览器。 |
| 28 | +5. 浏览器向 IP 地址对应的服务器请求资源。 |
| 29 | +6. 服务器处理请求,并将资源返回给浏览器。 |
| 30 | + |
| 31 | +我们可以通过一张图来理解整个流程: |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +而站点使用了 CDN 后,用户的访问流程大致为: |
| 36 | + |
| 37 | +1. 用户在浏览器中输入域名,浏览器向本地 DNS 服务器请求域名对应的 IP 地址。 |
| 38 | +2. 本地 DNS 服务器未找到域名对应的 IP 地址,向网站授权的 DNS 服务器请求域名对应的 IP 地址(忽略完整的 DNS 解析过程)。 |
| 39 | +3. 网站授权的 DNS 服务器未找到域名对应的 IP 地址,只找到对应的 CNAME(域名别名) 记录,返回给本地 DNS 服务器。 |
| 40 | +4. 本地 DNS 服务器根据 CNAME 找到 CDN 的 DNS 服务器,请求 CNAME 对应的 IP 地址。 |
| 41 | +5. CDN 的 DNS 服务器调度系统会根据用户的地理位置(通常是用 IP 来锁定的)、运营商网络、边缘服务器负载情况等,选择最近的、最合适的边缘服务器,将 IP 地址返回给本地 DNS 服务器。 |
| 42 | +6. 本地 DNS 服务器将 IP 地址返回给浏览器。 |
| 43 | +7. 浏览器向 IP 地址对应的边缘服务器请求资源。 |
| 44 | +8. 边缘服务器处理请求,如果有资源,则将资源返回给浏览器,如果没有资源,则先向源站请求资源,再返回给浏览器。 |
| 45 | + |
| 46 | +我们可以通过一张图来理解整个流程: |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | +整个访问流程中,有几个关于域名解析的关键名词需要我们理解: |
| 51 | + |
| 52 | +- DNS 服务器:将域名解析为 IP 地址的服务。 |
| 53 | +- 本地 DNS 服务器:由网络服务提供商(ISP)提供或由企业内部配置,用于处理用户设备的 DNS 解析请求。 |
| 54 | +- 网站授权的 DNS 服务器:即权威 DNS 服务器,是为域名提供真实 DNS 记录的服务器,由域名所有者配置和管理。 |
| 55 | +- CNAME:将一个域名映射到另一个域名,常用于设置别名。在域名解析时遇到 CNAME 记录,会继续解析 CNAME 记录指向的域名的 IP 地址。 |
| 56 | +- CDN 的 DNS 服务器:由 CDN 服务商提供的特殊 DNS 服务器,用于解析域名到分布式的边缘服务器,确保用户能从最近的服务获取内容。 |
| 57 | + |
| 58 | +### 关于 CDN 的常见名词 |
| 59 | + |
| 60 | +以下是 CDN 中一些经常会出现的名词: |
| 61 | + |
| 62 | +- 边缘服务器:部署在各地的服务器,用于存储和分发内容,也称作 CDN 节点,。 |
| 63 | +- 源站:网站的原始服务器,存储网站的全部资源和数据。它是 CDN 节点获取内容的最终来源。 |
| 64 | +- 回源:是指当 CDN 节点无法满足用户请求时(如缓存中无数据或数据已过期),向源站发起请求以获取所需内容。 |
| 65 | +- 缓存:即 CDN 节点存储的资源副本。 |
| 66 | +- 命中率:访问的资源正好在缓存里,可以直接返回,命中次数与所有访问次数之比。 |
| 67 | +- 回源率:访问的资源不在缓存里,需要回源站获取资源,回源次数与所有访问次数之比。 |
0 commit comments