CDN内容分发网络简介

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CDN内容分发网络简介相关的知识,希望对你有一定的参考价值。

CND 内容分发网络

  • 内容分发网络(Content Delivery Network,CDN)是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。
  • CDN将源站资源缓存到分属各地域的边缘服务器,利用全球调度系统使用户能够就近获取,有效降低访问延迟,降低源站压力,提升服务可用性。
  • CDN通过广泛的网络节点分布,提供快速、稳定、安全、可编程的全球内容分发加速服务,支持将网站、音视频、下载等内容分发至接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。

CDN 架构

  • 以下为阿里云CDN的产品架构图,由调度系统、链路质量系统、缓存系统和支撑系统这四大系统组成。
    阿里云CDN架构

调度系统

  • 支持策略中心、DNS、HTTPDNS和302调度模式。
  • 当终端用户发起访问请求时,用户的访问请求会先进行域名DNS解析,然后通过CDN的调度系统处理用户的解析请求。

链路质量系统

  • 链路质量探测系统会实时监测缓存系统中的所有节点和链路的实时负载以及健康状况,并将结果反馈给调度系统,
  • 调度系统根据用户请求中携带的IP地址解析用户的运营商和区域归属,然后综合链路质量信息为用户分配一个最佳接入节点。

缓存系统

  • 用户通过收到的最佳接入节点访问对应的缓存节点,如果节点已经缓存了用户请求的资源,会直接将资源返回给用户;
  • 如果L1和L2节点都没有缓存户请求的资源,此时会返回源站去获取资源并缓存到缓存系统,供后续用户访问,避免重复回源。
  • 分级缓存的部署架构可提高内容分发效率、降低回源带宽以及提升用户体验。

支撑服务系统

  • 支撑服务系统包括天眼、数据智能和配置管理系统,分别具备了资源监测、数据分析和配置管理能力。
    • 资源监测:天眼可以对缓存系统上用户业务运行的状态进行监测。例如对CDN加速域名的QPS、带宽、HTTP状态码等常见指标的监控。
    • 数据分析:用户可以分析CDN加速域名的TOP URL、PV、UV等数据。
    • 配置管理:通过配置管理系统,用户可以配置缓存文件类型、缓存时去参数缓存等缓存规则,以提升缓存系统的运作效率。

CDN 加速原理

  • CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
  • CDN加速目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

CDN 加速实现过程

阿里云CDN访问过程

  1. 当终端用户向www.a.com下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
  2. LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
  3. 当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。
  4. 域名解析请求发送至CDN所在DNS调度系统,DNS调度系统为请求分配最佳节点IP地址。
  5. LDNS获取DNS返回的解析IP地址。
  6. 用户获取解析到的最优响应服务器IP地址。
  7. 用户向获取的IP地址发起对该资源的访问请求。
  8. 如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如图中步骤7和8,此时请求结束。
  9. 如果该IP地址对应的节点未缓存该资源,则该节点负责向源站发起对该资源的请求。
  10. 获取资源后结合用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户,

CDN应用场景

  • CDN具有广泛的应用场景,可实现图片小文件、大文件下载和视音频点播业务类型的加速
应用场景场景概述
图片小文件适用于网站或应用中小文件的加速分发,例如各种门户网站、电子商务类网站、新闻资讯类网站或应用、娱乐游戏类网站等。
大文件下载适用于各类大文件的下载和分发加速,例如游戏安装包、应用更新、手机ROM升级、应用程序包下载等,平均单个文件大小在20 MB以上。
视音频点播适用于各类视音频网站,例如影视类视频网站、在线教育类视频网站、新闻类视频网站、短视频社交类网站以及音频类相关网站和应用,支持MP4、FLV等主流视频格式。

CDN的性能衡量指标

通过量化的CDN性能指标可以衡量业务具体加速效果

通用指标

DNS时间

  • 指从浏览器终端发起的访问请求开始,到浏览器终端获得最终访问主机IP地址所消耗的时间。

