写点什么

CDN 百科第七期 | 关于 CDN 的原理、术语和应用场景那些事

发布于: 2020 年 07 月 24 日

关于 CDN,想必你一定看过很多官方的解释。今天,CDN 百科第七期,将用一篇 3844 字的文章,来带你了解 CDN 的诞生、术语、原理、特征以及应用场景,看完这篇文章,相信你将会对 CDN 这项互联网基础设施有更加透彻的了解。


CDN 的全称是 Content Delivery Network,即内容分发网络。它是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。


简单来说,CDN 就是为了网络内容访问速度“更快“而生的。那么如今的网络本身四通八达,为什么还需要 CDN 呢?


一、为什么需要 CDN?


举个简单的例子,假设我们忽略网络传输的损耗、设备延时,网络传输速度接近光速,是 30 万公里每秒,从东京到美国硅谷的距离大概为 1 万公里,也就是说,如果你的服务器在东京,你上传了一张很小的图片,美国用户访问至少需要 60 毫秒。而且,这只是理论数据,现实世界中,网络环境是十分复杂的,跨地域、跨运营商、网络拥塞、抖动等问题,都会积少成多,使得延时成倍增加,还有可能访问失败,最终影响访问体验。


CDN 的出现,正是为了解决这个问题。我们将这张图片分发并缓存在美国的 CDN 节点之上,美国用户就无需从东京获取数据,直接从就近的美国本地 CDN 节点获取到图片,这大大节省了传输时间,提升访问效率。CDN 的节点通常会遍布全球,源站的文件会被被缓存到世界各地,这样全球用户都可以实现快速访问。


它有点像分布于各地的仓储物流点,很多品牌会预先在仓储物流点储备一些爆款商品(静态文件使用 CDN 进行缓存),当用户从电商平台下单购买货物的时候(用户发起请求),平台根据用户的收获地址就近匹配到最近的仓储物流点并直接进行派货(就近分发),让用户以最快的速度拿到快递包裹(分发的内容)。我们可以用实际的生活经验来做个对比,如果从江浙沪包邮区寄给杭州的用户,一般第二天就能到,如果是从北京、深圳发货,一般需要 2-3 天!


CDN百科3-1.png


这就是 CDN 的缘起。简单来说,它就是一个分布式的缓存服务器,主要作用就是尽可能减少资源在转发、传输、链路抖动等情况下的时延,保障信息的连贯与极速。当下,我们生活在互联网世界,视频和直播在数据上有巨大的吞吐量,CDN 扮演着护航者和加速者的角色,更快速、稳定地将信息触达每一个用户。


二、CDN 的工作原理


下面,我们来进一步了解下 CDN 的工作原理。首先,关于 CDN 的那些名词,需要扫个盲

Origin Server 源站:做 CDN 之前的客户真正的服务器。

User:访问者,也就是要访问网站的网民。

Last Mile:最后一公里,也就是网民到他所访问到的 CDN 服务器之间的路径。

域名:域名是 Internet 网络上的一个服务器或一个网络系统的名字,全世界,没有重复的域名。

CNAME 记录:它是一个别名记录( Canonical Name );当 DNS 系统在查询 CNAME 左面的名称的时候,都会转向 CNAME 右面的名称再进行查询,一直追踪到最后的 PTR 或 A 名称,成功查询后才会做出回应,否则失败。

CNAME 域名:CDN 的域名加速需要用到 CNAME 记录,在阿里云控制台配置完成 CDN 加速后,您会得到一个加速后的域名,称之为 CNAME 域名(该域名一定是.kunlun.com), 用户需要将自己的域名作 CNAME 指向这个.kunlun.com 的域名后,域名解析的工作就正式转向阿里云,该域名所有的请求都将转向阿里云 CDN 的节点。

DNS:DNS 即 Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的 ip 地址。人们习惯记忆域名,但机器间互相只认 IP 地址,域名与 IP 地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。比如:上网时输入的 www.baidu.com 会自动转换成为 220.181.112.143

边缘节点:也称 CDN 节点、Cache 节点等;是相对于网络的复杂结构而提出的一个概念,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。其作用是将访问量较大的网页内容和对象保存在服务器前端的专用 cache 设备上,以此来提高网站访问的速度和质量。

Cache:cache 高速缓冲存储器一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主 RAM 存储器速度快,所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器。


接下来是 CDN 的工作原理,最简单的 CDN 网络由一个 DNS 服务器和几台缓存服务器组成,如下图所示:


CDN百科-1.png


①当用户点击网站页面上的内容 URL,经过本地 DNS 系统解析,DNS 系统会最终将域名的解析权交给 CNAME 指向的 CDN 专用 DNS 服务器。

②CDN 的 DNS 服务器将 CDN 的全局负载均衡设备 IP 地址返回用户。

③用户向 CDN 的全局负载均衡设备发起内容 URL 访问请求。

④CDN 全局负载均衡设备根据用户 IP 地址,以及用户请求的内容 URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。

⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户 IP 地址,判断哪一台服务器距用户最近;根据用户所请求的 URL 中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的 IP 地址。

