5 分钟了解 CDN 的功能及原理
为了缓解互联网用户增加与服务等待时间增长的矛盾,在增加互联网核心交换网、汇聚网与接入网带宽同时,MIT 研究者于 1998 年提出了内容分发网络(ContentDelivery Network,CDN)的概念,开始了 CDN 技术及其应用的研究。CDN 系统设计的基本思路可以归纳为两点:
如果某个内容被很多用户关注,就将它缓存在离用户最近的节点中。
选择最适合的缓存节点为用户提供服务。选择最合适的缓存节点的过程中需要使用负载均衡技术。被选中的缓存节点有可能离用户最近,也可能拥有一条与用户相连的条件最好的传输路径。
CDN 的主要功能
CDN 主要提供四项基本功能:分布式存储、负载均衡、网络请求的重定向、内容管理等。CDN 内容服务是基于缓存节点的代理缓存功能。代理缓存是互联网内容提供商(ICP)源服务器内容的一个透明镜像。网站维护人员只需将内容注入 CDN 系统,就可自动通过部署在不同物理位置的缓存节点,实现跨运营商、跨地域的内容分发服务。
CDN 系统能实时根据网络流量和各节点的连接、负载状况,以及到用户的距离、响应时间等因素,避开可能影响传输速度和稳定性的瓶颈位置,将用户的服务请求导向离用户最近的缓存节点,以便用户可以就近取得所需内容,尽可能使内容传输速度更快、等待时间短,使互联网服务更方便和稳定。CDN 的工作过程对于用户是透明的,用户能感到访问互联网资源的时间缩短,并不会感到 CDN 系统的存在。
CDN 的功能结构
典型的 CDN 功能结构由三个部分组成:分发服务系统、均衡负荷系统与运营管理系统。
分发服务系统
分发服务系统主要的功能是:完成内容从源服务器向边缘的推送与存储,将内容数据流分发到分布在全网的缓存服务器中,由缓存服务器为最终用户提供服务。因此,分发服务系统的基本服务单元是大量的缓存服务器。根据承载的内容与服务类型的不同,分发服务系统可进一步分为网页(静态、动态)内容加速子系统、流媒体加速子系统与应用协议加速子系统。
均衡负荷系统
均衡负荷系统是 CDN 的核心单元,它的主要功能是为用户的服务请求进行优化的访问调度,为用户提供最终访问的缓存服务器 IP 地址。均衡负荷系统一般分为两级:全局/区域负荷均衡系统、本地负荷均衡系统。全局/区域负荷均衡系统一般采用 DNS 解析与应用层重定向的方法,根据用户就近访问的原则选择缓存服务器节点。本地负荷均衡系统负责缓存服务器节点内部的调度。
运营管理系统
运营管理系统由两个子系统组成:运营管理与网络管理。运营管理子系统是 CDN 系统的业务管理实体,主要由客户管理、业务管理、计费管理与数据采集等模块组成。网络管理子系统实现对 CDN 系统的网络设备、拓扑结构、链路与故障的管理,以及对源站、流量与服务质量的监控任务。
CDN 的工作原理
传统的互联网访问模式
用户通过浏览器访问 Web 网站的过程如下:
1)用户在浏览器中输入要访问的网站域名,浏览器向本地 DNS 服务器发出域名解析请求。
2)如果本地 DNS 服务器没有该域名的解析结果,本地 DNS 服务器可采用递归方法向整个 DNS 系统请求解析。
3)DNS 服务器将解析结果中的该网站的 Web 服务器 IP 地址发送给浏览器。
4)浏览器使用这个 IP 地址向 Web 服务器发出 URL 访问请求。
5)Web 服务器将用户请求的内容发送给浏览器。
引入 CDN 之后的互联网访问模式
用户通过浏览器访问 CDN 系统的过程如下:
1)用户在浏览器中输入要访问的网站域名,浏览器向本地 DNS 服务器发出域名解析请求。
2)本地 DNS 服务器将域名的解析权转交给 CDN 专用的 DNS 服务器,并请求解析该域名。
3)CDN 专用的 DNS 服务器将域名解析请求发送给 CDN 全局负载均衡器。
4)CDN 全局负载均衡器将自己的 IP 地址发送给浏览器。
5)浏览器向 CDN 全局负载均衡器发送 URL 访问请求。
6)CDN 全局负载均衡器根据用户的 IP 地址与请求访问的 URL,选择一台位于用户所属区域的负载均衡器,并转交用户发出的 URL 请求。
7)CDN 区域负载均衡器根据用户的 IP 地址与请求访问的 URL,判断哪个缓存节点有该请求内容、离用户最近、可提供服务,并将该缓存节点的 IP 地址发送给浏览器。
8)浏览器使用该 IP 地址向 CDN 缓存节点发出 URL 访问请求。
9)CDN 缓存服务器将用户请求的内容发送给浏览器。如果这台缓存服务器没有用户请求的内容,而区域负载均衡器仍然将用户请求分配给该缓存服务器,那么该缓存服务器需要向它上一级的缓存服务器请求该内容,直至追溯到原服务器并将内容“拉”到本地。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/d5f5e7f0bcc5d7dfe36cc1768】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论