CDN(内容交付网络)是服务器的高度分布式平台,它通过减少服务器与用户之间的物理距离,帮助最小化加载网页内容的延迟。这有助于世界各地的用户观看相同的高质量内容,而不会降低加载时间。

什么是CDN?-编程之家

没有CDN,内容源服务器必须响应每个最终用户的请求。如果流量峰值过高或负载持续存在,这将导致大量流量流向原点,并增加后续负载,从而增加发生原点故障的机会。

通过响应最终用户的请求而不是源,并且物理和网络更接近最终用户,CDN可以减轻内容服务器的流量负担,并改善Web体验,从而使内容提供商及其最终用户受益。

CDN如何运作?

内容传递网络(CDN)可以为互联网提供一半以上的流量。CDN的目标是通过减少请求必须经过的物理距离,来减少延迟,提交网页请求和网页完全加载到设备之间的延迟。

例如,如果此请求必须穿越大西洋,则希望查看来自英国服务器的内容的美国访客将经历较差的加载时间。

什么是CDN?-编程之家

为了解决这个问题,CDN将您的网站内容的缓存版本存储在世界各地的多个地理位置,这被称为“存在点”(PoP)。这些PoP将包含它们自己的缓存服务器,并将负责在用户位置传递该内容。

用户代理本质上是运行Web浏览器的设备,它们请求呈现网页所需的内容,例如HTML,图像,CSS和JavaScript文件。对于大多数CDN,每次对内容的请求都将导致最终用户被映射到最佳位置的CDN服务器,并且该服务器将以请求的文件的缓存(预先保存)版本进行响应。

如果找不到文件,它将在CDN平台上的其他服务器上查找内容,并将响应发送给最终用户。但是,当内容不可用或过时时,CDN将充当原始服务器的请求代理,并存储获取的内容以服务将来的请求。

什么是CDN?-编程之家

尽管网站内容的交付是CDN的常见用例,但它并不是CDN可以交付的唯一内容类型。实际上,CDN提供了令人难以置信的各种内容,包括:4K和HD品质的视频;以及 音频流;软件下载,例如应用程序,游戏和操作系统更新;包含医疗和财务信息的数据记录;以及更多。潜在地,任何可以数字化的数据都可以通过CDN传送。

为什么要使用CDN?

CDN提供了一种简便的方法来提高网站的速度,同时降低延迟。因此,它们对于向全球用户快速,高效和安全地交付内容至关重要。此内容不仅限于网站内容,还包括 它还可以包含4K和高清质量的视频,音频流,应用程序,游戏和操作系统更新。随着网站访问者的关注范围越来越短,因此必须尽快提供此内容。

什么是CDN?-编程之家

随着越来越多的企业上线,以及世界各地在互联网上进行购物,连接和共享,内容提供商面临越来越多的挑战,例如:提供不同类型的内容,针对不同设备类型调整内容(设备检测) ,并保护数据及其最终用户的在线状态。

内容交付网络的固有功能意味着CDN提供商处于独特的位置,可以帮助企业克服媒体交付的各种挑战。

在将近20年的时间里,CDN形成了Internet的看不见的主干,可为零售,金融,医疗保健和其他企业提供在线内容,并快速,大规模地提供给世界各地的最终用户。如果您几乎完成了所有在线工作,则可以从CDN中受益。

CDN

什么是CDN?-编程之家

全称:

Content Delivery Network或Content Ddistribute Network,即内容分发网络

基本思路

尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

目的

解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。

基础架构:

最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:

  1. 当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
  2. CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
  3. 用户向CDN的全局负载均衡设备发起内容URL访问请求。
  4. CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
  5. 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
  6. 全局负载均衡设备把服务器的IP地址返回给用户。
  7. 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

什么是CDN?-编程之家服务模式:

简单地说,CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。

通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。

举例说明:

国内访问量较高的网站、直播、视频平台,均使用CDN网络加速技术,虽然网站的访问巨大,但无论在什么地方访问都会感觉速度很快。而一般的网站如果服务器在网通,电信用户访问很慢,如果服务器在电信,网通用户访问又很慢。

