您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

CDN网络加速原理

发表于:2021-08-02 作者:饭米粒 来源: 程序员小饭

 

本文转载自微信公众号「程序员小饭」,作者饭米粒 。转载本文请联系程序员小饭公众号。

CDN

 

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。下面是一个简单的CND示意图

如上图所示,是CDN一个常见的架构示意图,其工作流程可以总结为:当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技术确定最接近用户的最佳CDN节点,同时将用户的请求指向该节点。当用户的请求到达指定节点时,CDN的服务器(节点上的高速缓存)负责将用户请求的内容提供给用户。具体流程为: 用户在自己的浏览器中输入要访问的网站的域名,浏览器向本地DNS请求对该域名的解析,本地DNS将请求发到网站的主DNS,主DNS根据一系列的策略确定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户,用户向给定的CDN节点请求相应网站的内容

工作原理

 

CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问时间。

未加缓存服务的访问过程

首先,让我们看一下传统的未加缓存服务的访问过程:

如图可以看出,传统的网络访问的流程如下:

1:用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址;2:LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期);3:ROOT DNS将域名授权dns记录回应给 LocalDns;4:LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址;5:域名授权dns 查询域名记录后,回应给 LocalDns;6:LocalDns 将得到的域名ip地址,回应给用户端;7:用户得到域名ip地址后,访问站点服务器;8:站点服务器应答请求,将内容返回给客户端.

使用CDN缓存后的网站的访问过程

如上图,是使用CDN缓存后的网络访问流程:

1:用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址;

2:LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期);

3:ROOT DNS将域名授权dns记录回应给 LocalDns;

4:LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址;

5:域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns;

6:LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址;

7:智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns;

8:LocalDns 将得到的域名ip地址,回应给用户端;

9:用户得到域名ip地址后,访问站点服务器。宗上,CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问的速度。