如果 HTTP 是一根从源站到你家门口的独木桥,CDN 就是把独木桥的终点,从远在千里之外的源站机房,搬到了你家小区门口的便利店。它没有改变 HTTP 的协议,没有改变 TCP 的握手,也没有发明什么新的文件分发逻辑。它做的事情朴素得近乎无聊:把同一份文件复制几百份,放到全球几百个机房,然后让用户从最近的那个机房下载。
这套思路看起来没什么革命性,但它在过去 20 年里悄悄解决了整个互联网一半的“最后一公里”问题。一个中国用户从美国的源站下载一个 1GB 的文件,直连可能要等 5 分钟;如果 Cloudflare 在上海或东京有一个节点,这个下载可能在 30 秒内完成。中间的差距不是协议优化出来的,是物理距离缩短出来的。
CDN 不是去中心化
在讨论下载技术的时候,CDN 经常被误以为是“P2P 的替代方案”或者“去中心化的一种”。这是误解。CDN 的本质仍然是中心化运营——所有的边缘节点都归一家公司所有,所有的缓存策略由这家公司统一决定,所有的费用由内容提供方支付。它只是把“中心”从一个机房扩展到了几百个机房,并没有从根本上改变“谁拥有内容”的权力结构。
但这种“伪去中心化”恰好在大多数场景下是最实用的方案。原因很简单:用户不关心哲学,只关心下载速度。而 CDN 在工程上提供的稳定性、确定性、可观测性,目前没有任何去中心化方案能够匹敌。
CDN 把 HTTP 下载的体验推到了极致,但它的成本模型仍然是中心化的。Web3 协议的出现,不是为了替代 CDN,而是为了给那些“付不起 CDN 账单”的内容一个去处。
Cloudflare 335 个节点意味着什么
Cloudflare 是当今 CDN 行业的代表性玩家。它的边缘网络覆盖全球 335 个城市,任何一个请求都会被自动路由到距离用户最近的可用机房。这个数字背后有几个细节值得展开:
第一,Anycast 路由。Cloudflare 给所有边缘节点使用同一个 IP 段,任何 DNS 查询拿到的是同一个 IP,BGP 路由协议根据用户位置自动选最近的机房。这意味着用户根本不需要知道也不需要选择用哪个节点,DNS + 路由层替你完成了。
第二,边缘缓存策略。源站内容被首次请求时,边缘节点会缓存下来,后续用户直接从缓存读取。缓存命中率是 CDN 性能的关键指标——Cloudflare 的整体命中率通常在 90% 以上,这意味着 100 个请求里,只有不到 10 个会真正穿透回源站。
第三,边缘计算能力。Cloudflare Workers、Akamai EdgeWorkers、Fastly Compute@Edge 这些产品让 CDN 不再只是“缓存盒子”,而是可以跑任意 JavaScript / WebAssembly 代码的边缘计算平台。这意味着你可以把部分业务逻辑也搬到离用户最近的地方,而不仅仅是缓存静态文件。
CDN 没有解决的事
CDN 解决的是“热门内容快速分发”的问题,但对长尾内容并不友好。一个一年只被访问 100 次的冷门文件,CDN 节点大概率不会主动缓存它,请求会穿透回源站。这正是 P2P、IPFS、Arweave 想解决的另一面——冷门内容的可访问性。
另一个 CDN 没有解决的问题是成本。CDN 是按流量计费的,一个百万级用户的应用每月 CDN 账单可以达到几万到几十万美元。BitTorrent、IPFS、Filecoin 这些方案的吸引力,部分就在于它们用代币激励替代了现金支付,把“分发带宽”从一项需要付费购买的服务,变成了一项可以靠贡献资源换取的市场。
CDN 和 Web3 协议不是对立关系
一个常见的误读是把 CDN 和 IPFS/Arweave 放在对立面。事实上,主流的 web3 项目都会主动集成 CDN.Cloudflare 自己就提供 IPFS 网关服务,Infura、Pinata 这些 IPFS 服务的背后也都跑着 CDN。用户访问 IPFS 内容时,大多数情况是通过 HTTP 网关,这些网关就是 CDN 节点。
未来最可能的形态是混合架构:热门内容走 CDN,长尾内容和需要持久性的内容走 IPFS/Arweave,超大文件分发走 BitTorrent/WebTorrent,小文件直接 HTTP。这不是某一统天下,而是每种技术都找到自己最擅长的位置。
回到下载本身
对于一个普通用户来说,CDN 带来的最直接好处是“看不出在下载”。视频网站秒开、软件更新秒下、网盘分享秒取,这些体验的背后都是 CDN。今天绝大多数 web 下载,实际上都是从某个 CDN 边缘节点拉数据,而不是从源站机房。
但 CDN 解决不了“小众内容的可访问性”,也解决不了“内容提供方破产后的持续可用”。下一篇我们会看到一个真正把浏览器变成下载客户端的实验——WebTorrent,它让两个网页用户可以直接交换文件,不需要任何服务器、任何 CDN、任何安装包。
参考资料
- Cloudflare。 Cloudflare CDN 内容分发网络解决方案 https://www.cloudflare-cn.com
- 腾讯云开发者社区。 一文读懂 CDN:是什么、为什么用、怎么用 https://cloud.tencent.com
- 知乎。 一文读懂:到底什么是 CDN? https://zhuanlan.zhihu.com
- 百度百科。 内容分发网络 https://baike.baidu.com/item/内容分发网络