精选文章 CDN是什么?

CDN是什么?

作者:菜鸟东哥 时间: 2017-07-11 09:22:34
菜鸟东哥 2017-07-11 09:22:34

     1. CDN的概念

     简介: CDN的全称是Content Delivery Network,即内容分发网络.通过在网络各处放置节点服务器,这些节点之间会动态的互相传输内容,CDN系统能够根据网络流量各节点的连接负载状况以及到用户的距离响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。目的是就近取得所需内容解决Internet网络拥挤的状况,提高用户访问网站的响应速度。也就是:这些节点之间会动态的互相传输内容,对用户的下载行为最优化,并借此减少内容供应者所需要的带宽成本,改善用户的下载速度,提高系统的稳定性。

 关键点:广泛采用各种缓存服务器、全局负载技术

4要件:分布式存储,负载均衡,网络请求重定向,内容管理CDN的优缺点

优点:

1.本地cache加速,提高企业站点

2.镜像服务,实现跨运营商网络加速 

3.远程加速 

4.带宽优化 减少远程访问的带宽、分担网络流量、减轻 原站点web服务器负载 

5.集群抗***

缺点:

1.实施难度复杂

2投资大



     2.CDN的基本思路

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

        比如一个企业的网站服务器在北京,运营商是电信,在广东的联通用户访问企业网站时,因为跨地区,跨运营商的原因,网站打开速度就会比北京当地的电信客户访问速度慢很多,很容易造成这个企业的客户流失。

        还有一个网站的服务器性能比较差,承载能力有限,有时面临突发流量,招架不住,直接导致服务器崩溃,网站打不开,尤其是电商网站在节日期间,因为这种情况网站打不开,销售额白白流失的占比都高涨至60%。

        再比如一些中小企业租用的虚拟主机,因为跟好几个网站共用一台服务器,每个网站所分带宽有限,带宽过小经常导致流量稍微一多,网站打开速度就很慢,甚至打不开。

       使用CDN后以上这些问题就都能解决,您不用担心自己网站访客,在任何时间,任何地点,任何网络运营商,都能快速打开网站;各种服务器虚拟主机带宽等采购成本,包括后期运维成本都会大大减少;给网站直接带来的好处就是:流量,咨询量,客户量,成单量,都会得到大幅度提升。

         其实,大家提起CDN,都会望而却步,因为CDN太贵,都是大企业才能用得起的贵族式服务,而如今面对中小企业的CDN技术开发已经实现,并进入市场开始运营。现在市面上CDN提供商计费方式多样,有按每月最低消费的,有按带宽收费的,有按请求数收费的,有包月包季包年限制的,还有些大多人看不懂的技术指标收费的,总之比较复杂。CDN服务在所有计费方式中,中小企业一至认为按流量收费最为合理,另外大多按流量计费方式中会有时间限制,规定时间内用不完就会全部作废,对于流量把握不好的中小企业,存在相当一部分浪费。


   3.CDN网络访问原理

        基本原理:依靠部署在各地的边缘服务器。通过中心平台的负载均衡、内容分发、调度等功能模块,就近获取内容,降低网络拥塞,提高访问响应速度和命中率。关键技术:内容存储和分发技术。

CDN是什么?1

1.用户向浏览器输入www.web.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求;

2.网站的DNS域名解析器设置了CNAME,指向了www.web.51cdn.com,请求指向了CDN网络中的智能DNS负载均衡系统;

3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;

4.用户向该IP节点(CDN服务器)发出请求;

5.由于是第一次访问,CDN服务器会向原web站点请求,并缓存内容;

6.请求结果发给用户。


        CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,这就是CDN的最基本的原理,当然很多细节没有涉及到,比如第1步,首先向本地的DNS服务器请求。第5步,内容淘汰机制(根据TTL)等。但原理大体如此。


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


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

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


        负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中 总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。


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




     4.CDN网络构建方式的好处:

1、CDN可以将网站部署至全国各地多台服务器上,可以让用户就近访问,减少因距离产生的网络延迟。

2、可以不在受运营商相互访问较慢的限制,比如企业服务器是电信宽带,联通用户访问速度就会稍慢,那么CDN就可以避免这一情况,因为CDN几乎涵盖所有的线路,自动帮用户选择最快访问。

3、可靠性高,CDN在技术上实现了多点冗余,即使一个节点因为意外出现了故障,网站依然可以由其他正常的节点进行响应。

4、在线率高、优化效果好,所谓在线率是指企业网站能被正常访问的概率,因为程序或网络故障导致源网站打不开,用户依然可以访问CDN节点上的缓存数据,对SEO效果也起到了辅助作用。

5、降低企业服务器成本,主流的CDN厂商均可实现全国部署,对企业来讲不必考虑服务器的投入和宽带的成本。


    5.CDN服务的应用场景:

