CDN架构及应用

作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!

网络现状

1、网络用户不断增加,入户带宽从几年前的1M,2M,4M,到如今的10M,20M,50M,100M。但骨干网的带宽有限,增长慢。

2、有九大骨干网,各骨干网之间的出入口瓶颈。

  • 中国公用计算机互联网(ChinaNET)
  • 中国教育和科研计算机网(CERNET)
  • 中国金桥信息网(ChinaGBN)
  • 中国联通公用计算机互联网(UNINET)
  • 中国网通公用互联网(CNCNET)
  • 中国移动互联网(CMNET)
  • 中国科学技术网(CSTNET)
  • 中国长城网(CGWNET)
  • 中国国际经济贸易互联网(CIETNET)

3、众所周知的通信公司的之间的政策壁垒,如著名的南电信北联通互通限制问题。

4、2/8原则,网络内容的访问也同样适用该原则,20%的内容访问频率最高。

CDN介绍

1995年,麻省理工学院的Tim Berners-Lee教授预见网络拥塞将成为互联网的一个问题,于是提出一个学术难题,想从根本上来解决这个问题,这就是后来的CDN。

CDNde的全称是Content Delivery Network,即内容分发网络。通过在不同的地点部署大量的服务器来缓存内容,提供内容镜像,通过负载均衡技术将用户请求定向到最近的缓存服务器上获取内容,缩短用户与资源之间的距离,减少经过国家级骨干网和国际网线路的流量,提高用户访问内容的响应速度。

CDN作用

1、缓存和加速(服务”最后一公里”)
数据放在边缘服务器(可能是当前用户所在城市的机房)中,提供内容镜像。通过智能DNS的调度,用户的请求被透明地指向最近的节点,最大限度的缩短用户信息的传输距离。
CDN架构示意图

2、安全防护
遇到DDoS攻击时,请求都被引向了CDN,由于CDN是分布式部署,且拥有大量的服务器,在一定程度上避免源站遭到毁灭性打击。

3、节省成本
一般的中小公司可以租用CDN快速提升系统访问速度,不需要自己购买一大堆服务器以及大量地维护成本。

CDN工作原理

1、未使用CDN加速的访问过程

传统模式下用户访问

(1)终端设备向本地DNS发起DNS查询,查询站点地址。
(2)(3)本地DNS向上级DNS节点发起DNS查询,获取到授权服务器的地址。
(4)(5)本地DNS从授权服务器获取到域名的IP地址。
(6)本地DNS将IP地址返回给终端设备。
(7)(8)终端设备与站点地址发生交互。

2、使用CDN加速的访问过程

CDN模式下用户访问

(1)终端设备向本地DNS发起DNS查询,查询站点地址。
(2)(3)本地DNS向上级DNS节点发起DNS查询,获取到授权服务器的地址。
(4)(5)本地DNS从授权服务器获取到域名的智能DNS的地址(更高一级的授权服务器)。
(6)(7)本地DNS从智能DNS获取到CDN的地址。
(8)本地DNS将CDN地址返回给终端设备。
(9)(10)终端设备与CDN发生交互。

3、负载均衡

DNS轮询

在DNS服务器中为同一个主机名配置多个IP地址(A记录)在应答DNS查询时,DNS服务器将解析请求按照A记录的顺序,逐一分配到不同的IP上,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

优点

  • 成本低。域名注册商都支持多条A记录,不需要额外付费。
  • 部署方便。

缺点

  • 没有健康检查。服务器宕机了,DNS无法感知。
  • 没有达到均衡的目的。不同服务器的配置不同,所能承受的压力也不一样,但DNS分到每台服务器的请求量是差不多的。

智能DNS

DNS除了IP地址解析外,还会根据来源IP来进行最佳服务站点的计算和判断,返回最佳服务集群的IP地址。

优点

  • 可以根据服务器或IP段进行分流。
  • 可以进行更细的策略控制。
  • 快速调整业务部署。

缺点

  • 没有健康检查。

重定向

在请求的过程中由四层交换机根据来源IP进行最佳服务站点的计算和判断,将用户请求重定向至目标服务节点。

优点

  • 可以根据服务器或IP段进行分流。
  • 可以进行更细的策略控制。
  • 快速调整业务部署。

缺点

  • 协议的限制。HTTP协议可以进行302跳转,但没有跳转功能的协议需要依赖交换机本身特有的功能来来实现。

4、PULL机制

CDN PULL机制

1、用户访问CDN的边缘节点。
2、边缘节点发现内容不存在,向上级节点查找,直到找到中心节点。如果也没有,会从源站点获取数据并缓存在边缘节点。
3、边缘节点返回内容给用户。

5、PUSH机制

将内容预先推送到CDN的各个节点,用户请求时直接由CDN返回。避免用户等待CDN从源站点下载的过程。
CDN PUSH机制

适用场景

  • 视频网站
  • 在线音乐
  • 下载站点(软件下载/游戏包下载/资料下载)
  • 有大量静态内容的门户系统(新闻网站/博客)
  • … … …