Skip to content

CDN

为什么需要CDN

  1. 物理因素的限制

    美国到中国的网络延迟大约为200ms,而中国到中国的网络延迟大约为20ms,这是由于光速的限制,即使是光纤也无法解决这个问题。

  2. 宽带成本的限制

    假如流量1元1G,发一个10G电影需要十块钱,并且我给10个人发同样的电影需要100元。

  3. 服务器成本的限制

    一台服务器假设能抗100G流量,而双十一的时候,我需要抗1000G流量,这时候我需要10台服务器,而且这10台服务器不是一年到头都在用,只有双十一的时候才会用到,这样就造成了资源的浪费。

CDN的益处

  1. 降低网络延迟

    CDN的作用就是让用户访问最近的服务器,这样就能降低网络延迟。

  2. 降低部署成本

    只需要部署少量的服务器,就能抗住大量的流量。

CDN的原理

一般来说,一个IP只能够对应一台服务器,如何实现用户访问最近的服务器呢?🕵️ - DNS劫持

  • 域名解析一般由网站自己处理
  • 要加速的域名则重定向到CDN厂商的域名解析服务处理
  • CDN厂商的域名解析服务会根据用户的IP地址,解析到最近的服务器
  • 用户直接访问最近的CDN服务器

一些问题

  • 地理距离可能更近,但是需要多次路由器节点转发
  • 如果用户指定某个DNS,如Google的8.8.8.8

CDN策略

  1. 拉策略 (轻量资源)

    当用户访问一个资源的时候,CDN会先去源站拉取资源,然后再返回给用户。此时,如果CDN没有对应资源,就会返回404;一段时间后,CDN会丢弃资源。

  2. 推策略 (经常访问的资源)

    服务端主动告知CDN存储某些资源,丢弃某些资源。

Released under the MIT License.