<>域名系统DNS

域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。

在早期整个网络上只有数百台计算机,那时使用一个叫做hosts的文件,列出所有主机名字和相应的IP地址。只要用户输入一台主机名字,计算机就可以很快的把主机名字转换成机器能够识别的二进制IP地址。
互联网的域名系统DNS被设计成为一个联机分布式数据库系统,并采用客户服务器方式。
域名到IP地址的解析过程要点如下
:当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP后地址后即可进行通信。
域名结构
三级域名.二级域名.一级域名
mail.cctv.com
DNS的域名树由根域,顶级域,二级域及其子域构成,其结构图与示例如下:

1)根域名服务器:根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有顶级域名服务器的域名和IP地址。
不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。

2)顶级域名服务器
:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)。

3)权限域名服务器当一个权限域名服务器还不能够给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。

4)本地域名服务器
不属于以上所示的域名服务器层次结构中,但它对域名系统非常重要。当一台主机发出DNS查询请求时,这个请求报文就发送给本地域名服务器,这种域名服务器也称为默认域名服务器。

以上可看到首选DNS服务器和备用DNS服务器的IP地址,这里的DNS服务器指的就是本地域名服务器。
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中一个时主域名服务器(master name
server),其他的是辅助域名服务器(secondary name server),保证DNS的查询工作不会终端和数据的一致性。

<>DNS域名解析过程

主机向本地域名服务器的查询一般采用递归查询,本地域名服务器向根域名服务器的查询通常采用迭代查询

递归查询
:如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求(即替换该主机继续查询),而不是让该主机自己进行下一步的查询。因此,递归查询返回的结果或者是索要查询的IP地址,或者是报错,表示自己无法查询到所需的IP.
迭代查询
:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器“下一步应当向哪一个服务器进行查询”。然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询)。
1.根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询

2.顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要擦汗寻的IP地址,要么告诉本地域名服务器下一步应当向哪个权限域名服务器进行查询,就这样进行迭代查询。
当然,本地域名服务器也可采用递归查询,这取决于最初的查询请求报文的设置时要求使用哪一种查询方式。

为了提高DNS查询效率,并减轻根域名系统服务器的负荷和减少互联网上的DNS查询报文数量,在域名服务器中广泛的使用了高速缓存
。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

具体过程

1、在浏览器中输入www.toutiao.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。

2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,即本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有
权威性。

4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

5、如果本地DNS服务器本地区域文件与缓存解析都失效,则进一步向根域名服务器发起求助。由于根域名服务器只会纪录其下级的13个顶级域名服务器,而不会直接纪录域名与IP的映射关系,所以在接收到本地域名服务器的解析请求时,根域名服务器将告知本地服务器:“你所请求的域名由.com顶级域名服务器管理,其IP为xxx”。

6.本地DNS服务器进一步向.com顶级域名服务器发起域名解析请求,由于.com域名服务器也不会纪录域名与IP的映射关系,而是告知请求者去该域名所属的域服务器上查询,并给出其IP地址。

7.本地DNS服务器继续向域服务器发起头条域名解析请求,便会得到头条域名对应的IP地址,这时本地DNS服务器不仅会向用户计算机返回IP地址,同时在其自身缓存中增加头条域名与其IP的纪录,从而加快其他计算机获取头条域名对应IP的解析速度

技术
©2019-2020 Toolsou All rights reserved,
华为认证HCIA-AI人工智能NOI2019 游记消息质量平台系列文章|全链路排查篇过拟合和欠拟合的形象解释Unity 场景异步加载(加载界面的实现)Faster RCNN系列算法原理讲解(笔记)纽约年轻人计划“重新占领华尔街”:维护散户利益用C++跟你聊聊“原型模式” (复制/拷贝构造函数)初识python之技巧总结篇中级JAVA程序员应该掌握的数据结构知识