全称是 Content Delivery Network/Content Distribution Network,翻译过的意思是 内容分发网络 。CDN让用户实现了对资源的就近访问,从而达到最优的访问效率。也是边缘计算里的一部分
假设现在用户需要获取网站中某个视频资源,在没有CDN的情况下,所有的用户请求都需要到源站处理,并从源站下载资源。
在这种场景下会带来几个问题:
而在使用CDN的场景中,访问请求的架构将如下图所示。对于源站的资源请求会被分配到CDN位于各地的边缘节点,用户根据就近访问原则到分配的节点去请求资源,从而获得最优的访问效率。
CDN的技术实现需要DNS的支持,这里涉及到与DNS有关的两个名词:A纪录与Cname纪录。
3.1 在不使用CDN的情况下
我们通常是在DNS上配置A记录,即将域名解析到源站IP。此时,当客户端访问域名时,将使用以下的流程:
3.2 使用CDN后
源站域名解析将配置为Cname,即将域名解析到CDN域名,并最终由CDN厂商的GSLB分配IP。此时,整体的访问流程变成如下所示,浏览器将到CDN节点请求资源。
3.3 加速功能的实现
主要由GSLB(全局负载均衡器)与缓存系统两个主要功能系统来处理。
GSLB系统可以基于智能的DNS技术来实现,相比于传统DNS具有功能更加强大、更加智能的特点。GSLB根据预先配置好的策略,为用户分配最适合的节点地址。基于成本和带宽的调度、基于服务等级的调度。
缓存系统最基本的工作单元就是许许多多的Cache节点(缓存服务器),Cache节点负责直接响应最终用户的访问请求,把缓存在本地的内容快速提供给用户。同时 ,Cache节点也会与源站进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存在本地。
4.1 网站加速
主要针对门户网站、电商等业务场景,如网易、淘宝等站点。这类站点往往有着非常多的的静态内容文件(文本、图片等),CDN可对其进行加速处理,从而显著改善页面响应时间,提升用户的使用体验。
4.2 文件下载加速
文件下载加速是CDN的一项重要功能,常见的场景有软件补丁包发布、游戏安装包获取等,这类文件容量大,下载的过程中容易给源站带来性能和带宽压力。通过CDN的方式,可以有效分担这些压力,并提高客户端的下载效率。
4.3 流媒体加速
流媒体加速的方式是通过将流媒体内容推送到离用户最近的边缘节点,使得用户可以就近获取内容,从而提高视频传输质量、缩短访问时间,节省骨干网络的流量。流媒体加速包含直播和点播两种,此类模式适用于各类音视频网站和应用,如:抖音、爱奇艺等。
4.4 全站加速
主要针对动态内容较多的站点,通过智能路由、协议优化等动态加速技术,提升客户端到源站的网络效率,便于快速获取动态资源。
在 CDN 1.0 时代,CDN 以传输为主,从部署在互联网服务提供商(ISP)的边缘节点(POPs)传输网页内容。
2.0 时代,CDN 能对网络做一些简单处理,以缓存软件为核心,同时配套负载均衡、日志分析、DNS 等服务。
3.0 时代,CDN 开始具备智能调度特征,融合最新的网络技术,如 P2P 技术、清洗中心、高清技术,以及了 GSLB、VPN(虚拟专用网络)、WAAS(广域网加速业务)等。
下一代 CDN 将从以传输服务为主转变为倚重边缘计算,以计算能力替换传输能力,计算能力包括诸如终端能力适配和边缘转码等。经改造的 CDN 节点可升级为具备存储、计算、传输、安全功能云计算节点,形成处理高频、高交互的海量数据的能力
种类 | 名称 | 介绍 |
---|---|---|
ADN | 应用交付网络(Application Delivery Network) | ADN和CDN的区别是一个是侧重于内容分发,一个侧重于应用交付 |
SCDN | 拥有安全防护能力的CDN服务(Secure Content Delivery Network) | SCDN和CDN的差异在于增加了CDN的安全防护能力。 |
DCDN | 全站加速DCDN(Dynamic Route for Content Delivery Network) | DCDN和CDN的差异在于增强了动态加速功能。 |
ECDN | (Enterprise Content Delivery Network) | ECDN还是普通CDN技术,和DCDN的基本逻辑差不多,无非腾讯给他命名方式和其他家不一样 |
PCDN | P2P CDN | PCDN=P2P+CDN的融合体 |