DNS解析过程及工作原理

看了一些相关文章,总感觉每篇文章在论述过程的时候都缺了些东西,要不就是没说清楚迭代查询和递归查询,要不就是没说缓存,要不就是缓存没说全。当然看了这么多文章,确实让我收获了很多知识,所以在自己的理解上,拾人牙慧,写一篇文章记录一下,如有错误,恳请批评指正~

什么是DNS?

DNS是一种按层次结构组织的分布式数据库系统,它由分布在全世界的成千上万个DNS服务器中的数据库组成。每个DNS的数据库中包含若干条资源记录,每条资源记录为其所管辖的区域中的DNS域名到某种数据(如IP地址)的映射,它提供主机名和IP地址之间的转换及有关电子邮件的选路信息。

DNS的作用

一句话概括:将域名解析为IP地址

DNS的查询方法

【递归查询】:DNS服务器代表请求客户端查询或联系其他DNS服务器,以便完全解析该域名,并将应答返回至客户端。

【迭代查询】:尝试联系其他的DNS服务器来解析名称,然后根据DNS服务器的应答,使用其他的独立查询。

以上,是比较官方的解释,比较抽象。


形象地来讲

递归查询就是:我让你去查找,你查找不到,你就去找其他人,我不管了。你只要把结果发给我就好了:要不找到了,要不找不到。这就是最终结果。

而迭代查询是:我让你去查找,如果你找到了就把结果给我,如果找不到,你告诉我下一步找谁,我再去向这个人去查找,直至查找到目标为止,或最终还是查找不到。


通过上面的分析,就能很好理解在DNS解析中是如何应用这两个查询的:  

1. 主机向本地域名服务器的查询,属于递归查询,(主机就坐等结果返回了,只发一次请求,让本地域名服务器帮我做事吧~)

接下来本地域名服务器就开始工作了

2. 本地域名服务器向根域名服务器的查询,属于迭代查询。(每次都要本地域名服务器去请求,不懂的可以看看下面的解析过程,看看本地DNS服务器是不是超忙的!)

DNS的解析过程

1. 首先,主机在请求查询之前,先查找本地DNS缓存,有则返回给主机

2. 如果缓存中没有,则查看操作系统中有没有相关的映射记录(如host记录),有则返回,结束

3. 如果也没有,则主机向本地DNS服务器发送请求进行递归查询

4. 本地DNS服务器接收到请求后,查看自己的缓存记录,有则返回给主机

5. 如果没有,本地DNS服务器向根域名服务器发送查询请求

6. 根域名服务器返回给本地DNS服务器一个负责该区域的顶级域名服务器的IP

7. 本地DNS服务器根据这个IP,向顶级域名服务器去请求查询,如果有则返回给本地DNS服务器,本地DNS服务器再将内容返回给主机。

8. 如果没有,顶级域名服务器返回下一步应查询的权威服务器的IP

9. 本地DNS服务器根据这个IP,向权威域名服务器去请求查询,如果有则返回给本地DNS服务器,本地DNS服务器再将内容返回给主机。如果没有,代表查询不到

10. 本地DNS服务器就把查询结果记录在缓存区中,以供之后快速使用

以上过程中需要注意:

根域名服务器用来管理互联网的主目录,不存储域名,而是存储负责每个域的解析的域名服务器的地址信息,互联网上所有将域名转化为IP地址的请求,理论上都要经过根服务器。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DNS(Domain Name System)是互联网的一个基础设施,它通过将域名映射到IP地址来使得Internet上的计算机能够相互通信。DNS解析是将域名解析成IP地址的过程,其全过程原理如下: 1. 用户在浏览器中输入域名,如www.example.com; 2. 浏览器向本地DNS服务器(如ISP提供的DNS服务器)发送域名解析请求; 3. 如果本地DNS服务器缓存中存在该域名对应的IP地址,则直接返回给浏览器; 4. 如果本地DNS服务器缓存中不存在该域名对应的IP地址,则向根域名服务器发送请求; 5. 根域名服务器返回顶级域名服务器的地址,如.com域的顶级域名服务器的地址; 6. 本地DNS服务器向顶级域名服务器发送请求; 7. 顶级域名服务器返回下一级域名服务器地址,如example.com域的DNS服务器地址; 8. 本地DNS服务器向example.com域的DNS服务器发送请求; 9. example.com域的DNS服务器返回对应的IP地址; 10. 本地DNS服务器将IP地址返回给浏览器; 11. 浏览器通过IP地址访问服务器,获取网页内容并显示。 DNS解析原理DNS采用了分布式数据库的方式进行域名解析。全球各地的众多DNS服务器共同维护了一个庞大的域名与IP地址的对应关系数据库。当浏览器发出域名解析请求时,会先向本地DNS服务器发送请求,如果本地DNS服务器缓存中不存在则向其他DNS服务器查询,直到获得域名对应的IP地址为止。DNS解析过程中采用了递归查询和迭代查询两种方式。递归查询是指DNS服务器在查询过程中一直向上级DNS服务器发送请求,直到获得结果为止。而迭代查询是指DNS服务器在查询过程中只向下级DNS服务器发送请求,然后将结果返回给上级DNS服务器,最终返回给客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值