为了帮助用户更好地了解和使用CDN产品,CDN应用实践进阶系统课程开班啦!日前,阿里云CDN产品专家陈志诚在线分享了《大文件下载与点播的CDN加速实践》,阐述了大文件下载与点播的业务场景、内容分发挑战及相应的解决方案。本文将与大家详细分享原文。
1. 大文件下载和视频点播的内容分发挑战
对于下载场景,常见的子场景包括:手机应用商店、游戏应用商店、游戏更新和手机操作系统更新。对于基于视频的场景,主要的子场景包括短视频、长视频视频、在线教育、OTT机顶盒、广电媒体和音乐网站等。
为什么把下载应用场景和视频点播应用场景放在一起比较呢?因为视频点播的应用场景其实是一个大文件下载的场景,所以这两个应用场景业务相似度高,常见问题也很多,区别在于视频点播的性能会更好访问。高要求。
两种内容分发场景面临的挑战主要分为三类:
用户体验问题主要体现在:国内运营商环境复杂,跨运营商接入效果差;用户分布广泛cdn服务器加速,跨区域访问时延高,速度慢;在弱网络环境下,传输性能差、速度慢、卡顿严重等。在源站的性能和成本方面,主要体现在:源站的弹性扩展能力中心部署较差,无法承受大规模突发流量,中心部署源站带宽成本高;业务安全问题主要体现在:始终面临DNS劫持等安全威胁(如被劫持的页面内容、嵌入页面广告等),资源盗链(源站面临带宽成本损失)。2.CDN内容分发网络架构
目前,CDN已经成为缓解网络拥塞、提高服务响应速度、改善用户体验的非常重要的技术手段,也是互联网基础设施不可或缺的重要组成部分。下面,我们以阿里云CDN的内容分发网络架构来说明一个典型的CDN内容分发网络的组成:
(1) 调度系统
用户终端会发起各种应用访问,如点播和下载两种应用场景。用户的访问请求会先经过域名的DNS解析,再经过阿里云CDN的调度系统处理用户的域名DNS解析请求;
(2) 链接质量体系
链路质量检测系统的作用是实时监控缓存系统中各个节点和链路的实时负载和健康状况,然后反馈给调度系统。调度系统会根据用户请求中携带的IP地址信息对用户进行分析。运营商和区域隶属关系,然后根据链路质量信息为用户分配最优接入节点;
(3) 缓存系统
用户收到最佳访问节点的IP后,会访问缓存节点。如果节点已经缓存了用户请求的资源,则直接将资源返回给用户;如果L1节点没有命中,则回溯到L2节点,如果L2节点没有缓存资源,则返回源站拉取资源;第一次拉取资源后,会缓存在缓存系统中,这样后续用户访问同一个资源时,可以直接从缓存系统拉取资源,避免重复回源;这种分层缓存的部署架构可以提高内容分发效率,减少回源带宽,提升用户体验;
(4) 支持服务体系
除了内容分发,阿里云CDN还提供支持服务系统。首先是具备资源监控能力,可以在缓存系统上监控客户业务操作的状态,比如监控CDN加速域名的QPS、带宽、http状态码等常用指标。二是数据分析。用户可以分析CDN加速域名的TOP URL、PV、UV等数据。三是配置管理系统,用户可以通过配置管理系统下达缓存文件类型、缓存时间、参数缓存清除等缓存规则,提高缓存系统的运行效率。
3、CDN如何解决互联网内容分发面临的问题?
接下来,我们从用户体验、源站性能和成本、业务安全三个方面来看看CDN是如何解决这个问题的。
一、用户体验问题
首先,CDN 可以为用户提供许多附近的访问节点。
阿里云CDN已经建立了覆盖六大洲70多个国家2800多个节点的网络。全网具备带宽输出能力,基本覆盖国内外各大运营商。依托丰富的资源节点覆盖,阿里云CDN让用户可以就近访问同一运营商的节点,解决跨运营商互联、远距离访问延迟等用户体验问题。
其次,提升用户体验的第二点是提供精准调度能力。阿里云 CDN 在这里提供了四个关键的优化措施:
1、持续更新准确的IP数据库:IP数据库的作用是当用户的DNS解析请求转发给CDN调度系统时,调度系统会判断用户所在地区和运营商所属,从而分配就近访问为用户服务。运营商 CDN 节点。为确保IP数据库中的数据处于最新状态,数据库一直在不断更新。
2、提供服务(需要客户端兼容):使用该技术,用户终端可以绕过运营商本地DNS,直接使用HTTP协议访问调度系统,为要访问的域名请求最优的访问节点。可以避免DNS劫持带来的业务安全问题。
3、节点数据分析:CDN调度系统通过链路状态系统实时分析整个缓存系统中所有节点和链路的健康状态,为用户选择最优接入节点,避免接入节点质量不佳。并影响用户访问体验。
4、基于内容的调度提高访问命中率:302调度是基于内容的调度技术,常用于大文件下载和视频点播两种应用场景。302调度是一种中央调度方案。资源方面,在完成域名的DNS解析后,用户请求首先访问中央调度系统,然后中央调度系统解析用户请求访问的内容,然后分配最佳连接通过 302 重定向发送给用户。进入节点。
通过以上四种优化措施,可以为用户提供更精准的调度能力,让用户可以访问到最好的CDN节点。
下图简单对比了三种常见的CDN调度方案:
下面简单介绍一下这三种常见的CDN调度方式的优缺点:
(1)DNS调度是最常用和最常用的调度方案。缺点是存在DNS劫持风险,调度精度也会差;
(2)302调度非常适合大文件下载和视频点播两种应用场景。对首包时延不敏感,对调度精度要求较高)
(3)调度的优点是安全性高(可以避免DNS劫持的风险)和调度的准确性,但有个很大的缺点,就是需要客户端支持(比如在手机APP上嵌入SDK),通用性差。
再次,提升用户体验的第三个优化点是智能优化传输链路
1、协议优化:通过调整拥塞算法、丢包检测算法等优化措施,使TCP协议栈的性能得到很大提升,尤其是在弱网环境下。
下面两张带宽利用率对比图。左边是标准的 TCP 传输协议。建立 TCP 连接后,需要相对较长的时间来提高带宽利用率。一旦发生丢包,带宽利用率会迅速下降,需要经历一个缓慢的爬坡阶段,逐步提高带宽利用率。尤其是在弱网络环境下,当使用标准的TCP协议时,带宽利用率会下降非常严重。右边是阿里云优化后的TCP协议。通过快速启动、主动拥塞检测、快速丢包恢复等技术优化措施,即使在网络条件比较差的情况下也能提供更高的带宽利用率。
2、连接加速:通过修改协议栈的Timer来实现快速重试,弥补丢包造成的重试超时;
3. 持久连接:CDN节点之间预先建立了一条TCP连接,并长期保持不断开,这样当有新连接到来时,可以直接重用,减少TCP握手的延迟。
二、源站性能和成本压力问题
通过提高缓存系统的效率,帮助客户降低源站的性能和成本压力,主要包括六个方面的技术措施:
1、分布式部署:保证用户可以就近访问同一运营商的节点,提高访问速度,解决跨运营商访问慢、远距离回源延迟高的问题;
2、多级缓存架构:多级缓存架构中的每一级都可以缓存用户请求的资源,多级回源收敛后可以大大减少回源流量;
3、内容预取:通过内容预取技术将源站内容提前预取到CDN节点,减少回源量,提高缓存命中率;
4、合并回源:配置多个域名的回源请求合并到某个域名(同业务的情况下),减少重复回源流量;
5、去参数缓存:设置(缓存键)时,配置去掉资源URL后面的参数,使用不带参数的URI作为缓存键,提高缓存命中率;
6、流控:提供精细化流控能力,支持单请求流控和全网流控,支持边缘流控和回源流控,可有效降低客户成本。
下图中标出的序号代表了上述六项技术措施对CDN缓存系统的作用:
综合起来,这些技术措施可以帮助客户有效降低回源带宽,提高缓存命中率,从而降低源站带宽压力,降低源站带宽成本。
三、业务安全风险问题
阿里云CDN通过可靠的安全保护措施帮助用户规避业务安全风险。
1、防盗链:可以选择使用UA、URL、IP等通用认证方式,也可以自定义认证规则,支持边缘认证和中心认证,通过严格验证防源用户的资源访问请求站点资源被盗;