CDN百科 | 假如没有CDN,网络世界会变成什么样?
很多人都知道CDN是内容分发加速,所谓内容分发,就是将本来位于源站的内容分发到全国各地的节点,方便用户去就近访问所需的内容。随着移动互联网、云计算等一代代技术变革,CDN已经成为了缓解互联网网络拥塞、提升应用响应速率、改善用户体验的重要互联网基础设施。
前瞻产业研究院的数据表示,2019年超过50%的互联网流量将通过CDN进行加速,到2020年,全球CDN市场规模将增长到157.3亿美元。也就是说,越来越企业开始意识到使用CDN的必要性。尤其是2019年,我国正式进入到5G商用元年,大带宽、低时延、大连接的应用场景将迎来爆发,这对CDN节点覆盖和响应速度都有了更高的要求,这也会推动CDN边缘节点进一步发展。
CDN的“不可或缺”似乎已经成为共识,那么究竟这一共识是怎么产生的呢?假如没有CDN的存在,网络世界又会变成什么样?身为网络原住民的我们会面临什么困扰呢?

场景一:当你要网购
图片载入慢、视频加载中、交易卡住不动……没有网购的畅快体验,好像宝贝都不香了呢

场景二:当你看球赛
解说总比进球快那么几秒钟,欢呼卡不到点上的感觉真的很难受
场景三:当你要上网课
因为卡顿,好好的一节网课上出了鬼畜风格,被老师cue到时再也不用假装静止逃避答题,因为是真的卡住了
场景四:当你的公司要做个网站在线营业
相传当用户访问一个网站时,如果等待网页打开的时间超过8秒,会有超过30%的人放弃等待…… 可怕的8秒魔咒怎么破?花了很多心思让用户来到官网,却留不住他们怎么办?

以上只是列举,如果没有CDN,整个网络世界就会慢下来,拥塞、加载缓慢、卡顿、延时、掉帧、花屏……等等问题接踵而来,访问速度变慢,获取信息速度就会变慢,原本丰富的内容无法观看、令人心动的交互体验无法完成,你是不是会因此而放弃浏览呢?
其实身为重度网民的我们无时无刻不在享受着CDN带来的优质网络访问体验,刷短视频、抢火车票、玩游戏、看直播、下载手机APP、逛论坛博客……这背后的分发加速都是由CDN提供的。尤其是在今年开年的硬核“防疫”背景下,万物皆上云,云买菜、云看病、云上课、云办公、云逛景区、云买豪宅、云上开庭等等情况下,CDN更加成为十分抢手的一种战略资源储备,承载着整个互联网的流量,为数亿网友的宅家生活保驾护航。
那么,CDN的原理究竟是什么?
下面为大家介绍一下CDN的原理。最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:
①当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
②CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
③用户向CDN的全局负载均衡设备发起内容URL访问请求。
④CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
⑥全局负载均衡设备把服务器的IP地址返回给用户。
⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