TCP时间

  • 指客户端与目标服务器建立TCP连接所消耗的时间。

SSL时间

  • 指客户端和Web服务器建立安全套接层(SSL)连接的消耗时间。

发送时间

  • 指SSL握手完成开始发送请求到请求发送完成所消耗的时间。

建立连接时间

  • 建立连接时间简称为建连时间,如果CDN节点使用HTTP协议加速客户业务,建连时间包含“DNS时间+TCP时间”;
  • 如果CDN节点使用HTTPS协议加速客户业务,建连时间包含“DNS时间+TCP时间+SSL时间”。建立连接的时间长短,可以反映CDN服务的节点资源覆盖的丰富程度以及调度能力。

响应时间

  • 指浏览器发出HTTP请求后,Web服务器进行后台处理以及响应的时间。

下载用时

  • 指您收到Web服务器返回的第一个数据包,到完成下载的总时间。

首包时间

  • 指从客户端开始发送请求到收到服务器端返回的第一个HTTP协议数据包之间所需要的时间,首包时间可以反映出CDN服务节点的整体性能。
  • 在上传路径中,首包时间主要包含了DNS解析时间、TCP用时、SSL用时、发送时间和响应时间。
  • 在下载路径中,首包时间主要包含了DNS解析时间、TCP用时、SSL用时、发送时间和响应时间。
  • 域名刚生效,通常解析时间较长,和CDN的缓存时间无关。

整体性能

  • 指完成整个文件的上传或下载所需要的总时长。

丢包率

  • 指在网络传输中丢失数据包的数量占发送数据包总数的比率。

回源率

  • 回源率分为回源请求数比例及回源流量比例两种:
    • 回源请求数比:指边缘节点对于没有缓存、缓存过期(可缓存)和不可缓存的请求占全部请求记录的比例。越低则性能越好。
    • 回源流量比:回源流量是回源请求文件大小产生的流量和请求本身产生的流量。回源流量比=回源流量÷用户请求访问的流量,比值越低,性能越好。

缓存命中率

  • CDN缓存命中率包括字节命中率和请求命中率,CDN缓存命中率通用指字节命中率,缓存命中率越高,性能越好。
  • 字节命中率=CDN缓存命中响应的字节数÷CDN所有请求响应的字节数
  • 字节缓存命中率越低,回源流量越大,源站的流出流量越大,源站的带宽资源以及其他的负载越大,
  • 回源流量代表了源站服务器接收到的负载压力,在业务使用中主要关心字节缓存命中率。
  • 请求命中率=CDN缓存命中的请求数÷CDN所有的请求数

应用场景性能指标

不同的实际应用场景对应业务的加速情况适用不同的衡量指标

加速小文件主要指标

  • 小文件加速对延迟要求较高,延迟主要包括建立连接时间、首包时间、内容下载时间,其中首包时间是最核心的指标。
  • 如果页面加载时间过长,会导致大量用户流失。

加速大文件主要指标

  • 大文件下载指单个文件的大小在20 MB以上的下载
  • 大文件下载场景最核心的指标是下载速度和下载总时间。

视音频点播主要指标

  • 视音频点播的场景主要涵盖flv、mp4、wmv、mkv等视音频文件,在视音频点播场景中的主要衡量指标包括首播时间和卡顿率。
  • 首播时间:指从打开视频到看到视频画面的时间。首播时间通常会受域名解析、连接时间和首包时间的影响。
  • 卡顿率:卡顿指视音频播放、资源加载等场景下出现的画面滞帧,卡顿率主要指把所有用户播放视频的卡顿时间上报,每100个用户里面播放出现卡顿的比例。卡顿率越低,性能越好。

CDN基本概念

源站

  • 源站是指运行用户业务应用的Web服务提供方。
  • 源站可用来处理和响应用户请求,当边缘节点没有缓存用户请求的内容时,节点会返回源站获取资源数据并返回给用户。
  • CDN的源站可以是OSS域名、IP、源站域名或函数计算域名。

