CDN知识详解
全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络,CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
基本原理:
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
基本思路:
基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
服务模式:
内容分发网络(CDN)是一种新型网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。简单地说,内容分发网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有"一跳"(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。
应用对比:
首先简单表述一下传统的动态系统的访问方法:如上图图示(一)表述的是用户的请求过程,用户经过网络中的路由A、B的传输,最终将发送的请求交于动态系统来处理,但是由于IP网络本身的“尽力而为的原则”、网络链路中复杂的环境及硬件的不可靠性的确实存在,致使用户要出现重复发送的请求的现状,所以最终导致用户的请求在提交的过程中出现等待、数据加载时间过长的一些现象的普遍存在,这些在线提交式系统的缓慢直接地影响到办公人员的工作效率,这也是制约着很多大型企业在cdn应用协同办公OA、ERP、SAP等信息化建设中,出现最多的问题。而CDN分发解决方案解决了与静态网站相关的性能和可靠性问题,而在当今在线业务体验中,与分发静态和动态元素和应用相关的独特挑战,则由速网的动态网站加速(动态网站加速)来解决。
关键技术:
(1)内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;
(2)内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
(3)内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
(4)性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。
主要特点:
1、本地Cache加速 提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性。
2、镜像服务 消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。
3、远程加速 远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度。
4、带宽优化 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
5、集群抗攻击 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。
产品优势:
CDN能几乎涵盖国内所有线路。而在可靠性上, CDN 在结构上实现了多点的冗余,即使某一个节点由于意外发生故障,对网站的访问能够被自动导向其他的健康节点进行响应。CDN能轻松实现网站的全国铺设,不必考虑服务器的投入与托管、不必考虑新增带宽的成本、不必考虑多台服务器的镜像同步、不必考虑更多的管理维护技术人员。
CDN服务运营商:
初期我国CDN市场发展缓慢,2006年后市场陡然升温,国内较为有名的CDN服务商有思必达、蓝汛等,但整体CDN市场规模、运营成熟度、服务能力和技术研发均较国外存在一定的差距。目前我们存在以下类型的CDN服务商:
内容存储技术:
CDN需要考虑两个方面的内容存储问题,一个是内容源的集中存储,另一个是内容在Cache节点中的分布式存储。由于内容的规模比较大,内容的吞吐量较大,因此,通常采用海量存储架构。目前常用的存储技术主要有直连附加存储(DAS)、网络附加存储(NAS)和存储区域网(SAN)。DAS是直接连接在各种服务器或客户端扩展接口下的数据存储设备,完全以服务器为中心,寄生在相应服务器或客户端上,本身是硬件的堆叠,不带有任何存储操作系统,网络客户端通过访问服务器浏览存储设备的信息。NAS可以提供高速的数据I/O访问,降低了媒体服务器由于相应数据访问请求而承担的CPU负荷,使媒体服务器性能得到大幅提升,NAS把数据放在同一个服务器里让不同用户共享。SAN允许服务器在共享存储装置的同时仍能高速传送数据,共享式区域网络通过高速连接将服务器与存储介质相互连通,具有可扩展性高、可用性高和容错能力强的优点,可以轻松升级,易于管理,有助于改善整个系统的成本状况。HFMS是针对流媒体内容海量存储开发的一种文件存储技术,针对传统的采用直接文件复制带来的种种弊端,采用Segment技术,以流广播形式传送新复制的片段,到终端用户处的总延迟在50ms以内,用户不容易察觉到。在极端情况下,当所有用户都在同一时间观看同一热门节目的片段时,可同时以广播形式播放。HFMS实现了流媒体内容的分段存储和服务,提升了系统服务性能。对于VOD内容的存储,可以根据网络规模,采用不同的存储方案。对于小规模网络,可以采用DAS;中等规模的网络采用NAS;对于大规模的网络可以采用SAN存储方案。根据数据量大和实时性强的特点,建议采用SAN和HFMS结合存储技术进一步优化流媒体数据存储。
内容分发技术:
内容分发技术是通过网络的构建减小IP骨干网络的传输压力,将连接到IP网络上的内容迅速分发到用户终端。CDN主要由初始服务器、分布在边缘的缓存服务器、重定向DNS服务器和内容交换服务器组成。初始服务器负责生成服务器信息内容;缓存服务器负责存储初始服务器的部分或全部信息内容;重定向DNS服务器向用户提供最近的服务器IP地址,减轻骨干网的压力;内容交换服务器完成各缓存服务器之间的负载均衡功能;内容管理服务器负责整个网络各缓存服务器中存储的内容的管理,为各缓存服务器制定相应的缓存策略,以提高缓存服务器的服务质量。
①分段分发技术
流媒体对边缘内容的完整性没有要求,节点只需存储少量的节目或节目片段即可实时推送内容,为用户提供完整的服务。当用户点播的内容只有部分片段或没有时,系统将采用分发技术进行内容的快速分发。
②部分分发技术
部分分发技术可提升边缘系统的命中率,如果对10%的内容采用全复制,20%的内容采用50%复制,50%的内容采用10%复制,那么,系统可以实现95%以上的命中率,大大降低骨干网的负荷,具有优越的分发性能。
负载均衡技术:
负载均衡是整个CDN的核心,负载均衡的准确性和效率直接决定了整个CDN的效率和性能。负载均衡技术将网络的流量尽可能均匀地分配到几个能完成相同任务的服务器或网络节点上进行处理,避免部分网络节点过载而另一部分节点空闲的不利状况,既可以提高网络流量,又可以提高网络的整体性能。
实际场景需求结合学习CDN内容分发服务
实际使用CDN的目的:
解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。控制时延无疑是现代信息科技的重要指标,CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性。
使用CDN后带来的优势:
如果你在经营一家网站,那你应该知道几点因素是你制胜的关键:
内容有吸引力
访问速度快
支持频繁的用户互动
可以在各处浏览无障碍
另外:你的网站必须能在复杂的网络环境下运行,考虑到全球的用户访问体验。你的网站也会随着使用越来越多的对象(如图片、帧、CSS及APIs)和形形色色的动作(分享、跟踪)而系统逐渐庞大。所以,系统变慢带来用户的流失。
Google及其它网站的研究表明,一个网站每慢一秒钟,就会丢失许多访客,甚至这些访客永远不会再次光顾这些网站。可以想像,如果网站是你的盈利渠道或是品牌窗口,那么网站速度慢将是一个致命的打击。
这就是你使用CDN的第一个也是最重要的原因:加速网站的访问
除此之外,CDN还有一些作用:
1. 为了实现跨运营商、跨地域的全网覆盖
互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点商,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。
2. 为了保障你的网站安全
CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。
3. 为了异地备援
当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站可以做到永不宕机。
4. 为了节约成本投入
使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。
5. 为了让你更专注业务本身
CDN加速厂商一般都会提供一站式服务,业务不仅限于CDN,还有配套的云存储、大数据服务、视频云服务等,而且一般会提供7x24运维监控支持,保证网络随时畅通,你可以放心使用。并且将更多的精力投入到发展自身的核心业务之上。
引入一个词:控制时延
无疑是现代信息科技的重要指标,CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性
根据论文《WAITING TIMES IN QUALITY OF EXPERIENCE FOR WEB BASED SERVICES》中提出的: 其指出基于人脑在等待不同时长的信息时,产生的不同意识行为,进而对信息获取产生的差别感官体验。
感知的持续时间 VS 客观持续时间
根据研究发现:当人们获得Voice这类声音讯息时,好感度随时间流逝下降的最为迅速,仅需16分钟“评估意见等级”下降了70%,可见音像资源受缓冲时间的影响可见一斑
✫0.1 s: 用户几乎感觉不到系统是否不连贯性。
✫1.0 s: 用户明显注意到时延的发生,但是在该时间内思维依然是连贯的。
✫10 s: 超过该时间的时延会使用户失去等待意愿。 控制时延无疑是现代信息科技的重要指标,CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性。
通俗点说就是在网速一定的前提下,CDN就像网络中快递员小哥
而且CDN这个快递员很是聪明 TA不是在用蛮力瞎跑、乱撞
TA还承建了很多家快递点,就近快递(缓存)
TA善于优化快递路径(调度) 还会对包裹进行更合理的重新打包(协议优化)
无论用户在世界任何角落,只要连接网络,CDN服务就如同把源站搬到用户面前一样,整个世界,触手可及!
CDN就是扮演者护航者和加速者的角色,更快准狠的触发信息和触达每一个用户,带来更为极致的使用体验。
基础架构:
最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:
当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
用户向CDN的全局负载均衡设备发起内容URL访问请求。
CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
全局负载均衡设备把服务器的IP地址返回给用户。
用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
服务模式:
简单地说,CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。
通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。
举例说明:
国内访问量较高的网站、直播、视频平台,均使用CDN网络加速技术,虽然网站的访问巨大,但无论在什么地方访问都会感觉速度很快。而一般的网站如果服务器在网通,电信用户访问很慢,如果服务器在电信,网通用户访问又很慢。
通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的cache服务器内,通过DNS负载均衡的技术,判断用户来源就近访问cache服务器取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度,如同提供了多个分布在各地的加速器,以达到快速、可冗余的为多个网站加速的目的。
CDN服务最初用于确保快速可靠地分发静态内容,这些内容可以缓存,最适合在网速庞大的网络中存储和分发,该网络在几十多个国家的十几个网络中的覆盖CDN网络服务器。由于动态内容必须通过互联网来传输,因此要提供快速的网络体验。如今的CDN可谓是大文件、小文件、点播、直播、动静皆宜!
主要特点:
1、本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性
2、镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。
3、远程加速 远程访问用户根据DNS负载均衡技术 智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度
4、带宽优化 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
5、集群抗攻击 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。
关键技术:
内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术
内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。
适用范围:
一般来说以资讯、内容等为主的网站,具有一定访问体量的网站
例如资讯网站、政府机构网站、行业平台网站、商城等以动态内容为主的网站
例如论坛、博客、交友、SNS、网络游戏、搜索/查询、金融等。提供http下载的网站
例如软件开发商、内容服务提供商、网络游戏运行商、源码下载等有大量流媒体点播应用的网站
例如:拥有视频点播平台的电信运营商、内容服务提供商、体育频道、宽频频道、在线教育、视频博客等
Q & A
1.CDN加速是对网站所在服务器加速,还是对其域名加速?
CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则访客访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。
2.CDN和镜像站点比较有何优势?
CDN对网站的访客完全透明,不需要访客手动选择要访问的镜像站点,保证了网站对访客的友好性。
CDN对每个节点都有可用性检查,不合格的节点会第一时间剔出,从而保证了极高的可用率,而镜像站点无法实现这一点。
CDN部署简单,对原站基本不做任何改动即可生效。
3.CDN和双线机房相比有何优势?
常见的双线机房只能解决网通和电信互相访问慢的问题,其它ISP(譬如教育网,移动网,铁通)互通的问题还是没得到解决。
而CDN是访问者就近取数据,而CDN的节点遍布各ISP,从而保证了网站到任意ISP的访问速度。另外CDN因为其流量分流到各节点的原理,天然获得抵抗网络攻击的能力。
4.CDN使用后,原来的网站是否需要做修改,做什么修改?
一般而言,网站无需任何修改即可使用CDN获得加速效果。只是对需要判断访客IP程序,才需要做少量修改。
5.为什么我的网站更新后,通过CDN后看到网页还是旧网页,如何解决?
由于CDN采用各节点缓存的机制,网站的静态网页和图片修改后,如果CDN缓存没有做相应更新,则看到的还是旧的网页。
为了解决这个问题,CDN管理面板中提供了URL推送服务,来通知CDN各节点刷新自己的缓存。
在URL推送地址栏中,输入具体的网址或者图片地址,则各节点中的缓存内容即被统一删除,并且当即生效。
如果需要推送的网址和图片太多,可以选择目录推送,输入 http://www.kkk.com/news 即可以对网站下news目录下所有网页和图片进行了刷新。
6.能不能让CDN不缓存某些即时性要求很高的网页和图片?
只需要使用动态页面,asp,php,jsp等动态技术做成的页面不被CDN缓存,无需每次都要刷新。或者采用一个网站两个域名,一个启用CDN,另外一个域名不用CDN,对即时性要求高的页面和图片放在不用CDN的域名下。
7.网站新增了不少网页和图片,这些需要使用URL推送吗?
后来增加的网页和图片,不需要使用URL推送,因为它们本来就不存在缓存中。
8.网站用CDN后,有些地区反映无法访问了,怎么办?
CDN启用后,访客不能访问网站有很多种可能,可能是CDN的问题,也可能是源站点出现故障或者源站点被关闭,还可能是访客自己所在的网络出现问题,甚至我们实际故障排除中,还出现过客户自己计算机中毒,导致无法访问网站。
9.哪些情况不适用于CDN?
此类极端状况不建议您使用CDN服务
一次完整的CDN内容转发实例解析
CDN是如何工作的呢?让我们先看看没有CDN服务时,一个网站是如何向用户提供服务的。
传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别:
由上图可见,用户访问未使用CDN缓存网站的过程为:
1)、用户向浏览器提供要访问的域名;
2)、浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;
3)、浏览器使用所得到的IP地址,域名的服务主机发出数据访问请求;
4)、浏览器根据域名主机返回的数据显示网页的内容。
通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,下面让我们看看访问使用CDN缓存后的网站的过程:
通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:
1)、用户第一次向浏览器提供要访问的域名,浏览器调用local dns域名解析库对域名进行解析.
2)、local dns系统向cdn dns域名服务器请求进行域名解析
3)、由于cdn dns域名服务器对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,返回给local dns系统.
4)、为了得到cname域名的IP地址,local dns系统对获得的CNAME域名向 cdn dns调度系统(全局负载均衡DNS)请求进行cname域名解析,获取缓存服务器的ip.
5)、使用全局负载均衡DNS解析,如根据用户的地理位置信息解析对应的IP地址,使得用户能就近访问。此次解析得到CDN缓存服务器的IP地址,返回至local dns系统.
6)、local dns系统将获取的缓存服务器的ip返回给浏览器.
7)、浏览器根据IP向对应的cdn缓存服务器发出www.a.com的域名访问请求,通过缓存Cache服务器内部专用DNS,解析得到此域名对应的服务器实际IP地址,再由缓存服务器向此实际IP地址提交访问请求.缓存服务器从实际IP地址得得到访问内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程;
8)、浏览器得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问),又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务.DNS服务器根据用户IP地址,将域名解析成相应节点的缓存服务器IP地址,实现用户就近访问。使用CDN服务的网站,只需将其域名解析权交给CDN的GSLB设备,将需要分发的内容注入CDN,就可以实现内容加速了。
注:文章如有疑问或错误之处,请留言评论指出,必将学习之.