Skip to content

CDN 网络原理

基于 HTTP 现代标准 · 核于 2026-06

速查

  • CDN(Content Delivery Network,内容分发网络):一组地理上分散的服务器,把网页内容缓存到离用户更近的地方,加速 HTML、JS、CSS、图片、视频等资源的交付——今天大多数 Web 流量都经由 CDN 提供。
  • 要解决的核心问题 = 距离即延迟:用户离源站越远,物理 RTT(往返时延)越大,页面越慢;CDN 让用户连就近的数据中心而非远端源站,缩短传输距离。
  • PoP(Point of Presence,接入点)/ 边缘节点:CDN 部署在全球各地、尤其是 IXP(Internet Exchange Point,网络交换点) 上的缓存服务器集群,是离用户最近的「内容前哨」。
  • 边缘服务器 vs 源站(origin server):边缘服务器缓存并快速回应静态资源源站保存原始文件、处理动态请求(登录校验、数据库读写等)。
  • 缓存命中 / 未命中:请求的资源在边缘已缓存 = 命中(cache hit),直接就近返回;未缓存 = 未命中(cache miss),边缘**回源(origin pull / origin fetch)**取回、缓存后再返回。
  • 就近调度两条路线DNS 调度(解析域名时按用户地理位置返回最近节点的 IP)与 Anycast(多节点共享同一 IP,BGP 路由自动把请求送到最近节点)。
  • Anycast vs Unicast:Unicast 每个节点一个唯一 IP、流量直达单点;Anycast「一对多中之一」,一个数据中心下线流量自动流向邻近节点,天然抗灾、抗 DDoS。
  • CDN 对前端的价值加速静态资源(就近 + 压缩 + 连接复用)、抗流量峰值(负载均衡 + 智能故障转移)、抗 DDoS(Anycast 把攻击流量摊到全网吸收)、省带宽(拦截大量回源请求,降低源站出口费用)。
  • 回源即消耗:源站每响应一次请求都消耗带宽;CDN 用缓存把绝大多数请求挡在边缘,显著减少源站负载与成本。
  • 隐藏源站 IP:用 CDN 后应更换并隐藏源站真实 IP——否则攻击者可绕过 CDN「盾牌」直击源站。
  • 动态加速 / 边缘计算:不可缓存的动态请求靠优化路由(更快的网间路径)加速;边缘还能跑轻量计算(边缘函数),把部分逻辑前移到离用户最近处。
  • 边界:本页讲 CDN 网络原理;「用 CDN 做前端性能优化的工程实践」(缓存头配置、资源指纹、预连接等)见「性能优化 > 网络优化」章,本页不展开。

CDN 是什么:把内容搬到离用户最近的地方

如 Cloudflare 所定义:CDN 是一组地理上分散的服务器,把内容缓存在离终端用户更近的位置,从而加速 HTML、JavaScript、样式表、图片、视频等资源的交付。今天 Facebook、Netflix、Amazon 等绝大多数大流量站点都经由 CDN 提供内容。

要理解 CDN,先要理解它解决的痛点——距离即延迟。没有 CDN 时,世界各地的用户都得连到源站所在的那一个机房;用户离得越远,光信号往返的物理 RTT 就越大,页面加载越慢。CDN 的思路很直接:不让用户连远端源站,而是连一个地理上更近的数据中心,距离短了,传输自然快。

CDN ≠ 虚拟主机(Web Host)

Cloudflare 明确区分二者:Web Host 存放你的原始文件,CDN 只是把这些文件缓存得离全球用户更近。CDN 不托管、也不能替代源站——它是源站之上的加速 + 防护层。源站依旧不可或缺:登录校验所需的密码哈希库等服务端逻辑,通常仍保存在源站。

边缘节点 PoP 与缓存机制

PoP / 边缘服务器:内容的全球前哨

CDN 的服务器为何能「离用户更近」?因为它们被刻意部署在 IXP(网络交换点) 这种关键枢纽上——IXP 是不同网络运营商互联、交换流量的高速汇聚点。Cloudflare 称这些就近部署的缓存服务器为边缘服务器(edge server),它们「活在网络的『边缘』、专为快速处理请求而设计」;一个地理位置上的一组边缘服务器通常合称一个 PoP(Point of Presence,接入点)

