乐趣区

关于下载:大文件下载及视频点播的CDN加速实践

为了帮忙用户更好地理解和应用 CDN 产品,CDN 利用实际进阶零碎课程开课啦!前几天,阿里云 CDN 产品专家陈智城在线分享了《大文件下载及视频点播的 CDN 减速实际》议题,解读大文件下载和视频点播的业务场景、内容散发挑战及对应解决方案。本篇文章,将为你详述分享原文。

关注阿里云边缘计算和 CDN 官网账号:阿里云 Edge Plus,收费取得讲师课件 PPT

一、大文件下载和视频点播的内容散发挑战

对于下载类的场景来说,常见细分场景包含:手机利用商店、游戏利用商店以及游戏更新和手机操作系统更新等,而对于视频类的利用场景来说,次要细分场景包含短视频、长视频、在线教育、OTT 机顶盒、广电传媒和音乐网站等等。

为什么会把下载类的利用场景和视频点播类利用场景放在一起去做比对呢?因为视频点播这个利用场景实际上也是一种大文件下载场景,这两个利用场景有着很高的业务相似性,也有很多共性问题,而它们之间的区别在于视频点播对于拜访的性能会有更高的要求。

两个场景在内容散发方面所面临的挑战次要有三大类:

  1. 用户体验问题,次要体现在:国内运营商环境简单,跨运营商拜访成果差;用户散布广,跨地区拜访时延高、速度慢;弱网环境下传输性能差,速度慢、卡顿重大等方面;
  2. 源站性能与老本问题,次要体现在:核心式部署的源站弹性扩大能力差,无奈接受大规模突发流量以及核心式部署的源站带宽老本昂扬;
  3. 业务平安问题,次要体现在:时刻面临着 DNS 劫持(例如被劫持了页面内容,被嵌入了页面广告等)、资源盗链(源站面临带宽老本上的损失)等平安威逼。
    • *

二、CDN 内容散发网络架构

当下,CDN 曾经是成为了缓解网络拥塞、进步业务响应速度、晋升用户体验的一种十分重要的技术手段,也是互联网基础设施当中不可或缺的重要组成部分。上面咱们通过阿里云 CDN 的内容散发网络架构来阐明典型的 CDN 内容散发网络都蕴含哪些组成部分:

(1)调度零碎
用户的终端会发动各种利用拜访,比方:点播和下载这两个利用场景。用户的拜访申请会首先去做域名 DNS 解析,而后用户的域名 DNS 解析申请将会通过阿里云 CDN 的调度零碎去解决;

(2)链路品质零碎
链路品质探测系统的作用是去实时地监测缓存零碎中的每一个节点和链路的实时负载和健康状况,而后反馈给调度零碎,调度零碎会依据用户申请中携带的 IP 地址信息去解析用户的运营商和区域归属,而后综合链路品质信息为用户调配一个最佳的接入节点;

(3)缓存零碎
用户收到最佳接入节点的 IP 当前,就会去拜访这个缓存节点,节点如果曾经缓存了用户申请的资源,那么就将会间接将资源返回给用户;如果 L1 节点没有命中,会上溯到 L2 节点,如果 L2 节点也没有缓存资源,才会返回源站去拉取这个资源;某个资源首次拉取后将会在缓存零碎中缓存下来,这样如果后续用户拜访到同一个资源,就可间接从缓存零碎去拉取资源,防止反复回源;通过分级缓存的这种部署架构能够达到进步内容散发效率、升高回源带宽以及晋升用户体验的成果;

(4)撑持服务零碎
阿里云 CDN 在内容散发之外也提供了撑持服务零碎。第一是具备资源监测能力,能够对缓存零碎上客户业务运行的状态进行监测,比方对 CDN 减速域名的 QPS、带宽、http 状态码等常见指标实现监控。第二是数据分析,用户能够剖析 CDN 减速域名的 TOP URL、PV、UV 等数据。第三是配置管理系统,用户通过该零碎能够下发如缓存文件类型、缓存工夫、去参数缓存等缓存规定,以晋升缓存零碎的运作效率。


