【转】CDN 分发解析

转自:
https://mp.weixin.qq.com/s/bHGxezDzhYNSB7XV44CKtQ

浏览器的网络请求

在这里插入图片描述

  1. 用户在浏览器中输入要访问的网址域名
  2. 浏览器向本地 DNS 服务器请求对该域名的解析
  3. 如果本地 DNS 服务器有该域名的解析结果,则直接响应用户请求并返回该域名对应的 IP 地址
  4. 如果本地 DNS 服务器没有该域名的解析结果,则会递归地向 DNS 系统请求解析,随后将结果返回给用户
  5. 浏览器得到域名解析结果(即域名对应的 IP 地址)
  6. 浏览器向服务器请求内容
  7. 服务器将用户的请求内容返回给浏览器

实际上,在第 6、7 这两步的时候,中间也经过了非常复杂的过程,我们可以将这个过程大致划分为 3 个主要节点。

在这里插入图片描述

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

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

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

当春节抢票时,我们都会登陆 12306 网站,网站上肯定有不少的图片资源。这时候可能同时会有 1 亿的用户,同时去请求一张一模一样的图片。如果这时候都按照上面的过程去请求一次图片数据,那么将会产生 1 亿次的网络数据传输。

什么是 CDN?

CDN 就是内容分发网络,其英文全称为 Content Delivery Network。

简单来说,CDN 可以提前把数据存储在离用户最近的数据节点上,从而避免长途跋涉地经过长途骨干网,实现减少骨干网负担、提高访问速度的目的。

按照上面的场景,如果没有 CDN,每次请求都需要从网站服务器经过公网出口、长途骨干网、用户所在局域网,最终才到达浏览器。

当引入了 CDN 之后,请求过程就会发生变化。

在这里插入图片描述

浏览器请求图片数据时,会先去 CDN 缓存服务器中获取。如果成功获取到了数据,那么就直接返回。否则才会经过长途骨干网,最终到达网站服务器去获取图片数据。

那么只要提前在 CDN 缓存服务器上传图片,就可以极大地减少网络流量,同时减少网络延迟。

事实上 CDN 还缩短了请求数据的距离。

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

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

CDN 的工作原理

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

使用 CDN 服务的网站,只需要将域名解析权交给 CDN 服务商,并将需要分发的内容上传到 CDN,就可以实现内容加速了。

在这里插入图片描述

  1. 浏览器发起图片 URL 请求,经过本地 DNS 解析,将域名解析权交给域名 CNAME 所指向的 CDN 专用 DNS 服务器
  2. CDN 的 DNS 服务器将 CDN 的全局负载均衡设备的 IP 地址返回给浏览器
  3. 浏览器向 CDN 全局负载均衡设备发起 URL 请求
  4. CDN 全局负载均衡设备根据用户的 IP 地址、用户请求的 URL,选择一台用户所属区域内的区域负载均衡设备,并向其发起请求
  5. 区域负载均衡设备会为用户选择一台最合适的 CDN 缓存服务器(考虑的依据包括:服务器负载情况、距离用户的距离等),并返回给全局负载均衡设备
  6. 全局负载均衡设备将选中的 CDN 缓存服务器的 IP 地址返回给用户
  7. 用户向 CDN 缓存服务器发起请求,缓存服务器响应用户的请求,最终将用户所需要的内容返回给浏览器
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值