DNS简介
DNS是一个应用层协议,用来获取域名对应的IP地址。
什么是域名呢?
由于IP地址是一连串的数字,不容易记忆,所以就引入了域名,域名是一串字符,人们更容易记忆。人们可以通过域名代替IP地址来访问对应的主机。
域名的构成
域名服务器是一个分布式层次树状结构。
从上到下分别为根DNS服务器、顶级DNS服务器(一级域名)、权威DNS服务器(二级域名),三级域名服务器等…
比如 zhidao.baidu.com 、translate.goole.cn、csdn.net、space.bilibili.com等
1、 根DNS服务器是最根本的服务器,用来存放 一级域名 的IP地址。 .com 、.cn 、.org、.net等。
根DNS服务器在全世界总共有13台,主要存放260多个一级域名的DNS服务器的IP地址。
2、 顶级DNS服务器 存放 二级域名 的IP地址。
一个顶级服务器都对应着一个 一级域名。
比如 .com 的DNS服务器,存放了baidu、space等 二级域名的DNS服务器的IP地址。
比如.cn的DNS服务器中,存放了 google等 二级域名的DNS服务器的IP地址。
3、 权威DNS服务器 存放 三级域名 的IP地址。
一个权威DNS服务器对应着一个 二级域名。
比如.baidu的DNS服务器中,存放了zhidao等三级域名的IP地址。
DNS查询
拿 baidu.com 为例,我们来看一下DNS的工作流程
1、 客户端 首先向 浏览器缓存中 请求是否存在 baidu.com 对应的缓存,如果存在,就直接返回。
2、 如果浏览器中缓存没有,客户端就向操作系统中请求baidu.com对应的缓存,如果存在就直接返回。
3、 如果操作系统中缓存也没有的话,客户端向本地DNS服务器中发送相关DNS请求,如果存在就直接返回。
4、 如果不存在,本地DNS服务器就向 根DNS服务器 中发送DNS请求,获取 .com 对应的一级域名DNS服务器。 根DNS服务器将 .com 对应的一级DNS服务器的IP地址返回给 本地DNS服务器
5、 本地DNS服务器 向一级域名DNS服务器 .com 发送DNS请求,获取baidu 对应的二级域名DNS服务器的IP地址, 一级域名DNS服务器.com 将 baidu 对应的二级DNS服务器的IP地址返回给本地DNS服务器
6、 本地DNS服务器 向 .baidu二级域名DNS服务器发送 DNS 请求,获取 baidu.com 对应的IP地址,baidu二级域名DNS服务器将缓存表中的ip地址发送给本地DNS服务器。
7、 本地DNS服务器获取到IP地址后,将对应的域名和IP地址缓存起来。然后返回给客户端
8、 客户端获取到IP地址后,也将对应的域名和IP地址缓存起来。
递归DNS和迭代DNS
域名和IP的对应关系
1、 一个域名可以对应多个IP地址
2、 一个IP地址也可以对应多个域名