text
        没有 CDN:所有人都连那一个源站
   用户(亚洲) ───────远───────▶ ┌──────────┐
   用户(欧洲) ───────远───────▶ │  源站     │  ← 距离远 = RTT 大 = 慢
   用户(美洲) ───────远───────▶ └──────────┘

        有 CDN:就近连边缘 PoP,仅未命中才回源
   用户(亚洲) ─近─▶ [PoP·亚洲] ┐
   用户(欧洲) ─近─▶ [PoP·欧洲] ┼──仅 miss 时回源──▶ ┌──────────┐
   用户(美洲) ─近─▶ [PoP·美洲] ┘                    │  源站     │
                     ▲ 命中即就近返回                └──────────┘

缓存命中 / 未命中与回源

边缘服务器的核心动作是缓存(caching)——把文件副本暂存在临时位置以便更快取用。一次请求落到边缘后只有两种结局:

结果含义行为
缓存命中(cache hit)请求的资源在该边缘节点已有缓存直接就近返回,零回源、零源站带宽消耗
缓存未命中(cache miss)边缘没有该资源(首次请求 / 已过期 / 不可缓存)边缘回源(origin pull / origin fetch):向源站取回 → 缓存一份 → 再返回给用户

Cloudflare 用一个登录页的例子讲清了边缘与源站的分工:HTML、CSS、图片、JS 库这些对所有访客都相同的静态文件可以被边缘缓存并就近交付;而当用户点「登录」、提交账号密码这类动态请求时,边缘会把请求代理回源站,由源站查数据库校验身份后返回该用户专属的数据。

命中率为何关键

缓存命中率(hit ratio)越高,被边缘挡下、无需回源的请求就越多——既加速了用户、又减轻了源站。Cloudflare 强调:源站每响应一次请求都要消耗带宽,而 CDN 通过缓存「让源站必须提供的数据量大幅减少」,这正是 CDN 省带宽、降成本的根本机制。静态资源(带指纹的 JS/CSS、图片)天然适合长期缓存,是命中率的主力。

就近调度:DNS 调度 vs Anycast

「让用户连最近的节点」具体怎么实现?业界主要有两条路线。

DNS 调度:解析阶段挑节点

DNS 调度在域名解析阶段做文章:当用户解析 CDN 域名(如 cdn.example.com)时,CDN 的智能 DNS 根据用户的地理位置 / 网络位置,返回最近、最优节点的 IP。用户拿到的就是「离自己最近那台边缘服务器」的地址,后续请求直奔该节点。(DNS 解析的基础机制见 DNS 一叶。)

  • 优点:实现门槛低,靠 DNS 这套既有体系即可调度;可结合负载、健康度做更细的策略。
  • 局限:调度精度取决于对用户位置的判断,而 DNS 看到的往往是用户所用 递归 DNS(如 8.8.8.8)的位置而非用户本身;TTL 缓存也让切换不够实时。

Anycast:多节点共享同一 IP,路由自动选最近

Anycast 是一种网络寻址与路由方法:如 Cloudflare 所述,入站请求可被路由到多个不同的「节点」——在 CDN 语境下,Anycast 通常把流量路由到有能力高效处理该请求的最近数据中心。它的关键在于多个数据中心共享同一个 IP 地址,当请求发往这个 Anycast IP 时,互联网的 BGP 路由会自动把它送到路径最短的那个节点。Anycast 的特征是「一对多中之一(1-to-1 of many)」的关联,是互联网 5 种主要网络协议方法之一。

Anycast vs Unicast:抗灾与抗 DDoS 的分水岭

互联网大部分流量走 Unicast:每个节点一个唯一 IP,流量直达那个特定节点(家用、办公网络都是 Unicast,所以会有「IP 地址冲突」)。用 Unicast 跑 CDN 时,流量直冲某个数据中心——遇到 DDoS 等异常流量,该机房及周边设施可能被打爆,导致对正常请求的拒绝服务。

Anycast 让网络极具弹性:因为流量「总会找最优路径」,一整个数据中心下线,流量会自动流向邻近的数据中心。抗 DDoS 同理——Anycast 把攻击流量分摊到全网多个数据中心吸收,没有单点被压垮;CDN 网络越大、容量越高,对使用它的站点发起有效 DDoS 就越难。这也是 Cloudflare 「用 Anycast 做负载均衡、无需负载均衡器」的底层逻辑。

