CDN工作原理
Chao 工程师

什么是CDN?工作原理是什么?

网站通常将其所有的服务器都放在同一个地方,当用户群增加时,公司就必须在多个地理位置不同的服务器上部署内容。

为了缩短http请求的时间,我们应该把大量的静态资源放置的离用户近一点。

==内容发布网络CDN(Content Delivery Networks)==(也叫内容分发网络)

​ CDN是一组分布在多个不同地理位置的web服务器,用于更加有效的向用户发布内容。

基本思路:
  • 尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。

  • 通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,

  • ==CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息==

​ ==将用户的请求重新导向离用户最近的服务节点上。==

基础架构:最简单的CDN网络由一个DNS服务器和几台缓存服务器组成。
  1. 用户输入的url,会经过DNS解析“翻译”成对应的ip地址,从而找到CDN专用的服务器。

  2. CDN “拿到” 用户的IP地址,随后和区域负载均衡设备配合,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。

  3. 上述步骤中的“选择”依据:

​ (1). 选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;

​ (2). 根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;

​ (3). 查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。

当用户访问一个网站时,如果没有 CDN,过程是这样的:

  1. 浏览器要将域名解析为 IP 地址,所以需要向本地 DNS(Domain Name System) 发出请求。
  2. 本地 DNS 依次向根服务器、顶级域名服务器、权限服务器发出请求,得到网站服务器的 IP 地址。
  3. 本地 DNS 将 IP 地址发回给浏览器,浏览器向网站服务器 IP 地址发出请求并得到资源。
image

如果用户访问的网站部署了 CDN,过程是这样的:

  1. 浏览器要将域名解析为 IP 地址,所以需要向本地 DNS 发出请求。
  2. 本地 DNS 依次向根服务器、顶级域名服务器、权限服务器发出请求,得到==全局负载均衡系统(GSLB)==的 IP 地址。
  3. 本地 DNS 再向 GSLB 发出请求,GSLB 的主要功能是根据本地 DNS 的 IP 地址判断用户的位置,筛选出距离用户较近的==本地负载均衡系统(SLB)==,并将该 SLB 的 IP 地址作为结果返回给本地 DNS。
  4. 本地 DNS 将 SLB 的 IP 地址发回给浏览器,浏览器向 SLB 发出请求。
  5. SLB 根据浏览器请求的资源和地址,选出最优的缓存服务器发回给浏览器。
  6. 浏览器再根据 SLB 发回的地址重定向到缓存服务器。
  7. 如果缓存服务器有浏览器需要的资源,就将资源发回给浏览器。如果没有,就向源服务器请求资源,再发给浏览器并缓存在本地。
image
 Comments