引言

内容分发网络(Content Delivery Network,CDN)是一种用于加速网络内容传输的关键技术。它通过将数据存储在分布式的全球服务器上,以及使用智能路由和缓存策略,使内容能够更快速地传送给最终用户。在本文中,我们将深入了解CDN的基本原理、工作方式、使用场景和一些最佳实践。

什么是阿里云的CDN

阿里云内容分发网络CDN(Content Delivery Network)是建立并覆盖在承载网之上,由遍布全球的边缘节点服务器群组成的分布式网络。阿里云CDN能分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度。

阿里云在全球拥有3200+节点。中国内地拥有2300+节点,覆盖31个省级区域;海外、中国香港、中国澳门和中国台湾拥有900+节点,覆盖70多个国家和地区。全网带宽输出能力达180 Tbps。

CDN将源站资源缓存到阿里云遍布全球的加速节点,当终端用户请求访问和获取源站资源时无需回源,可就近获取CDN节点上已经缓存的资源,提高资源访问速度,同时分担源站压力。目前CDN部分节点已支持通过IPv6访问。

CDN接入快捷、简单,我们不需要调整现有业务结构,也不需要进行复杂的配置,只需要在CDN控制台进行简单操作,即可将域名接入阿里云,享受全球链路加速服务。

为什么选择阿里云CDN

使用CDN可以帮我们实现静态资源的加速和分发,提高资源访问速度:

  • 丰富的资源节点:为用户提供就近接入的同运营商CDN节点,解决长距离接入和跨运营商访问带来的延迟高和速度慢的问题。
  • 资源可弹性扩展:基于全球3200+节点,资源可弹性扩展,实现业务高可用。
  • 精准的调度系统:实时获取CDN节点的健康状况,并根据用户所在位置和运营商来分配最佳接入节点,以便取得最佳接入效果。
  • 智能的传输链路:通过协议优化、连接优化等措施来降低总体时延、提高传输速度,尤其是提高弱网环境下的传输速度。
  • 高效的缓存策略:能够带来更高的缓存命中率,命中就近节点上的远程资源,提供高效的访问速度。
  • 降低我们的IT成本:可将我们的业务算力、带宽、连接数转移到CDN边缘节点,降低我们的IT成本。
  • 强大的带宽输出能力:全网带宽输出能力达180 Tbps。
  • 提供行业通用标准API:提高易用性和适用性。

产品架构

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

十分钟了解阿里云内容分发网络CDN - 图1

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

  • 调度系统支持策略中心、DNS、HTTPDNS和302调度模式。当终端用户发起访问请求时,用户的访问请求会先进行域名DNS解析,然后通过阿里云CDN的调度系统处理用户的解析请求。
  • 缓存系统用户通过收到的最佳接入节点访问对应的缓存节点,如果节点已经缓存了用户请求的资源,会直接将资源返回给用户;如果L1(边缘节点)和L2(汇聚节点)节点都没有缓存用户请求的资源,此时会返回源站去获取资源并缓存到缓存系统,供后续用户访问,避免重复回源。分级缓存的部署架构可提高内容分发效率、降低回源带宽以及提升用户体验。

支撑服务系统

  • 支撑服务系统包括天眼、数据智能和配置管理系统,分别具备了资源监测、数据分析和配置管理能力。

资源监测:天眼可以对缓存系统上用户业务运行的状态进行监测。例如对CDN加速域名的QPS、带宽、HTTP状态码等常见指标的监控。

数据分析:用户可以分析CDN加速域名的TOP URL、PV、UV等数据。

配置管理:通过配置管理系统,用户可以配置缓存文件类型、缓存时去参数缓存等缓存规则,以提升缓存系统的运作效率。

加速原理

  1. 假设我们的加速域名为www.aliyundoc.com,接入CDN开始加速服务后,当终端用户在北京发起HTTP请求时,处理流程如下图所示。

十分钟了解阿里云内容分发网络CDN - 图2

当终端用户向www.aliyundoc.com下的指定资源发起请求时,首先向Local DNS(本地DNS)发起请求域名www.aliyundoc.com对应的IP。

  1. Local DNS检查缓存中是否有www.aliyundoc.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向网站授权DNS请求域名www.aliyundoc.com的解析记录。

  2. 当网站授权DNS解析www.aliyundoc.com后,返回域名的CNAME www.aliyundoc.com.example.com

  3. Local DNS向阿里云CDN的DNS调度系统请求域名www.aliyundoc.com.example.com的解析记录,阿里云CDN的DNS调度系统将为其分配最佳节点IP地址。

  4. Local DNS获取阿里云CDN的DNS调度系统返回的最佳节点IP地址。

  5. Local DNS将最佳节点IP地址返回给用户,用户获取到最佳节点IP地址。

  6. 用户向最佳节点IP地址发起对该资源的访问请求。

