一句话说清

CDN 把内容提前放到离用户最近的节点上。

为什么值得懂

同一个视频,在本地秒开,跨国要转圈;同一个网站,加一层 CDN 之后源站流量掉一个数量级。这不是「服务器变快了」,是把距离和重复都省掉了。看懂 CDN,就看懂了今天大部分互联网流量的实际路径。

零基础讲解

一、先算距离这笔账。 一个请求到源站要经过若干跳,每跳都有延迟,而网页往往要来回好几次。把内容放到离用户几十毫秒的地方,省下的是物理距离,不是算法。

二、节点怎么被找到。 两种手段合用:一是 DNS 调度,同一个域名按解析者的位置返回不同的节点地址;二是任播,多个节点宣告同一个地址,路由协议自然把请求带到最近的宣告点。互联网技术文件 RFC 4786 第 3 章描述了这套服务分发方式,也点明它适合无连接、可重试的查询类流量。

三、缓存与回源。 节点上没有的内容要回源站取,这个过程叫回源。RFC 9111 第 2 章把缓存的基本流程说清楚了:有效期内直接给,过期了再去问源站有没有变。命中率因此成为 CDN 最核心的指标——命中率越高,回源越少,源站越轻、用户越快。

四、真实的 CDN 长什么样。 尼格伦、西塔拉曼与孙在《Akamai 网络:高性能互联网应用的平台》里描述了这套系统的结构:成千上万个节点,按内容与网络状况做映射和路由,把「选哪个节点」变成持续优化的问题。迪利等人在《全球分布式内容分发》里把这种分发方式与当时的其他方案并列比较,解释了它为什么胜出。

五、边缘还能算。 缓存之外,把一部分计算也放到边缘,就是边缘计算。欧洲电信标准化协会的 MEC 003 规范第 6.1 节给出通用参考架构,把边缘挂在接入网一侧,而不只是「离用户近的机房」。

有争议:CDN 的「边缘」到底该放什么。 主流观点是边缘首先是分发:尼格伦等人把 Akamai 平台的核心描述为大规模分布式缓存与请求路由。另一种观点认为边缘应当承担有状态的计算与业务逻辑,ETSI 的参考架构正是把计算与存储一起写进边缘节点。两边争的是同一条线画在哪:只缓存,运维简单但价值有限;能计算,灵活但状态同步与安全边界都会变难。

边界条件:省不掉源站的计算。 因人而异、不能缓存的请求,CDN 省下的只是那一段网络。反过来,一份内容如果只被极少数人访问,放进节点反而占地方——分发的前提是重复。

CDN 的层级结构:源站在最上层,下面分区域中心,再下面是边缘节点,用户就近命中;命中就直接给,未命中才回源
内容被复制到越靠外的层,用户拿到的往返就越短,源站被取到的次数也越少。

一个例子

一个视频网站的封面图被几百万人打开,源站可能只被取过有限几次:第一个用户的请求回源,内容落进边缘节点,后面的人直接命中。反过来看一个「我的订单」页面:每个人都不同、也不能缓存,CDN 只能把连接拉近,计算还是回到源站。同一套基础设施,两种收益完全不同。

常见误解

  • 以为 CDN 就是大带宽:它省的是距离和重复,不是把线路换成更粗的。
  • 以为加了 CDN 内容就立刻更新:缓存没过期,用户看到的还是旧的。
  • 以为 CDN 只适合静态文件:动态内容也能受益,只是收益在连接而不在缓存。
  • 以为节点越多一定越快:调度不准时,用户可能被送到更远的节点。

应用场景

  • 生活:网站改了看不到新内容,先清一次缓存,再怀疑是不是没上线。
  • 职场:上线前先问清「哪些能缓存、缓存多久」,再决定要不要上 CDN。
  • 写作与创作:写全球化的服务场景,把「就近分发」写进设定,比写「机房更大」可信。

关联知识点

  • 无线与移动通信(wireless-mobile,先读它:最后一公里是怎么连的)
  • 互联网原理(web-internet,分发的前提是分组交换)
  • 互联网协议 TCP/IP(tcp-ip,拉近距离省下的是往返时间)
  • 域名系统(dns,调度到就近节点靠的是它)
  • 所属主线:因果与系统、稀缺与选择