什么是DNS解析?DNS解析的详细过程是什么样的?

发布时间:2023-12-29 15:08:24

IP地址和域名的关系

TCP/IP网络要求每一个互联的计算机都有一个唯一的IP地址,如39.162.20.48IP地址是网络中每一台计算机的电子标识符,计算机通过IP地址与其他计算机进行定位和通信。但直接使用IP地址有很多不便之处,因为IP地址是由一串纯数字组成,很难区分和记忆。

在互联网早期,网站较少,人们还可以直接根据IP地址去定位网站。但随着互联网的快速发展,各种各样的网站快速增长,每个人在日常工作中都会接触到大量的网站,而要记住所有网站的IP地址显然是不现实的。

目前我们访问网站的主要方式并不是IP地址,而是使用另外一种寻址符——域名。域名是由数字、字母和特殊符号组成的字符串,如baidu.com12306.cn等,和IP地址相比,域名具有一定的规律性,更方便人们记忆。

但从计算机的角度来看,由于域名的字节长度更长,计算机利用域名进行通信会消耗更大的资源。而且计算机更擅长处理纯数字,对于字母和数字的组合理解起来更加困难。所以目前的互联网中有域名和IP两种通信方式,分别由人类和计算机使用。

为了打破两者之间的互通障碍,DNS解析服务应运而生,DNS解析能够将域名与IP地址进行绑定,实现两者之间的一一指向关系。通过DNS解析的翻译功能,用户就能通过域名,访问到网站对应的服务器IP,获取最终的服务。


DNS系统结构

提供DNS解析服务的系统被称为DNSDomain Name System,域名系统,它是一个存储域名IP地址相互映射关系的一个分布式数据库,能够为用户提供DNS解析服务,将用户请求的域名翻译成计算机可直接识别的IP地址,从而能够让用户更方便地访问互联网,而不用去记住每个网站的IP地址。

域名与IP地址的映射关系必须储存在域名服务器中,供其他应用查询,为了提升解析的稳定性和效率,DNS系统采用了分层式结构,每一层的域名服务器只对其所辖的部分进行应答。根据不同域名服务器起到的作用,可以将域名服务器划分为四种不同的类型:

根域名服务器

根域名服务器是DNS结构中最高层次的域名服务器。当本地域名服务器无法对域名进行解析时,首先会请求根域名服务器。

顶管域名服务器

顶级域名服务器是根服务器下第二层服务器,本地DNS服务器在根服务器请求不到结果后,会向顶级域名服务器发起查询请求,顶级域名服务器返回二级域名授权的DNS服务器地址。

权威域名服务器

权威域名服务器负责某一个区的域名服务器。当一个顶级域名服务器还不能给出最后查询回答时,就会告知下一步应当请求的权威域名服务器地址。

本地域名服务器

本地域名服务器并不属于下图中的树状结构的DNS域名服务器,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每一个互联网服务提供者ISP都可以拥有一个本地域名服务器。

DNS解析是分布式存储的,其中根域名服务器只存储了260个顶级域名服务器的IP地址。顶级域名服务器如.cn的顶级域名服务器,则存储着下一级权威解析服务器地址,如vip1.sfndns.cn,而这才是提供域名与IP地址指向关系的服务器,是整个DNS解析环节的核心。

DNS解析的具体流程

每当发送一个url请求,浏览器就会启动一个DNS查询,使浏览器获得域名对应的IP地址。

为了节省DNS解析时间,在DNS解析各个环节中都引入了缓存机制,当客户端发起解析请求时,首先会从各级的DNS缓存中查询结果,如果命中直接返回,无需再请求各级域名服务器。

1)查看浏览器缓存

浏览器会将每一条域名解析结果缓存一段时间,当用户发起请求时,浏览器首先会查询自身的缓存中是否有想要的结果,如果有直接返回,解析到此结束;如果没有再请求下一级。

2)查看系统缓存

如果浏览器中没有要找的记录,浏览器就会做一个系统调用windows里是gethostbyname,从系统缓存中查找信息。

3)查看路由器缓存

当浏览器及系统缓存中均无域名对应 IP 则进入路由器缓存中检查,以上三步均为客户端的 DNS 缓存。

4)查看ISP DNS 缓存

当在用户客户端查找不到域名对应 IP 地址,则将进入 ISP DNS 缓存中进行查询。比如你用的是电信的网络,则会进入电信的 DNS 缓存服务器中进行查找。

如果以上步骤中都没有目标域名的缓存记录,本地DNS服务器才开始通过DNS系统发起全球的迭代查询。

5)本地DNS服务器首先请求根域名服务器;

6)根域名服务器告知下一级顶级域名服务器的地址;

7)本地DNS服务器请求顶级域名服务器;

8)顶级域名服务器告知域名授权的权威域名服务器地址;

9)本地DNS服务器请求权威域名服务器;

10)权威服务器将域名对应的IP地址告知本地DNS服务器;

11)本地DNS服务器将解析记录返回给客户端浏览器。

至此,整个DNS解析流程结束,客户端浏览器根据解析记录对目标IP发起访问。





相关推荐:

干货分享 | 一文读懂DNS原理及解析过程

一文读懂DNS缓存原理及清理方法 

什么是DNS?DNS解析的原理是怎样的?

域名解析的原理是什么?域名解析的流程是怎样的?

DNS分层结构及DNS解析流程

上一篇:基于云技术的域名解析系统研究:传统解析技术的局限性 下一篇:域名注册是免费的吗?怎么注册域名?