CDN的全称是Content Delivery Network,即内容分发网络。

其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络”边缘”,使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。

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

动态CDN和静态CDN的区别

从用户接入点到源站的链路中,寻找一条最优公网传输链路,或走自建的内网线路,并在传输过程中对传输协议进行优化,以提高请求访问的速度。
通常情况下,CDN对静态内容支持较好,所谓的静态加速服务是指将源站的网页内容包括html文件、flash动画、及各种文件类型的图片缓存于CDN中心网络中,这些文件的特点在于更新的频率较低,用缓存技术将文件cache在网络时代CDN的边缘节点上,即可满足终端用户就近访问的需求。若使用这个技术加速动态资源,可能会导致异常(如导致无法登录)。当然,可以将动态内容的在CDN节点上的缓存时间设置为0秒来解决。但这毕竟是用户请求之后,节点访问源站,源站返回给节点,再由节点返回给用户。毕竟中间多了步骤,会影响速度。这时,“动态CDN”就产生了。

动态CDN

动态CDN的原理

用户请求耗费的时间=用户和边缘交互的时间+边缘等待的时间

  • 用户和边缘交互的时间,我们可以看做用户向边缘请求一个静态文件的时间,这个可以通过智能DNS将请求负载到一个线路最优的边缘节点
  • 边缘等待时间,是用户请求到了以后,边缘需要向用户发送数据,确没有数据可以发送,等他数据到达的这段时间;CDN动态加速技术的本质主要是要减少第二部分的时间

最坏情况下边缘等待的时间=建立连接的时间(1RTT)+发送请求的时间(1RTT)+数据传输中的等待时间
RTT:指两端传播时延加上中间结点的处理时延和排队时延(RTT = 2 ✖️传播时延 + 末端处理时延
CDN - 图1
其中通过优化我们可以把建立连接的时间消灭掉,有两种发送可以做到这一点:

  1. 通过连接复用,保证每次动态请求到达时,边缘和源之间的通路,连接都已经建立了,它的弊端是在突发情况下很难保证
  2. 除此以外我们还可以把数据传输开始以后的等待时间给去除掉,这里面涉及到了两个技术,一个是动态路由,一个是TCP协议优化
    • 动态路由:指的是利用CDN节点多的优势,把每个节点都看做一个路由,在边缘A和源B之间找到一个最佳路径,也就是说以前是直接从A到B,变成了A-C-D-B;另外还需要强调的是,D-B之间一定是要通过连接建立,而且D-B一定要很近,时延很小,否则的话TCP协议优化就发挥不了作用;通过动态路由技术我们可以在A-B间建立一个更低的RTT和更小的丢包率的通过
    • 节点间的TCP协议优化:有了动态路由做保证,节点间的TCP协议优化就是很简单的事情了,我们要知道用户的带宽往往是有限的,而节点间的带宽往往是冗余的,我们要做到节点间的发送速率高于边缘到用户

这还不够,我们能不能把这一个时延也去掉呢,这是部分可能的,这里面涉及到了一下一些技术:

  1. 缓存:部分的动态内容也是可以在很短的时间内缓存的
  2. 预取:通过用户请求的页面内容解析,预先感知用户接下来要获取的内容,提前预取
  3. 证书类:通过在边缘部署SSL证书,在边缘将SSL请求,变成普通请求,从而将动态加速变成静态加速,但是如此是有风险的,把CDN运营商认为可信任是不安全的

动态cdn的原理是怎样的

  简单来说就类似用镜像服务器给访问者做了一个高速的代理服务器,用过代理服务器的朋友应该知道,假如XX用户通过代理访问A站点的某个动态页面,那么代理服务器会先自己去访问A站点的这个动态页面,然后把A站点返回的内容再转发给XX用户,这样不管A站点的数据如何更新,XX用户每次访问那个动态页面都会从代理服务器得到最新的内容,当然,条件就是代理服务器连接A站点的速度跟连接用户的速度都非常快,这样才会有加速的效果,所以需要代理服务器有非常好的带宽,

动态cdn的作用

  1. 通过连接复用,保证每次动态请求到达时,边缘和源之间的通路,连接都已经建立了,它的弊端是在突发情况下很难保证;
  2. 通过TCP协议栈的定制,把连接和请求的过程合并起来,这事我们在09年就一直在说,只不过由于种种原因没有做下去,据说google已经做出来了;
  除此以外我们还可以把数据传输开始以后的等待时间给去除掉,这里面涉及到了两个技术,一个是动态路由,一个是TCP协议优化;

  动态路由:所谓动态路由,指的是利用CDN节点多的优势,把每个节点都看做一个路由,在边缘A和源B之间找到一个最佳路径,也就是说以前是直接从A到B,变成了A-C-D-B;另外还需要强调的是,D-B之间一定是要通过连接建立,而且D-B一定要很近,时延很小,否则的话TCP协议优化就发挥不了作用;通过动态路由技术我们可以在A-B间建立一个更低的RTT和更小的丢包率的通过;
  节点间的TCP协议优化:有了动态路由做保证,节点间的TCP协议优化就是很简单的事情了,我们要知道用户的带宽往往是有限的,而节点间的带宽往往是冗余的,我们要做到节点间的发送速率高于边缘到用户是非常容易的,改几行代码就够了;

动态cdn和静态cdn有什么区别

  静态 CDN 空间和动态 CDN 空间的最大区别,主要以待加速资源的属性而定:
  如果待加速资源已经经过合理分类,只包括图片、文档、音视频等静态文件,那么优先选用静态 CDN 空间,既可以获得更快速的加速效果,也可以获得更多的功能支持。
  如果待加速的资源未合理分类,包括了静态资源和动态资源,那么需要使用动态 CDN 空间,一键实现全站加速。

动态cdn主要的好处有两个:

  1.首页加载速度更快
  2.更可靠的连接(他只要负责连接边缘服务器,如果直接走回源线路的话,线路会很长,不可靠)
  以上这些是小编给大家介绍的动态cdn的作用以及动态cdn和静态cdn有什么区别的相关内容,阅读了这篇文章,大家是否对动态cdn有所了解了?想知道更多相关信息,请继续留意我们的网站。