什么是CDN

引言

在正式介绍前,来思考一个问题:

前端时间热播的电视节目《庆余年》相信不少人看过,但在追剧的过程中,或多或少都遇到过视频卡顿的问题,即便是在网速不错的情况下。

简单的计算下:

假定有1千万观众同时在线收看,每位观众收看的为1080P(200万像素)清晰度的视频所需的理论数据传输带宽为4Mbps,累计需要的流量带宽是10,000,000 * 4Mbps = 40,000,000Mbps = 40Tbps,是什么概念呢?

image.png

现如今一台普通的计算机,网卡理论支持最大带宽为1.0Gbps。那么我们假设视频内容服务商(优酷、腾讯、爱奇艺等)拥有一台超级服务器,那么这台超级服务器就需要4万块网卡,还是理论上跑满速度的情况下,才能够让这1千万的用户流畅观看视频。

显然不是所有的服务商都能够提供如此这般服务。而且对于突发流量陡增的情况,就会造成拥塞,导致卡顿和延时。

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

CDN的原理

CDN(Content Delivery Network),即内容分发 网络,最初的核心理念,就是将内容缓存在终端用户附近,简单来说,CDN就是一项加速互联网内容交付的服。或者说就是使得你的网站访问起来更快。

就比如说你搭建了一个网站,服务器是托管在广州,但是它面对的是来自全国(甚至全球)各地的用户的访问, 就拿下面的图来说,有来自上海,北京,深圳和黑龙江的用户访问你在广州的服务器。

image.png

拿北京来说,北京到广州的距离约为2123公里,当北京的用户向网站发送请求,从北京到广州2123公里,然后再从广州到北京2123公里,所花费的时间以毫秒计算,就这一轮而言,所花费的时间大概是260毫秒,这样算下来,深圳大约为16毫秒,上海为175毫秒,黑龙江为412毫秒。距离越远,花费的时间越长,速度也就越慢。

这正式CDN发挥作用的地方,通过减少用户与内容之间的距离来提升速度。

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

image.png

所以位于北京的用户不用去访问广州的服务器,而是直接检索距离最近的缓存服务器,从而大大减少了检索该内容所花费的时间。

CDN好处

除了上面提到的提升速度之外,CDN还有其他的好处

  1. 减少内容服务器的负载

    比如北京有30个用户同时请求资源,流量不是直接的达到位于广州的服务器,而是距离最近的缓存服务器

  2. 正常运行时间增长

    因为用户不需要与内容服务器进行交流通信,服务器能够有效运行的时间增长

  3. 更安全

    由于用户没有和位于广州的服务器直接进行通信,间接的提升了服务器的隐蔽性,源服务器的IP被隐藏,收到攻击的概率大幅度降低

  4. 更稳定

    当某个服务器发生故障时,系统会调用临近正常服务器进行服务,避免对用户造成直接的影响

参考

https://mp.weixin.qq.com/s/f97PlG5PVikk7G8t_dpdvQ

分享到:

评论完整模式加载中...如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理