a. 如果该最佳节点已缓存该资源,则会将请求的资源直接返回给用户(步骤8),此时请求结束。

b. 如果该最佳节点未缓存该资源或者缓存的资源已经失效,则节点将会向源站发起对该资源的请求。获取源站资源后结合用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户(步骤8),此时请求结束。

详解CDN

第一部分:CDN的基本原理

CDN的基本原理是将静态资源,如网页、图片、视频和其他文件,缓存在位于全球各地的服务器上。这些服务器通常被称为“边缘节点”或“边缘服务器”,它们位于距离最终用户更近的位置,与内容提供者的源服务器相比,这样可以减少数据的传输时间和延迟。

CDN的基本工作原理包括以下步骤:

  1. 内容复制和缓存:CDN提供商会将内容从源服务器复制到它们的边缘服务器上。这通常包括静态资源,如HTML文件、CSS、JavaScript、图像和视频。

  2. 智能路由:当用户请求访问特定内容时,CDN会根据用户的地理位置、网络负载和服务器健康状态等因素,选择最优的边缘节点来提供内容。这种智能路由减少了内容传输的延迟。

  3. 缓存策略:CDN会使用缓存策略来确定哪些内容可以缓存在边缘节点上以及缓存的有效期。常见的缓存策略包括时间到期(Time to Live,TTL)和根据内容的版本或更新来刷新缓存。

  4. 内容交付:一旦CDN确定了最佳的边缘节点和缓存内容,它将内容传送给用户。如果内容已经缓存在边缘节点上,用户将立即获得快速的响应。否则,CDN将从源服务器获取内容,并将其缓存以供以后使用。

第二部分:CDN的工作方式

CDN的工作方式是通过以下关键组件实现的:

  1. 边缘节点:这是分布在全球各地的服务器,用于存储和提供缓存内容。边缘节点通常位于网络骨干中,距离用户更近,以提供更快的响应时间。

  2. 内容复制和同步:CDN提供商会定期从内容提供者的源服务器复制和同步内容到边缘节点上。这确保了内容的最新版本可用于快速交付。

  3. 负载均衡:CDN使用负载均衡技术来分发用户请求到最近的边缘节点。这样可以减轻服务器负载,提高性能,并提供高可用性。

  4. 缓存策略:CDN可以配置不同的缓存策略,以确定哪些内容应该缓存在边缘节点上,以及缓存的有效期。这有助于节省带宽和降低源服务器负载。

第三部分:CDN的使用场景

CDN在以下场景中非常有用:

  1. 网站加速:CDN可以加速网站加载速度,降低带宽使用,并提供全球用户更好的访问体验。

  2. 视频流媒体:对于流媒体服务提供商,CDN可以提供快速的视频内容传输,减少视频缓冲时间,并提供高清流畅的观看体验。

  3. 移动应用程序:移动应用可以使用CDN来分发应用程序更新、图像和多媒体内容,从而提供更快速、可靠的用户体验。

  4. 安全性:CDN还可以用于分发安全策略、防御DDoS攻击、减轻网络流量,以及为内容提供者提供额外的安全性和隐私保护。

第四部分:CDN的最佳实践

以下是一些使用CDN时的最佳实践:

  1. 选择合适的CDN提供商:不同的CDN提供商可能在不同地区有不同的性能和价格优势。选择一个适合我们需求的CDN提供商很重要。

  2. 合理配置缓存策略:根据我们的内容类型和更新频率,配置合理的缓存策略,以避免提供过时的内容。

  3. 监控和分析:使用CDN提供商的监控和分析工具来追踪性能、流量和用户体验。这有助于识别问题并改进服务。

  4. 加强安全性:配置CDN以提供DDoS攻击保护和内容加密,以确保内容和用户数据的安全性。

总结

CDN是加速内容传输的强大工具,可以提供更快速、可靠的用户体验,并降低服务器负载。了解CDN的工作原理、使用场景和最佳实践,可以帮助我们更好地利用这项技术来提供高性能的网络服务。