写点什么

到底什么是 CDN

用户头像
浅^安
关注
发布于: 2020 年 12 月 26 日
到底什么是 CDN



百度百科解释 :

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术 ---(百度百科这里的解释与原理很全面,可以详细学习)



前言 :

先看一个例子 :

如果大家观看的是1080p清晰度的视频(理论上需要4Mbps带宽),那么,累计需要的流量带宽是10,000,000×4Mbps=40,000,000Mbps≈40Tbps。这无疑是非常巨大的流量压力。



我们普通计算机的网卡,是1Gbps的带宽。如果是服务器,现在有10Gbps的网卡(万兆网卡)。



如果某APP有一台超级服务器,那么,这台超级服务器就需要4000块万兆网卡,而且必须百分之百跑满速度,才能够实现这1千万用户的流畅观看。



对于一些实力不够的服务商,或者突发流量陡增的情况,就会造成拥塞,从而导致卡顿和延时。



而CDN,就是一项非常有效的缩短时延的技术。



CDN的原理

它最初的核心理念,就是将内容缓存在终端用户附近



内容源不是远么?那么,我们就在靠近用户的地方,建一个缓存服务器,把远端的内容,复制一份,放在这里,不就OK了?





因为这项技术是把内容进行了分发,所以,它的名字就叫做CDN——Content Delivery Network,内容分发网络



基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

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



具体来说,CDN就是采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。



大家可能觉得,这个不就是“镜像服务器”嘛?其实不一样。镜像服务器是源内容服务器的完整复制。而CDN,是部分内容的缓存,智能程度更高。



确切地说,CDN=更智能的镜像+缓存+流量导流



CDN的具体工作流程

如果某个用户想要访问优酷的视频点播内容,那么:



具体步骤:

①、当用户点击APP上的内容,APP会根据URL地址去本地DNS(域名解析系统)寻求IP地址解析。

②、本地DNS系统会将域名的解析权交给CDN专用DNS服务器

③、CDN专用DNS服务器,将CDN的全局负载均衡设备IP地址返回用户。

④、用户向CDN的负载均衡设备发起内容URL访问请求。

⑤、CDN负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的缓存服务器

⑥、负载均衡设备告诉用户这台缓存服务器的IP地址,让用户向所选择的缓存服务器发起请求。

⑦、用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。

⑧、如果这台缓存服务器上并没有用户想要的内容,那么这台缓存服务器就要网站的源服务器请求内容。

⑨、源服务器返回内容给缓存服务器,缓存服务器发给用户,并根据用户自定义的缓存策略,判断要不要把内容缓存到缓存服务器上。



CDN的好处

采用CDN技术,最大的好处,就是加速了内容的访问——用户与内容之间的物理距离缩短,用户的等待时间也得以缩短。



而且,分发至不同线路的缓存服务器,也让跨运营商之间的访问得以加速。



此外,CDN还有安全方面的好处。内容进行分发后,源服务器的IP被隐藏,受到攻击的概率会大幅下降。而且,当某个服务器故障时,系统会调用临近的健康服务器 进行服务,避免对用户造成影响。



CDN的弱点

CDN虽然有很多的优点,但它并不是万能的。在部分场景下,CDN并不是适用。



首先,CDN适用于静态的内容,不适用动态的内容。用户动态的实时交互数据,是难以缓存的。例如一些频繁修改的数据库表单内容等。(大家可能没想到,直播其实也是可以使用CDN的。感兴趣的同学可以搜一下“直播CDN”。)



其次,很多应用提供商和内容服务商,为了保护自身的数据私密,不允许第三方公司CDN缓存他们的数据,只允许自家CDN缓存自家的数据。这个对用户体验会造成一定影响。



第三,建设CDN意味着不菲的资金投入。不管是自己买服务器搭建CDN,还是租用云服务提供商的CDN服务,都需要花钱。而且,区域越多,花的钱越多。这些CDN到底有没有人用,利用率是多少,很难精准预测。也许大部分时间里,利用率很低,就造成了资源浪费。



感谢参考文章 : https://mp.weixin.qq.com/s/uA9ChKqr2q3QgYeotVNULQ



用户头像

浅^安

关注

有个故事,两年后我来讲... 2018.08.13 加入

若问此生之所求,唯有头上再也无发,证明我已成真佛!

评论

发布
暂无评论
到底什么是 CDN