DNS域名解析的过程是怎样的?——拆解大厂面试题

CppPlayer
• 阅读 202

面试题:DNS域名解析的过程是怎样的?

DNS域名解析的过程是怎样的?——拆解大厂面试题

DNS是什么?

DNS,全称为Domain Name System,即域名系统,是一种将人类可读的域名(如 google.com)转换为计算机可识别的IP地址(如 172.217.9.174)的分布式数据库系统。

它是互联网基础设施的关键组成部分,负责实现域名与IP地址之间的映射,使得用户可以通过容易记忆的域名访问网站,而不是需要记住复杂的IP地址。


DNS属于协议的哪一层?

DNS(Domain Name System)在OSI七层协议模型中,主要属于应用层(Application Layer)。DNS服务直接面对应用程序,为它们提供域名解析服务,使得应用程序能够通过域名找到相应的IP地址,而无需关心底层网络的细节。虽然DNS查询过程中会涉及到UDP或TCP传输(传输层的功能),但DNS协议本身是为了提供一种应用服务,即名称解析服务,这是位于OSI模型的最顶层——应用层的功能。


DNS查询过程是什么?

DNS查询过程是一个分层次的解析流程,大致可以分为以下几个步骤:

  1. 客户端查询(本地缓存)

当用户尝试访问一个网站时,其设备(客户端)首先会在本地缓存中查找是否有该域名对应的IP地址记录。本地缓存可能存在于浏览器、操作系统或本地DNS解析器中。如果有缓存记录且未过期(根据TTL设定),则直接使用该IP地址,查询结束。

  1. 递归查询(本地DNS服务器)

如果本地缓存中没有找到相应记录,客户端会向其配置的本地DNS解析器(通常是ISP提供的DNS服务器,或者用户自定义的公共DNS服务器)发送DNS查询请求。这个本地DNS服务器会执行递归查询,即它会代替客户端继续查询过程,直至获得最终结果。首先,它会在自己的缓存中查找,如果找到则返回给客户端;如果没找到,它会继续向其他DNS服务器查询。

  1. 根域名服务器查询

如果本地DNS服务器的缓存也没有所需记录,它会向互联网的根域名服务器发起查询。根域名服务器不会直接提供域名到IP的映射,而是会回应一个指向下一级(顶级域名服务器)的指针。

  1. 顶级域名服务器查询

本地DNS服务器根据根域名服务器的回复,继续向对应的顶级域名服务器(如.com、.org、.net等)查询。顶级域名服务器同样可能没有直接的IP地址,但它会知道负责该二级域名的权威域名服务器是谁,并将这个信息返回。

  1. 权威域名服务器查询

最后,本地DNS服务器向管理该域名的权威域名服务器查询。权威域名服务器存储着该域名到IP地址的精确映射信息。如果找到了对应记录,权威服务器会将IP地址返回给本地DNS服务器。

  1. 结果返回与缓存

本地DNS服务器将获得的IP地址返回给最初的客户端,并通常也会在自己的缓存中保存这份记录,以便未来快速响应相同查询。

同时,客户端通常也会缓存这个映射记录,以减少对DNS服务器的后续请求。

图片展示如下:

DNS域名解析的过程是怎样的?——拆解大厂面试题

DNS缓存机制是什么?

DNS缓存机制是提高DNS查询效率和减轻DNS服务器负担的重要策略,它分为几种不同的层级,每一级都有其缓存逻辑:

  1. 客户端(本地)缓存

位置:操作系统层面或浏览器自身。

作用:当用户访问过一个域名后,其IP地址会被缓存在本地,这样再次访问时就不必重复进行DNS查询。

特点:缓存时间相对较短,遵循DNS记录中的TTL(Time To Live)值。

  1. 本地DNS解析器/递归DNS服务器缓存

位置:ISP(互联网服务提供商)提供的DNS服务器或企业内部的DNS解析器。

作用:为减少对外部查询的需求,这些服务器会缓存之前查询过的域名-IP映射。

特点:TTL也是主要依据,但一些服务器可能有更智能的缓存策略,如基于访问频率调整缓存时间。

  1. DNS递归查询过程中的各级缓存

位置:包括根域名服务器、顶级域名服务器和权威域名服务器之间递归查询路径上的任何DNS服务器。

