内容分发网络(Content Delivery Network,Content Distribution Network;CDN)
目录 |
内容分发网络是指一种通过互联网互相连接的计算机网络系统,提供高性能、可扩展性、及低成本的网络将内容传递给用户。有时也被称作内容传递网络作为一种提高网络内容,特别是提高流媒体内容传输的服务质量、节省骨干网络带宽的技术,在国内外得到越来越广泛的应用。
内容分发网络其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,解决用户访问网站的响应速度慢的根本原因。
狭义地讲,内容分发布网络(CDN)是一种新型的网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。简单地说,内容发布网(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有"一跳"(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。据统计,采用CDN技术,能处理整个网站页面的70%~95%的内容访问量,减轻服务器的压力,提升了网站的性能和可扩展性。
CDN的基本工作原理就是广泛采用各种Cache服务器,将这些Cache服务器分布到用户访问相对集中的地区或网络中,并利用全球负载均衡技术(G10MServer肠adBalance,GSLB)将用户的访问指向离用户最近的工作正常的Cacha服务器上,由它直接响应用户的请求。如果Cache服务器中没有用户要访问的内容,它会根据配置自动到原服务器去抓取相应的页面并提供给用户。可以说,一旦CDN网络正常运行后,内容的分布和用户的访问定位全部是自动的。从概念上看,CDN并不依赖于非常复杂或难于理解的技术,但要建立一个高效可靠的CDN,至少需要5个基本部分,具体如下:
1.原始服务器
为了便于管理和配置,CDN网络中的各个节点一般都使用Cache服务器来保存用户频繁访问的网站内容,这些服务器中只保留一个副本。因此,网站的内容必须要有原始存放的地方,所以要根据网站的大小用一个或多个服务器用来保存原始的Web内容。大部分情况下,原始服务器安装在IDC中,由内容提供商自己负责维护和管理。
2.GSLB控制服务器
只有有效地解决了可扩展性和可用性的CDN网络才称得上是一个有价值的解决方案。GS比控制服务器是专用的具有高可靠和高冗余性的设备,主要用来将流量指向到那些正常工作的Cache服务器上,并在它们工作异常时及时将流量转走。这些控制器应该能够直接或间接地取得分布在各地CDN节点中的Cacha服务器的工作状态和性能,并可以判断用户的来源,以保证用户有效地分配到离其“逻辑上”最近、最健康的节点上。
3.节点一Cache和本地负载均衡服务器(SLB)
在各个节点上,Cache服务器扮演Web服务器的角色,将保存原始服务器上相应内容的副本,以便及时响应用户的请求。目前有两种方式可以将内容分布到各节点的Cache上:一种是“拉”的方式,Cache在接受用户的请求后才代替用户到原服务器去抓取内容,同时保存一份副本在本地;另一种是“推”的方式,Cache会将预先指定的内容通过专门的方式传送到CDN网络中所有的或指定的Cache服务器上。在实际的CDN网络环境中,“拉”和“推”这两种方式一般会混合使用。每个节点上一般都会有多于一个Cache服务器用于提供不同的服务或提高每个节点的处理能力。例如,有的Cache服务器专门用来支持HTTP服务,有的专门支持FTI明民务,有的则提供流媒体服务。因此,还需要一个本地负载均衡控制器来实现流量分配的功能。
4.内容管理系统
CDN网络本质上是一个“内容的网络”。因此,对内容的管理是一个复杂的任务,无论采用“拉”还是“推”的方式,都需要预先做出判断,如哪些内容可以缓存、可以缓存多久或哪些内容根本不能保留在Cache服务器中而必须直接回原服务器等,这些都依赖于内容提供商提供的内容和目标客户群。对于IntemetCDN网络来说,一个完善和稳定的内容管理系统更是网络成功的关键。
5.网络监控管理系统
每个CDN网络都需要一个网络监控和管理中心,这和任何一个系统或网络都需要网管中心一样,是保证整个系统正常运转的关键。由于CDN网络是一个分布式系统,如何实现集中监控是保证系统可靠、稳定运行的重要因素。网络监控系统必须能够实现分布检测和集中告警,能在第一时间内发现故障并定位故障。而且,由于CDN网络是一项内容服务,在监控网络连通的同时还要对应用层的各项服务进行监控。
内容分发网络的关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术等。
1.内容路由技术
CDN负载均衡系统实现CDN的内容路由功能。它的作用是将用户的请求导向整个CDN网络中的最佳节点。最佳节点的选定可以根据多种策略,例如距离最近、节点负载最轻等。负载均衡系统是整个CDN的核心,负载均衡的准确性和效率直接决定了整个CDN的效率和性能。
通常负载均衡可以分为两个层次:全局负载均衡(GSLB)和本地负载均衡(SLB)。全局负载均衡(GSLB)主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域)。因此,就近性判断是全局负载均衡的主要功能。本地负载均衡一般局限于一定的区域范围内,其目标是在特定的区域范围内寻找一台最适合的节点提供服务,因此,CDN节点的健康性、负载情况、支持的媒体格式等运行状态是本地负载均衡进行决策的主要依据。
负载均衡可以通过多种方法实现,主要的方法包括DNS、应用层重定向、传输层重定向等等。
对于全局负载均衡而言,为了执行就近性判断,通常可以采用两种方式,一种是静态的配置,例如根据静态的IP地址配置表进行IP地址到CDN节点的映射。另一种方式是动态的检测,例如实时地让CDN节点探测到目标IP的距离(可以采用RRT,Hops作为度量单位),然后比较探测结果进行负载均衡。当然,静态和动态的方式也可以综合起来使用。
对于本地负载均衡而言,为了执行有效的决策,需要实时地获取Cache设备的运行状态。获取的方法一般有两种,一种是主动探测,一种是协议交互。主动探测针对SLB设备和Cache设备没有协议交互接口的情况,通过ping等命令主动发起探测,根据返回结果分析状态。另一种是协议交互,即SLB和Cache根据事先定义好的协议实时交换运行状态信息,以便进行负载均衡。比较而言,协议交互比探测方式要准确可靠,但是目前尚没有标准的协议,各厂家的实现一般仅是私有协议,互通比较困难。
2.内容分发技术
内容分发包含从内容源到CDN边缘的Cache的过程。从实现上看,有两种主流的内容分发技术:PUSH和PULL。
PUSH是一种主动分发的技术。通常,PUSH由内容管理系统发起,将内容从源或者中心媒体资源库分发到各边缘的Cache节点。分发的协议可以采用HTTP/FTP等。通过PUSH分发的内容一般是比较热点的内容,这些内容通过PUSH方式预分发(Preload)到边缘Cache,可以实现有针对的内容提供。对于PUSH分发需要考虑的主要问题是分发策略,即在什么时候分发什么内容。一般来说,内容分发可以由CP(内容提供商)或者CDN内容管理员人工确定,也可以通过智能的方式决定,即所谓的智能分发。它根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程。
PULL是一种被动的分发技术,PULL分发通常由用户请求驱动。当用户请求的内容在本地的边缘Cache上不存在(未命中)时,Cache启动PULL方法从内容源或者其他CDN节点实时获取内容。在PULL方式下,内容的分发是按需的。
在实际的CDN系统中,一般两种分发方式都支持,但是根据内容的类型和业务模式的不同,在选择主要的内容分发方式时会有所不同。通常,PUSH的方式适合内容访问比较集中的情况,如热点的影视流媒体内容;PULL方式比较适合内容访问分散的情况。
在内容分发的过程中,对于Cache设备而言,关键的是需要建立内容源URL、内容发布的URL、用户访问的URL,以及内容在Cache中存储的位置之间的映射关系。
3.内容存储技术
对于CDN系统而言,需要考虑两个方面的内容存储问题。一个是内容源的存储,一个是内容在Cache节点中的存储。
对于内容源的存储,由于内容的规模比较大(通常可以达到几个甚至几十个TB),而且内容的吞吐量较大,因此,通常采用海量存储架构。如NAS和SON。
对于在Cache节点中的存储,是Cache设计的一个关键问题。需要考虑的因素包括功能和性能两个方面:在功能上包括对各种内容格式的支持、对部分缓存的支持,在性能上包括支持的容量、多文件吞吐率、可靠性、稳定性。
其中,多种内容格式的支持要求存储系统根据不同文件格式的读写特点进行优化,以提高文件内容读写的效率,特别是对流媒体文件的读写。
部分缓存能力指流媒体内容可以以不完整的方式存储和读取。部分缓存的需求来自用户访问行为的随机性,因为许多用户并不会完整地收看整个流媒体节目,事实上,许多用户访问单个流媒体节目的时间不超过10分钟。因此,部分缓存能力能够大大提高存储空间的利用率,并有效地提高用户请求的响应时间。但是部分缓存可能导致内容出现碎片问题,需要进行良好的设计和控制。
Cache存储的另一个重要因素是存储的可靠性,目前,多数存储系统都采用了RAID技术进行可靠存储。但是不同设备使用的RAID方式各有不同。
4.内容管理技术
内容管理在广义上涵盖了从内容的发布、注入、分发、调整、传递等一系列过程。在这里,内容管理重点强调内容进入Cache点后的内容管理,我们称为本地内容管理。
本地内容管理主要针对一个CDN节点(由多个CDN Cache设备和一个SLB设备构成)进行。本地内容管理的主要目标是提高内容服务的效率,提高本地节点的存储利用率。通过本地内容管理,可以在CDN节点实现基于内容感知的调度,通过内容感知的调度,可以避免将用户重定向到没有该内容的Cache设备上,从而提高负载均衡的效率。通过本地内容管理还可以有效地实现在CDN节点内容的存储共享,提高存储空间的利用率。
在实现上,本地内容管理主要包括如下几个方面:
一是本地内容索引。本地内容管理首先依赖于对本地内容的了解。包括每个Cache设备上内容的名称、URL、更新时间、内容信息等。本地内容索引是实现基于内容感知的调度的关键。
二是本地内容拷贝。通常,为了提高存储效率,同一个内容在一个CDN节点中仅存储一份,即仅存储在某个特定的Cache上。但是一旦对该内容的访问超过该Cache的服务提供能力,就需要在本地(而不是通过PUSL的方式)实现内容的分发。这样可以大大提高效率。
三是本地内容访问状态信息收集。搜集各个Cache设备上各个内容访问的统计信息,Cache设备的可用服务提供能力及内容变化的情况。
可以看出,通过本地内容管理,可以将内容的管理从原来的Cache设备一级,提高到CDN节点一级,从而大大增加了CDN的可扩展性和综合能力。
综上所述,CDN作为一种支持大规模高质量的流媒体服务的关键技术,目前已经基本成熟,具备了广泛应用的能力。
为了提高访问服务质量,设计CDN系统,应该综合考虑以下要求:
1)安全可靠性:为保证将来的业务应用,网络必须具有高可靠性。可以在采用硬件备份、冗余等可靠性技术的基础上,采用相关的软件技术,提供较强的管理机制、控制手段、事故监控和网络安全保密等技术措施,提高网络系统的安全可靠性。
2)灵活性和可扩展性:网络系统是一个不断发展的系统,所以它必须具有良好的扩展性。能够根据将来信息化的不断深入发展的需要,方便地扩展网络覆盖范围、扩大网络容量和提高网络各层次节点的功能。
3)开放性:具备与多种协议计算机通信网络互连互通的特性,确保网络系统基础设施的作用可以充分发挥。
4)可管理性:能够实现监控、监测整个网络的运行状况,合理分配网络资源、动态配置网络负载,可以迅速确定网络故障等。
Internet流量指数性增长以及用户对网络速度的需求已促使网络资源分发的准确性、可用性、可靠性等成为互联网技术的关键问题。在上个世纪90年代,由于网络接入带宽的限制,研究人员提出采用代理缓存技术提升网络性能。缓存技术具有显著的优势:通过缩短资源在网络中的传输距离降低带宽消耗与网络拥塞,进而增强资源可用性与服务可靠性。然而代理技术具有较强的本地局部性,对于整个互联网的效率提升作用有限。当前的代理缓存技术主要以层次结构缓存为主,以改进服务性能与减少带宽消耗。继代理缓存技术之后,研究人员提出一种服务场概念,但是服务场依旧只是在源服务器附近部署服务机群与4~7层交换机等对网络请求进行分发。
随着Web技术的不断推进,静态页面在整个互联网流量中的比重持续下降,动态交互数据与多媒体共享资源的迅猛增长导致代理缓存技术很难满足这些内容分发的需求。更关键的在于近源的部署策略并不能很好的解决类似于flash crowd与slashdot现象。1998年,麻省理工大学Leighton等人为解决在整个互联网中长距离传输的时延与网络拥塞问题,首次提出内容分发网络这种新型的覆盖网络结构,并依托该项新技术建立了全球最大的内容分发网络服务提供商Aka-mai。在经历10余年的技术改进,内容分发网络已经发展到第4代,如下图给出它的演化过程。
发展阶段 | 时间业务 | 对象 | 简要描述 |
---|---|---|---|
第一代CDN(Web-based) | 1998-2002 | 静态/动态网络数据. | 主要针对静态/动态web页面进行分发. |
第二代CDN(Video ondemand-based) | 2002-2006 | 多媒体数据. | 主要针对大数据量的媒体流进行分发. |
第三代CDN(P2P-assisted) | 2006-至今 | 共享类数据. | 通过与P2P网络融合,降低服务端负载等. |
第四代CDN(cloud-based) | 2009-至今 | 整合型数据. | 通过与云计算平台融合,解决资源整合,服务统一管理等问题. |
内容分发网络的迅猛发展促使国内外研究机构、业界厂商与国际相关组织开始进行制定标准化文档。互联网工程任务组IETF早在2001年就将内容分发网络内容写进RFC规范中,国际电信联盟ITU(Inter-nationalTelecom union),互联网流媒体联盟ISMA(InternetStreamingMediaAlliance),欧洲电信标准化协会ETSI(Eu-ropeanTelecommunications Standards Institute)均随后在其标准化文件中对内容分发网络进行阐述。2009年中国电信研究院报告指出全球内容分发网络市场年均复合增长率CAGR(Compound annual growth rate)达到4416%,并预测到2013年其市场规模将达到45亿美元。
目前的CDN服务主要应用于证券、金融保险、ISP、ICP、网上交易、门户网站、大中型公司、网络教学等领域。另外在行业专网、互联网中都可以用到,甚至可以对局域网进行网络优化。利用CDN,这些网站无需投资昂贵的各类服务器、设立分站点,特别是流媒体信息的广泛应用、远程教学课件等消耗带宽资源多的媒体信息,应用CDN网络,把内容复制到网络的最边缘,使内容请求点和交付点之间的距离缩至最小,从而促进Web站点性能的提高,具有重要的意义。CDN网络的建设主要有企业建设的CDN网络,为企业服务;IDC的CDN网络,主要服务于IDC和增值服务;网络运营上主建的CDN网络,主要提供内容推送服务:CDN网络服务商.专门建设的CDN用于做服务,用户通过与CDN机构进行合作,CDN负责信息传递工作,保证信息正常传输,维护传送网络,而网站只需要内容维护,不再需要考虑流量问题。
如今,CDN技术方案之所以能够蓬勃发展,其主要原因是:
(1)CDN方案能够提高站点的性能和可靠性,它允许网络内容位于最靠近终端用户的位置,并可最小化原始服务器的负载和传翰延迟时间。
(2)它消除了Iniemet的拥塞点,允许丰富内容的有效传递,使视频和其他丰富内容的传递成为可能的同时,却没有降低站点的性能。
(3)CDN方案优化了昂贵站点的带宽,消除了对通过更昂贵网络的内容需求,它还提供了增值服务,允许ISP从竟争对手、决定性的商标产权等方面区分它们的服务。
CDN的用户包括IsP、ICP、媒体网站、大中型企业、电子商务网站和政府网站。利用CDN技术,这些网站无需投资昂贵的各类服务器、设立分站点。通过与CDN合作,CDN将负责信息传递工作,保证信息正常传输,维护传送网络,而网站只需要维护内容,不需要考虑流量问题。既节约了成本,又提高了效率。对于广大网络用户而言,在CDN技术的基础上,他们可从网络内容提供者那里获得更多的新业务,可以快速访问网络上的内容,获得更好的服务质量。对于Web企业而言,CDN技术将给他们带来两个明显的好处:提高了客户的满意度—主动将经常被访问的网络内容发送到距离用户更近的服务器可以缩短响应时间,消除“找不到服务器”的错误,提高用户的忠诚度。加强对Web资源的控制管理—增强的管理功能优化了网络内容提供者的高优先级网络内容、应用软件和企业计划,使他们获得最大的收益。
1.给大中型企业带来的好处
目前的全球化企业需要一种统一的方式来提高带宽有效利用,降低管理成本并提供更多的智能化流量和内容发布。CDN有助于:
(l)增强企业网络性能:在网络边缘(接近客户、厂商、合作伙伴和员工)有效而安全控制和提供内容/服务来更贴近客户、厂商、合作伙伴及员工。
(2)提高工作效率:通过对互联网内容的一致、可靠且安全的访问,提高客户满意度和厂商自信心。
(3)降低网络管理成本并进一步节约带宽,从而使公司的利润增加。
2.给Isp、ICP等服务提供商带来的好处
服务提供商在互联网上将适当的信息在适当的时间送抵适当的地点,这对创造新的收人机会以及提高在客户心中的重要地位是至关重要的。CDN有助于:
(l)提高报告和服务级别管理监控内容、使用情况和性能数字。
(2)缩短管理时间,使基础设施上的所有组件都能用一个政策、通过一个入口来进行配置。
(3)提供增值服务,如超载保护和快速处理大量通信的保证。
(4)协调设备活动,建立配置,并利用实时网络使用情况和性能指标数据来提供综合的报告。
(5)带来新的收入来源,通过可定制的外管服务来实现。
3.给宽带提供商带来的好处
宽带提供商控制着内容到达最终用户必须经过的“最后一英里”。通过决定全球范围最快的可用路径,并将内容通过该路径进行传输来优化内容的提供。CDN有助于:
(l)提高带宽有效利用和盈利性。
(2)提供准确的内容升级、预先安排的内容并进行新内容的激活。
(3)允许提供商向客户销售不同级别的接人,并利用外管服务创造新的收人来源。
(4)实现宽带承诺,按照需要快速提供丰富的内容。
4.给互联网数据中心(IDC)带来的好处
CDN技术除了能明显改善网络性能外,还支持更多新业务的出现和开展。随着Internet的广泛发展和应用,目前IDC(InrernetDataCenter)得到了迅速发展。其中数字影院是未来IDC的一个典型应用,它通过分布在全世界的IDC,把影视内容直接快速分发到全世界各地,并同时收取费用。而IDC所依赖的核心技术就是CDN。我们可以预见,在不久的将来,我们的身边将出现一家又一家的数字电影院,而我们在完美的视觉享受里,可能都感觉不到,通过网络传输流媒体的时代已经来临。
与目前现有的内容发布模式相比较,CDN强调了网络在内容发布中的重要性。通过引人主动的内容管理层的和全局负载均衡,CDN从根本上区别于传统的内容发布模式。在传统的内容发布模式中,内容的发布由ICP的应用服务器完成,而网络只表现为一个透明的数据传输通道,这种透明性表现在网络的质量保证仅仅停留在数据包的层面,而不能根据内容对象的不同区分服务质量。此外,由于IP网的“尽力而为”的特性使得其质量保证是依靠在用户和应用服务器之间端到端地提供充分的、远大于实际所需的带宽通量来实现的。在这样的内容发布模式下,不仅大量宝贵的骨干带宽被占用,同时ICP的应用服务器的负载也变得非常重,而且不可预计。当发生一些热点事件和出现浪涌流量时,会产生局部热点效应,从而使应用服务器过载退出服务。
另外,这种基于中心的应用服务器的内容发布模式的另外一个缺陷在于个性化服务的缺失和对宽带服务价值链的扭曲,内容提供商承担了他们不该干也干不好的内容发布服务。纵观整个宽带服务的价值链,内容提供商和用户位于整个价值链的两端,中间依靠网络服务提供商将其串接起来。随着互联网工业的成熟和商业模式的变革,在这条价值链上的角色越来越多也越来越细分。比如内容/应用的运营商、托管服务提供商、骨干网络服务提供商、接人服务提供商等等。在这一条价值链上的每一个角色都要分工合作、各司其职才能为客户提供良好的服务,从而带来多蔽的局面。
从内容与网络的结合模式上看,内容的发布已经走过了ICP的内容(应用)服务器和IDC(IntemetDataCenter)这两个阶段。IDC的热潮也催生了托管服务提供商这一角色。但是,IDC并不能解决内容的有效发布问题。内容位于网络的中心并不能解决骨干带宽的占用和建立IP网络上的流量秩序。因此将内容推到网络的边缘,为用户提供就近性的边缘服务,从而保证服务的质量和整个网络上的访问秩序就成了一种显而易见的选择。而这就是CDN服务模式。CDN的建立解决了困扰内容运营商的内容“集中与分散”的两难选择。无疑对于构建良好的互联网价值链是有价值的,也是不可或缺的。对用户来说,通过CDN系统,得到响应的时间被缩短,数据传输的稳定性被提高,从而提高了网络服务的总体性能。对内容提供商来说,通过CDN网络,只需建设和管理极少量的服务器,就可提供数倍于服务器容量的服务,极大地提高了网路性能,节约了人力和物力。