什么是DNS
全称 Domain Name System ,即域名系统。
万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串
。DNS协议运行在UDP协议之上,使用端口号53。
DNS解析
简单的说,通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。
www.baidu.com (域名) - DNS解析 -> 110.242.68.3(IP地址)
DNS缓存
有dns的地方,就有缓存。浏览器、操作系统、Local DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。
DNS查找过程
- 首先搜索==浏览器==自身的DNS缓存,如果存在,则域名解析到此完成。
- 如果浏览器自身的缓存里面没有找到对应的条目,那么会尝试读取操作系统的==hosts文件==看是否存在对应的映射关系,如果存在,则域名解析到此完成。
- 如果本地hosts文件不存在映射关系,主机 m.n.com 向它的本地 DNS 服务器(==ISP服务器==,或者自己手动设置的DNS服务器)发送一个 DNS 查询报文,其中包含期待被转换的主机名 a.b.com;
- 本地 DNS 服务器将该报文转发到根 DNS 服务器;
- 该根 DNS 服务器注意到 com 前缀,便向本地 DNS 服务器返回 com 对应的顶级域 DNS 服务器(TLD)的 IP 地址列表。
意思就是,我不知道 a.b.com 的 IP,不过这些 TLD 服务器可能知道,你去问他们吧;
-
本地 DNS 服务器则向其中一台 TLD 服务器发送查询报文;
-
该 TLD 服务器注意到 b.com 前缀,便向本地 DNS 服务器返回权威 DNS 服务器的 IP 地址。
意思就是,我不知道 a.b.com 的 IP,不过这些权威服务器可能知道,你去问他们吧;
- 本地 DNS 服务器又向其中一台权威服务器发送查询报文;
终于,该权威服务器返回了 a.b.com 的 IP 地址;
本地 DNS 服务器将 a.b.com 跟 IP 地址的映射返回给主机 m.n.com,m.n.com 就可以用该 IP 向 a.b.com 发送请求啦。