了解了解DNS解析

338 阅读3分钟

为什么会有DNS解析

平时生活中大家访问一个网页输入的都是 域名 (例:www.baidu.com),但是 域名 并不是这个网页真正的地址它只是方便咱们记忆的一个 别名 。真正能够被机器读取的其实是 ip (例:193.112.230.97)。 ip虽然能被机器直接识别但却容易被我们记住,所以出现了和 ip 映射的 域名 。而域名不能直接被机器识别定位进而出现了 DNS , 通过 DNS解析 访问的域名获取对应的ip地址来访问页面。

DNS解析

DNS(Domain Name System)域名系统, DNS是internet上作为域名和IP地址互相映射的一个分布式数据库(个人理解:就是用来存放域名和IP地址的一个仓库,域名和IP相互对应,域名就是IP地址的一个 别名 或者 key )。能够是用户更加方便的访问互联网,不用去记住复杂难记的IP地址。通过域名得到最终访问的IP地址的解析过程就是 DNS解析

查询方式

在DNS解析过程中存在两种查询方式

  1. 递归查询
  2. 迭代查询

假设当前教室有三个人:甲乙丙 递归查询: 遇到一个问题解决不了,去问 ,不料 也不会因为害怕在 面前丢面子转而去问学霸 告诉 答案后, 再将答案告诉

迭代查询: 又遇到一个问题解决不了,去问 正忙着没空于是告诉 让他去问 又去问 告诉了 答案。

在DNS解析中, 主机本地域名服务器 之间的查询是 递归查询本地域名服务器其他服务器 之间的查询是 迭代查询

DNS解析过程

当我们在浏览器输入网址访问的时候

  • 首先查看当前浏览器的DNS缓存
  • 若没有找到,则会去查看操作系统的DNS缓存(hosts文件)
  • 若仍然没有找到,就操作系统会将域名发送给本地域名服务器,本地域名服务器查找自己的DNS缓存,成功则返回结果。
  • 本地域名服务器也没有找到,则本地域名服务器会去上级域名服务器进行询问(该过程使用的是迭代查询)。
    1. 首先本地域名服务器会去问根域名服务器,根域名服务器是顶级域名服务器如果不知道,则会告诉你去找顶级域名服务器(例:.com,.cn)。
    2. 得知顶级域名服务器地址后,本地域名服务器会去询问顶级域名服务器,但是顶级域名服务器,会告诉你这事你可以问权限域名服务器他知道。
    3. 得知地址后,询问权限域名服务器拿到想要的IP地址,返回给本地域名服务器
  • 本地域名服务器拿到的IP地址后告诉操作系统,并自己也缓存起来
  • 操作系统拿到IP地址后告诉浏览器,并自己也缓存起来
  • 最后浏览器拿到IP地址访问页面,并且缓存起来