👩?💻博客主页:崇尚学技术的科班人的博客主页 ?欢迎关注🖱点赞🎀收藏?留言? 🔮本文由 崇尚学技术的科班人 原创,csdn首发! 😘系列专栏:计算机网络 🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦 📕今日一语:但行前路,不负韶华!
前言:关于我今天为什么要写这么一篇文章 —— 《超详图解DNS域名解析全过程》 。主要有两个原因:一是我这学期学习的计算机网络刚好讲解到了这一部分,想要好好复习一下;还有一个原因就是这个域名解析过程是面试中的一个重点,所以十分重要,所以说帮忙总结一下,给正准备面试同学一个小福利。
1、域名解析
其实这个过程在我们生活中十分常见,就比如我们打开浏览器访问我们想要访问的页面的时候,我们都是输入一串英文名 www.baidu.com ,然后浏览器就会响应返回对应的百度搜索的主页,这个过程可能十分快,但是它这个过程会涉及到 浏览器输入 url 到响应的全过程 ,当然我们这篇文章不会对其进行解析,其中域名解析是其中的一个重要环节,我们这篇文章只对域名解析全过程进行解析。之后的话,我会重新写一篇文章对前面的 浏览器输入 url 到响应的全过程 进行详细的解析。
所以可能大伙可能会认为我们进行资源访问时是通过 www.baidu.com 进行寻找资源的,其实并不是这样的,寻找资源主要还是靠的是 IP地址 。
所以说在我们访问对应的资源的时候,我们就需要将对应的域名转换为 IP地址 。 那么域名解析就是起到这样的一个作用。
当然域名解析的话是由运行在域名服务器上的程序完成的。主要的域名服务器有以下几类:
- 根域名服务器
- 顶级域名服务器
- 授权域名服务器(权限域名服务器)
- 本地域名服务器
这四种域名服务器贯穿整个域名解析过程。
2、域名解析过程
下面我们将围绕这两种方式进行解析。
2.1、递归查询
先上图看看这个递归查询的全过程
-
当浏览器需要知道域名所对应的 IP地址 时,那么它会向本地域名服务器进行查询 -
如果本地主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步的查询。 -
在这种情况下,本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是递归在其他几个域名服务器之间进行的(也就是根域名以DNS客户的身份,向顶级域名服务器继续发出查询请求报文;顶级域名服务以此类推)。 -
然后,本地域名服务器从根域名服务器得到了所需的IP地址,最后本地域名服务器将查询结果告诉主机 m.xyz.com
2.2、迭代查询
-
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器“你下一步应该向哪一个顶级域名服务器进行查询”。 -
然后让本地域名服务器向这个顶级域名服务器进行后续的查询。同样,顶级域名服务器收到查询报文后,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应该向哪一个权限域名服务器查询。 -
然后让本地域名服务器向这个权限域名服务器进行后续的查询。最后,知道所要解析的域名的IP地址后,把这个结果返回给发起查询的主机。 -
本地域名服务器将查询结果保存到本地缓存,同时返回给客户机
2.3、域名缓存
不管是迭代查询还是递归查询,其实这个过程都是比较漫长的。那么我们如果想要进行优化的话,我们就可以使用域名缓存进行优化。
它们的作用都相同,都是加快域名解析过程。如果我们可以从域名缓存中直接获取,那么我们直接获取;否则我们就需要从走对应的域名解析过程,同时还会将对应的结果保存在域名缓存中。
今天的分享就到这里了,如果你感觉对你有帮助的话,请你三连支持,后面的文章会一点点更新。
|