通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的cache服务器内,通过DNS负载均衡的技术,判断用户来源就近访问cache服务器取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度,如同提供了多个分布在各地的加速器,以达到快速、可冗余的为多个网站加速的目的。

CDN服务最初用于确保快速可靠地分发静态内容,这些内容可以缓存,最适合在网速庞大的网络中存储和分发,该网络在几十多个国家的十几个网络中的覆盖CDN网络服务器。由于动态内容必须通过互联网来传输,因此要提供快速的网络体验。如今的CDN可谓是大文件、小文件、点播、直播、动静皆宜!

什么是CDN?-编程之家

主要特点:

1、本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性

2、镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。

3、远程加速 远程访问用户根据DNS负载均衡技术 智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度

4、带宽优化 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。

5、集群抗攻击 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。

关键技术:

什么是CDN?-编程之家内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术

内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;

内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;

性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。

适用范围:

什么是CDN?-编程之家

备注:此类极端状况不建议您使用CDN服务

以资讯内容为主的网站,具有一定访问体量的网站

例如资讯网站、政府机构网站、行业平台网站、商城等以动态内容为主的网站

例如论坛、博客、交友、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的问题,也可能是源站点出现故障或者源站点被关闭,还可能是访客自己所在的网络出现问题,甚至我们实际故障排除中,还出现过客户自己计算机中毒,导致无法访问网站。  
客户报告故障时,可随时联系我们24小时技术部进行处理。

什么是CDN?-编程之家

CDN的全称是内容分发网络,比如我们客户端向服务器请求一个数据,当这个数据很大,请求频繁,而且服务器距离客户端很远这样是不是很浪费资源,浪费大量的带宽,严重时候还会造成网络阻塞。而且这样响应时间非常慢。什么是CDN?-编程之家

CDN主要由负载均衡,和高速缓存服务器组成。其中分为中心部分和边缘部分。中心部分就是负责全局负载均衡,当客户端发送请求,首先会访问中心CDN,经过全局负载均衡,根据用户请求的ip 地址,一定的算法,然后算出距离用户最近,用户接入量最少得CDN缓存服务器,这样是不是相当于走了捷径。因为cdn是介于客户端和请求服务器之间的一个缓存服务器,有一点点像redis缓存。当然第一次请求的时候,cdn没有缓存的话,cdn也会请求一次服务器,然后根据服务器返回的数据一方面留给自己缓存作为备用,另一方面也返回给客户端,好像现在像腾讯网,阿里云都有提供cdn服务器。而且域名配置服务器时候,就可以配到cdn。

而且现在应用也很多,比如网络教学,金融,证券,不允许有过多延迟和数据较大的应用。这就是我大致了解的cdn ,content delivery network ,内容分发网络。

什么是CDN?-编程之家

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

什么是CDN?-编程之家

  目前的CDN服务主要应用于证券、金融保险、ISP、ICP、网上交易、门户网站、大中型公司、网络教学等领域。另外在行业专网、互联网中都可以用到,甚至可以对局域网进行网络优化。利用CDN,这些网站无需投资昂贵的各类服务器、设立分站点,特别是流媒体信息的广泛应用、远程教学课件等消耗带宽资源多的媒体信息,应用CDN网络,把内容复制到网络的最边缘,使内容请求点和交付点之间的距离缩至最小,从而促进Web站点性能的提高,具有重要的意义。CDN 网络的建设主要有企业建设的CDN网络,为企业服务;IDC的CDN网络,主要服务于IDC和增值服务;网络运营上主建的CDN网络,主要提供内容推送服务;CDN网络服务商,专门建设的CDN用于做服务,用户通过与CDN机构进行合作,CDN负责信息传递工作,保证信息正常传输,维护传送网络,而网站只需要内容维护,不再需要考虑流量问题。

