全称:ContentDeliveryNetwork或ContentDdistributeNetwork,即内容分发网络,CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
基本原理:
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
基本思路:
服务模式:
应用对比:
关键技术:
(1)内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;
(2)内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
(3)内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
主要特点:
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服务商:
内容存储技术:
内容分发技术:
内容分发技术是通过网络的构建减小IP骨干网络的传输压力,将连接到IP网络上的内容迅速分发到用户终端。CDN主要由初始服务器、分布在边缘的缓存服务器、重定向DNS服务器和内容交换服务器组成。初始服务器负责生成服务器信息内容;缓存服务器负责存储初始服务器的部分或全部信息内容;重定向DNS服务器向用户提供最近的服务器IP地址,减轻骨干网的压力;内容交换服务器完成各缓存服务器之间的负载均衡功能;内容管理服务器负责整个网络各缓存服务器中存储的内容的管理,为各缓存服务器制定相应的缓存策略,以提高缓存服务器的服务质量。
①分段分发技术
流媒体对边缘内容的完整性没有要求,节点只需存储少量的节目或节目片段即可实时推送内容,为用户提供完整的服务。当用户点播的内容只有部分片段或没有时,系统将采用分发技术进行内容的快速分发。
②部分分发技术
部分分发技术可提升边缘系统的命中率,如果对10%的内容采用全复制,20%的内容采用50%复制,50%的内容采用10%复制,那么,系统可以实现95%以上的命中率,大大降低骨干网的负荷,具有优越的分发性能。
负载均衡技术:
负载均衡是整个CDN的核心,负载均衡的准确性和效率直接决定了整个CDN的效率和性能。负载均衡技术将网络的流量尽可能均匀地分配到几个能完成相同任务的服务器或网络节点上进行处理,避免部分网络节点过载而另一部分节点空闲的不利状况,既可以提高网络流量,又可以提高网络的整体性能。
实际场景需求结合学习CDN内容分发服务
实际使用CDN的目的:
解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。控制时延无疑是现代信息科技的重要指标,CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性。
使用CDN后带来的优势:
如果你在经营一家网站,那你应该知道几点因素是你制胜的关键:
内容有吸引力
访问速度快
支持频繁的用户互动
可以在各处浏览无障碍
Google及其它网站的研究表明,一个网站每慢一秒钟,就会丢失许多访客,甚至这些访客永远不会再次光顾这些网站。可以想像,如果网站是你的盈利渠道或是品牌窗口,那么网站速度慢将是一个致命的打击。
这就是你使用CDN的第一个也是最重要的原因:加速网站的访问
除此之外,CDN还有一些作用:
1.为了实现跨运营商、跨地域的全网覆盖
互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点商,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。
2.为了保障你的网站安全
CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。
3.为了异地备援
当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站可以做到永不宕机。
4.为了节约成本投入
使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。
5.为了让你更专注业务本身
CDN加速厂商一般都会提供一站式服务,业务不仅限于CDN,还有配套的云存储、大数据服务、视频云服务等,而且一般会提供7x24运维监控支持,保证网络随时畅通,你可以放心使用。并且将更多的精力投入到发展自身的核心业务之上。
引入一个词:控制时延
无疑是现代信息科技的重要指标,CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性
根据论文《WAITINGTIMESINQUALITYOFEXPERIENCEFORWEBBASEDSERVICES》中提出的:其指出基于人脑在等待不同时长的信息时,产生的不同意识行为,进而对信息获取产生的差别感官体验。
0.1s:用户几乎感觉不到系统是否不连贯性。
通俗点说就是在网速一定的前提下,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个要件,而内容管理和全局的网络流量管理(TrafficManagement)是CDN的核心所在。
通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。
举例说明:
国内访问量较高的网站、直播、视频平台,均使用CDN网络加速技术,虽然网站的访问巨大,但无论在什么地方访问都会感觉速度很快。而一般的网站如果服务器在网通,电信用户访问很慢,如果服务器在电信,网通用户访问又很慢。
CDN服务最初用于确保快速可靠地分发静态内容,这些内容可以缓存,最适合在网速庞大的网络中存储和分发,该网络在几十多个国家的十几个网络中的覆盖CDN网络服务器。由于动态内容必须通过互联网来传输,因此要提供快速的网络体验。如今的CDN可谓是大文件、小文件、点播、直播、动静皆宜!
主要特点:
1、本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性
3、远程加速远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度
关键技术:
内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术
内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
适用范围:
一般来说以资讯、内容等为主的网站,具有一定访问体量的网站
例如资讯网站、政府机构网站、行业平台网站、商城等以动态内容为主的网站
例如软件开发商、内容服务提供商、网络游戏运行商、源码下载等有大量流媒体点播应用的网站
例如:拥有视频点播平台的电信运营商、内容服务提供商、体育频道、宽频频道、在线教育、视频博客等
Q&A
1.CDN加速是对网站所在服务器加速,还是对其域名加速?
CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则访客访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。
2.CDN和镜像站点比较有何优势?
CDN对网站的访客完全透明,不需要访客手动选择要访问的镜像站点,保证了网站对访客的友好性。
CDN部署简单,对原站基本不做任何改动即可生效。
3.CDN和双线机房相比有何优势?
常见的双线机房只能解决网通和电信互相访问慢的问题,其它ISP(譬如教育网,移动网,铁通)互通的问题还是没得到解决。
而CDN是访问者就近取数据,而CDN的节点遍布各ISP,从而保证了网站到任意ISP的访问速度。另外CDN因为其流量分流到各节点的原理,天然获得抵抗网络攻击的能力。
4.CDN使用后,原来的网站是否需要做修改,做什么修改?
一般而言,网站无需任何修改即可使用CDN获得加速效果。只是对需要判断访客IP程序,才需要做少量修改。
5.为什么我的网站更新后,通过CDN后看到网页还是旧网页,如何解决?
由于CDN采用各节点缓存的机制,网站的静态网页和图片修改后,如果CDN缓存没有做相应更新,则看到的还是旧的网页。
为了解决这个问题,CDN管理面板中提供了URL推送服务,来通知CDN各节点刷新自己的缓存。
在URL推送地址栏中,输入具体的网址或者图片地址,则各节点中的缓存内容即被统一删除,并且当即生效。
6.能不能让CDN不缓存某些即时性要求很高的网页和图片?
只需要使用动态页面,asp,php,jsp等动态技术做成的页面不被CDN缓存,无需每次都要刷新。或者采用一个网站两个域名,一个启用CDN,另外一个域名不用CDN,对即时性要求高的页面和图片放在不用CDN的域名下。
7.网站新增了不少网页和图片,这些需要使用URL推送吗?
后来增加的网页和图片,不需要使用URL推送,因为它们本来就不存在缓存中。
8.网站用CDN后,有些地区反映无法访问了,怎么办?
CDN启用后,访客不能访问网站有很多种可能,可能是CDN的问题,也可能是源站点出现故障或者源站点被关闭,还可能是访客自己所在的网络出现问题,甚至我们实际故障排除中,还出现过客户自己计算机中毒,导致无法访问网站。
9.哪些情况不适用于CDN
此类极端状况不建议您使用CDN服务
CDN是如何工作的呢?让我们先看看没有CDN服务时,一个网站是如何向用户提供服务的。
传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别:
由上图可见,用户访问未使用CDN缓存网站的过程为:
1)、用户向浏览器提供要访问的域名;
2)、浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;
3)、浏览器使用所得到的IP地址,域名的服务主机发出数据访问请求;
4)、浏览器根据域名主机返回的数据显示网页的内容。
通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,下面让我们看看访问使用CDN缓存后的网站的过程:
通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:
1)、用户第一次向浏览器提供要访问的域名,浏览器调用localdns域名解析库对域名进行解析.
2)、localdns系统向cdn运营商dns域名服务器请求进行域名解析
3)、由于cdn运营商dns域名服务器对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,返回给localdns系统.
4)、为了得到cname域名的IP地址,localdns系统对获得的CNAME域名向cdndns调度系统(全局负载均衡DNS)请求进行cname域名解析,获取缓存服务器的ip.
5)、使用全局负载均衡DNS解析,如根据用户的地理位置信息解析对应的IP地址,使得用户能就近访问。此次解析得到CDN缓存服务器的IP地址,返回至localdns系统.
6)、localdns系统将获取的缓存服务器的ip返回给浏览器.
7)、浏览器根据IP向对应的cdn缓存服务器发出www.a.com的域名访问请求,通过缓存Cache服务器内部专用DNS,解析得到此域名对应的服务器实际IP地址,再由缓存服务器向此实际IP地址提交访问请求.缓存服务器从实际IP地址得得到访问内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程;
8)、浏览器得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问),又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务.DNS服务器根据用户IP地址,将域名解析成相应节点的缓存服务器IP地址,实现用户就近访问。使用CDN服务的网站,只需将其域名解析权交给CDN的GSLB设备,将需要分发的内容注入CDN,就可以实现内容加速了。