CDN是content delivery network或者是content distribution network的缩写 即内容分发网络。

背景说明

从1991年开始,随着互联网技术的发展和网民的增加,给网络带来越来越多的压力,在传输效率上逐渐出现了瓶颈。

给我们带来直接的困扰就是,明明我们使用了4G,5G网络,家里安装了百兆,千兆宽带,但是看视频,浏览网页,听音乐,还是慢,为什么?

这里列举两个典型的场景,和开车一样,距离和拥堵程度共同影响了访问效率。

距离问题

假如我们从北京访问美国的一个网站或者视频,美国和中国的直线距离是10000公里,网络光缆传输接近光速,大约是30万公里/s,传输时延就是330ms,一个来回就是660ms,但这只是理想情况,假设真的从美国到北京直接拉了一条长约10000公里的光缆,全程高速公路,没有堵车,没有收费站。

但实际情况,光缆传输速度是光速的2/3左右。

以及美国到北京中间并不是一根光缆,而是有无数的小网组成,比如国内三大运营商,比如你家里使用的二级,三级网络运营商;这些小网络之间的传输就好比独木桥或者收费站,要做计费处理,会有拥堵,会有抖动,远不及光速。

这样算下来,不要说从美国到北京,就是从广州到北京,直接访问一些视频资源,直播资源,网页资源,很容易让你感到卡顿。

除了距离的问题,还有带宽的问题。

带宽问题

1个人浏览1080P的视频,需要视频服务器能够提供4Mbps的带宽(就是我们说的购买的百兆带宽,千兆带宽的兆),比如有10000个人要访问一个1080P的视频,那么视频服务器就需要40000Mbps(40Gbps);一张网卡能够提供的带宽是多少?普通一些的1000兆,一张网卡能够供250个人同事浏览,10000个人就需要40张网卡,不太准确但也差不多的说法,40台服务器,如果是一亿人呢,400,000台。

所以,如果视频源头没有大量服务器对网络带宽的支撑,纵使家里的买了再好的宽带,1000个人争抢只能给10个人用的资源,怎么也快不起来.

这两个场景,就好比开车,传输距离和拥堵情况程度共同决定了你的网络访问效率.

CDN就是专门解决这个问题的。

起源

说到CDN的起源,就要提到3个人和一个公司。

1995年

1995年初由MIT麻省理工学院的万维网发明家蒂姆·伯纳斯·李(Tim Berners-Lee)预见到了这种拥挤,他说“不久之后,所有网络用户都会感受到网络拥挤的问题”。

所以他向自己在MIT的同事,应用数学教授汤姆·莱顿(Tom Leighton)提出了这个技术挑战,虽然汤姆·莱顿是应用数学的教授,但是他曾是MIT计算机科学实验室算法组的负责人,是并行算法和体系结构方面的著名专家。莱顿教授认识到可以在应用数学和算法中找到解决网络拥塞的方法,因此他组建了一个研究小组来解决该问题。

1996年

丹尼尔·莱文(Danny Lewin)于Technion获得计算机科学和数学学士学位后,于同年秋天加入MIT,加入莱顿教授成立的研究小组,由于他的加入,在CDN技术上取得了各种快速且重要的进步。

1997年

接下来莱顿教授和丹尼尔·莱文(Danny Lewin)一起探索CDN的可能的商业价值,并于1998年共同成立公司:阿卡迈公司(Akamai)(市值百亿美元)。

CDN的原理

利用物理上的多台服务器,将用户需要的音乐、图片、视频、应用程序等资源分布式存储在全球各地,这样用户便可以高效、稳定的就近获取需要资源。

拿大家熟悉的物流来举例,在美国如果需要买中国京东的商品,往往大部分的商品都已经运输到当地的物流仓库中,当收到订单时,边可以从最近的物流仓库发货,保障物流效率。

对应的CDN技术,商品就是我们需要的音乐、图片、视频资源,京东就是资源提供商比如QQ音乐、YouTube视频,仓库就是CDN节点,就近派发就是CDN的负载均衡策略。

CDN盈利模式

中小型公司不像BAT,一般是没有能力搭建遍布各地的机房提供CDN服务的,但是他们又需要把自己的内容发布给终端用户,因此他们就需要购买CDN服务,固定月租,或者按流量付费。

不同的CDN厂商价格不同,收费模式不同,优惠力度不同,覆盖率不同,速率不同,企业根据实际选择。

这些厂商背后,还是基于三大运营商来,在三大运营商的网络基础能力之上进行封装,提供CDN服务。

所以我们用户看视频,视频提供商提供视频,双方都需要给运营商交钱。

用户缴纳网络流量、带宽服务等费用,内容提供商额外提供CDN服务的租赁费用。

为什么运营商自己不提供CDN服务呢?有机会我们后面可以专门整理一个专题。

CDN的问题

既然流量和费用挂钩,那安全性、攻击防御就一直是CDN的老大难问题,如果安全不到位,很可能一波攻击就把所有的流量额度用完了,并且都是无效流量。

另一方面也是安全,是内容的安全,还拿物流举例,如果一批商品已经传输到全球的物流仓库中,突然发现这批商品有问题需要紧急召回,就会麻烦一些,从全球各地的物流仓库中进行清理,甚至可能还会触犯当地法律,扣下商品激进型审核。

