超详图解DNS域名解析全过程

x33g5p2x  于2022-05-23 转载在 其他  
字(1.6k)|赞(0)|评价(0)|浏览(525)

👩‍💻博客主页:崇尚学技术的科班人的博客主页
✨欢迎关注🖱点赞🎀收藏⭐留言✒
🔮本文由 崇尚学技术的科班人 原创,csdn首发!
😘系列专栏:计算机网络
🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦
📕今日一语:但行前路,不负韶华!

前言:关于我今天为什么要写这么一篇文章 —— 《超详图解DNS域名解析全过程》。主要有两个原因:一是我这学期学习的计算机网络刚好讲解到了这一部分,想要好好复习一下;还有一个原因就是这个域名解析过程是面试中的一个重点,所以十分重要,所以说帮忙总结一下,给正准备面试同学一个小福利。

1、域名解析

  • 什么是域名解析

其实这个过程在我们生活中十分常见,就比如我们打开浏览器访问我们想要访问的页面的时候,我们都是输入一串英文名 www.baidu.com,然后浏览器就会响应返回对应的百度搜索的主页,这个过程可能十分快,但是它这个过程会涉及到 浏览器输入 url 到响应的全过程 ,当然我们这篇文章不会对其进行解析,其中域名解析是其中的一个重要环节,我们这篇文章只对域名解析全过程进行解析。之后的话,我会重新写一篇文章对前面的 浏览器输入 url 到响应的全过程 进行详细的解析。

所以可能大伙可能会认为我们进行资源访问时是通过 www.baidu.com 进行寻找资源的,其实并不是这样的,寻找资源主要还是靠的是 IP地址
所以说在我们访问对应的资源的时候,我们就需要将对应的域名转换为 IP地址。 那么域名解析就是起到这样的一个作用。

  • 域名服务器

当然域名解析的话是由运行在域名服务器上的程序完成的。主要的域名服务器有以下几类:

  1. 根域名服务器
  2. 顶级域名服务器
  3. 授权域名服务器(权限域名服务器)
  4. 本地域名服务器

这四种域名服务器贯穿整个域名解析过程。

2、域名解析过程

  • 域名解析过程主要有两种方式:递归查询和迭代查询

下面我们将围绕这两种方式进行解析。

2.1、递归查询

先上图看看这个递归查询的全过程

  1. 当浏览器需要知道域名所对应的 IP地址 时,那么它会向本地域名服务器进行查询
  2. 如果本地主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步的查询。
  3. 在这种情况下,本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是递归在其他几个域名服务器之间进行的(也就是根域名以DNS客户的身份,向顶级域名服务器继续发出查询请求报文;顶级域名服务以此类推)。
  4. 然后,本地域名服务器从根域名服务器得到了所需的IP地址,最后本地域名服务器将查询结果告诉主机 m.xyz.com

2.2、迭代查询

  1. 当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器“你下一步应该向哪一个顶级域名服务器进行查询”。
  2. 然后让本地域名服务器向这个顶级域名服务器进行后续的查询。同样,顶级域名服务器收到查询报文后,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应该向哪一个权限域名服务器查询。
  3. 然后让本地域名服务器向这个权限域名服务器进行后续的查询。最后,知道所要解析的域名的IP地址后,把这个结果返回给发起查询的主机。
  4. 本地域名服务器将查询结果保存到本地缓存,同时返回给客户机

2.3、域名缓存

不管是迭代查询还是递归查询,其实这个过程都是比较漫长的。那么我们如果想要进行优化的话,我们就可以使用域名缓存进行优化。

  • 在浏览器和本地域名服务器中都对应的域名缓存。

它们的作用都相同,都是加快域名解析过程。如果我们可以从域名缓存中直接获取,那么我们直接获取;否则我们就需要从走对应的域名解析过程,同时还会将对应的结果保存在域名缓存中。

今天的分享就到这里了,如果你感觉对你有帮助的话,请你三连支持,后面的文章会一点点更新。

相关文章