三、CDN 如何解决互联网内容散发所面临的问题?

上面,从用户体验、源站性能与老本以及业务平安这三个方面来看看 CDN 是如何解决问题的。

第一,用户体验问题

首先,CDN 能够为用户提供诸多的就近接入的节点。
阿里云 CDN 建设了一张笼罩寰球六大洲 70 多个国家的 2800 多个的节点,全网具备了 130Tbps 的带宽输入能力,基本上笼罩了国内以及做海内的次要运营商。依靠丰盛的资源节点笼罩,阿里云 CDN 可能让用户就近接入同运营商节点,解决跨运营商互联互通、远距离拜访时延大等用户体验问题。

其次,晋升用户体验的第二点是须要提供精准的调度能力,阿里云 CDN 在这里是提供了 4 项要害的优化措施:

1、继续更新的精准 IP 数据库:IP 数据库的作用是在用户的 DNS 解析申请转发到了 CDN 调度零碎时,调度零碎会判断用户的地区和运营商归属,以此来为用户调配就近接入的同运营商 CDN 节点。为了确保 IP 数据库的数据处于最新的状态,数据库始终在继续地更新。
2、提供 HTTPDNS 服务(须要客户端兼容):采纳 HTTPDNS 这项技术使得用户终端能够绕开运营商的 local DNS,间接采纳 HTTP 协定去拜访调度零碎,申请所须要拜访的域名的最优接入节点,这样能够防止 DNS 劫持所带来的业务平安问题。
3、节点数据分析:CDN 调度零碎通过链路状态零碎去实时地剖析整个缓存零碎中的所有节点和链路的健康状况,为用户抉择最优的接入节点,防止因为接入节点品质不佳而影响到用户拜访体验。
4、基于内容调度,进步拜访命中率:在大文件下载和视频点播这两个利用场景上常常应用 302 调度这种基于内容的调度技术,302 调度是一种核心调度计划,用户在申请某一个资源的时候,在实现域名 DNS 解析之后,用户申请将会先拜访到核心调度零碎上,而后核心调度零碎将会解析用户申请须要拜访的内容,再通过 302 重定向的形式为用户调配最佳接入节点。
通过采纳以上 4 项优化措施,可能为用户提供更加精准的调度能力,从而让用户可能接入最佳的 CDN 节点。

CDN 常见的三种调度计划简略对比方下图所示:

这里简略阐明下这三种常见的 CDN 调度形式的优缺点:
(1)DNS 调度是最罕用和最通用的调度计划,毛病是存在 DNS 劫持的危险,调度的精确度也会差一些;
(2)302 调度非常适合用在大文件下载和视频点播这两个利用场景,长处是能够进步调度的精确度,毛病是将会减少首包的时延(在大文件下载和视频点播场景下对首包时延不太敏感,而对调度精确度要求更高)
(3)HTTPDNS 调度的长处是有较高的安全性(能够躲避 DNS 劫持危险)和调度精确度,然而有个很大的毛病,须要客户端提供反对(例如在手机 APP 上嵌入 SDK),通用性较差。

再次,晋升用户体验的第三个优化点是对传输链路做智能优化

1、协定优化:通过调整拥塞算法、丢包探测算法等优化措施,对 TCP 协定栈的性能做了大幅度晋升,尤其对弱网环境下的网络性能晋升显著;
以下两张带宽利用率比照图,右边是规范 TCP 传输协定,在建设 TCP 连贯之后,须要通过绝对更长的工夫去晋升带宽利用率,一旦碰到丢包状况,带宽利用率会疾速上涨,并且须要经验慢速爬坡阶段才可能逐渐晋升带宽利用率,尤其在弱网环境下,应用规范 TCP 协定的状况下,带宽利用率的降落会十分的重大。右侧是阿里云优化后的 TCP 协定,通过疾速启动、被动拥塞探测和疾速丢包复原等技术优化措施,可能提供更高的带宽利用率,即便在网络条件绝对差一些的状况下,也能够有比拟好的优化成果。

