根据网络通讯原理,对于Router设备是通过IP地址进行路径的Forward;当通过域名(主机名)访问远程主机时,必须将相应的主机名解析为IP地址,DNS服务器就充当了这个角色。

DNS的工作原理:

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

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

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

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

  5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。

  6. 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

最新文章

  1. 初识WebService
  2. easyUI中onLoadSuccess方法获取多个对象
  3. SQL 将一列多行数据合并为一行 FOR XML PATH
  4. Android利用Looper在子线程中改变UI
  5. 【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)
  6. squid服务搭建
  7. 【MongoDB】Serveral common command of MongoDb
  8. 再起航,我的学习笔记之JavaScript设计模式04
  9. Android开发中EditText的点击Enter键焦点改变处理(获取焦点和失去焦点交互变化)
  10. 解决axios传递参数后台无法接收问题
  11. 基于maven来Spring MVC的环境搭建遇到“坑”
  12. redis 集群常用命令
  13. ZStack串口通信
  14. windows任务管理器怎么知道多个IIS网站进程分别对应哪个网站
  15. 一、搭建Django,建立第一个demo
  16. linux操作系统基础讲解
  17. day 57 Bootstrap 第一天
  18. POJ 2260
  19. C++11:实用特性
  20. string[]转换为int[]

热门文章

  1. 阿里云oracle启动失败
  2. 找"1"
  3. 【CSAPP笔记】2. 整型运算
  4. Java join & yield
  5. Selenium WebDriver 中鼠标和键盘事件分析及扩展(转)
  6. 使用 Vagrant 打造跨平台开发环境fffff
  7. mysql按日期分组统计数据
  8. [转帖] windows server 不同版本说明
  9. centos7防火墙操作
  10. MySQL的间隙锁