CDN:内容分发网络

内容分发网络学习笔记。

CDN 简介

CDN 是什么?

  CDN 的全称是 Content Delivery Network,即内容分发网络。其目的是使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度。类似分布各地的物流仓储网络,CDN 网络可以将源站的内容缓存到分布全球的 CDN 节点,根据用户的访问 IP,就近连接 CDN,提高网站响应速度。

为什么需要 CDN ?

  为了加速网站的访问。通常用户满意的网页打开时间是在 2 秒以下。互联网有一项著名的 8 秒原则。用户在访问 Web 网页时,如果时间超过 8 秒就会感到不耐烦,如果下载需要太长时间,他们就会放弃访问。

优势与特点
  • 本地缓存加速。提高了网站(尤其含有大量图片和静态页面站点)的访问速度和稳定性。

  • 镜像服务。消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。

  • 远程加速。远程访问用户根据 DNS 负载均衡技术智能自动选择 CDN 服务器,选择最快的 CDN 服务器,加快远程访问的速度。
  • 带宽优化。自动生成服务器的远程镜像 CDN 服务器,远程用户访问时从 CDN 服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点 WEB 服务器负载等功能。
  • 集群抗攻击。广泛分布的 CDN 节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种 DDoS 攻击对网站的影响,同时保证较好的服务质量 。

工作原理

基本原理
  1. 挑选最优设备为用户提供服务。
  2. 如果某个内容被很多用户所需要,那么它就被缓存到距离用户最近的节点。
工作流程

  用户访问未使用 CDN 缓存的传统网站的步骤

23-1

  1. 用户在浏览器输入要访问网站的域名。
  2. 浏览器向本地 DNS 服务器请求该域名的解析。
  3. 本地 DNS 服务器如果有这个域名解析结果的缓存,则直接响应用户的解析请求。
  4. 本地 DNS 服务器如果没有这个域名解析结果的缓存,则以递归形式向整个 DNS 系统请求解析,获得应答后将结果反馈给浏览器。
  5. 浏览器得到域名解析结果,即该域名相应的服务器的 IP 地址。
  6. 浏览器向服务器发起 TCP 连接,建立连接发送 HTTP 协议报文。
  7. 服务器向浏览器发送页面内容,浏览器将页面展现出来。

  用户访问使用 CDN 的网站的步骤

23-2

  1. 用户向浏览器提供要访问的网址。由于网站的 DNS 域名解析器设置了 CNAME,经过本地 DNS 系统解析,DNS 系统会将域名的解析权交给 CNAME 指向的 CDN 专用 DNS 服务器。
  2. CDN 专用 DNS 服务器将 CDN 全局负载均衡设备的 IP 地址返回给浏览器。
  3. 浏览器向 CDN 的全局负载均衡设备发送访问请求。
  4. CDN 全局负载均衡设备根据用户 IP 地址,以及用户请求的内容 URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
  5. 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户 IP 地址,判断哪一台服务器距用户最近;根据用户所请求的 URL 中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
  6. 全局负载均衡设备把服务器的IP地址返回给用户。
  7. 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

关键技术

内容发布

  它借助于建立索引、缓存、流分裂、组播(Multicast)等技术。

内容路由

  它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程 POP 上均衡用户的请求,以使用户请求得到最近内容源的响应;

内容交换

  它根据内容的可用性、服务器的可用性以及用户的背景,在 POP 的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;

性能管理

  它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。

CDN的应用场景

网站站点/应用加速

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

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

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

视频直播加速

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

移动应用加速

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

坚持原创技术分享,您的支持将鼓励我继续创作!