网络 系列 CDN

开启 网络 探索新篇章

Posted by lichao modified on July 12, 2020

CDN 全称: Content Delivery Network 或 Content Ddistribute Network,即内容分发网络

CDN 回源

回源是指浏览器在发送请求报文时,响应该请求报文的是源站点的服务器,而不是各节点上的缓存服务器(比如nginx开启缓存),那么这个过程相对于通过各节点上的缓存服务器来响应的话就称作为回源。回源的请求或流量太多的话,有可能会让源站点的服务器承载着过大的访问压力,进而影响服务的正常访问。

回源域名一般是cdn领域的专业术语,通常情况下,是直接用ip进行回源的,但是如果客户源站有多个ip,并且ip地址会经常变化,对于cdn厂商来说,为了避免经常更改配置(回源ip),会采用回源域名方式进行回源,这样即使源站的ip变化了,也不影响原有的配置。

常规的CDN都是回源的。即:当有用户访问某一个URL的时候,如果被解析到的那个CDN节点没有缓存响应的内容,或者是缓存已经到期,就会回源站去获取。如果没有人访问,那么CDN节点不会主动去源站拿的。

源站内容有更新的时候,源站可以主动把内容推送到CDN节点。参考阿里云url预热https://help.aliyun.com/knowledge_detail/40106.html?spm=a2c4e.11153987.0.0.419f6ec5UvPSJ1 CDN本来是给我们的网站加速的,但是有时会因为不合适的回源策略给服务器带来负担,只有选择正确的策略才能给自己的网站带来更高的访问效率。

作用

静态资源

动态资源

这部分请求固然是会回源的,可以通过 CDN 的加速来起到快速回源的效果的。

目标

解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度和成功率。

控制时延无疑是现代信息科技的重要指标,CDN 的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性。

基本思路

尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

基本过程

网络

  1. 用户在浏览器中输入要访问的域名
  2. 浏览器向 DNS 服务器请求对域名进行解析。由于 CDN 对域名解析进行了调整,DNS 服务器会最终将域名的解析权交给 CNAME 指向的 CDN 专用 DNS 服务器。
  3. CDN 的 DNS 服务器将 CDN 的负载均衡设备 IP 地址返回给用户。
  4. 用户向 CDN 的负载均衡设备发起内容 URL 访问请求。
  5. CDN 负载均衡设备会为用户选择一台合适的缓存服务器提供服务。 选择的依据包括:根据用户 IP 地址,判断哪一台服务器距离用户最近;根据用户所请求的 URL 中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器的负载情况,判断哪一台服务器的负载较小。 基于以上这些依据的综合分析之后,负载均衡设置会把缓存服务器的 IP 地址返回给用户。
  6. 用户向缓存服务器发出请求。
  7. 缓存服务器响应用户请求,将用户所需内容传送到用户。 如果这台缓存服务器上并没有用户想要的内容,而负载均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉取到本地。

参考文献

直播技术原理:CDN 与直播

动态CDN加速

CDN的作用与基本过程

也许是史上最全的一次CDN详解

这就是CDN回源原理和CDN多级缓存啊!