DNS域名解析
DNS域名解析
DNS 协议是什么
概念: DNS 是域名系统 (Domain Name System) 的缩写,提供的是一种主机名到 IP 地址的转换服务,就是我们常说的域名系统。它是一个由分层的 DNS 服务器组成的分布式数据库,是定义了主机如何查询这个分布式数据库的方式的应用层协议。能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
作用: 将域名解析为IP地址,客户端向DNS服务器(DNS服务器有自己的IP地址)发送域名查询请求,DNS服务器告知客户机Web服务器的 IP 地址。
域名与IP地址
IP地址记忆起来非常麻烦,通过域名我们可以更加方便的记忆,从而访问网址。
因为计算机只能识别并且用IP地址定位,所以我们就需要域名转换IP地址这个过程,也就是DNS域名解析过程
域名结构树
我们可以看到根是一个“.”,也就是说所有的域名都会最终由一个根管理。
这个根是由一群服务器组成的。
域名服务器
小知识:世界上有13个根域名,由12家独立机构进行运营。已经由1467个节点了。
那么也就是说,绝大部分节点的IP地址都是一样的。我们如何与最近的一个节点取得联系呢?
采用任播,当我们向根域名服务器联系时,就能找到离我们最近的根域名服务器了
- 根域名服务器管理顶级域名服务器(TLD)。
- TLD分别管理各自的域名服务器。
- 权威域名服务器也叫权限域名服务器,会管理各自的主机。
这里只是简单介绍,实际网络中的管理层次会更加复杂。
域名解析过程
- 首先浏览器会在自己的浏览器缓存看看有没有对应的IP记录,如果查找到直接返回,若找不到继续下一步
- 将请求发送给本地DNS服务器,在本地域名服务器缓存中查询,如果查找到,就直接将查找结果返回,若找不到继续下一步
- 本地DNS服务器向根域名服务器发送请求,根域名服务器会返回一个所查询域的顶级域名服务器地址
- 本地DNS服务器向顶级域名服务器发送请求,接受请求的服务器查询自己的缓存,如果有记录,就返回查询结果,如果没有就返回相关的下一级的权威域名服务器的地址
- 本地DNS服务器向权威域名服务器发送请求,域名服务器返回对应的结果
- 本地DNS服务器将返回结果保存在缓存中,便于下次使用
- 本地DNS服务器将返回结果返回给浏览器
如图所示:
通过整个过程,我们可以发现,DNS解析包含迭代查询和递归查询的过程。
迭代查询
查询请求后,域名服务器返回单次查询的结果。下一级的查询由用户自己请求。使用迭代查询,用户需要发出 多次的查询请求。
递归查询
用户发出解析请求后,本地DNS服务器代为向下一级域名服务器发出请求,最后向用户返回查询结果。这样用户只需要发出一次查询请求。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DoKiDoKi!