1、文件下载

       下载应用遍布网络的各个角落,例如:游戏客户端下载、软件安装包、视音频文件、补丁包或APP应用下载等等。由于文件较大,传输过程易受到网络带宽、服务器负载或链路状况等多方影响,服务质量不容易保证。同时,随着访问量不断增大,一些问题开始暴露出来,如用于设备维护和带宽购买的高成本投入、面对用户突然增加的访问需求无法及时应对和安全问题日趋严重造成的损失等问题,在未应用CDN加速之前一直无法很好的得到解决。

因此,很多网络运营商选择使用CDN加速服务保证自己下载业务的稳定、高效与安全。

       未来几年中国的CDN市场将继续保持快速增长,而随着互联网内容和应用的不断丰富,很多新的技术和应用都依赖于CDN厂商的储备带宽、机房节点和服务器等基础设施。

2、动态应用加速

        事实上,我们会发现,在使用在线交互业务时,其难度远远大于浏览网页、图片或下载等传统互联网业务。并且由于网络环境的不稳定,在操作过程中非常容易出现问题,而一旦断线,用户对企业的信心就会降低,多次断线,用户就会卸载应用。

动态应用加速和静态应用加速的组合拳能够帮助企业有针对性的改善用户访问质量不佳的问题。针对图片、文件、CSS/JS、PDF的静态加速,以及针对产品选购、对比、支付的动态加速,两者的完美搭配可以提高用户网站性能,实现可靠性和稳定性最大化。

3、在线视频

        每一次热门影视作品的推广,都会对在线视频平台带宽的抗压能力带来极大的挑战。每一次热门体育赛事直播的精彩瞬间,都会带来一个流量的高峰,这种带宽突发的变化和用户对访问质量的高要求,已经决定了其很难由一家企业自身来独立完成。并且由于终端用户接入的带宽种类不同和源站带宽承载能力等因素,也会出现卡顿多、缓冲时间长、加载无效、多协议输出、盗链等等的问题。

试想,当你在追一部热门影视剧,看了一半时画面开始加载,过了5秒还无法加载完成,你会选择如何去做?关了之后在其他网站访问是应有之意。视频体验不佳会造成严重的用户流失,所以针对视频的访问流畅需要进行重点保障。使用CDN,可以从容面对各种需求,使得用户全程流畅访问,提升用户对网站的忠诚度。

4、移动应用的用户体验急需提升

        据2016年CNNIC发布的第38次《中国互联网络发展状况统计报告》显示我过手机网民规模已达6.56亿,占整体网民的92.5,手机上网已经成为主导地位。但蓬勃发展的移动应用也存在这一些不可避免的问题,其中网络基础发展滞后是主要原因之一。传统互联网技术并不能解决移动网络传输具有的高延时、高误码率、上下行传输不对称、网络抖动大等新特性。其中2G、2.5G、3G、4G分别存在不同的传输问题。Gomez的数据显示,一个页面10s内无法打开,会有40%的用户跳出,大部分手机用户愿意等5s—7s。由此可见网络传输延迟严重制约着企业的壮大和发展。

      MAA(Mobile Application Accelerator,即移动应用加速)实现了无线传输优化技术的重大突破。由CDN平台丰富的网络资源作为支撑通过协议优化、链路优化、流量节省、图片智能分发、检测并防劫持等提升APP应用的访问体验,在正常通信速率基础上平均提升50%--100%的以上,让移动互端用户有一个全新的访问体验。可用于电商、金融、资讯、社交、O2O线下到线上、地图、旅游、游戏等诸多移动应用领域。

例如京东2015年移动订单占比(履约)从第一季度到第四季度分别为42%、47%、52%、61.2%,和传统Web端可以做到平分秋色甚至更多。

       良好的移动应用体验,会为企业带来更好的用户满意度。对于处于快速发展中的企业而言,用户会因为产品本身的优质体验而口口相传,进而迅速的占领市场。借助CDN,可以快速的对移动应用的服务能力进行提升,使得企业不会在移动应用的战场上落后。

5、抵御DDoS和应用层***

       网络安全是网站发展的前提条件。频繁的网络层DDoS***和应用层DDoS***每天都在发生。***之下的门户网站性能急剧下降,无法正常处理用户请求,造成用户访问失散,严重影响企业形象。近些年伴随着盗链、内容窃取、篡改等***行为的发生使企业损失严重,并且超过80%的***采用DDOS混合***,安全问题早已“防不胜防”。

        为了抵御DDOS***,客户可能会通过购买抗D设备、WAF设备等方式来提高系统抗***的能力,但是这种退让策略的效果并不好,一方面由于这种方式需要消耗高额的成本,另一方面传统的通过增加网络带宽资源的方案也只是在应对小规模流量***时防御效果明显,面对大规模***时则力不从心,并且存在一定的局限性。所以不能从根本上防护DDOS***。

       CDN网络节点分布的特性是天然的抗D平台,其具有按需防护、简化源服务器基础架构、减少IT规划等优势将会是未来安全发展的趋势。基于CDN平台的源站隐藏、***监控、访问控制、智能拦截等技术手段为客户网站提供事前监控、事中防护、事后管理的全过程安全防护。此外,还可利用CDN网络为网站提供优质的加速服务。并且合格的CDN厂商也会在***发起/流量异常后及时的联系企业,和企业一同寻求问题的解决之道。可以预见的是,可靠的CDN厂商能够帮助企业降低甚至解决这种被***的风险。

