随着Internet的迅速发展,用户数量和信息量快速增长,如何从技术上全面解决网络带宽小、用户访问量大、网点分布不均等问题,越来越成为人们关注的焦点。在现有网络平台上,解决上述问题的方案之一是采用内容分发网络CDN(Content Delivery Network)技术.
CDN是一个经策略性部署的内容快递整体系统,它的内容服务通过增加缓存服务器来完成,缓存服务器位于网络的边缘,通常距用户仅有"一跳"之遥。即,CDN通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到用户附近,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。同时,缓存服务器是内容提供商ICP(Internet Content Provider)源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表内容提供商向最终用户提供尽可能好的服务。
2 CDN的工作原理
CDN以定制服务为基础,即网站事先向CDN服务提供商要求使用其CDN服务。当用户访问使用了CDN服务的网站时,其解析过程不再是以传统的轮询方式来响应本地DNS的解析请求,而是充分考虑用户发起请求的位置和当时的网络情况,利用CDN系统的智能动态负载均衡技术,来决定把用户的请求定向到离用户最近并且负载相对较轻的节点服务器上,使得用户的访问能得到更及时更可靠的响应。同时,各个节点服务器利用软件刷新确保与ICP网站的源服务器的数据同步,使得用户能够随时访问CDN的节点服务器并得到与源服务器完全相同的内容。
图1说明了用户访问使用了CDN服务的网站的完整过程。

图 1 用户访问流程
1.用户向浏览器提供要访问的网站域名;
2.浏览器向本地DNS (LDNS) 请求对该域名进行解析;
3.本地DNS将解析请求发送到ICP的授权域名服务器(Authoritative DNS),授权域名服务器通知本地DNS相应请求的CDN授权域名服务器为访问控制系统ACS(Access Control System);
4.本地DNS向ACS发出域名解析请求;
5.ACS根据预设策略(通常考虑的是就近性和服务器负载),选择最佳CDN服务节点(CDNN),并将结果(IP地址)返回本地DNS;
6.本地DNS将该CDDN的IP地址发给用户;
7.用户根据得到的IP地址向该节点发出请求;
8.CDN节点服务器响应用户的请求提供相关内容。如果该节点已经有用户请求的内容,则直接响应;如果没有,则该节点会回到用户请求的源站点取得结果并将结果返回给该用户,同时将结果保存在代理服务器中,以响应随后的用户请求。
CDN系统主要由三个子系统组成:
·信息访问控制系统ACS
·服务节点CDNN(CDN Node)
·网络操作中心NOC(Network Operations Center)

