各位ICT的小伙伴们好呀!
大家一定经常听到CDN这个词,很多不了解的人,可能会听的云里雾里。
那到底什么是CDN呢?
今天我们就来具体聊聊CDN这个技术。
▉ 简单理解:CDN=快递仓库?
CDN英文全称为 Content Delivery Network,直接翻译就是内容分发网络。
其实CDN没那么玄乎,它也很好理解。
我这举个通俗点的例子:CDN就像京东自营仓储中心(不是广告)。
很多朋友购物都会首选京东自营,为什么呢?
其实一个最重要的原因就是物流快,在北京甚至上午下单,下午就能收到东西。
为什么京东能做到这么快的物流送货呢?
这就要归功京东自建仓储中心了,这就跟CDN的原理差不多。
首先京东自营会从源头,也就是厂商拿到货物,然后放到各大仓库中心,当你购物的时候,京东会自动把这个订单分配给离用户最近的仓库处理派发,这样用户就很快能够拿到货物了。早上下单,下午就能送到了,效率提升了好多倍,用户的购物体验提升了很多。
如上图,京东全国各地的自营仓储中心就相当于CDN服务器,货物就相当于要传输的数据。你的订单就相当于一个网络请求。
CDN在用户上网的时候就相当于起到自营仓储中心的作用,让用户能够从离自己最近的CDN服务器进行下载,减少路由次数,提升下载速度,缩短传输时间,提升用户使用体验。
下面我们就来具体聊聊CDN这个技术。
▉ 为什么需要CDN?
不知道很多老网友是否记得,90年代初的时候,拨号上网的年代网速可以说是龟速。即使打开一个静态新闻网页也要等好久时间。
随着网络技术的发展,这种情况有所缓解。
但随着网民的快速增加,人们发现一个奇怪的现象出现,明明我使用了更高带宽的网速,但是看视频、浏览网页、听音乐,还是会很慢,为什么呢?
这里有两个主要的原因,就像我们开车一样,是距离和带宽的问题影响了用户的访问效率。
首先距离问题
假如我们从北京访问美国的一个网站或者视频,中国到美国的直线14000公里,即使网络光缆的传输速度相当于30万公里/s,传输的时延就是467ms,一个来回就是934ms,而且这只是理想状况。
北京到美国中间并不是一根光缆,而且是由无数个小网组成,比如国内的三大运营商,比如你家里使用的是二级,三级网络的运营商。这些运营商之间的传输要做计算处理,就相当于高速公路的收费站,这就导致会有拥堵,会有抖动,让真实的传输速度远不及光速。
这样就导致,当用户从北京到美国直接访问一些视频资源,直播资源,网页资源,很容易感到卡顿。
其次,除了距离的问题,还有带宽的问题。
带宽问题很好理解,当一个人浏览一个视频的时候,视频服务器提供的4Mbps的带宽可以直接给这个人使用,但是当10000个人一起访问这个视频的时候,那么视频服务器就需要40000Mbps(40Gbps)。那么当有更多的人同时访问的时候,可是很少有视频供应商能够提供这么大的带宽。
这个场景就像每年十月一假期放假一样,大家同时出行,但是高速路并不能同时支持那么多辆车并行驶入,这就导致高速路的拥堵。
因为,距离和带宽,决定了用户的网络访问效率,CDN就是专门解决这个问题出现的。
▉ CDN的起源
说到CDN的起源,就要提到3个人和一个公司。
1995年初由MIT麻省理工学院的万维网发明家蒂姆·伯纳斯·李(Tim Berners-Lee)预见到了这种网络拥挤,他说"不久之后,所有网络用户都会感受到网络拥挤的问题"。
蒂姆·伯纳斯·李(Tim Berners-Lee)
所以他向自己在MIT的同事,应用数学教授汤姆·莱顿(Tom Leighton)提出了这个技术挑战,虽然汤姆·莱顿是应用数学的教授,但是他曾是MIT计算机科学实验室算法组的负责人,是并行算法和体系结构方面的著名专家。
汤姆·莱顿(Tom Leighton)
莱顿教授认识到可以在应用数学和算法中找到解决网络拥塞的方法,因此他组建了一个研究小组来解决该问题。
1996年,丹尼尔·莱文(Danny Lewin)于Technion获得计算机科学和数学学士学位后,于同年秋天加入MIT,加入莱顿教授成立的研究小组,由于他的加入,在CDN技术上取得了各种快速且重要的进步。
丹尼尔·莱文(Danny Lewin)
接下来莱顿教授和丹尼尔·莱文(Danny Lewin)一起探索CDN的可能的商业价值,并于1998年共同成立公司:阿卡迈公司(Akamai)(市值百亿美元)。
▉ CDN的原理
利用物理上的多台服务器,将用户需要的音乐、图片、视频、应用程序等资源分布式存储在全球各地,这样用户便可以高效、稳定的就近获取需要资源。
具体步骤如下:
1. 当用户访问网站时,浏览器会向CDN请求网站的静态资源,如图片、电影资源等CDN会根据用户的地理位置、网络状况等因素选择离用户最近的节点,从而提高资源的访问速度。
2.当CDN的节点接收到用户的请求时,会检查自己的缓存中是否有请求的资源,如果有,则直接返回缓存中的资源,否则会向源站请求资源。
3.当CDN的节点向源站请求资源时,源站会将资源传输到CDN的节点上。当CDN的节点接收到源站返回的资源时,会将资源缓存到自己的服务器上,并将资源返回给用户。
4.当源站的资源发生变化时,CDN会自动更新缓存中的资源,从而保证用户获取的是最新的资源。
因此,CDN可以有效地提高网站的访问速度和稳定性,减轻源站的负载压力,提高网站的安全性,降低网站的成本。
▉ CDN的盈利模式
中小型公司不像BAT,一般是没有能力搭建遍布各地的机房提供CDN服务的,但是他们又需要把自己的内容发布给终端用户,因此他们就需要购买CDN服务,固定月租,或者按流量付费。
不同的CDN厂商价格不同,收费模式不同,优惠力度不同,覆盖率不同,速率不同,企业根据实际选择。
这些厂商背后,还是基于三大运营商来,在三大运营商的网络基础能力之上进行封装,提供CDN服务。
所以我们用户看视频,视频提供商提供视频,双方都需要给运营商交钱。
用户缴纳网络流量、带宽服务等费用,内容提供商额外提供CDN服务的租赁费用。
▉ CDN带来的好处
CDN提供了许多改善网站性能和支持核心网络基础设施的好处。例如,CDN可以完成以下任务:
减少页面加载时间
如果页面加载时间过慢,网站流量就会减少。CDN可以减少跳出率,增加用户在你的网站上花费的时间。
降低带宽成本
带宽成本是一笔可观的开支,因为每个传入的网站请求都要消耗网络带宽。通过缓存和其他优化,CDN可以减少原始服务器必须提供的数据量,从而降低网站所有者的托管成本。
增加内容可用性
一次太多的访问者或网络硬件故障都可能导致网站崩溃。CDN服务可以处理更多的Web流量,减少Web服务器的负载。此外,如果一个或多个CDN服务器脱机,其他运行的服务器可以取代它们,以确保不间断的服务。
改善网站安全
分布式拒绝服务(DDoS)攻击试图通过向网站发送大量虚假流量来关闭应用程序。CDN可以通过在多个中间服务器之间分配负载来处理此类流量峰值,从而减少对原始服务器的影响。
▉ CDN的应用场景
1.网站与应用加速
CDN可用于网站或者应用中大量静态资源的加速分发,如各类型图片、html、css、js文件等,可以通过CDN缓存到边缘节点上,当用户访问即可就近获取,降低了用户访问时延同时缓解了源站压力
2.视频、大文件下载分发加速
CDN可以针对各类文件、在线点播视频提供下载、分发加速,比如mp4、flv视频文件或者单个文件大小在20M以上的安装包等文件,CDN可以搭配对象存储OSS使用,提升回源速度,节约回源带宽成本。
3.直播加速
CDN可以为直播分发提供流畅的播放下行链路,借助负载均衡系统将主播端采集的音视频数据推送到接近用户的数千个边缘节点,当观众端发起请求,可以就近取得资源,减少网络抖动风险,增加直播链路稳定性和流畅性。
4.移动应用加速
CDN可以为移动APP更新文件分发,为移动APP内图片、页面、短视频、UGC等内容的优化提供加速分发效果。同时可提供http DNS服务,避免DNS劫持并获得实时精确的DNS解析结果,有效缩短用户访问时间,提升用户体验。
▉ CDN的问题
既然流量和费用挂钩,那安全性、攻击防御就一直是CDN的面临的难题,如果安全不到位,很可能一波攻击就把所有的流量额度用完了,并且都是无效流量。
另一方面是内容的安全,拿物流举例,如果一批商品已经传输到全球的物流仓库中,突然发现这批商品有问题需要紧急召回,就会麻烦一些,从全球各地的物流仓库中进行清理,甚至可能还会触犯当地法律,扣下商品及进型审核。
对比到CDN,一个全球级别内容传输网络,如果里面有违法的,敏感的内容,后果将不堪设想。
所以在内容发布前期有一系列的备案保障发布商的内容质量;确保内容发布后有对应的措施和预案来紧急下线各个CDN节点中有问题的内容,但是这个是有延迟的,很可能发现的时候已经晚了,下线稍微有个1分钟的延迟,影响就已经十分大了。
▉ CDN 下一站:Edge?
在了解了 CDN 的基础后,我们来聊聊 CDN 的未来。如今的 CDN 网络拥有遍布各地、接近用户的庞大服务器集群,自然成为了优势明显的边缘计算资源。随着技术的不断更迭,CDN 有了更多的智能化元素,包括分布式和低延时计算。与此同时,CDN 发展推动下的计算机富余力联同物联网、5G 等背景因素,为边缘计算的发展滋养了土壤。
在 CDN 1.0 时代,CDN 以传输为主,从部署在互联网服务提供商(ISP)的边缘节点(POPs)传输网页内容。
2.0 时代,CDN 能对网络做一些简单处理,以缓存软件为核心,同时配套负载均衡、日志分析、DNS 等服务。
3.0 时代,CDN 开始具备智能调度特征,融合最新的网络技术,如 P2P 技术、清洗中心、高清技术,以及GSLB、VPN(虚拟专用网络)、WAAS(广域网加速业务)等。
下一代 CDN 将从以传输服务为主转变为倚重边缘计算,以计算能力替换传输能力,计算能力包括诸如终端能力适配和边缘转码等。经改造的 CDN 节点可升级为具备存储、计算、传输、安全功能云计算节点,形成处理高频、高交互的海量数据的能力。
虽然是一个新兴技术,但在云计算运营的某些领域,边缘计算可能会更有效率。在 CDN 行业,利用边缘计算来提升自身竞争力都是不错的选择,边缘计算能够助力 CDN 更智能、高效和稳定。
▉ 最后提示:
这里还有一个点需要注意,CDN服务只可以用于静态数据的加速,动态接口不能使用CDN服务。