6、优质的全球用户访问体验

       针对快速发展的企业而言,进军国际市场开拓业务是个不错的选择。但正是因为互联网的便利性,所以也没必要事事躬亲,在全球多个国家开办事处、分公司,针对全球范围内的内部办公传输、外部用户访问体验、跨运营商跨地域访问体验差,CDN可以高效、快速的解决这项难题。


勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:过滤器和文件上传

下一篇:使用RPM包工具和源码包编译安装Linux应用程序

您可能感兴趣

  • 2020年8月5日21:35:43 图像左右上下翻转

    代码如下:功能比较简单,没有什么难度,基本思路是从数据中获取图像ID,读取进行旋转镜像操作。需要主要的是,imread(ImagePath[0].toLocal8Bit().toStdString()),因为路径有中文,会出现读取不到的现象。 The code is as follows: the function is relatively simple, there is no diff...

  • JAVA核心类库--3、可变字符串类和日期相关类

    1、可变字符串类 1.1、基本概念 由于String类描述的字符串内容是个常量不可改变,当需要在Java代码中描述大量类似的字符串时,只能单独申请和存储,此时会造成内存空间的浪费。 为了解决上述问题,可以使用java.lang.StringBuilder类和java.lang.StringBuffer类来描述字符序列可以改变的字符串,如:"ab"。 StringBuffer类是从jdk1.0...

  • Java 基础之Autowired 是否是自动注入

    Java 基础之Autowired 是否是自动注入 相信很多人对Autowired 注解理解不深入,或者是认为此注解就是spring的自动注入。相信看完本篇文章,你会有更加不一样的理解。 首先我们先看下什么是手动注入?在我们的spring应用程序中,定义多个类,其中某些类依赖某些类,xml中要描述类与类之间的依赖关系,这种由程序员定义,并且描述好依赖关系的用法,我们称之为手动注入。我们看个例...

  • webpack Prefetching/Preloading

    1:是什么 preloading:设置这个指令,就会在当前的页面中,以较高优先级预加载某个资源。其实就相当于浏览器的预加载,但是浏览器的预加载只会加载html中声明的资源,但是preloading突破了这个限制,连css和js资源也可以预加载一波。 Prefetching:设置这个指令,就表示允许浏览器在后台(空闲时)获取将来可能用得到的资源,并且将他们存储在浏览器的缓存中。 这两种其实都是...

  • 漫谈 SLAM 技术(上)

    转自:https://zhuanlan.zhihu.com/p/135955964 导语 随着最近几年机器人、无人机、无人驾驶、VR/AR的火爆,SLAM技术也为大家熟知,被认为是这些领域的关键技术之一。本文对SLAM技术及其发展进行简要介绍,分析视觉SLAM系统的关键问题以及在实际应用中的难点,并对SLAM的未来进行展望。 1. SLAM技术 SLAM(Simultaneous Local...

  • SSM(6)-动态代理-InvocationHandler-Proxy

    承接上篇 动态的是什么:1. 被代理的对象 Object target 2.处理的方法 method.getName() InvocationHandler Proxy 实现步骤: 1.写一个handler用来处理被代理对象,分4步 public class ProxyInvocationHandler implements InvocationHandler { //1.被代理的...

  • 后端开发如何设计数据库系列文章(一)设计传统系统表结构(Java开发)

    本篇为第一篇。讲解传统系统的表结构设计(Java开发)。 讲讲如何避免数据库设计的一些坑,方便后期的开发与维护。 以前经常能够看到,数据库范式,现在说数据库三大范式的少了。 三大范式我以前也很严格的弄过,但是后来发现,还是灵活好啊,为什么,业务变动太快了啊,按照范式来,结构变更顶不住。 下面我就说一说设计数据库表要注意的一些地方吧。我不是DBA,只是Java后端开发,以下是根据我的个人经验所...

  • JVM的年轻代与垃圾回收

    JVM的年轻代与垃圾回收 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
51CTO

51CTO

51CTO是一家综合的IT技术用户服务平台,立足满足用户多维度需求,为技术用户成长赋能。2005年成立至今,拥有专业主流技术媒体51CTO企业信息化媒体CIOAge中国最大的IT在线教育平台51CTO学院。