说说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 缓存,如果系统也没有搜索到,就会向路由器发送查询请求。