作用:即使不是权威服务器,也会在递归查询过程中临时缓存结果,以加速后续类似查询的响应。

特点:这些缓存通常是临时的,严格遵循TTL值。

DNS缓存机制极大地缩短了域名解析的时间,减少了网络流量,提升了用户体验。同时,通过合理设置TTL值,可以平衡数据的实时性和缓存的有效性。


DNS递归查询和迭代查询怎么理解?

递归查询主要发生在客户端与本地DNS服务器之间。客户端发出查询请求后,期望这个DNS服务器能给出最终答案(IP地址),而不是更多的查询线索。这个直接服务于客户端的DNS服务器会承担起“递归查找”的责任,即它会不断地查询其他DNS服务器,直到找到权威DNS服务器并获得最终结果,或确定查询失败。(体现在不断查找)

迭代查询主要描述的是DNS服务器之间的交互方式。当一个DNS服务器无法直接提供权威答案时,它不是停止查询,而是会向查询者返回一个指向下一级DNS服务器(可能是根域名服务器、顶级域名服务器等)的参考信息,让查询者继续向这些参考点进行查询。这个过程一步步推进,直到找到负责该域名的权威DNS服务器。(体现在下一步的查询依赖于上一步的结果)


DNS使用的是TCP还是UDP协议?

整个查询过程中,默认使用UDP协议(端口53),因为它速度快,适合短小的查询响应。但如果响应过大或需要确保可靠传输(如AXFR区域传输),则会转用TCP协议。

点赞
收藏
评论区
推荐文章
3A网络 3A网络
2年前
DNS 系列(二):DNS 记录及工作方式,你了解吗?
在上一篇《DNS系列(一):为什么更新了DNS记录不生效?》中,我们主要讲解了DNS和DNS传播,知道了网络通信主要通过IP地址来进行,而域名系统(DNS)则是保证用户在浏览器中输入域名之后,可以访问到对应的网站服务器。那这个过程到底是如何进行的呢?DNS记录DNS记录是位于权威DNS服务器中的指令,提供域和主机名相关的详细信息,
鱼蛮子9527 鱼蛮子9527
2年前
DNS
DNS(DomainNameSystem),主要作用是将域名转成IP,本文主要讲解了DNS的一些基础知识,以及DNS转换域名的过程。DNS是什么绝大多数网络通信都是基于TCP/IP协议,而TCP/IP协议的基础是IP,所以网络中的计算机进行通信都是基于IP而不是我们在浏览器中输入的域名。DNS全程是DomainName
高防加速CDN 高防加速CDN
1年前
怎样预防和处理DNS劫持?
DNS中文叫域名解析,在计算机中占据非常重要的作用,但是DNS也会被攻击,比如我们经常遇见的域名被劫持,其实也就是DNS被劫持,这里许多人一定会很好奇,DNS被劫持这是怎么回事呢?DNS被劫持后会出现怎么样的后果呢?DNS被劫持后还能拯救吗?对于这些DNS
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
2年前
Linux下DNS简单部署(主从域名服务器)
一、DNS简介DNS(DomainNameSystem),域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS服务器的作用就是
Wesley13 Wesley13
2年前
ubuntu 网络配置
修改ip:vi/etc/network/interfacesautoeth0ifaceeth0inetstaticaddress192.168.1.120netmask255.255.255.0gateway192.168.1.1修改dns:vi/etc/resolvconf/reso
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
DNS解析过程
DNS解析过程是重点也是难点,下面我按自己的理解一步步来解释,可能有错误之处,欢迎指正。以下步骤中,将DNS缓存中存在域名对应IP则DNS解析成功,用户计算机将直接访问服务器,若DNS服务器缓存中不存在域名对应IP,则自动进入下一步。1.浏览器缓存 当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
郑天寿 郑天寿
8个月前
内网部署,移动端如何使用,且保障电脑端安全
"A.在企业内网自建DNS服务,然后使用域名代替公网IP重新配置;B.在互联网区域,使用互联网DNS服务将域名解析到公网IP;C.在内网区域,使用自建DNS服务将域名解析到服务器内网IP,这样内网电脑不能联网也能正常使用,互联网手机也能正常收发消息;D.如
CppPlayer
CppPlayer
Lv1
何处秋风至?萧萧送雁群。
文章
1
粉丝
0
获赞
0
热门文章

暂无数据