马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

什么是CDN-CDN的原理

  [复制链接]
查看3364 | 回复18 | 2019-12-26 09:01:54 | 显示全部楼层 |阅读模式
现在这个移动互联网期间,越来越多的人使用手机观看视频,丰富本身的娱乐生存。
但是,各人在追剧的时间,有没有想过一个题目——为什么偶然候明显本身手机的网速很快,但观看视频时,仍旧卡顿?
090513tq6jafmjs6hw6w11.jpg

回复这个题目之前,我们先来做一道算术题。
以之前很火的“延禧攻略”为例,当时曾经在某视频APP实现了1千万用户同时在线观看。
如果各人观看的是1080p清楚度的视频(理论上必要4Mbps带宽),那么,累计必要的流量带宽是10,000,000×4Mbps=40,000,000Mbps=40Tbps。
对于优酷、爱奇艺如许的互联网视频内容提供商来说,这无疑优劣常巨大的流量压力。
我们平常盘算机的网卡,是1Gbps的带宽。如果优酷有一台超等服务器,那么,这台超等服务器就必要4万块网卡,而且必须百分之百跑满速率,才华够实现这1千万用户的流通观看。
对于一些力气不敷的服务商,大概突发流量陡增的环境,就会造成拥塞,从而导致卡顿和延时。
有这么一个说法:当用户打开一个页面,期待凌驾4秒,他就会关闭这个页面。也就是说,这个用户就会流失。
用户的流失,就意味着款子的流失。没有任何一家互联网服务提供商盼望如许的环境发生。以是,它们必须想方想法让本身的内容尽快出现,收缩用户的期待时间,提拔用户的体验。
而CDN,就是一项非常有用的收缩时延的技能。
CDN的诞生

上世纪80年代,互联网技能刚刚走入民用范畴。
人们紧张通过拨号来访问网络,带宽很低,用户也很少,以是,没有对骨干网以及服务器带来压力。
随着互联网的爆炸式发展,用户越来越多,加上宽带接入网的出现,内容源服务器和骨干网络的压力越来越大,无法实时相应用户的访问需求。
1995年,麻省理工学院教授、互联网的发明者之一,Tim Berners-Lee博士发现,网络拥塞越来越严重,将会成为互联网发展的最大停滞。
090514ipw112l11qe129zz.jpg

Tim Berners-Lee
于是,他提出一个学术困难,盼望有人能发明一种全新的、从根本上管理题目的方法,来实现互联网内容的无拥塞分发。
当时Tim Berners-Lee博士的隔壁,是Tom Leighton教授的办公室。他是一位麻省理工学院应用数学教授。
090514v8nlmfcz7ijsnob7.jpg

Tom Leighton
他被Berners-Lee的寻衅激起了爱好,于是他请研究生Danny C. Lewin和其他几位顶级研究职员一起破解这个技能困难。
090515pp2dhz3neeweorbb.jpg

Danny C. Lewin
终极,他们开发了使用数学运算法则来处理处罚内容的动态路由算法技能,有用地管理了这个困难。这个技能,就是CDN。
他们还为此专门建立了公司,发挥其商业代价。这个公司,就是后来鼎鼎台甫的CDN服务鼻祖——Akamai公司。
090515x4tme5vk695o52t6.jpg

Akamai
CDN的原理

CDN这个技能实在提及来并不复杂,最初的核生理念,就是将内容缓存在终端用户附近。
内容源不是远么?那么,我们就在靠近用户的地方,建一个缓存服务器,把远端的内容,复制一份,放在这里,不就OK了?
090516rl1k1cmwi3p97wcw.gif

传统网络与CDN网络的区别
由于这项技能是把内容举行了分发,以是,它的名字就叫做CDN——Content Delivery Network,内容分发网络。
具体来说,CDN就是接纳更多的缓存服务器(CDN边缘节点),布放在用户访问相对会合的地域或网络中。当用户访问网站时,使用全局负载技能,将用户的访问指向距离近来的缓存服务器上,由缓存服务器相应用户哀求。(有点像电商的当地仓吧?)
各人可能以为,这个不就是“镜像服务器”嘛?实在不一样。镜像服务器是源内容服务器的完备复制。而CDN,是部分内容的缓存,智能程度更高。
确切地说,CDN=更智能的镜像+缓存+流量导流。
而且还必要留意的是,CDN并不是只能缓存视频内容,它还可以对网站的静态资源(比方各范例图片、html、css、js等)举行分发,对移动应用APP的静态内容(比方安装包apk文件、APP内的图片视频等)举行分发。
我们来举个例子,看看CDN的具体工作流程。
090517m8c941qv1waq1947.jpg

如果某个用户想要访问优酷的视频点播内容,那么:
具体步调:
①、当用户点击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是从传统IT行业发展起来的一项服务。但是,对于我们通讯行业来说,CDN也有非常大的商业代价。
互联网服务提供商接纳CDN,是以存储换时延。费钱购置CDN服务器或云盘算服务,以此换取更好的用户体验。
通讯运营商也追捧CDN,但它们的目的,是以存储换带宽——通过服务“下沉”,减轻上层骨干网络的流量压力,制止硬件扩容,低落网络建立本钱。
这个很好明确啊,如果大量的业务流量数据在骨干网跑来跑去,骨干网肯定吃不消,要冒死扩容。如果这些业务流量数据在底层就被管理了,那么,骨干网的带宽压力自然就减轻了。不是么?
090517vbvppzjpjt000p0u.jpg

CDN通讯架构
许多运营商已经将CDN下沉到地市级,以此减轻压力,同时可以提拔用户体验。
不停以来,随着网络本领的不停提拔,内容资源和盘算本领都在不停“往上走”,走到云盘算中心。由一个焦点云盘算中心,对全部终端节点提供服务。
结果,人们回过头来发现,对于非常大的面积地域,非常多的用户数量,尤其是国家级或天下级的服务,不管你把这个中心设在那里,也不管你这个中心的本领有多强大,都无法降服物理距离上的停滞,会导致无法忍受的延时和网络拥塞。
于是乎,人们就开始把云盘算中心举行部分“下沉”,这才有了雾盘算、霾盘算。乃至人们开始质疑,会合式盘算是否会终极被分布式盘算所代替?
现实上,不存在谁完全代替谁的题目。不同的场景带来不同的需求,不同的需求必要不同的网络架构。场景的多样化是现实存在的,以是,网络架构的机动化,也是一定的选择。
即将到来的5G,提出三大场景和切片,用同一张网络,满足不同的需求,就表现了如许的操持头脑,顺应了潮流的发展方向。
总而言之,对于网络技能来说,不管是黑猫、白猫,总之,能抓到老鼠的,就是好猫。岂非不是么?
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则