很多人都知道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,网络世界会变成什么样?的更多相关文章

  1. CDN百科第三讲 | 如果用了云服务器,还需要做CDN加速吗?

    在全站上云的背景下,云计算已经不仅仅是大型互联网公司的独享概念,正在被更多的传统企业.中小企业甚至个人站长所采用.在众多云计算服务中,最常见两个产品就是云服务器和CDN,今天的CDN百科第三讲,就给大 ...

  2. CDN百科第四讲 | 如何优雅地在云上“摆摊”——做直播带货,你不得不关注的技术

    最近,国家政策开始鼓励“地摊经济”,一时间各家企业平台纷纷推出地摊扶持政策,地摊概念股顺势大涨,地摊生态及配套商品也开始走俏,甚至在网络上也涌现出各种“新摊主速成攻略”,万亿的烟火经济俨然已经走上风口 ...

  3. CDN百科 | 最近,你的APP崩了吗?

    过去几个月里,#xxx崩了#这个话题频繁出现在热搜榜上,让不少程序员小哥哥瑟瑟发抖. 从疫情宅家时期著名的视频APP“三连崩”,到全面复工开课后的在线教育平台与办公软件频繁宕机,再到报复性消费引发的点 ...

  4. 关于cdn原理(就是内容分发网络)

    cdn,我理解其本质就是为了解决距离远产生的速度问题,使用就近的服务. 从中国请求美国一台服务器上的图片.一般比较慢,因为距离这么远,网络传输是存在损耗的,距离越远,传输的时间就越长.一般会看到浏览器 ...

  5. 【CDN】- 什么是CDN

    高冷科普: CDN,Content Delivery Network缩写,即内容分发网络.通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量 ...

  6. 网络协议 16 - DNS 协议:网络世界的地址簿

    [前五篇]系列文章传送门: 网络协议 11 - Socket 编程(下):眼见为实耳听为虚 网络协议 12 - HTTP 协议:常用而不简单 网络协议 13 - HTTPS 协议:加密路上无尽头 网络 ...

  7. CDN技术之--流媒体CDN系统的组成

    流媒体业务是一种对实时性.连续性.时序性要求非常高的业务,无论从带宽消耗上还是质量保障上来说,对best-effort的IP网络都是一个不小的冲击 –高带宽要求–高QoS要求–组播.广播要求(目前IP ...

  8. 七牛云 融合CDN测试域名 -> 融合CDN加速域名

    七牛云 融合CDN测试域名 -> 融合CDN加速域名 本篇主要讲解 如何将七牛云融合CDN测试域名 切换到自定义的加速域名上去,为什么会写这篇是因为我收到了一封 [七牛云]测试域名回收通知的邮件 ...

  9. 什么是个CDN???CDN是干什么的??

    1.什么是CDN??? CDN的全称是Content Delivery Network,即内容分发网络.其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络& ...

随机推荐

  1. git工作中最常用的用法教程,不走命令行

    ·1.1 git的概述 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.  Git 是 Linus Torvalds 为了帮助管理 Lin ...

  2. Gradle 多环境URL请求设置

    在开发过程中,多环境配置是经常遇到的,比如在Android开发过程中,在不同环境上请求服务器的URL是不同的,使用Gradle进行管理,是非常方便的. 首先查看工程目录结构: 使用AndroidStu ...

  3. 2、接口测试(Composer)

    前言 Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的. 对应没有接口测试文档的时候,可以直接抓完包后,copy请求参数,修改下就可以了. ...

  4. webpack从零的实践(新手良药)

    1. 什么是webpack? 本质上,webpack是一个现代javascript应用程序的静态模块打包器.webpack处理应用程序时,它会递归地构建一个依赖关系图(dependency graph ...

  5. 黑马程序员_毕向东_Java基础视频教程——常量(随笔)

    常量 常量表示不能被改变的数值. Java常量的分类 整型常量.所有整数 小数常量.所有小数 布尔型常量.特殊只有两个值:true.false. 字符常量.将一个数字字母或者符号用单引号(' ')标识 ...

  6. Postman学习之Postman简介

    前言:对于测试人员来说,接口测试是必须掌握的一个技能:在工作中掌握了接口自动化测试无疑是如虎添翼,那么怎么开展接口测试呢?下面将介绍一款接口测试的神器——postman 1.postman背景介绍 p ...

  7. Spark_Streaming整合Kafka

    Spark Streaming 整合 Kafka ​ 一.版本说明二.项目依赖三.整合Kafka        3.1 ConsumerRecord        3.2 生产者属性        3 ...

  8. React:redux+router4搭建应用骨架

    可能是短期内关于react的对后一篇笔记.假设读者对redux和router4有基本了解. 缘由: 现在网上很多关于react+redux的文章都是沿用传统的文件组织形式,即: |--componen ...

  9. 在php文件中xml格式

    本人是小白,有错误的地方请指正,勿喷! 在写一个调查问卷的过程中用到了xml文件,如想要了解,可以通过以下链接简单学习:http://www.w3school.com.cn/xml/ 所用工具:php ...

  10. Centos 安装 docker 和 docker-compose

    一.docker安装 1.卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ d ...