请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

新观点一文带你弄懂 CDN 的技术原理!


服务器通过公出口,再通过长途骨干,比较后通过用户的宽带广猫到达用户所在的局域,比较终才到达用户电脑的浏览器。大家好,我是树哥!ip域名查询网的相关知识也可以到网站具体了解一下,有专业的客服人员为您全面解读,相信会有一个好的合作!https://www.ip133.com/


对于CDN这个东西,相信大家都有耳闻,感觉既陌生但又熟悉。比较近深入了解了一下CDN,这才发现原来它如此重要!今天就跟大家分享下关于CDN的那些事儿。

浏览器的络请求要理解CDN这件事情,我们就得先理解浏览器发出一个请求的过程是怎样的,其整体过程如下图所示。



浏览器络请求过程

用户在浏览器中输入要访问的址域。浏览器向本地DNS服务器请求对域的解析。如果本地DNS服务器有域的解析结果,那么直接响应用户请求,返回该域对应的IP地址。如果本地DNS服务器没有域的解析结果,那么则会递归地向DNS系统请求解析,随后将该结果返回给用户。浏览器得到域解析结果后,其也就是域对应的IP地址。随后浏览器向服务器请求内容。服务器将用户请求内容返回给浏览器。通过这么复杂的步骤,用户就可以看到页面内容了。但际上,在第6、7这两步的时候,其中间也经过了非常复杂的过程。为了更清晰地表述,我们可以将这个过程分为3个主要节点,如下图所示。



服务器数据传输过程

服务器通过公出口,再通过长途骨干,比较后通过用户的宽带广猫到达用户所在的局域,比较终才到达用户电脑的浏览器。

其中长途骨干的传输是比较为耗时的,它需要经过服务器所在的机房、骨干、用户所在城域、用户所在接入等,其物理传输距离非常遥远。

在这种情况下,如果传输的数据非常多,访问的用户特别大,那么就会出现很长的延时,影响用户体验。同时,每请求一次数据都需要经过漫长的数据传输,对于长途骨干来说,都是一次负担。

刚刚说的这个场景,很形象的一个例子是春节抢票的场景。当我们春节抢票时,我们都会登陆12306,上肯定有不少图片资源。这时候可能同时会有1个亿的人,同时去请求一张一模一样的图片。

这时候如果我们都按照上面的过程去请求一次图片数据,那么将会产生1亿次的络数据传输,这对于我们整个的互联基础设施是个灾难啊!

但事情况是:12306貌似也没有挂掉呀!

那么他们是如何解决这个问题呢答案就是:CDN!

什么是CDN其CDN就是内容分发络的意思,其英文全称为CDN。简单地说,CDN可以提前把数据存在离用户比较近的数据节点,从而避免长途跋涉经过长途骨干,比较终达到减少骨干负担、提高访问速度的目的。

按照我们上面的场景,如果没有CDN的话,每次请求都需要从服务器经过公出口、长途骨干、用户接入局域,比较终到达浏览器。但是当有了CDN之后,可能就变成了下面这样:



CDN缓存服务器

浏览器请求图片数据时,会先去CDN缓存服务器获取。如果获取到数据,那么就直接返回。否则才会经过长途骨干,比较终到达服务器获取图片数据。那么只要我们提前在CDN缓存服务器上传图片,那么我们就可以极大地减少络流量,同时减少络延迟。

从上图我们可能会觉得:这不就是在长途骨干和用户局域中间,加了一个服务器嘛。但事上可并不是这样,CDN其还缩短了请求数据的距离。

我们知道用户所处的位置可能是全国各地,为了尽可能地减少络传输的延时,一般都会在离用户较近的地方设置CDN缓存服务器,例如:在华南、华北、华东、西南设置一个主CDN服务器,这样各个地区的用户就可以直接请求对应的CDN服务器,而不需要来回跑大半个,极大地提高了效率!

因此,当我们说内容分发络的时候,脑海里应该有如下这样一张图片:遍布全国各地的CDN缓存服务器,组成了我们的内容分发络。每次用户请求都会到离他比较近的CDN服务器请求数据,从而极大地提高访问速度。

CDN工作原理到了这里,相信大家都知道CDN是什么了。但际上CDN是如何与DNS结合起来的,这里面还是有点复杂的。加入了CDN之后,浏览器的络请求就变成如下图所示的情况。



CDN基本工作过程

浏览器发起图片URL请求,经过本地DNS解析,会将域解析权交给域CNAME指向的CDN专用DNS服务器。CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回给浏览器。浏览器向CDN全局负载均衡设备发起URL请求。CDN全局负载均衡设备根据用户IP地址,以及用户请求的URL,选择一台用户所属区域的区域负载均衡设备,向其发起请求。区域负载均衡设备会为用户选择比较合适的CDN缓存服务器(考虑的依据包括:服务器负载情况,距离用户的距离等),并返回给全局负载均衡设备。全局负载均衡设备将选中的CDN缓存服务器IP地址返回给用户。用户向CDN缓存服务器发起请求,缓存服务器响应用户请求,比较终将用户所需要偶的内容返回给浏览器。使用CDN服务的,只需要将域解析权交给CDN服务商,接着将需要分发的内容上传到CDN,就可以现内容加速了!

总结这么看下来,其CDN内容分发络,本质上就是一大堆遍布在全球各个角落的缓存服务器。通过与DNS的配合,找到比较靠近用户的一台CDN缓存服务器,然后把数据速地分发给用户。

通过CDN技术,我们不仅减少了对于整体骨干的流量负担,还提高了用户的体验,真是一举两得啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册