摘 要:内容分发网络(Content Distribution Network,CDN)是建立在内容分发技术上的网络架构和整体系统。内容分发技术是在流量管理、负载均衡和分布式技术基础上发展的一种分发缓存(Cache)技术,采用将缓存服务器放置于Internet的边缘节点处,通过负载均衡等算法实现资源的就近分配和就近访问原则,能达到对多媒体信息快速响应的目的。本文着重阐述内容分发网络的工作原理。
关键词:内容分发网络 DNS 内容缓存 内容路由
一、引言
随着多媒体通信的发展和普及,人们对Internet内容和应用的需要正在飞速增长,但是网络用户对多媒体内容的访问率却提升很慢,网络上应用业务的种类仍旧相当单一,造成这种局面的根本原因是用户访问网站的速度太慢。通常都认为网络技术的不完善是Web性能差的原因,相信增加网络带宽、采用高速的路由器或千兆以太等技术就能够很大地加速Web访问,但仔细分析网络速度缓慢的原因,会发现Internet通道的加速不是导致互联网连接速度慢的惟一因素。
二、Web访问的性能分析
在Web访问时是通过HTTP实现的,HTTP是在TCP层之上的请求/响应(Request-Response)协议。在HTTP请求发出之前,Web服务器的IP地址必须通过DNS请求查询来得到,因此最终用户感觉到的访问性能取决于DNS和HTTP应答的反应时间。下图1显示了在Web用户、DNS服务器和Web服务器间的通讯包的交互过程。通常每个HTTP请求需要打开一个新的TCP连接,这就会出现一个往返的延时。然后,用户发出HTTP请求,服务器接收到请求后对其进行处理,并将被请求的数据传出,用户在第二个往返延时后收到这个HTTP应答。当这个应答是一个HTML对象时(通常网页的第一个对象是HTML对象),用户端浏览器软件将为其中嵌入的每个对象(比如各种多媒体信息)发出一个新的HTTP请求。
假定平均往返延迟时间是RTT,则对单个Web对象的访问响应时间为2×RTT,其中一个RTT用于打开TCP连接,一个用于HTTP请求和应答信息的交换。
典型情况下,Web页面都包含多个嵌入的对象,每个对象都会增加2×RTT的延迟时间,这样一个Web页面的访问响应时间是2(n+1)*RTT,其中:n是一个网页中嵌入对象的数量;RTT取决于当前网络的状况和服务器的拥挤情况,包括Web服务器的延迟,路由器、网关、Proxy和防火墙产生的延时,在端到端通信链路上的数据传输速度等。
如果浏览器和服务器之间采用永久TCP连接,页面访问时不用多次打开TCP连接,所以页面访问的延迟将是(2+N)*RTT.减少这个延迟的方法是用户端同时打开多个连接,很多浏览器提供了这样的能力,但这种技术引起了服务器端的拥挤,抵消了期望的增益。
通过以上分析可以看出,带宽并不是影响Web访问速度的决定因素。为了能提高用户访问网站的响应速度,优化现有Internet上信息的流动,提高网站的安全性和可用性,在现有的Internet网络中建立一个完善全面的中间层――内容分发网络(CDN),可以使用户能以最快的速度,从最接近用户的地方获得所需的信息,解决网络拥塞、提高相应速度。
三、CDN的网络架构
CDN即内容分发网络(Content Distribution Network),就是采用高速缓存、负载均衡和内容重定向等技术在一定的网络架构基础上实现内容加速、内容分发、减少网络带宽和用户响应时间的一种内容分发服务网络。
CDN的目的就是:将内容提供商(ICP)的内容分发到离用户请求最近的区域,达到快速响应以满足用户对浏览Internet的快速要求。
CDN有以下一些主要功能:节省骨干网带宽,减少带宽需求量;提供服务器端加速,解决由于用户访问量大所造成的服务器过载问题;服务商可以使用Web Cache技术在本地缓存用户访问过的Web页面和对象,实现对相同对象的访问无需占用主干的出口带宽,并提高用户访问Internet页面的响应时间的要求;可以克服网站网点分布不均的问题,并且可以降低网站自身建设和维护成本;降低“通信风暴”的影响,提高网络访问的稳定性。
一个典型的CDN系统包含多种内容设备(Content Equipment),具体的讲包括:内容缓存(Content Cache)、内容路由(Content Route)、内容交换(Content Switch)和内容管理(Content Manage)等组成部分,如下图2所示。其中内容缓存和内容路由是CDN中必不可少的核心部分,内容交换和内容管理根据CDN的规模进行集成。CDN的核心技术是Cache技术加高层交换技术和一些智能判断算法组成。
内容缓存系统的主要作用是实现内容的边缘传播和存储,以便最终用户的就近访问,因此一般部署于集中的用户接入点,完成内容边缘存储的设备通常都采用Cache技术来实现。
内容路由系统的主要作用是动态均衡各个内容缓存站点的负荷分配,为用户的请求选择最佳的访问站点,同时提高网站的可用性。内容路由根据网络拓扑结构、网络延时、服务器负荷与规则等策略设定,指定最优站点向特定的内容请求提供服务。内容路由系统可根据多种因素制定路由,包括站点与用户的临近度、内容的可用性、网络负载、设备状况等。
内容交换系统可以均衡单点多个内容缓存设备的负载,它基于最终用户会话和特定的内容请求提供内容服务。内容交换系统是CDN的可选部件之一,对于较大型的用户接入点,内容交换系统可以提高站点的可用性。
内容管理系统也是CDN的可选部件,能够让网络内容分布和传输服务的用户或者服务供应商可以根据需要监视、管理或者控制网络内容的分布、设备状态等。
四、基于DNS系统的内容路由的实现
内容路由是内容分发网络的核心,它决定了在CDN架构中用户如何访问所需内容的方式。内容路由通常基于DNS系统或服务器全局负载均衡GSLB(Global Server Load Balance)方式实现。本文将着重介绍基于DNS系统的内容路由实现方式。
采用服务器全局负载均衡GSLB方式实现时 ,主要采用HTTP重定向技术实现。由于GSLB往往是通过具有4层交换能力的交换机实现,因此该设备的性能将决定对CDN性能影响较大;为了保证系统可靠性,可以采用多个GSLB交换机,但是如果采用多个GSLB交换机,则还需要在网络中配置任播(Anycast)特性。
基于DNS系统的内容路由就是将计算用户请求的最佳访问站点的智能算法纳入到分布式DNS系统中,使其成为DNS系统树型结构的一部分。与GSLB方式不同的是,用户的访问请求在域名解析阶段即可得到最佳的访问站点IP地址。CDN的专用解释服务器的作用就是实现DNS的功能,作为授权网站的DNS主域名解析服务器。
(1)用户在浏览器中输入要访问的网站的域名,例如:www.yahoo.com,浏览器向本地DNS代理服务器请求对该域名的解析。
(2)本地DNS代理服务器决定是否将请求发到下一个授权的DNS服务器(也就是CDN中的内容路由)。
(3)本地DNS将域名解析请求转发到CDN内容路由。
(4)CDN内容路由根据一系列策略,确定当时最适当的某些CDN节点,并将解析的结果(不少于3个网络服务NS:Network service)发回本地DNS代理服务器。
(5)DNS代理服务器选择3个NS中的一个,并向其发出地址记录请求;如果该NS响应此请求,向DNS代理送回其IP地址。
(6)用户浏览器收到IP地址信息,与给定的CDN节点建立通信并向其请求相应的内容。
(7)包括以下两种情况:
a. 如果该CDN节点中的内容缓存器中存在用户请求的内容,则将内容返回给用户。
b. 如果该CDN节点中的内容缓存器中不存在用户请求的内容,则该节点的内容缓存器从原始服务器中将该内容pull到本地(内容缓存器),并返回给用户。
五、总结
目前,基于服务的内容传输对于Web应用来说的确是一项非常重要的补充,许多Internet服务提供商都构建了自己的CDN网络。这种网络内容的分布服务可以将服务内容卸载到远程网络内容服务器或缓存服务器上,以适应对于特定网络内容访问的增多。同时多媒体信息通过内容分布网络发送后,也可以大大的提高其业务质量。