⑥全局负载均衡设备把服务器的 IP 地址返回给用户。

⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。


三、CDN 的关键技术组件


看似复杂庞大的 CDN 系统,其中有几个关键技术组件:调度、缓存和安全。

1、 调度是 CDN 中的重中之重,流量接入、流量牵引、选择合适的 CDN 节点服务器等工作,都是在调度环节完成的。具体调度的解释,可以参考阿里云高级技术专家白金撰写的《CDN 之我见》系列一:原理篇(由来、调度)


2、 缓存也叫 Cache,是 CDN 领域最重要的一个组成部分,对于静态内容分发,大至视频点播、文件下载,小至 html 页面、jpg/gif/png 图片、css/js 等,都可以缓存到本地,最终用户(网民)访问时,不必回到原始服务器拿取数据,从而节省了时间、降低了源站服务器的网络带宽支出和负载。对于 CDN 来说,每台 Cache 机器每天的请求量是十分惊人的,磁盘上所存储的内容量也多得可怕,十几块 TB 级的硬盘被塞满数据也是很正常的事情,因此当一个请求到来时,能迅速检索出磁盘上的文件并读取、吐给最终用户成了一件很重要的事情。具体的缓存,可以参考阿里云高级技术专家白金撰写的《CDN 之我见》系列二:原理篇(缓存、安全)


CDN百科7-2.png


3、 针对各类网络攻击,比如带宽饱和攻击、反射攻击等蛮力型攻击,还有 XSS 跨站、SQL 注入、漏洞利用等技巧型攻击,CDN 可以从隐藏源站、分布式架构、安全防护三个层面进行安全防护。首先,当网站接入 CDN 后,源站信息会被隔离,攻击者就无法直接对源站进行直接攻击,其次,CDN 天然分布式架构可以当某些节点被攻击的时候,很快察觉异常并智能调度至正常节点,确保业务稳定,再次,对于技巧性攻击,在 CDN 边缘节点前置安全防护能力,与中心联动形成更完整、更贴近边缘的防护策略,有利于安全隐患的拦截。


四、CDN 可以应用在哪些场景?


1、网站与应用加速


网站或者应用中大量静态资源的加速分发,如各类型图片、html、css、js 文件等,可以通过 CDN 缓存到边缘节点上,当用户访问即可就近获取。网站内容也存在相当一部分动态内容,比如电子商务、游戏和企业应用类网站,会存在很多如.aspx、.asp、.jsp、.php 等为后缀的动态请求加速。通常缓存对静态内容支持得较好,而当面临动态内容请求的时候,一般会回源,源站再将内容传节点,进而传给用户,传输链路步骤增多,这势必会影响传输质量与效率。所以针对动态内容,CDN 也提出了新的加速方法,就是利用智能选路、传输协议优化等算法寻找最快的传输路径,自动躲避拥堵和不稳定线路,以此来提升回源效率,实现动、静混合网站的加速效果保障。


2、视频、大文件下载分发加速


CDN 可以针对各类文件、在线点播视频提供下载、分发加速,比如 mp4、flv 视频文件或者单个文件大小在 20M 以上的安装包等文件,CDN 可以搭配对象存储 OSS 使用,提升回源速度,节约近 2/3 回源带宽成本。


3、直播加速


在体育或者游戏赛事直播中,通常成千上万的用户瞬间涌入,直播平台要承担高并发访问,一旦带宽不足,用户的观看就会产生卡顿、延时、评论刷不出来、连麦不成功,甚至最后直播直接瘫痪,用户无法观看。CDN 结合弹性伸缩服务,及时调整服务器带宽,应对突发访问流量。可以为直播分发提供流畅的播放下行链路,借助负载均衡系统将将主播端采集的音视频数据推送到接近用户的数千个边缘节点,当观众端发起请求,就可以就近取得资源,减少网络抖动风险,增加直播链路稳定性和流畅性。


4、移动应用加速


CDN 可以为移动 APP 更新文件(apk 文件)分发,移动 APP 内图片、页面、短视频、UGC 等内容的优化提供加速分发效果。提供 httpDNS 服务,避免 DNS 劫持并获得实时精确的 DNS 解析结果,有效缩短用户访问时间,提升用户体验。


阿里云 CDN 全民加速节活动火热启动,爆款产品限时优惠,还有 9850 元的代金券免费领取,感兴趣的用户可以在阿里云官网搜索“全民加速节”了解活动详情。


image.png


在全民加速节期间,阿里云 CDN 也推出系列直播课程,包括《CDN 最全省心选购指南》、《CDN 快速上手指南》、《CDN 产品与技术揭秘》、《CDN 四大场景最佳实践》等,希望通过分享积累多年的经验、饱经实战检验的解决方案和最佳实践,来帮助用户解决使用 CDN 过程中最受关注的问题,欢迎大家在全民加速节活动页面预约观看!


用户头像

分享CDN、边缘计算、视频云相关知识 2020.05.11 加入

还未添加个人简介

评论

发布
暂无评论
CDN百科第七期 | 关于CDN的原理、术语和应用场景那些事