DNS服务的解析流程

DNS的解析过程比较简单,客户端发起请求---> DNS服务器接到请求--->DNS服务器查询本地缓存和数据库----> 有结果----->返回个客户端

-----> 无结果----->根据提示查找

DNS体系中,查找记录,分为两种查找方式:递归查询和迭代查询。

1、 递归查询:由DNS客户端发起,一级一级的向上提交查询申请,直至查询终止

2、 迭代查询:一般情况下由DNS服务器之间完成,即本地DNS向上一级DNS提交查询,上级DNS并不直接返回查询结果,而是告知DNS应该向哪里去查找。

以上两种查询方法一般情况下混合存在,即DNS客户端发起递归查询,DNS服务器发起迭代查询。

上面的解释你看懂了吗?如果没有看懂,那么看看下面的图片,流程就应该懂了。

 

递归查询流程示意图

clip_p_w_picpath002

 

递归迭代流程示意图

clip_p_w_picpath004

以上两图,分别解释了什么是递归查询和迭代查询,很明显递归查询是一级一级的向上查,迭代不仅仅是一级一级的向上查询,而是通过中间服务器问到应该向谁去查询,就好比人问路,打听事情一样。

大家都看到了,递归查询和迭代查询是在dns查询过程中最基本的两种查询方式,上面那两张图片仅仅是示意图,那么,真实的DNS 查询过程又是什么样子的呢?

clip_p_w_picpath006

通过上图我们看到了,在真正的DNS查询过程中,是包含递归查询和迭代查询的。无论任何方式的查找过程,在每个环节,都会先查找缓存。DNS服务器如果没有了缓存就失去了意义。。。我的老师曾经说过,如果把现在所有的DNS 全部清掉缓存,那么互联网就会瘫痪~~~

请记住查询顺序

HOSTS表--> 本地DNS -->上层DNS(包括根DNS)

两种查找顺序,递归和迭代,不同环境下使用不同的查找方式可以提高查找效率哦!