了解CDN

225 阅读3分钟

前言

最近在做项目过程中涉及到一些CDN相关的知识,基于此记录一下

CDN定义

CDN的全称是Content Delivery Network,即内容分发网络。 其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。

CDN原理

疫情爆发,导致在线教学极速发展,而在视频直播过程中经常会遇到网络延时、画质不清晰、及时互动等难题,所以我当前的项目中使用CDN低时延的特性,让数据得以即时传输,为师生带来响应快速、使用流畅的视频观看体验。以下以直播上课为例

假设直播上课地址为:www.liveroom.com域名通过了CDN加速

假设通过CDN加速的域名为www.liveroom.com 作为北京用户的我在电脑端输入www.liveroom.com, 客户端发起HTTP请求,具体的处理流程如下:

  1. 当终端用户(北京)向www.liveroom.com下的指定资源发起请求时,首先会通过DNS进行域名解析请求。

  2. DNS检查缓存中是否有www.liveroom.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。

  3. 当授权DNS解析www.liveroom.com时,返回域名对应IP地址。

  4. 域名解析请求发送至DNS调度系统,并为请求分配最佳节点IP地址。

  5. LDNS获取DNS返回的解析IP地址。

  6. 用户获取解析IP地址。

  7. 用户向获取的IP地址发起对该资源的访问请求。

  8. 如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户, 请求结束。

  9. 如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。

CDN应用场景

除了教育平台在线教学场景以外,其他的业务常用场景大概有几下几种情况:

1.网站站点/应用加速

站点或者应用中大量静态资源的加速分发,建议将站点内容进行动静分离,动态文件可以结合云服务器ECS,静态资源如各类型图片、html、css、js文件等,建议结合 对象存储OSS 存储海量静态资源,可以有效加速内容加载速度,轻松搞定网站图片、短视频等内容分发。

2.视音频点播/大文件下载分发加速

支持各类文件的下载、分发,支持在线点播加速业务,如mp4、flv视频文件或者平均单个文件大小在20M以上,主要的业务场景是视音频点播、大文件下载(如安装包下载)等,建议搭配对象存储OSS使用,可提升回源速度,节约近2/3回源带宽成本。

3.视频直播加速

视频流媒体直播服务,支持媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。结合弹性伸缩服务,及时调整服务器带宽,应对突发访问流量;结合媒体转码服务,享受高速稳定的并行转码,且任务规模无缝扩展。

4.移动应用加速

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