让我们先从一个例子,来简单类比一下,什么是cdn技术。在二十多年前,大部分城市主流的购物方式,都是去某某百货商店、某某商场,很多人挤在一块小小的柜台前,挑选自己想要的东西。这明显是算不上方便的。不论你买的是大件商品还是油盐酱醋,都要去到一个集中的商店里去寻找,可能有的时候还会遇到断货的情况,大老远的跑去却要悻悻而归。

虽然现在我们也依然有很多大型商场,但是很多日用商品我们是不再需要去百货商场购买的了。这就是因为仓储式购物场所的出现,也就是大家现在司空见惯的超市、便利店。

超市的出现,就是把本来需要集中的购物场所打散,把人们需要经常购买的商品提前放置在自己的卖场里,供顾客前来选购。

cdn历史及现状(你对CDN了解多少)(1)

什么是CDN?

对于CDN来说,就好比是超市或者便利店,把本来需要集中获取的资源缓存到边缘节点,使用户就近访问。

CDN的全称是Content Delivery Network/Content Distribution Network,即内容分发网络。它解决的问题,就是在网络里增加一层缓存层,将源站的资源分发到距离用户最近的网络边缘节点,供用户快速访问。

cdn历史及现状(你对CDN了解多少)(2)

CDN的优势

cdn历史及现状(你对CDN了解多少)(3)

边缘节点缓存了什么?

当用户的客户端做出了一个请求后,客户端首先会向CDN边缘节点发起请求,边缘节点则会检测用户请求数据的缓存是否过期,如果没有过期,则直接响应请求,将缓存数据返回用户,完成本次请求;如果数据过期,那么边缘节点会继续向中间节点发出请求(同理,如果中间节点数据过期,则回源到源站请求),来获取最新的数据。

CDN工作原理

这里就带来了另一个问题了,用户的客户端是怎么找到距离他最近的CDN边缘节点的呢?

cdn历史及现状(你对CDN了解多少)(4)

如上图所示,这里解决了两个问题:

1、访问域名如何映射到CDN地址?

2、如何找到距离用户最近的节点?

下面我们来详细描述一下整个流程。

1、访问域名如何映射到CDN地址

当你通过浏览器访问example.com域名时,假设这就是个静态域名,并且做了CDN静态资源加速。

A、首先会经过本地DNS解析器,查看本机的/etc/hosts文件是否存在域名对应的ip,如果找到,直接使用该ip发起请求。否则执行步骤B;

B、由于本地DNS服务器解析,如果在本地DNS缓存中找到域名对应ip,则直接用该ip访问。否则继续步骤C;

C、本地DNS服务器会向根域名服务器发起请求,根域名服务器返回顶级DNS域名服务器地址,让你去那里查找地址;

D、本地DNS服务器会向顶级DNS域名服务器发起请求,.com顶级域名服务器返回权威DNS域名服务器地址,让你去那里查找地址;

E、本地DNS服务器继续向example.com权威DNS域名服务器发起请求,权威DNS域名服务器一看,这个域名我可以解析,发现是有做过CDN加速域名配置的,它会CNAME到一个域名:xxx.example.cdn.com。

到此,我们终于找到了这个CDN域名地址。如果你不需要找距离用户最近的节点,通过此CDN域名,就可以找到正确的ip地址了。

各位看官怎么看呢?

想了解更多有关服务器的知识和内容请关注我吧或者点击下方的了解更多进入小湾的主页!

,