- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章到底什么是CDN?由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
如今这个移动互联网时代,越来越多的人使用手机观看视频,丰富自己的娱乐生活.
可是,大家在追剧的时候,有没有想过一个问题——为什么有时候明明自己的网速很快,但观看视频时,仍然卡顿?
回答这个问题之前,我们先来做一道算术题.
以之前很火的“延禧攻略”为例,当时曾经在某视频APP实现了1千万用户同时在线观看.
如果大家观看的是1080p清晰度的视频(理论上需要4Mbps带宽),那么,累计需要的流量带宽是10,000,000×4Mbps=40,000,000Mbps≈40Tbps.
对于优酷、爱奇艺这样的互联网视频内容提供商来说,这无疑是非常巨大的流量压力.
我们普通计算机的网卡,是1Gbps的带宽。如果是服务器,现在有10Gbps的网卡(万兆网卡).
如果优酷有一台超级服务器,那么,这台超级服务器就需要4000块万兆网卡,而且必须百分之百跑满速度,才能够实现这1千万用户的流畅观看.
对于一些实力不够的服务商,或者突发流量陡增的情况,就会造成拥塞,从而导致卡顿和延时.
有这么一个说法:当用户打开一个页面,等待超过4秒,他就会关闭这个页面。也就是说,这个用户就会流失.
这应该是大家最讨厌的符号:
用户的流失,就意味着金钱的流失。没有任何一家互联网服务提供商希望这样的情况发生。所以,它们必须想方设法让自己的内容尽快呈现,缩短用户的等待时间,提升用户的体验.
而CDN,就是一项非常有效的缩短时延的技术.
CDN的诞生 。
上世纪80年代,互联网技术刚刚走入民用领域.
人们主要通过拨号来访问网络,带宽很低,用户也很少,所以,没有对骨干网以及服务器带来压力.
随着互联网的爆炸式发展,用户越来越多,加上宽带接入网的出现,内容源服务器和骨干网络的压力越来越大,无法及时响应用户的访问需求.
1995年,麻省理工学院教授、互联网的发明者之一,Tim Berners-Lee博士发现,网络拥塞越来越严重,将会成为互联网发展的最大障碍.
Tim Berners-Lee 。
于是,他提出一个学术难题,希望有人能发明一种全新的、从根本上解决问题的方法,来实现互联网内容的无拥塞分发.
当时Tim Berners-Lee博士的隔壁,是Tom Leighton教授的办公室。他是一位麻省理工学院应用数学教授.
Tom Leighton 。
他被Berners-Lee的挑战激起了兴趣,于是他请研究生Danny C. Lewin和其他几位顶级研究人员一起破解这个技术难题.
Danny C. Lewin 。
最终,他们开发了利用数学运算法则来处理内容的动态路由算法技术,有效地解决了这个难题。这个技术,就是CDN.
他们还为此专门成立了公司,发挥其商业价值。这个公司,就是后来鼎鼎大名的CDN服务鼻祖——Akamai公司.
CDN的原理 。
CDN这个技术其实说起来并不复杂。它最初的核心理念,就是将内容缓存在终端用户附近.
内容源不是远么?那么,我们就在靠近用户的地方,建一个缓存服务器,把远端的内容,复制一份,放在这里,不就OK了?
因为这项技术是把内容进行了分发,所以,它的名字就叫做CDN——Content Delivery Network,内容分发网络.
具体来说,CDN就是采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。(有点像电商的本地仓吧?) 。
大家可能觉得,这个不就是“镜像服务器”嘛?其实不一样。镜像服务器是源内容服务器的完整复制。而CDN,是部分内容的缓存,智能程度更高.
确切地说,CDN=更智能的镜像+缓存+流量导流.
而且还需要注意的是,CDN并不是只能缓存视频内容,它还可以对网站的静态资源(例如各类型图片、html、css、js等)进行分发,对移动应用APP的静态内容(例如安装包apk文件、APP内的图片视频等)进行分发.
我们来举个例子,看看CDN的具体工作流程.
如果某个用户想要访问优酷的视频点播内容,那么:
。
具体步骤:
①、当用户点击APP上的内容,APP会根据URL地址去本地DNS(域名解析系统)寻求IP地址解析.
②、本地DNS系统会将域名的解析权交给CDN专用DNS服务器.
③、CDN专用DNS服务器,将CDN的全局负载均衡设备IP地址返回用户.
④、用户向CDN的负载均衡设备发起内容URL访问请求.
⑤、CDN负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的缓存服务器.
⑥、负载均衡设备告诉用户这台缓存服务器的IP地址,让用户向所选择的缓存服务器发起请求.
⑦、用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端.
⑧、如果这台缓存服务器上并没有用户想要的内容,那么这台缓存服务器就要网站的源服务器请求内容.
⑨、源服务器返回内容给缓存服务器,缓存服务器发给用户,并根据用户自定义的缓存策略,判断要不要把内容缓存到缓存服务器上.
CDN的好处 。
采用CDN技术,最大的好处,就是加速了内容的访问——用户与内容之间的物理距离缩短,用户的等待时间也得以缩短.
而且,分发至不同线路的缓存服务器,也让跨运营商之间的访问得以加速.
例如中国移动手机用户访问中国电信网络的内容源,可以通过在中国移动架设CDN服务器,进行加速。效果是非常明显的.
此外,CDN还有安全方面的好处。内容进行分发后,源服务器的IP被隐藏,受到攻击的概率会大幅下降。而且,当某个服务器故障时,系统会调用临近的健康服务器 进行服务,避免对用户造成影响.
正因为CDN的好处很多,所以,目前所有主流的互联网服务提供商,都采用了CDN技术。所有的云服务提供商,也都提供了CDN服务(价格也不算贵,按流量计费).
某某云的CDN服务 。
CDN的弱点 。
CDN虽然有很多的优点,但它并不是万能的。在部分场景下,CDN并不是适用.
首先,CDN适用于静态的内容,不适用动态的内容。用户动态的实时交互数据,是难以缓存的。例如一些频繁修改的数据库表单内容等。(大家可能没想到,直播其实也是可以使用CDN的。感兴趣的同学可以搜一下“直播CDN”。) 。
其次,很多应用提供商和内容服务商,为了保护自身的数据私密,不允许第三方公司CDN缓存他们的数据,只允许自家CDN缓存自家的数据。这个对用户体验会造成一定影响.
第三,建设CDN意味着不菲的资金投入。不管是自己买服务器搭建CDN,还是租用云服务提供商的CDN服务,都需要花钱。而且,区域越多,花的钱越多。这些CDN到底有没有人用,利用率是多少,很难精准预测。也许大部分时间里,利用率很低,就造成了资源浪费.
CDN和通信 。
CDN是从传统IT行业发展起来的一项服务。但是,对于我们通信行业来说,CDN也有非常大的商业价值.
互联网服务提供商采用CDN,是以存储换时延。花钱购置CDN服务器或云计算服务,以此换取更好的用户体验.
通信运营商也追捧CDN,但它们的目的,是以存储换带宽——通过服务“下沉”,减轻上层骨干网络的流量压力,避免硬件扩容,降低网络建设成本.
这个很好理解啊,如果大量的业务流量数据在骨干网跑来跑去,骨干网肯定吃不消,要拼命扩容。如果这些业务流量数据在底层就被解决了,那么,骨干网的带宽压力自然就减轻了。不是么?
很多运营商已经将CDN下沉到地市级,以此减轻压力,同时可以提升用户体验.
讲到这里,广大通信汪们是不是想到了什么?
没错,这个和现在非常热门的移动边缘计算,有异曲同工之妙.
一直以来,随着网络能力的不断提升,内容资源和计算能力都在不断“往上走”,走到云计算中心。由一个核心云计算中心,对所有终端节点提供服务.
结果,人们回过头来发现,对于非常大的面积区域,非常多的用户数量,尤其是国家级或世界级的服务,不管你把这个中心设在哪里,也不管你这个中心的能力有多强大,都无法克服物理距离上的障碍,会导致无法忍受的延时和网络拥塞.
于是乎,人们就开始把云计算中心进行部分“下沉”,这才有了雾计算、霾计算。甚至人们开始质疑,集中式计算是否会最终被分布式计算所取代?
区块链,就是分布式计算的代表 。
在小枣君看来,不存在谁完全取代谁的问题。不同的场景带来不同的需求,不同的需求需要不同的网络架构。场景的多样化是现实存在的,所以,网络架构的灵活化,也是必然的选择.
CDN和边缘计算到底是什么关系呢?
其实,我个人认为,CDN可以算是边缘计算的一种特殊形式。CDN主要是存储能力和少部分计算能力的下沉,功能较为有限。真正的MEC边缘计算,能力更强大,功能更全面,更加偏向算力下沉,而非内容下沉.
好啦,以上就是关于CDN的介绍,希望对大家有所帮助!感谢大家的耐心阅读,我们下期再见.
原文地址:https://mp.weixin.qq.com/s/yM99qqTZYuXslH5Ae9e1rw 。
最后此篇关于到底什么是CDN?的文章就讲到这里了,如果你想了解更多关于到底什么是CDN?的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如何使用 CDN 将语义 UI 包含到 HTML 页面? CDN链接为https://cdnjs.com/libraries/semantic-ui ,但是怎么使用呢? 最佳答案 您只需复制要用于语义
我有一个我似乎无法解决的特定用例。 典型的 gcloud 设置: K8S集群 一个 gcloud 存储桶 gcloud 负载均衡器 我设法获得了我的域 https://cdn.foobar.com/u
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我有 blob 存储和 CDN 端点,用于存储我的静态内容。 现在我想更新 app.js 文件,因为它被修改了,但是当我将此文件写入 blob 时,CDN 仍然给我旧的 app.js 文件。如何更新我
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
出于性能原因,我希望通过 Azure CDN 提供很少更改的内容。但是,当内容确实发生变化时,更新的数据立即可用很重要。理想情况下,我可以设置一个长 TTL,然后在我更新内容时主动告诉 CDN 使内容
以下main.js代码不遵守优先级顺序(有时underscore.js在backbone.js需要时不会加载它): require({ baseUrl:'/scripts', prio
为什么我不能重用以前删除的端点的名称?例如,如果我创建一个名为“acme-cdn1”的端点,将其删除,然后尝试创建一个具有相同名称的新端点,我会收到以下消息:“错误,该端点名称已经存在。”是否有必要删
我不确定我是否使用 CDN 还是本地。本地是否意味着jquery资源需要安装在智能手机上,以便离线应用程序成为可能? 最佳答案 在这种情况下,本地意味着您自己托管文件(作为网站的一部分),而不是依赖
一种不言自明的问题:为什么建议从 CDN 加载 jQuery 或任何其他库? 最佳答案 CDN 将比您的服务器更快。 服务器具有最大连接数。浏览器将同时请求的数量限制在单个域中。将您的库卸载到 CDN
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我知道 Google AMP 缓存会缓存网站的有效 AMP 页面和资源文件,并通过 .cdn.ampproject.org/提供它们。我做了一些测试,它对我的网站运行良好。 我在一家受欢迎的网站工
我有一个用静态 html/js/css 编写的 HTML5 应用程序(它实际上是用 Dart 编写的,但会编译成 javascript)。我通过 CDN 提供应用程序文件,REST api 托管在一个
我不太确定如何防止谷歌将我的 CDN 域与我的主域名混合编入索引。我想在直接访问 CDN 域时通过 .htaccess 重定向到主域。 事实: 两个域都指向文件系统中的同一个位置。 两者共享相同的 r
引自此处:https://www.ampproject.org/docs/get_started/about-amp.html AMP is a way to build web pages for
我刚刚尝试设置 Azure CDN 帐户,到目前为止(现在已经持续了四个小时)我还无法让它返回除 400 和 404 错误之外的任何内容。 如果这是一个真正的 CDN,我需要做的就是将 CDN 指向我
我们希望提供来自少数可用 AWS 区域的大量视频文件。目标受众来自全局多个地点。不保证连接速度。因此,绝对需要 CDN(最好是 CloudFront)。 视频需要受到保护,因此只有在用户经过身份验证和
有没有content delivery network (CDN)正在托管google-code-prettify ? 我正在 TypePad 上建立一个博客如果可能的话,希望利用 CDN。 最佳答案
在我的应用程序中,使用 ember-cli 开发,我还需要一些外部资源,例如 bootstrap;现在我通过 Brocfile 导入它: app.import('bower_components/bo
我想知道是否有像 960GS 这样的 CSS 框架的 CDN。因为我认为很多人都在使用它。 最佳答案 我还没有尝试过 cachedcommons.org,但他们有一个 960 的链接,听起来像你所要求
我是一名优秀的程序员,十分优秀!