作者:辰舒
背景
当下,各类门户网站、短视频、剧集观看、在线教育等内容生态快速发展,互联网流量呈现爆发式增长。在靠近用户的地方就有CDN节点,用户通过手机或PC畅快浏览网页、视频、图片时,都需要CDN提供加速。作为经历二十多年发展的技术,CDN已成为支撑互联网产业繁荣以及数字经济快速发展的重要基础设施。
本文将为您介绍「CDN 原理」以及「CDN 在用户体验的提升中发挥了什么样的作用」。
传统网络分发面临的瓶颈与挑战
CDN 并不是互联网诞生之初就一直存在的,而是在支撑各类互联网业务高速发展的过程中应运而生并不断发展壮大的。未使用 CDN 加速时,大量用户请求需要穿越互联网骨干网才能获取源站内容,内容分发常面临着以下几项挑战:
- 用户距离源站距离较远,网络链路易拥塞,长距离传输对终端体验并不友好,易出现卡顿、慢速问题。
- 源站部署在单线(单个运营商)机房时,跨运营商访问质量差。
- 源站部署在 BGP /多线机房时,带宽的成本昂贵,且固定出口带宽时易成为服务瓶颈,突发活动需要扩容。
- 内容分发业务需要投入高成本进行服务器配置扩容,并且伴随高并发业务维护的人力成本。
而在业务使用 CDN 加速后,用户可以就近在边缘 IDC 节点下载到所需内容,极大地提升了用户体验,不仅让业务内容分发效率提升,也分担了源站的负载压力,使得源站服务聚焦于对非静态内容的业务处理,能够更加从容地面对突发业务带宽。通过智能回源出口选择,也能够避免单线机房跨运营商访问造成的不稳定性。
同时,相比 BGP 机房的带宽单价,CDN 将分发内容产生的流量成本降低到极致,同时通过选购 CDN 资源包还可享受更多优惠。
CDN 是什么
互联网内容的分发模式与传统商品货物的分发模式有许多共通之处,在介绍 CDN 是什么之前,我们不妨思考一下是哪些因素让日常生活的购买效率更高,时效性更强?
- 首先,交通工具的便利及道路基建能力的提升,运输效率提升,让货物运输速度更快。
- 其次,仓储物流能力的建设,货物在多地仓库分布式仓储,位于同地区的多个超市便利店可选择从本地仓库直接进货,而顾客也可以直接在家门口的超市便利店购买所需商品,无需用户和源头生产厂商直接完成订单交易。
- 最后,售卖点的数量、覆盖范围的扩张也都为购买过程带来了体验上的改善,每个小区门口甚至单元楼都已经覆盖了便民超市,如今最近距离商品交易只需从身边的自动贩卖机就能够完成。
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
如何更通俗地去理解 CDN 是什么呢,我们也不妨尝试用购买效率提升的思路来帮助理解:CDN 在网络上的作用就像现实中用户身边的自动贩卖机、家门口的超市、各地的集中仓储,让用户可以最近距离很快捷的获取所需商品。
从技术视角理解,CDN 通过多级代理服务器对源站内容(例如 js/css/html/mp4 等)进行缓存,让静态内容缓存在距离用户更近的 IDC 机房节点上,实现用户获取资源的网络距离大幅度缩减,进而提升终端用户体验和传输效率。
CDN 架构和访问流程
如果要实现对全球业务的分发加速,自然需要海量节点储备用于给终端用户提供服务,而作为一个全球化的分布式系统,CDN 对系统性能和稳定性有非常高的要求,当前阿里云 CDN 主要由调度系统、链路质量系统、缓存系统、支撑系统等子系统组成,这些子系统共同构成了 CDN 大脑神经网络来保证 CDN 的日常服务。
- 调度系统:支持策略中心、DNS、HTTPDNS和302调度模式。当终端用户发起访问请求时,用户的访问请求会先进行域名DNS解析,调度系统将根据用户解析请求中携带的 IP 地址判断其区域、运营商,为用户选择并返回最佳接入节点 IP (DNS 未携带客户端 IP 时,调度根据DNS IP决策)。
- 链路质量系统:实时监测缓存系统中所有节点和链路的实时负载以及健康状况。调度系统在决策最优节点时,也会综合链路质量、实时负载等因素来为用户分配服务节点。
- 缓存系统:用户通过收到的最佳接入节点 IP 访问对应的缓存节点,如果节点已经缓存了用户请求的资源,会直接将资源返回给用户。
- 支撑系统:支撑服务系统包括监测系统、数据智能和配置管理系统,分别具备了资源监测、数据分析和配置管理能力。
创建 CDN 加速域名后,CDN 将为您的加速域名分配 CNAME 记录值,您需要将域名解析至 CNAME 记录后才能接入CDN的智能调度系统。在正式接入 CDN 后,终端用户访问时经过的流程大致如下:
- 本机 DNS 发起对访问域名的解析查询,加速域名权威DNS将响应您所配置的 CNAME 地址,DNS 继续对CNAME 记录发起查询后,解析结果将根据阿里云调度系统决策,从权威 DNS 中返回最优节点 IP 地址。
- 用户本地发起和节点 IP 的建联,建联后开始发送 HTTP 请求,此时访问节点为边缘节点(L1),如果 L1 节点已缓存了用户请求的文件,L1 将直接返回缓存内容给用户,此时请求结束。
- 如果边缘节点(L1)没有该文件的缓存,将回源至上层节点(L2)获取资源,如果 L2 节点已缓存用户请求的文件,将直接返回缓存内容给L1,L1响应给用户并将文件缓存到本地,此时请求结束。
- 如果 L2 节点也没有用户所请求的文件,L2 节点将根据您在CDN控制台上的配置,回源到您的业务源站拉取资源返回给 L1 ,并将文件缓存到 L2 本地,此时请求结束。
目前,阿里云在全球拥有2800+节点,覆盖70多个国家和地区,全网带宽输出能力达150+Tbps。阿里云CDN产品通过广泛的地域覆盖和深厚的带宽储备,在全球范围为用户提供安全、稳定、可靠的内容分发服务。
更多边缘云产品资讯欢迎关注公众号【阿里云Edge Plus】