1 信息访问控制系统
ACS具备传统DNS的解析功能,同时还具有智能动态负载平衡功能。作为CDN用户的主DNS,ACS将根据预先从各节点收集的信息,按照设定的策略,将当时最佳的节点IP地址提供给用户,使用户得到最佳的服务。
分布在各地CDNN中的节点信息交换机NIS(Node Information Switch)收集各节点的健康状态信息和与用户的距离信息,定时发送给ACS,使ACS始终掌握整个CDN内容快递系统的整体状态,并保证智能动态负载平衡功能的正常工作。由于掌握了每个CDNN的健康状态,ACS能保证在任何情况下,都不会将用户的请求定向到一个已经不可用的节点上。
2 服务节点
CDNN广泛分布互联网各地,CDN通过CDNN服务器为用户提供就近响应。对于普通的Internet用户,每个CDNN相当于一个放置在用户附近的被请求主机的网站服务器。事实上,通过ACS的控制,用户的请求被透明地定向到离他最近的节点,节点中的服务器如同网站的原始服务器一样,响应用户的请求。由于节点服务器比请求的源服务器离用户更近,因而响应时间必然更快,服务质量也更稳定。
每个CDNN由三个部分组成:
·节点信息交换机NIS(Node Information Switch)
·节点服务器NS(Node Server)
·本地数据收集器LDC(Local Data Collector)
每个CDNN可有多个NS存在,NIS负责所在节点中各个NS的负载均衡,保证节点的工作效率;同时,NIS还负责搜集节点与周围环境的信息,保持与ACS的通讯,提供实现整个系统的负载均衡的信息。
NS负责存储CDN客户网站的大量信息,就像一个安装在用户身边的网站服务器一样响应本地用户的访问请求。通常情况下,大部分的用户请求都被NS直接响应,只有当NS中的内容需要更新或者用户请求的内容在NS中不存在时,才由NS自动到源服务器去提取。NS会在自己的存储器中保留所有从源服务器取得内容的副本,当有新的请求到来时,就能直接响应,提高了访问的效率。
LDC负责搜集所在节点的流量信息,经处理后传输到系统的网络操作中心,使ACS能从分布式系统中取得完整的统计数据,并最终为CDN客户提供他们网站访问量的相关信息。
3 网络操作中心
NOC的主要作用是网络管理,它对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,管理员通过NOC可以对所有的子系统进行实时配置。NOC实现集中控制、集中配置、集中告警,并提供完善的刷新机制。
CDN网络是一个分布式系统,实现集中监控是保证系统可靠、稳定运行的一个关键。NOC的网络监控系统,可以实现分布检测、集中告警,确保能够在第一时间发现故障并定位故障。安装在各个节点的探测引擎,实时检测包括自己在内的所有互联网内容快递系统节点的网络状态,包括网络的连通性、服务的可用性等等,从而构成一个交叉检测网络体系。同时在网络操作中心,有专门的监控服务器,负责接收从各节点探测引擎传递回来的检测信息,并进行实时的分析,根据设置的各种阀值产生告警,以便网络管理员了解整个CDN的情况。
由于用户网站上的内容不断变化,而采用CDN后,用户的访问请求将直接由分布在各地的CDNN服务器来响应,因此,NOC要确保所有服务器上的内容与用户网站中的内容同步。
NOC能接收和处理各节点LDC上传的数据,并进行集中存储和处理。管理员可以观测到系统中总的流量和各节点的流量,以及各网站的数据流量,如果需要,管理员可以对它们进行计费。
通过以上的分析我们可以得到,CDN通过就近访问,实现用户访问加速,这种实现对普通用户是透明的,即加入缓存服务器后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问,CDN为指定的网站提供加速服务的同时降低对ICP的影响,整个过程只要修改访问过程中的域名解析部分,作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改。
与CDN相似的是Web Caching技术也能提高网络的性能,但是CDN与Web Caching技术相比有自己独特的优势:1、Cache系统有一个不可逾越的上限,Wolman在他的一篇论文中指出,现在的Web内容中有35%~50%是不可以缓存的。2、CDN可以更有效地减少源Web服务器的负载和起到负载均衡的效果。3、CDN可以使ICP以尽可能小的成本提供尽可能好的服务,即CDN使ICP不必为了应付不可预料的短暂的访问高峰而进行一些正常访问时不会发挥作用的冗余投资。
3 CDN的应用
作为一个特殊的应用,我们构架一个如图3的卫星CDN框架。ICP可以将内容上载至CDN网络操作中心,网络操作中心通过卫星信道将内容推送到指定的地点如CDNN以使用户访问加速。远端用户(ISP)也可以通过卫星信道获取所要的内容。此外,卫星接入网运营商也可以根据远端用户的喜好,主动抓取内容,定期提交给用户。卫星CDN服务的内容可以是载有电影、新闻、证券、娱乐、游戏等等的数据,由于数据的发送速度快,用户接收到的图像可达到和卫星电视画面一样流畅自然。同时,用户即使没有其他的信号接收装置,也可以在与超高速因特网相连结的终端机上像看电视一样观看网上动态影像广播电视。由于采用卫星CDN,内容提供商不用担心有光缆阻断等等突发事件影响它提供的服务,这样,采用卫星CDN可使ICP稳定、快速、可靠地将内容传递给用户。
4 结束语与展望
在传统的内容发布模式中,内容的发布由ICP的应用服务器完成,网络只是一个透明的数据传输通道,质量保证是依靠在用户和应用服务器之间端到端地提供充分的、远大于实际所需的带宽通量来实现的,在这种模式下,不仅大量宝贵的骨干带宽被占用,同时ICP的应用服务器的负载也变得非常重且不可预计。CDN则强调网络在内容发布中的重要性,通过引入缓存服务器和全局负载均衡来加速内容传递。目前CDN技术的研究仍在初级阶段,未来的研究方向包括:面向内容的寻址,基于内容的路由等。
参考文献:
1 金世杰、赵问道,“CDN网络路由技术”,《计算机应用研究》,2003.8
2 李军,“Web Cache Server在CDN中的实现”,《现代计算机》,2002.06
3 霍耀森,盛大同,“Web Caching技术和CDN技术及其比较分析”,《计算机应用研究》,2003.05
4 M Gritter,“An Architecture for Content Routing Support in the Internet”,USITS ’01 Presentation,2001
本文得到广东经济管理学院理科重点项目资金支持
| (全文结束) |