为什么非CDN不可?
1. 为了提升用户访问体验
将静态内容,比如图片、视频、音频、JS文件、CSS文件、静态页面等内容缓存到CDN节点上,实现用户请求后的就近访问,降低传输链路延时。
2.为了实现跨运营商、跨地域的全网覆盖
互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点商,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。
3.为了保障你的网站安全
CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当于无形中给你的源站添加了一把保护伞,将绝大部分的互联网攻击事件与源站隔离,避免源站遭到恶意攻击而带来的业务停摆或者资产损失。
4.为了异地备援
当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站可以做到永不宕机。
5.为了节约成本投入
使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。
6.为了让你更专注业务本身
CDN加速厂商一般都会提供一站式服务,业务不仅限于CDN,还有配套的云存储、大数据服务、视频云服务等,而且一般会提供7x24运维监控支持,保证网络随时畅通,你可以放心使用。并且将更多的精力投入到发展自身的核心业务之上。
阿里云CDN在全球拥有2800多个节点,可以最大程度保证资源覆盖以及业务稳定性,帮助用户们获得最佳的加速体验。5月20日,阿里云CDN将要举办一场政企安全加速解决方案线上发布会,届时会有产品、技术专家们来和大家一起聊聊关于CDN行业应用、安全体系、国密算法的那些事,点击预约报名:https://yq.aliyun.com/live/2748
CDN百科 | 假如没有CDN,网络世界会变成什么样?的更多相关文章
- CDN百科第三讲 | 如果用了云服务器,还需要做CDN加速吗?
在全站上云的背景下,云计算已经不仅仅是大型互联网公司的独享概念,正在被更多的传统企业.中小企业甚至个人站长所采用.在众多云计算服务中,最常见两个产品就是云服务器和CDN,今天的CDN百科第三讲,就给大 ...
- CDN百科第四讲 | 如何优雅地在云上“摆摊”——做直播带货,你不得不关注的技术
最近,国家政策开始鼓励“地摊经济”,一时间各家企业平台纷纷推出地摊扶持政策,地摊概念股顺势大涨,地摊生态及配套商品也开始走俏,甚至在网络上也涌现出各种“新摊主速成攻略”,万亿的烟火经济俨然已经走上风口 ...
- CDN百科 | 最近,你的APP崩了吗?
过去几个月里,#xxx崩了#这个话题频繁出现在热搜榜上,让不少程序员小哥哥瑟瑟发抖. 从疫情宅家时期著名的视频APP“三连崩”,到全面复工开课后的在线教育平台与办公软件频繁宕机,再到报复性消费引发的点 ...
- 关于cdn原理(就是内容分发网络)
cdn,我理解其本质就是为了解决距离远产生的速度问题,使用就近的服务. 从中国请求美国一台服务器上的图片.一般比较慢,因为距离这么远,网络传输是存在损耗的,距离越远,传输的时间就越长.一般会看到浏览器 ...
- 【CDN】- 什么是CDN
高冷科普: CDN,Content Delivery Network缩写,即内容分发网络.通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量 ...
- 网络协议 16 - DNS 协议:网络世界的地址簿
[前五篇]系列文章传送门: 网络协议 11 - Socket 编程(下):眼见为实耳听为虚 网络协议 12 - HTTP 协议:常用而不简单 网络协议 13 - HTTPS 协议:加密路上无尽头 网络 ...
- CDN技术之--流媒体CDN系统的组成
流媒体业务是一种对实时性.连续性.时序性要求非常高的业务,无论从带宽消耗上还是质量保障上来说,对best-effort的IP网络都是一个不小的冲击 –高带宽要求–高QoS要求–组播.广播要求(目前IP ...
- 七牛云 融合CDN测试域名 -> 融合CDN加速域名
七牛云 融合CDN测试域名 -> 融合CDN加速域名 本篇主要讲解 如何将七牛云融合CDN测试域名 切换到自定义的加速域名上去,为什么会写这篇是因为我收到了一封 [七牛云]测试域名回收通知的邮件 ...
- 什么是个CDN???CDN是干什么的??
1.什么是CDN??? CDN的全称是Content Delivery Network,即内容分发网络.其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络& ...
随机推荐
- python--制作微信好友照片墙
知识来源:https://zhuanlan.zhihu.com/p/73975013 1.环境 os:MAC tool:python 3.7 ,pip3.7 2.前提: 使用pip3.7 instal ...
- webservice初级
在学习webservice的时候,经常将ns和url花了好久时间才理解过来,这里备份下! 首先定义接口: @WebService public interface IService { @WebRes ...
- 2018-06-17 js数组
数组的定义:① var arr=new Array(xx,xx,xx); ②var arr=[yy,yy,,yy]; 数组的查看:arr[x]; 数组的修改:arr[x]=xx; 数组的遍历:①for ...
- Python dict字典方法完全攻略(全)
我们知道,Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法,例如: >>> dir(dict)['clear', 'copy', ' ...
- lonic常用组件之五------按钮
一.Ionic常用组件之五------按钮 <ion-button color="主题色" size="small/large" expand=& ...
- 第三方动画库 Lottie嵌入记录
预览网址 https://lottiefiles.com/preview 在Podfile文件中加入 pod 'lottie-ios’ pod install 把 lottie-ios加入到项目中 ...
- 【常用工具】vagrant的box哪里下?镜像在哪儿找?教你在vagrant官网下载各种最新.box资源
进入vagrant官网 : https://www.vagrantup.com/ 点击findbox[寻找box],进入有很多box的列表 : https://app.vagrantup.com/bo ...
- 引入mybatis-plus报 Invalid bound statement错误怎么办,动动手指改一个地方就行
错误 Mybatis-Plus (简称MP) 是mybatis的一个增强工具,在mybatis的基础上只做增强不做改变,简化了开发效率.其实就是帮我们封装了一些简单的curd方法,可以直接调用,不必再 ...
- [Unity2d系列教程] 006.Unity如何根据图片自动生成Animator
Unity制作2D产品的时候,我们在制作动画的时候,要不断的生成Animation,Animator等等资源,如果动画一多的话,就变得麻烦.由于Unity是支持插件开发的,我们可以添加一个Editor ...
- centos6.4中文输入法
在虚拟机中装了centos6.4之后,一直使用命令行,没有用到编辑器编辑中文或者浏览器中文搜索,所以没有注意到里边中文输入的重要性.在网上有看到说如果用的是中文版本应该有自带的中文输入法,然后用快捷键 ...