DNS协议详解

DNS协议详解递归查询递归查询就是 如果主机所询问的本地域名服务器不知道被查询的域名的 IP 地址 那么本地域名服务器就以 DNS 客户的身份 向其它根域名服务器继续发出查询请求报文 即替主机继续查询 而不是让主机自己进行下一步查询 因此 递归查询返回的查询结果或者是所要查询的 IP 地址 或者是报错 表示无法查询到所需的 IP 地址 迭代查询迭代查询就是 当根域名服务器收到本地域名服务器发出的迭代查询请求报文时 要么给出所要查询的 IP 地址 要么告诉本地服务器下一步应当向哪一个域名服务器进行查询 然后让本地服务器进行后续的查询

DNS协议介绍

DNS 协议是一个应用层协议,它建立在 UDP 或 TCP 协议之上,默认使用 53 号端口。该协议的功能就是将人类可读的域名 (如,www..com) 转换为机器可读的 IP 地址 (如,119.147.15.13)。

DNS协议默认通过 UDP 协议进行通讯,但是由于广域网中不适合传输过大的 UDP 数据包,因此规定当报文长度超过了 512 字节时,应转换为使用 TCP 协议进行数据传输。所以,DNS 协议是少有的既可以用 UDP 协议,又可以用 TCP 协议作为底层协议的应用层协议。

DNS解析过程

DNS查询的方式

递归查询

递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。

因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

迭代查询

迭代查询就是:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个域名服务器进行查询,然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。

顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机

区别

  1. 递归查询时返回的结果只有两种:查询成功或查询失败迭代查询返回的是最佳的查询点或者主机地址
  2. 递归查询要求客户端只发一次请求,要求对方给出最终结果。迭代查询要求客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204088.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:02
下一篇 2026年3月19日 下午9:02


相关推荐

  • find 命令的 7 种用法[通俗易懂]

    find 命令的 7 种用法[通俗易懂]首先我们需要使用cd命令进入对应的目录,然后,命令如下:find.-typef-atime+365-execrm-rf{}\;如果你还没有完全理解上面的命令,完全不用担心。本文将介绍find命令的7个实际用途,您最终会掌握它。如果您已经知道了,那么阅读这篇文章对您来说将是一个很好的回顾。0.按名称或正则表达式查找文件让我们从最简单的用法开始。要按特定名称搜索文件,命令如下:find.-nametest.txt如何查找所有格式为pdf…

    2022年10月14日
    4
  • Python遗传算法工具箱的使用(一)求解带约束的单目标优化

    Python遗传算法工具箱的使用(一)求解带约束的单目标优化前言网上有很多博客讲解遗传算法 但是大都只是 点到即止 虽然给了一些代码实现 但也是 浅尝辄止 没能很好地帮助大家进行扩展应用 抑或是进行深入的研究 这是我的开篇之作 之前没有写博客的习惯 一般是将笔记存本地 但久而久之发现回看不便 而且无法与大家交流和学习 现特此写下开篇之作 若有疏漏之处 敬请指正 谢谢 本文对遗传算法的原理进行梳理 相关代码是基于国内高校学生联合团队开源

    2026年3月19日
    2
  • rmdir命令删除目录无法成功的原因_百度自动提交代码

    rmdir命令删除目录无法成功的原因_百度自动提交代码MariaDB 10.3支持自动KILL掉未提交的空事务

    2022年4月20日
    113
  • .dll反编译(反编译什么意思)

    需求:有些Dll文件我们找不到源码,只有编译后的dll,但是我们想要改某个字段或者连接字符串,并不需要动太多业务逻辑的情况下,我们可以这样干。1.打开微软提供的反编译工具ildasm.exe这个工具是windows自带的反编译工具。路径:C:\ProgramFiles(x86)\MicrosoftSDKs\Windows\v10.0A\bin\NETFX4.6.2Tools可以根据需要,选择对应工具版本。一般随便选一个版本都是可以的了。比如,我选择的是4.6…

    2022年4月12日
    59
  • 深度学习(五)学习率的调节

    深度学习(五)学习率的调节   学习率对于深度学习是一个重要的超参数,它控制着基于损失梯度调整神经网络权值的速度,大多数优化算法(SGD、RMSprop、Adam)对其都有所涉及。学习率越小,损失梯度下降的速度越慢,收敛的时间更长,如公式所示:new_weight=existing_weight—learning_rate*gradient(新权值=当前权值–学习率×梯度)    如果学习…

    2022年5月20日
    87
  • Java下载文件的几种方式「建议收藏」

    Java下载文件的几种方式「建议收藏」1.以流的方式下载.publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){try{//path是指欲下载的文件的路径。Filefile=newFile(path);//取得文件名…

    2022年7月9日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号