维度DNS 调度Anycast
调度时机解析域名时返回最近节点 IP路由转发时自动选最近节点
IP 模型不同节点不同 IP多节点共享同一 IP
选路依据智能 DNS 按地理/网络位置判定BGP 按网络拓扑最短路径
故障切换改 DNS 解析(受 TTL 缓存延迟)路由自动绕开下线节点,近实时
抗 DDoS一般:攻击流量摊到全网吸收
实现难度较低高(需自建网络、与运营商对接、调路由防「抖动」)

实务中两者常叠加使用:先用 DNS 把用户引向某个区域/集群,再在集群内用 Anycast 做最后一跳的就近与容灾。

CDN 对前端的价值

站在前端视角,CDN 带来四类直接收益(对应 Cloudflare 归纳的四大好处):

  • 加速静态资源:把 JS/CSS/图片等就近交付,缩短 RTT;CDN 还会做压缩、文件精简(minify)TLS 连接复用 / TLS False Start 等优化,进一步降低加载时间。慢站会赶走用户,加速直接降低跳出率。
  • 抗流量峰值(高可用)负载均衡把流量均摊到多台服务器以从容应对突增;智能故障转移(intelligent failover) 让个别节点宕机时流量自动重分布;整个机房出问题时 Anycast 路由把流量转到其他可用机房——用户始终有得连。
  • 抗 DDoS(安全):CDN 处在网络边缘,能在恶意流量到达源站前识别拦截;配合 Anycast 把攻击摊薄、再加 WAF 与新鲜的 TLS/SSL 证书,提供 DDoS 缓解与传输安全。
  • 省带宽(降成本):缓存拦下绝大多数请求,源站需要提供的数据量大幅下降,直接降低源站出口带宽与托管费用。

隐藏源站是「用对 CDN」的前提

Cloudflare 提醒:CDN 不能让源站「刀枪不入」,但用对了能让源站「隐身」——它像一面盾牌挡在前面。务必在接入 CDN 时更换并隐藏源站真实 IP,否则攻击者拿到源站 IP 就能绕过 CDN 直击源站,盾牌形同虚设。

动态加速与边缘计算简介

静态资源靠缓存就能就近返回;但登录、下单、个性化接口这类动态请求不可缓存,每次都得回源。CDN 对它们的加速思路是优化「最后到源站」的这段路——边缘节点处在高速互联的 IXP 上,用更优的网间路由、连接复用、协议优化(如更快建连)来压缩动态请求的 RTT,即便要回源也比用户从本地直连源站更快。

更进一步是边缘计算(edge computing / 边缘函数):把一部分原本跑在源站的轻量逻辑(重写、鉴权、A/B 分流、个性化拼装等)下沉到离用户最近的边缘节点执行。这样动态响应也能在边缘就近生成,而不必每次都长途回到源站。正如 Cloudflare 所言,现代 CDN 的能力早已超出「边缘缓存静态、源站处理动态」这一简化模型,边缘正在从「缓存层」演进为「可编程的计算层」。

小结

本页把 CDN 的网络原理讲透,作为接入与移动网络一叶从「最后一公里接入」走向「全球内容交付」的收口:

  • CDN = 地理分散的缓存服务器网络,解决「距离即延迟」——让用户连就近的边缘 PoP 而非远端源站。
  • 边缘 vs 源站:边缘缓存并就近交付静态资源,源站保存原始文件、处理动态请求命中直接返回、未命中回源取回再缓存。
  • 就近调度两条路DNS 调度(解析时按位置返最近 IP)与 Anycast(多节点共享一 IP、BGP 自动选最近);Anycast 相对 Unicast 在容灾与抗 DDoS 上优势显著。
  • 对前端四大价值加速静态资源、抗流量峰值、抗 DDoS、省带宽;用 CDN 务必隐藏源站真实 IP
  • 动态加速 / 边缘计算:不可缓存的请求靠优化回源路径加速,边缘还能跑轻量逻辑,把计算前移到离用户最近处。

上一页从设备侧理解了弱网环境 移动弱网对前端的挑战;下一页将把视角收敛到可量化的口径,系统梳理 网络性能指标与弱网优化,把延迟、吞吐、丢包等指标与本叶各项技术串成完整的「评估—优化」闭环。本叶涉及的标准与权威资料汇总见 参考