theme: condensed-night-purple
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
上篇文章整体介绍了
CDN产品的架构组成,这篇文章讲加速原理以及使用场景。2.3 加速原理
上面讲到了CDN的架构组成部分,那么其到底是如何完成加速的呢?总的来说,当用户发起请求时,DNS解析系统调度分配最优的CDN接入节点,如何找到最优的节点呢?一般来说都是将缓存看作是一个大型的键值存储。 用户请求的内容、定位数据、访问路径以及查询参数,甚至是HTTP请求头等内容,都可以用来作为查找的参数。然后解析系统使用多次查找表,使用优化的算法在最短的时间内找到最优的节点。
用户获取到接入节点后,首次访问CDN接入节点时,该节点需从源站获取数据并缓存,然后返给请求者,当第二次访问相同的接入节点时,节点直接返回内容给用户。 在这个过程中,CDN还在不断地清除(删除或更新)内容,以便交付最新的、相关的内容,并且一般CDN产品都允许使用者在必要时手动更新内容。
这一部分借用阿里云的文档介绍CDN的加速原理,其它产品加速过程大同小异。

如图上所示,当终端用户在北京发起HTTP请求时,处理流程如下:
当终端用户向
www.a.com下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。当授权
DNS解析www.a.com时,返回域名CNAMEwww.a.tbcdn.com对应IP地址。域名解析请求发送至
DNS调度系统,并为请求分配最佳节点IP地址。LDNS获取DNS返回的解析IP地址。用户获取解析
IP地址。用户向获取的
IP地址发起对该资源的访问请求。- 如果该
IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如图中步骤7和8,此时请求结束。 - 如果该
IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后结合用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户,例如图中的北京节点,此时请求结束。
三、总结
通过上面的描述,我们对
CDN已经是有一个初步的认识了,那么CDN使用在哪些场景呢?对于CDN来说,额外地使用它是需要增加企业成本的,我们需要将其用在钢刃上。一般来说典型的应用包括以下场景:- 手机App、游戏包等更新,提供稳定、优质的下载加速
- 视频点播(长视频、短视频),支撑高峰期海量并发
- 网站加速,加速分发处理能力,显著提升网页用户的体验
- 全站加速,适用于纯动态或动、静态资源混合型资源的一站式加速
- 安全加速,防护
DDos共计,抵抗大型CC攻击等
- 如果该
本文深入解析CDN的工作机制,阐述了如何通过DNS调度和缓存优化实现网站和内容加速,以及常见应用场景,如App下载、视频播放和全站加速等。

被折叠的 条评论
为什么被折叠?



