网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名DNS:
DNS 又称域名系统,其主要功能就是将人易于记忆的域名与不容易记忆的IP地址相互转换。
DNS命名用于TCP/IP网络,用来通过用户的名称定位计算机的服务,当用户在应用程序中输入域名的时候,DNS服务可以将此名称解析为与此名称相关的信息,如IP地址。
DNS查询的工作方式:
1:客户机利用缓存中记录的以前查询信息直接查询请求。
2:DNS 服务器利用缓存中的记录信息回答查询请求。
3:DNS服务器通过查询其他服务器获得查询信息并将它发送给客户机。
更详细的内容可以参考下面这位大神的博客:
http://blog.sina.com.cn/s/blog_4078ccd60101cj6r.html
查询过程:
1: 在浏览器中输入www.baidu.com域名,操作系统会首先检查自己本地的hosts文件 ( hosts文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机名映射到相应的IP地址。hosts文件通常用于补充或取代网络中DNS的功能。和DNS不同的是,计算机的用户可以直接对hosts文件进行控制, 用来提高解析效率)是否有此映射关系,如果有就调用这个IP地址,完成解析。
2:如果host与本地DNS服务器都没有缓存相应的网址映射关系,则根据本地DNS服务器的设置(是否转发)进行转发,
3:DNS服务器提交查询到顶级域(root),root会返回管理.com的服务器的一个IP,本地DNS服务器收到IP信息后,将会联系.com域的这台服务器,这台负责.com域的服务器收到请求后,如果无法完成解析,就会找一个管理.com的下一级域名服务器的地址 (baidu.com) 给本地的DNS服务器,当本地DNS服务器收到这个地址后就会找到baidu.com域服务器,重复上面的动作直至找到www.baidu.com主机。
注意:
如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是用转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机