2、连贯减速:通过批改协定栈的 Handshake Timer 来实现疾速重试,以补救因为丢包导致的重试超时;
3、长久连贯:在 CDN 节点间事后建设好 TCP 连贯,并长时间放弃一直开,这样在有新连贯过去的时候就能够间接复用,缩小 TCP 握手时延。

第二,源站性能、老本压力问题

通过进步缓存零碎的效率帮忙客户升高源站的性能和老本压力,次要包含六个方面的技术措施:
1、分布式部署:确保用户可能就近拜访同运营商的节点,以此来进步访问速度,解决跨运营商拜访慢、长距离回源时延低等问题;
2、多级缓存架构:多级缓存架构中的每一级都可能用来缓存用户申请的资源,多级回源收敛之后能够极大地升高回源流量;
3、内容预取:通过内容预取技术提前把源站的内容预取到 CDN 节点上,缩小回源量和进步缓存命中率;
4、合并回源:配置若干个域名的回源申请与某一个域名(业务雷同的状况下)相合并,以缩小反复回源的流量;
5、去参数缓存:设置 hashkey(缓存 key)时,配置去掉资源 URL 前面的参数,以不带参数的 URI 作为缓存 key,以进步缓存命中率;
6、流量管制:提供精细化的流量控制能力,反对单申请流控和全网流控,反对边缘流控和回源流控,可能无效升高客户老本。

下图中标记的序号代表了以上 6 个技术措施在 CDN 缓存零碎上的作用地位:

这些技术措施综合起来能够帮忙客户去无效地缩小回源带宽、晋升缓存命中率,从而升高源站的带宽压力、升高源站的带宽老本。

第三,业务平安危险问题

阿里云 CDN 通过牢靠的平安防护措施,去帮忙用户躲避业务上的平安危险。
1、防盗链:能够抉择应用 Referer、UA、URL、IP 等通用鉴权形式,也能够用 EdgeScript 来定制鉴权规定,反对边缘鉴权和核心鉴权,通过严格校验用户的资源拜访申请来避免源站资源被盗用;
2、DNS 防劫持:HTTPDNS 技术应用 HTTP 协定拜访阿里云的服务端,取得域名解析后果,能够绕过运营商的 Local DNS,防止域名 DNS 劫持;
3、HTTPS 传输加密:反对采纳 TLS 协定来加密 HTTP 协定内容,避免明文数据裸露在互联网上,并且能够设置 TLSv1.3、HSTS 等高级性能。

最初,咱们再整体回顾一下,阿里云 CDN 在大文件下载和视频点播这两大利用场景下提供了哪些的外围能力:
1、丰盛的资源节点:可能为用户提供就近接入的同运营商 CDN 节点,解决长距离接入和跨运营商拜访带来的提早高和速度慢的问题
2、精准的调度零碎:可能实时地获取 CDN 节点的健康状况,并依据用户的所在位置和运营商来调配最合适的接入节点,以便获得最佳接入成果
3、智能的传输链路:通过协定优化、连贯优化等措施来升高总体时延、进步传输速度,尤其是进步弱网环境下的传输速度
4、高效的缓存策略:高效的缓存策略可能带来更高的用户命中率(命中就近节点上的缓存资源),从而提供更高的访问速度
5、牢靠的平安防护:牢靠的平安防护措施可能对用户的资源拜访申请做严格的校验和加密,爱护用户的资源和业务平安

如果对阿里云 CDN 产品利用进阶感兴趣,能够关注阿里云 Edge Plus 微信公众号,理解更多产品信息和技术干货

退出移动版