CDN 是什么
CDN(Content Delivery Network,内容分发网络),即全网内容加速服务。为了尽可能的避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定,由此,诞生了 CDN 加速服务。
CDN 的作用
利用遍布全球(全国,或企业自行规划的各大城市及区域)的加速节点,帮助企业将业务内容发布至最接近用户的边缘节点,使用户的请求能够就近得到快速响应,无需进行多次网络转发,避免请求受地域、带宽、服务器能力等因素影响导致的高延迟、低可用性等问题。
网站的传统访问过程
- 用户在浏览器中输入目标网站的 URL
- 浏览器向域名解析服务器(DNS,Domain Name System,域名系统,是因特网上域名和 IP 地址相互映射的一个分布式数据库)发出解析请求,获得此域名对应的 IP 地址
- 浏览器得到这个 IP 地址,向其对应的服务器发出访问请求
- 目标服务器对此作出响应,将数据回传至用户浏览器并显示出来
CDN 如何加速
与传统访问方式不同,CDN 网络则是在用户和服务器之间增加 Cache 层,将用户的访问请求引导到 Cache 节点而不是目标服务器站点,要实现这一目的,主要是通过接管 DNS 实现。
以腾讯 CDN 架构图为例:
由上图可见,使用 CDN 缓存后的网站访问过程演变为:
- 用户在浏览器中输入目标域名
- 浏览器向本地域名解析系统(Local DNS)发出解析请求
- 经过 DNS 递归查询,请求被转移至 Tencent DNS(GSLB,Global Server Load Balance,全局负载均衡)系统,此时还没有产生 Cache 层
- GSLB 返回最佳 CDN 接入节点的 IP,同时 Local DNS 缓存此接入节点(在此过程中,会根据客户端的 IP 地址,地理位置,入网类型电信还是网通,返回最佳接入节点)
- 用户对此 CDN 接入节点发起请求,CDN 网络经过内部路由,并转发请求至源服务器
- 源服务器返回响应的数据,CDN 节点将数据返回至 CDN 接入节点
- CDN 接入节点将数据返回给用户,同时缓存数据
CDN 节点缓存了数据,任何用户再次请求这一份数据时,CDN 缓存会直接返回,并不需要再由源服务器进行处理,这大大的加快了数据往返的速度,对于静态资源的加速尤为显著。即便请求动态资源,比如动态页面,其中也是有许多的静态资源是不会经常改变的,只要控制好缓存机制,也会有明显的加速效果。
CDN 网络的架构及应用
利用 CDN 网络,网站用户无需投资价值不菲的服务器、网络带宽及相应的人力成本,便能实现将网站内容发布到离终端用户距离最近、路由最短的网际边缘 Cache 节点,创造完美、快捷的网站使用体验。
一般,CDN 网络主要由中心节点、边缘节点两部分构成。最简单的 CDN 网络只需一台负责全局负载均衡的 DNS 和各节点一台 Cache 即可运行。 DNS 支持根据用户源 IP 地址解析不同的 IP,实现就近访问。为了保证高可用性,CDN 网管中心需要监控各节点的流量、健康状况。当一个节点的单台 Cache 承载数量不够时,才需要多台 Cache,多台 Cache 同时工作时,才需要负载均衡器,使 Cache 群协同工作。
CDN 中心节点:
包括 CDN 网管中心和全局负载均衡 DNS 重定向解析系统,负责整个 CDN 网络的分发及管理。
CDN 网管中心:
是整个 CDN 能够正常运转的基础保证,它不仅能对整个 CDN 网络中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统数据库中,使网管人员能够方便地进行进一步分析。一套完善的网管系统,允许用户按需对系统配置进行修改。
全局负载均衡 DNS:
通过一组预先定义好的策略,将当时最接近用户的 Cache 节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在各地的所有 CDN 节点保持持续通信,搜集各节点的通信状态,确保不会将用户的请求分发到不可用、或不健康的 Cache 节点上。
CDN 边缘节点:
主要指异地分发节点,由负载均衡设备(如果缓存也需要集群的话)、高速缓存服务器两部分组成。 负载均衡设备负责每个节点中各个 Cache 的负载均衡,保证节点的工作效率;同时还负责收集节点与周围环境的信息,保持与全局负载均衡 DNS 的通信,实现整个系统的负载均衡。
高速缓存服务器(Cache):
负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。通过全局负载均衡 DNS 的控制,用户的请求被透明地指向离他最近的节点,节点中 Cache 服务器就像网站的原始服务器一样,响应终端用户的请求。因其距离用户更近,故其响应时间才更快。
CDN 供应商
传统 CDN 供应商,市场份额较大的有:上海帝联科技、北京蓝汛通信技术、北京快网科技、上海网宿科技等。现巨型互联网公司(百度、阿里巴巴、腾讯)也加入了其中。由于巨型互联网公司的介入,云技术的发展,会在一定方面打压传统 CDN 供应商,小型公司会更青睐这些巨型互联网公司,但是对于大型公司,传统CDN厂商的优势明显。