对比到CDN,一个全球级别内容传输网络,如果里面有违法的,敏感的内容,后果将不堪设想,所以在内容发布前期有一系列的备案保障发布商的内容质量;确保内容发布后有对应的措施和预案来紧急下线各个CDN节点中有问题的内容,但是这个是有延迟的,很可能发现的时候已经晚了,下线稍微有个1分钟的延迟,影响就已经十分大了。

一文带你了解什么是CDN相关推荐

  1. 一文带你走进C++【内存泄漏】

    背景 ​没想到项目放到线上后,随着请求量的增多,却感觉到首屏速度越来越慢,并且是在持续性地变慢.而且在发布完后(也就是容器重建了),耗时又陡然降下来了. ​因此很合理地怀疑是内存泄漏了.故而在 STK ...

  2. 《一文带你读懂:云原生时代业务监控》

    点击上方蓝字关注我们! 对业务来说,完备的应用健康性和数据指标的监控非常重要,通过采集准确的监控指标.配置合理的告警机制,我们能够提前或者尽早发现问题,并做出响应.解决问题,进而保证产品的稳定性,提升 ...

  3. linux awk语法格式,Awk是什么?一文带运维小白快速掌握Linux Awk用法

    原标题:Awk是什么?一文带运维小白快速掌握Linux Awk用法 作者:a8 Awk.sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以 ...

  4. DNN、RNN、CNN.…..一文带你读懂这些绕晕人的名词

    DNN.RNN.CNN.-..一文带你读懂这些绕晕人的名词 https://mp.weixin.qq.com/s/-A9UVk0O0oDMavywRGIKyQ 「撞脸」一直都是娱乐圈一大笑梗. 要是买 ...

  5. 一文带你深入理解JVM内存模型

    一文带你深入理解JVM内存模型 一.JAVA的并发模型 共享内存模型 在共享内存的并发模型里面,线程之间共享程序的公共状态,线程之间通过读写内存中公共状态来进行隐式通信 该内存指的是主内存,实际上是物 ...

  6. 训练的神经网络不工作?一文带你跨过这37个坑

    近日,Slav Ivanov 在 Medium 上发表了一篇题为<37 Reasons why your Neural Network is not working>的文章,从四个方面(数 ...

  7. 还不会ts?一文带你打开ts的大门

    一文带你打开ts的大门 序言 一.什么是TypeScript? 1.编程语言的类型 2.TypeScript究竟是什么? 二.为什么要学习TypeScript? 1.程序更容易理解 2.效率更高 3. ...

  8. 一文带你了解Java Agent

    转载自  一文带你了解Java Agent Java Agent这个技术,对于大多数同学来说都比较陌生,像个黑盒子.但是多多少少又接触过,实际上,我们平时用的很多工具,都是基于Java Agent实现 ...

  9. 一文带你理解Java中Lock的实现原理

    转载自   一文带你理解Java中Lock的实现原理 当多个线程需要访问某个公共资源的时候,我们知道需要通过加锁来保证资源的访问不会出问题.java提供了两种方式来加锁,一种是关键字:synchron ...

最新文章

  1. mysql profiling表_Mysql-性能分析(profiling 工具)
  2. opencv 人脸识别 (一)训练样本的处理
  3. NSX产品许可介绍( 适用于vSphere 6.2.x,6.3.x和6.4.x的VMware NSX的产品产品(2145269))
  4. ie 无人操作自动关闭_win7的IE自动关闭如何解决?
  5. setUserVisibleHint-- fragment真正的onResume和onPause方法
  6. java常用类的特征_Java常用类-包装类
  7. 计算机txt公式,完整word版本积分公式
  8. 基于SRIO总线的高速通信
  9. safari调试工具h5手机_iOS通过safari真机调试H5页面
  10. 关于axure的 中继器表格合计功能
  11. 大数据背后的无奈与焦虑:“128元连衣裙”划分矮穷挫与白富美?
  12. 配置微信小程序添加企业微信为好友的组件
  13. 基于51单片机的波形发生器(四种波形)(毕业设计资料)
  14. laravel 压缩图片 Intervention/image
  15. android 单位转换工具,Android单位转换工具类
  16. 美国在线计算机硕士申请难度,美国计算机硕士申请难度大PK
  17. 设计技术实现方案时,需要考虑的一些问题
  18. Ubuntu 系统安装时遇到错误“安装ubuntu至少需要8.6gb的磁盘空间”
  19. 百度地图 ( 二 ) 添加覆盖物
  20. shell编程(六) : [shell基础] 基本shell脚本

热门文章

  1. 解决运行python脚本报错:ModuleNotFoundError: No module named ‘numpy‘
  2. (PTA)数据结构(作业)6、队列
  3. dom影像图形成数字地形图_数字正射影像图DOM
  4. Unity设置和显示FPS
  5. properties文件读取
  6. 不用安装Excel使用PSExcel自动处理Excel文件
  7. python中英文字符怎么区分-python 利用utf-8编码判断中英文字符的简单示例
  8. 计算机保研面试自我介绍,计算机保研面试英文自我介绍范文
  9. uboot 1.1.6 移植8900网卡+tftp
  10. Linux 服务器部署 vue(SPA) 与 nuxt(SSR)项目