什么是CDN?-编程之家

  CDN的网络架构

  CDN网络架构主要由两大部分,分为中心和边缘两部分,中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN分发的载体,主要由Cache和负载均衡器等组成。

  当用户访问加入CDN服务的网站时,域名解析请求将最终交给全局负载均衡DNS进行处理。全局负载均衡DNS通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有CDNC节点保持通信,搜集各节点的通信状态,确保不将用户的请求分配到不可用的CDN节点上,实际上是通过DNS做全局负载均衡。

  对于普通的Internet用户来讲,每个CDN节点就相当于一个放置在它周围的WEB。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求。由于它离用户更近,因而响应时间必然更快。

什么是CDN?-编程之家

  每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器

  负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。

  高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。

  CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。

什么是CDN?-编程之家

  理论上,最简单的CDN网络有一个负责全局负载均衡的DNS和各节点一台Cache,即可运行。DNS支持根据用户源IP地址解析不同的IP,实现就近访问。为了保证高可用性等,需要监视各节点的流量、健康状况等。一个节点的单台Cache承载数量不够时,才需要多台Cache,多台Cache同时工作,才需要负载均衡器,使Cache群协同工作。

CDN有什么作用?如何改善访客的浏览体验?

CDN——内容分发网络,所以我们先要了解一下什么是内容。网络上传输的任何东西都可以是内容,但是一般特指网站上呈现的东西:图片、文本等。内容有两种:静态和动态。静态就是不变的,一旦产生就不在变化(比如:一部电影),用户请求,服务端直接提供(不在加工);动态就是内容随着不同的请求参数,需要改变的内容,用户请求(带上偏好参数),服务器根据用户的喜好,产生数据,发送给用户。

CDN是服务器地理分布在一个区域中的系统,由分布在全球各地的许多服务器组成的分布式节点网络,这些服务器将存储网站的内容,以供后续检索,每台服务器均具有该内容的副本,它们一起工作协同工作。大多数Web流量都通过CDN提供服务,包括来自Facebook,淘宝和腾讯等主要网站的流量。不仅仅是网站。内容分发网络服务于所有类型的Web对象(文本,图形和脚本),可下载对象(媒体文件、软件、文档),电子商务门户以及来自互联网世界的更多内容。

根据用户位置,CDN就近提供互联网内容的快速交付。当访问者访问内容时,他们将被路由到距用户CDN网络中最近的节点服务器,提高加载和下载速度,从而使用户访问速度大大提高。内容分发网络的目标是:就近原则——节点服务器群根据访问用户的距离,自动指派“最近”的服务器把内容推送给用户,这样可以减少线路上的损耗时间,更快的响应用户请求以及进行流量精细化管理,降低延时提升用户的访问体验。简而言之,CDN通过将工作负载分配给离他们最近的服务器来提高最终用户的网站质量。

什么是CDN?-编程之家

CDN如何运作?

要了解CDN的工作原理,首先要了解为什么需要CDN至关重要。网站托管在具有单个物理位置的Web服务器上,随着网站访问数量的增加,来自全球的访问请求可能会带来一定的问题:

  • l 用户访问的增多,负载增加;
  • l 单个物理位置的Web服务器,地理位置较远的用户方位时,面临网络传输的时延;

如果用户位于该服务器位置附近,则与从世界另一端访问的用户相比,从Web服务器传递的内容将更快。例如,如果网络服务器位于英国伦敦;与从俄罗斯一直浏览的用户相比,从德国或西班牙浏览的用户将获得更快的响应。

  • l 流量的激增,对带宽造成压力。

为应对访问压力,采用CDN可以有效解决上述的用户交付问题:

部署在PoP节点附近:为了确保更快地交付给每个用户,CDN利用位于世界各地的PoP(网络交换点),这些PoP点位于网络连接的主要位置,可以有效提高速度和连接性;

数据缓存:为了避免在交付内容时出现这种延迟,CDN复制这些网页并将其缓存在遍布全球的服务器中(全球部署,就可以覆盖大部分的用户,减少用户和网站之间的物理距离),这样做的目的是将网站的每个访问者都路由到最近的PoP点,以减少延迟并避免互联网流量阻塞;

利用高效的物理基础设施:高能负载均衡和固态磁盘阵列等提升数据的访问吞吐量;

