dns及cdn原理

DNS原理

  DNS的出现,只是为了将一个更易记的域名映射到ip地址,从而可以自由的使用TCP/IP协议通信。

  通俗点讲,DNS本质上是一个超级大支持超级多查询的hash表,当然了,也可以看成是一个缓存系统。

  那么,讲DNS原理,本质上就是讲这个缓存系统是如何设计的,协议是如何设计的,才能支撑如此大的并发请求量以及映射的hash数量。

  先来看任何一个域名,比如www.sohu.com。DNS的设计思想就是分级查询,各司其职。将整个DNS分为根域,顶级域(gTLD),二级域(SLD),以及主机。其中,根域负责解析并告知需要向哪个顶级域地址进一步查找;而顶级域则负责解析并告知需要向哪个二级域进一步查找;二级域则负责解析并告知具体需要访问哪个主机。根域和顶级域全球只有13台,主要原因是UDP协议限制的字符数量使得多一个都没法传输。

  整个访问过程其实就是一个缓存分级查询的过程。首先,浏览器查询自身的DNS缓存,如果有直接用;否则查询系统(hosts)的DNS缓存;同样的,如果没有查询到,则会查询本地DNS;如果本地DNS没有查询到,则开始分级查询过程。

1.首先询问根域,从根域查找顶级域的NS记录和A记录。

2.然后再访问顶级域,得到二级域的NS记录和A记录。

3.最后访问二级域,最终找到主机的IP地址。

  访问过程如图:

dns及cdn原理_第1张图片

  购买了域名之后,经常需要配置常见的A记录,MX记录,NS记录以及CNAME。

1. A记录,即IP地址

2. MX记录,作为邮件地址

3. NS记录,作为名称服务器的别名,实际上就是下一级域名的别名

4. CNAME记录,作为一个域名解析的别名,实际上是本域名的别名。需要继续追溯以便得到A记录


CDN原理

   CDN本质上是一个DNS+一组内容缓存,这些内容缓存按照地区排布,通过就近原则以及负载均衡,能够并发完成极大的TPS。

  了解了DNS之后,如果在DNS最后一步解析中通过CNAME将名字解析到CDN的DNS服务器,通过CDN的DNS返回CDN负载均衡的地址,再次访问CDN的负载均衡地址,就用户地理位置,当前机器负载等因素动态选择适合的CDN内容缓存地址。最终,访问CDN缓存服务器,得到实际内容。

  dns及cdn原理_第2张图片


DNS原理入门 http://www.ruanyifeng.com/blog/2016/06/dns.html

DNS解析的过程 https://www.zhihu.com/question/23042131

CDN的原理以及其中的一些技术 http://cstdlib.com/tech/2015/08/18/what-is-cdn/

CDN的基本原理和基础架构 https://yq.aliyun.com/articles/104041

深度剖析:CDN内容分发网络技术原理 https://my.oschina.net/pooz/blog/95654

你可能感兴趣的:(dns及cdn原理)