对于网络上的大部通讯都是基于TCP/IP协议的, 其中最重要的是IP协议,它是基于IP地址的,而计算机通讯只能识别IP地址,如192.168.0.1,而不能识别像咱们在浏览器敲得见名之义的"www.baidu.com"这样的域名,但是呢有一个DNS服务器的计算机会自动把咱们输入的域名翻译成了网络通讯所需要的ip地址,这就是DNS协议,下面来了解一下它。
什么是DNS?
它所提供的服务是用来将主机名和域名转换为IP地址的工作,如下:
可以相互进行转换。
DNS查询过程:
递归:DNS服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询和联系其他DNS服务器,以完全解析该名称,并随后将应答返回至客户机。
迭待:客户机自己也可尝试联系其它的DNS服务器来解析名称,如果客户机这么做,它会使用基于服务器应答的独立和附加的查询。下面看一下迭待的具体过程:
浏览器输入域名后,就会先在本地的HOSTS文件中找有木有相应域名跟ip地址的对应关系,如果有则调用该ip地址完成域名解析;如果说本地HOSTS文件中木有映射的话那就到“本地DNS解析缓存”去找,找到对应的映射信息最终返回给浏览器;如果也没有找到则就进行第三部去“本地DNS”查找,而它是根据TCP/IP首选设置的服务器,如果能在本地DNS区域中找到就会返回解析结果给客户端完成域名解析,注意:这个解析是有权威性的,而不像第四步,所以这里总结一下:
1、在浏览器中输入域名,操作系统会先检查自己本地的HOSTS文件是否有这个网址映射关系。
2、如果HOSTS里没有这个域名的限制,则查找本地DNS解析器缓存。
3、如果本地HOSTS与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器。注意:这个查询是具有权威性的。
4、如果要查询的域名,不由本地DNS服务器区域解析,但该DNS服务器已经缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析。注意:这个区域查询是没有权威性的。
5、本地DNS就把请求发至13台根DNS,根DNS服务器收到请求之后会判断这个域名(.com)是谁来授权管理的,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。注意:它是没有用转发模式。
6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析。需要注意:如果上一级服务器不能解析,还会继续找根DNS,或者把请求转发给上上级,以此循环来进行DNS解析。