CDN提供静态和动态内容:包括媒体文件,HTML,JavaScript和CSS文件,对这些结构化和非结构化的数据采用压缩之类的处理办法,降低存储空间的同时,减少传输的数据量,与此同时,主站不再需要提供静态内容,这将减少大量负载;

什么是CDN?-编程之家

CDN缩短了往返时间(RTT)。往返时间(RTT)是决定网站加载速度的重要因素。当用户访问网站时,首先浏览器将请求发送到Web服务器。然后,服务器将响应发送回浏览器。

什么是CDN?-编程之家

简单的逻辑——“服务器离用户越近,网站加载速度越快”。

请求由最接近进行查询的计算机的任何网络服务器处理。通过缓存数据并通过网络而不是单个服务器散布对同一信息的多个请求,流量负载更加平衡。

使用CDN网络的优势

CDN可以为企业带来什么?主要包括:性能、可用性、安全和信息。

提高速度:网站最直接的改进就是其运行速度。当CDN在服务器上分发网站的数据时,它所做的就是有效地创建内容的本地版本以供最终用户访问。因此,本地服务器将代替您的网站的原始服务器来承担所有流量和请求的负担。这样可以大大减少服务器的延迟,并最终提高站点速度。可用性是用户体验的最大贡献者之一,而速度是该类别中的重要因素。CDN将使您的网站运行更快,并带来更高的正面客户体验和评论机会。

加强安全性:实施CDN时,将为原始服务器提供有效的保镖,以防御恶意软件或DDoS攻击。因为CDN服务器充当用户的第一个入口点,所以它类似地充当恶意软件的入口点。CDN本身具有防火墙,在这种情况下将成为第一道防线,从而使原始服务器受到保护。

什么是CDN?-编程之家

内置分析:许多CDN提供仪表板服务,使网站所有者可以从桌面直接管理程序提供的每个工具。在典型CDN中发现的流行统计信息包括带宽使用率,缓存和非缓存命中率以及内容区域细分。详细的报告可以归档并发送给网站所有者,这样就可以可视化统计数据并将其与合作伙伴共享。这些报告可以按小时数和其他重要的用户活动指标描述网站进行了哪种互动。

什么是CDN?-编程之家

减少崩溃:每个行业都有繁忙的季节,没有人喜欢停机。高流量可能会导致任何网站出现问题,并且取决于公司,网站可能是企业的一切。使用CDN,可以跨网络和按区域分布和平衡流量,因此原始服务器不会因请求而过载。这种权重分布有助于减轻客户的压力,并确保敏感客户数据的保护得到增强。

省钱:CDN可以削减各种规模企业的成本。流量较低或中等的小型企业可以找到具有共享托管选项的CDN。这通常是实现CDN的最便宜的方法,并且他们可以设法在本地化的服务器上存储数百或数千个帐户。

CDN承载着世界互联网流量的很大一部分。当互联网无法满足当海量数据、高并发、低时延需求时。CDN出现了,CDN是为了提升互联网性能,使得网站更好工作的工具。

如何知道网站是否需要CDN的帮助?

这是每个企业所有者都想的问题,实际上很容易弄清楚。查看以下四点,了解CDN是否适合。请记住哪怕是仅符合其中之一,则CDN是必需的。在以下情况下应该认真考虑CDN:

  1. 网站正以指数级的速度增长:除非使用CDN进行准备,否则常规服务器将很难处理流量的高峰;
  2. 大文件和静态内容正在拖累您的网站:大图像,脚本,CSS和其他元素之类的内容可能会阻止网站快速加载。对于使用大量媒体的在线杂志和网站尤其如此;
  3. 受众开始扩大到世界各地的人群:如果发现许多站点访问者来自世界的另一端,甚至只是在另一个国家,那么可能是时候研究CDN了。

写在最后

网站的可用性目标就是获得更多流量并进行有效管理。研究表明,即使延迟一秒钟,转换率也会下降7%,网页浏览量下降11%,客户满意度下降16%,所以随着网络的发展(访问多,流量大)而保持服务水平,那么可靠的,可扩展的内容交付网络是值得的投资。