首页 理论教育 内容分发网络:让用户离所需内容更近的网络

内容分发网络:让用户离所需内容更近的网络

时间:2023-05-28 理论教育 版权反馈
【摘要】:CDN 通过在现有的互联网中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决互联网网络拥塞状况,提高用户访问网站的响应速度。简单来说,CDN 是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4 个要件,而内容管理和全局的网络流量管理是CDN 的核心所在。

内容分发网络:让用户离所需内容更近的网络

CDN 通过在现有的互联网中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决互联网网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,造成的用户访问网站的响应速度慢的问题。

内容分发网络

1.CDN 的定义

狭义来讲,CDN 是一种新型的网络构建方式,它是为了能在传统的IP 网发布宽带丰富媒体而特别优化的网络覆盖层。而从广义的角度,CDN 代表了一种基于质量与秩序的网络服务模式。简单来说,CDN 是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向内容管理4 个要件,而内容管理和全局的网络流量管理(traffic management)是CDN 的核心所在。通过用户就近性和服务器负载的判断,CDN 确保内容以一种极为高效的方式为用户的请求提供服务。总体来说,内容服务基于缓存服务器,也称作代理缓存(surrogate),它位于网络的边缘,距离用户仅有“一跳”(single hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN 服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN 服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。据统计,采用CDN 技术,能处理整个网站页面70%~95%的内容访问量,减轻服务器的压力,提升了网站的性能和可扩展性

2.CDN 的原理

为了解CDN 的实现原理,对未加CDN 访问网站的方式和CDN 缓存访问网站的方式做一个对比。

(1)未加CDN 访问网站

由图6-4 可见,用户访问未使用CDN 缓存网站的过程为:

图6-4 用户访问未使用CDN 缓存网站过程

①用户向浏览器提供要访问的域名

②浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP 地址

③浏览器使用所得到IP 地址、域名的服务主机发出数据访问请求;

④浏览器根据域名主机返回的数据显示网页的内容。

通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。

(2)CDN 缓存访问网站

CDN 是在用户和服务器之间增加Cache(高速缓存服务器)层,如何将用户的请求引导到Cache 上获得源服务器的数据,主要是通过接管DNS 实现,使用CDN 缓存访问网站的过程如图6-5所示。

通过图6-5 可以看到使用了CDN 缓存后的网站访问过程变为:

①用户向浏览器提供要访问的域名;

②浏览器调用域名解析库对域名进行解析,由于CDN 对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME 记录,为了得到实际IP 地址,浏览器需要再次对获得的CNAME 域名进行解析;在此过程中,使用的全局负载均衡DNS 解析,如根据地理位置信息解析对应的IP 地址,使得用户能就近访问。(www.xing528.com)

图6-5 使用CDN 缓存后的网站访问过程

③此次解析得到CDN 缓存服务器的IP 地址,浏览器在得到实际的IP 地址以后,向缓存服务器发出访问请求;

④缓存服务器根据浏览器提供的要访问的域名,通过Cache 内部专用DNS 解析得到此域名的实际IP 地址,再由缓存服务器向此实际IP 地址提交访问请求;

⑤缓存服务器从实际IP 地址得到内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程;

⑥客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。

通过以上的分析可以看出为了实现既要对普通用户透明(即加入缓存以后用户客户端无须进行任何设置,直接使用被加速网站原有的域名即可访问),又要在为指定的网站提供加速服务的同时降低对ICP 的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务,下面是CDN 实现的具体操作过程。

①作为ICP,只需要把域名解释权交给CDN 运营商,其他方面不需要进行任何的修改;操作时,ICP 修改自己域名的解析记录,一般用CNAME 方式指向CDN Cache 服务器的地址。

②作为CDN 运营商,首先需要为ICP 的域名提供公开的解析,为了实现sortlist,一般是把ICP 的域名解释结果指向一个CNAME 记录。

③当需要进行sortlist 时,CDN 运营商可以利用DNS 对CNAME 指向的域名解析过程进行特殊处理,使DNS 服务器在接收到客户端请求时可以根据客户端的IP 地址,返回相同域名的不同IP 地址。

④由于从CNAME 获得的IP 地址,并且带有hostname 信息,请求到达Cache 之后,Cache 必须知道源服务器的IP 地址,所以在CDN 运营商内部维护一个内部DNS 服务器,用于解释用户所访问的域名的真实IP 地址。

⑤在维护内部DNS 服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

3.CDN 的架构

CDN 的架构主要有两大部分,即中心和边缘两部分,中心指CDN 网管中心和DNS 重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN 分发的载体主要由Cache 和负载均衡器等组成。

当用户访问加入CDN 服务的网站时,域名解析请求将最终交给全局负载均衡DNS 进行处理。全局负载均衡DNS 通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有CDN 节点保持通信,搜集各节点的通信状态,确保不将用户的请求分配到不可用的CDN 节点上,实际上是通过DNS 做全局负载均衡。

对于普通的互联网用户来讲,每个CDN 节点就相当于一个放置在它周围的WEB。通过全局负载均衡DNS 的控制,用户的请求被透明地指向离他最近的节点,节点中CDN 服务器会像网站的原始服务器一样,响应用户的请求。由于它离用户更近,因而响应时间必然更快。

每个CDN 节点由两部分组成:负载均衡设备和高速缓存服务器。

负载均衡设备负责每个节点中各个Cache 的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS 的通信,实现整个系统的负载均衡。

高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。

CDN 的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。

理论上,最简单的CDN 有一个负责全局负载均衡的DNS 和各节点一台Cache,即可运行。DNS 支持根据用户源IP 地址解析不同的IP,实现就近访问。为了保证高可用性等,需要监视各节点的流量、健康状况等。一个节点的单台Cache 承载数量不够时,才需要多台Cache,多台Cache 同时工作,才需要负载均衡器,使Cache 群协同工作。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