简单记录CDN的理解。首先要知道如下几个概念:域名解析、DNS、A记录、CNAME记录
域名解析
域名解析就是域名到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。
DNS
DNS的全称是Domain Name Server,一种程序,它保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。
域名解析不需要很长时间,是因为上网接入商,比如通过阳光DNS接入北京电信,河南电信等,为了要加速用户打开网页的速度,通常在他们的DNS服务器中缓存了很多域名的DNS记录,再根据用户所在地做出网络分配。这样这个接入商的用户要打开某个网页时,接入商的服务器不需要去查询域名数据库,而是把自己缓存中的DNS记录直接使用,从而加快用户访问网站的速度。这是其最大的优点。
基本形式如下:
DNS是应用层协议,事实上他是为其他应用层协议工作的,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为ip地址。
具体过程如下:
- 用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了
- 浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如www.baidu.com/ ,并将这个主机名传送给DNS应用的客户端
- DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作)
- 该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址
- 一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接 www.jianshu.com/p/401f34691…
A记录
A (Address) 记录:是用来指定主机名(或域名)对应的IP地址记录。
用户可以将该域名下的网站服务器(ip) 指向到自己的网页服务器(web server)上。同时也可以设置域名的子域名。
增加A记录: 又称IP指向,用户可以在此设置二级域名并指向到自己的WEB服务器的IP地址上,从而实现通过域名找到服务器找到相应网页的功能。
如下图:i7i7color.com 这个域名上,就增加了www这样一条A记录,记录值就是对应的服务器IP,然后就可以通过www.i7i7color.com 访问对应的服务器ip上的web项目,当然这得通过DNS完成这一系列的操作。
CNAME记录
CNAME记录,即:别名记录。这种记录允许您将多个名字映射到同一台计算机。 通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为host.mydomain.com(A记录)。 它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL,这两个别名的全称就 www.mydomain.com 和 mail.mydomain.com。实际上他们都指向host.mydomain.com。
如上图中:主机记录为blog的这条记录的类型就是CNAME,而记录值就指向的是一个域名(blog.i7i7color.com.qiniudns.com),也就是说访问blog.i7i7color.com实际上会指向到blog.i7i7color.com.qiniudns.com上。
CDN
CDN实现原理:给源站域名添加CNMAE,别名为加速节点的域名。当用户向源站发起请求时,dns服务器解析源站域名时会发现有CNMAE记录,这时dns服务器会向CNAME域名发起请求,请求会被调度至加速节点的域名。
如上图,是使用CDN缓存后的网络访问流程:
- 用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址;
- LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期);
- ROOT DNS将域名授权dns记录回应给 LocalDns;
- LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址;
- 域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns;
- LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址;
- 智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns;
- LocalDns 将得到的域名ip地址,回应给用户端;
- 用户得到域名ip地址后,访问站点服务器。
宗上,CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问的速度。
cdn一般用于存变化不大的文件,因为会有缓存,而服务器资源如果频繁更新,怎么保证数据同步。