边缘节点

  • 边缘节点是CDN用于缓存源站资源,以便快速响应不同地域用户请求的网络节点。
  • 可以理解为最靠近用户的CDN服务器,缓存着用户需要的大部分资源。

DNS

  • DNS(Domain Name System)即域名解析服务,可以将域名转换成网络可以识别的IP地址。
  • 人们习惯记忆域名,但机器间互相只识别IP地址。
  • 域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程自动进行。

加速域名

  • 域名(Domain Name)是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识服务器。
  • 加速域名是指接入CDN,用于加速源站的域名,也是您最终暴露给终端用户访问的域名。
  • CDN通过加速域名将源站资源缓存到CDN加速节点,实现资源访问加速。

CNAME记录

  • CNAME(Canonical Name)记录即别名记录,用来把一个域名解析成另一个域名,再由另一个域名提供源站服务。

静态内容(静态资源)

  • 静态内容是指用户多次请求某一资源,响应返回的数据都是相同的内容。
  • 例如图片、视频、网站中的文件(html、CSS、JS)、软件安装包、APK文件、压缩包文件等。
  • CDN通过加速域名将源站的静态资源缓存到CDN遍布全球的加速节点上,供用户就近访问,实现资源访问加速。

动态内容(动态资源)

  • 动态内容是指用户多次请求某一资源,响应返回的数据可能是不同的内容。
  • 例如网站中的文件(ASP、JSP、php、PERL、CGI)、API接口、数据库交互请求等。
  • CDN默认不能加速静态资源,使用静态化技术,将大部分动态资源在服务器端预先生成静态内容,再交由CDN进行缓存实现动态资源加速。

SSL/TLS

  • SSL(Secure Sockets Layer)即安全套接字协议,SSL协议位于TCP/IP协议与各种应用层协议之间,可以有效协助Internet上的应用软件提升通讯时的资料完整性及安全性。
  • IETF将SSL标准化后名称被改为TLS(Transport Layer Security),即传输层安全协议,因此通常将两者并称为SSL/TLS。

回源

  • 当用户通过浏览器发送请求时,如果CDN节点未缓存请求的资源或缓存资源已到期,此时会回源站获取资源并返回给用户,该过程被称为回源。

回源HOST

  • 回源HOST即回源域名,当源站服务器上提供多个域名服务时,CDN节点回源时在源站访问的具体站点域名。示例如下:
    示例1:源站是域名。

    源站为www.a.com,回源HOST为www.b.com,实际回源是请求到www.a.com解析到的IP,即对应的主机上的站点www.b.com。
    
    示例2:源站是IP。

    源站为1.1.1.1,回源HOST为www.b.com,实际回源的是1.1.1.1对应的主机上的站点www.b.com。

回源协议

  • 回源协议指CDN节点回源时使用的协议,与客户端访问资源时使用的协议相同。
  • 例如,当客户端使用HTTPS方式请求未缓存在CDN节点上的资源时,CDN节点会使用相同的HTTPS方式回源站获取资源。

过滤参数

  • 通过过滤参数,根据实际业务需要,决定在缓存时是否过滤用户请求URL中?之后的参数。具体如下:
    开启过滤参数,CDN节点会截取不带参数的URL向源站请求,且CDN节点仅保留一份副本。
    关闭过滤参数,每个不同的URL会缓存不同的副本在CDN节点上。
  • 如果URL中不同参数代表相同的内容,建议开启过滤参数,有效提升缓存命中率。

以上是关于CDN内容分发网络简介的主要内容,如果未能解决你的问题,请参考以下文章

CDN内容分发网络

全局负载均衡(GSLB)和内容分发网络(CDN)原理及实战

运维必学:全局负载均衡与CDN内容分发

全局负载均衡CDN内容分发的原理与实践

CDN服务技术架构图

使用动态 url 暂停和恢复从 CDN(内容分发网络)下载大文件