Bullet Points of CDN

Published: by Creative Commons Licence

What is CDN

CDN, 即Content Delivery Network,内容分发网络,是构建在现有网络基础之上的网络,依靠部署在各地的边缘节点服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。简单理解就是将内容缓存到离用户最近的代理服务器上,用户访问时直接从代理服务器上获取,而不是从源服务器上获取。

Why CDN

互联网可以看成是一个大的分布式系统,而这个分布式系统又是有很多其他分布式系统组成,最典型的就是中国三大运营商(现在是四大),运营商内部交流是快速可靠的,而跨网传输则是慢速不可靠的。另外,互联网的用户分布也是不均匀的,大部分用户集中在一些热点地区,而这些热点地区的用户访问同一个网站的概率也很大。加上无数的路由器、交换机、防火墙等网络设备,互联网的传输速度和稳定性就会受到很大的影响。更不要说跨国跨洲的传输了。现有的基础设施和网络架构已经无法满足互联网的需求,所以我们需要一种新的网络架构来解决这些问题。

Architecture of Distributed Network

Distributed Network

Principle of CDN

缓存:源站点的内容分发到离用户最近的节点上,用户访问时直接从离用户最近的节点上获取,而不是从源站点上获取。

负载均衡:CDN的核心是负载均衡,负载均衡是指将负载均匀地分摊到多个操作单元上,从而提高系统的性能,增加系统的吞吐量,减少响应时间,降低系统的错误率。

Components of CDN

Components of CDN

  • 源站点:即网站的服务器,存放着网站的所有内容。

  • 内容分发管理器:将源站点的内容校验和推送到各个节点上,以及对内容进行同步更新。

  • 全局负载均衡器:和节点负载均衡器配合,搜集各个节点的负载信息,将用户的请求分发到最优的节点上。同时可以看作是一个DNS服务器,将用户的域名解析到最优的节点上。

  • 缓存节点:缓存源站点的内容,并组织管理缓存的内容,响应用户的请求。

  • 管理系统:对整个CDN的管理,对系统的各个组件进行监控,产生报警信息,还可以搜集整个系统的流量和不同地区的用户访问情况,作为决策的依据。并且管理系统日志,进行报告和分析。

WorkFlow

无CDN时,用户访问网站的流程如下:

用户提交请求 -> 查询本地DNS服务器缓存 -> 成功则返回,失败则向权威DNS服务器发起请求 -> 返回IP地址 -> 用户向IP地址发起请求 -> 返回网站内容

有CDN时,用户访问网站的流程如下:

用户提交请求 -> DNS服务器解析域名 -> 返回CNAME记录(指向全局负载均衡器) -> 用户向全局负载均衡器发起请求 -> 全局负载均衡器根据用户的IP地址,选择最优的节点 -> 用户向最优的节点发起请求 -> 节点响应请求

Metrics

  • 回源率:用户访问的内容在缓存节点上没有命中,需要从源站点获取的次数占总访问次数的比例。

  • 命中率:用户访问的内容在缓存节点上命中的次数占总访问次数的比例。

Providers

阿里云、腾讯云、AWS、Cloudflare