Skip to content

说说DNS完整的查找过程

专题简介

  • DNS是什么
  • DNS查找方式
  • 域名缓存
  • DNS查找过程

DNS协议是什么

DNS协议也可以称为DNS服务,全称是Domain Name System,即域名系统,和HTTP协议一样,也是一个位于应用层的协议(服务),它是基于运输层的UDP协议。从DNS的名字我们就可以知道,它提供域名映射到IP地址的服务,那么在我们详细说DNS协议之前,先来大致讲讲互联网的域名结构。

什么是域名

域名就是给ip地址取的别名,方便人们记忆和输入。

域名的结构

从上到下一次为根域名、顶级域名、二级域名、三级域名...

域名缓存

在域名服务器解析的时候,使用缓存保存域名和IP地址的映射

计算机中DNS的记录也分成了两种缓存方式:

  • 浏览器缓存:浏览器在获取网站域名的实际 IP 地址后会对其进行缓存,减少网络请求的损耗
  • 操作系统缓存:操作系统的缓存其实是用户自己配置的 hosts 文件

DNS的查找方式

  • 递归查询:如果 A 请求 B,那么 B 作为请求的接收者一定要给 A 想要的答案
  • 迭代查询:如果接收者 B 没有请求者 A 所需要的准确内容,接收者 B 将告诉请求者 A,如何去获得这个内容,但是自己并不去发出请求

DNS的查询过程

  • 1、浏览器缓存:首先搜索浏览器的自身 DNS 缓存(缓存时间比较短,大概只有一分钟,且只能容纳 1000 条数据),看自身的缓存中是否有域名的对应条目,而且没有过期,如果没有过期解析到此结束。

  • 2、系统缓存:如果浏览器自身缓存里没有找到对应的条目,那么浏览器会搜索自身操作系统的 DNS 缓存,如果找到没有过期,那么就会停止搜索解析到此结束。

  • 3、路由缓存:如果系统也没有搜索到,就会向路由器发送查询请求。

  • 4、ISP(互联网服务提供商)DNS 缓存,如果系统也没有搜索到,就会向路由器发送查询请求。