为了缓解互联网用户增加与服务等待时间增长的矛盾,在增加互联网核心交换网、汇聚网与接入网带宽同时,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系统的过程如下:
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缓存服务器将用户请求的内容发送给浏览器。如果这台缓存服务器没有用户请求的内容,而区域负载均衡器仍然将用户请求分配给该缓存服务器,那么该缓存服务器需要向它上一级的缓存服务器请求该内容,直至追溯到原服务器并将内容“拉”到本地。