首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

dns解析递归查询和迭代查询的区别

DNS解析中的递归查询和迭代查询是两种不同的查询方式,它们的主要区别在于查询过程和服务器之间的交互方式。

递归查询

  • 递归查询是一种从主机到本地域名服务器的查询方式。
  • 当主机向本地域名服务器发出查询请求时,如果本地域名服务器没有该域名的记录,它会代表主机向其他DNS服务器发送查询请求,直到找到所需的IP地址或确定域名不存在。
  • 递归查询需要DNS服务器不断地向其他DNS服务器请求,直到找到所需的IP地址为止。
  • 递归查询在查询过程中会一层一层地向下递归,直到找到所需的域名对应的IP地址,然后将查询结果返回给请求的主机。

迭代查询

  • 迭代查询是一种从本地DNS服务器向根域名服务器发出查询请求的方式。
  • 当本地DNS服务器向根域名服务器发出查询请求时,根域名服务器会返回下一个应该查询的DNS服务器的地址,本地DNS服务器再根据这个地址继续查询,直到找到所需的IP地址。
  • 迭代查询的查询过程是一层一层地向上迭代,直到找到所需的域名对应的IP地址。
  • 迭代查询中,每个DNS服务器只负责返回部分结果或指向下一个查询服务器的地址,而不是一直查询到最终结果。

区别总结

  • 查询方向:递归查询是由主机到本地DNS服务器,再由本地DNS服务器逐级向上查询;迭代查询是由本地DNS服务器向根域名服务器发起查询,根域名服务器返回下一个查询服务器的地址,本地DNS服务器再根据这个地址继续查询。
  • 服务器交互:递归查询中,DNS服务器会代表客户端向其他DNS服务器发送查询请求,直到找到最终结果;迭代查询中,DNS服务器之间通过返回下一个查询服务器的地址来进行交互,客户端或本地DNS服务器需要根据这些地址继续查询。
  • 应用场景:递归查询通常用于从请求主机到本地DNS服务器的查询,适用于终端用户;迭代查询通常用于DNS服务器之间的查询,适用于提高查询效率和分担负载。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DNS递归和迭代查询

转自:https://www.jianshu.com/p/6b502d0f2ede 一、DNS解析分类 DNS解析流程分为递归查询和迭代查询,递归查询是以本地名称服务器为中心查询,递归查询是默认方式,迭代查询是以...其实DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代 二、DNS递归解析原理 递归解析(或叫递归查询)是最常见,也是默认的解析方式。...然后再由本地名称服务器返回给DNS客户,同时本地名称服务器会缓存本次查询得到的记录项 三、递归查询和迭代查询的区别 DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代 DNS...DNS迭代名称解析:(或者叫迭代查询)的所有查询工作全部是DNS客户端自己进行(以DNS客户端自己为中心)。...在条件之一满足时就会采用迭代名称解析方式: 在查询本地名称服务器时,如果客户端的请求报文中没有申请使用递归查询,即在DNS请求报头部的RD字段没有置1。

7.5K40

DNS查询的两种方式:递归查询和迭代查询

DNS查询的两种方式:递归查询和迭代查询 ---- 1、递归解析 当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式,如图所示的是递归方式。...局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。...2、迭代解析 当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析,如图所示。...局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。...也就是说,迭代解析只是帮你找到相关的服务器而已,而不会帮你去查。比如说:baidu.com的服务器ip地址在192.168.4.5这里 声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。

6.6K30
  • 通信|DNS配置生成工具再更新,什么是递归和迭代查询?

    DNS查询如果在本地DNS没有结果的时候有两种查询方案:递归DNS查询和迭代DNS查询。...DNS的网状结构: 那么我们的电脑连接的DNS或者各个运营商的DNS不可能定义全球所有域名的解析,因此DNS收到一个域名解析请求后就会根据配置方案来向上级DNS请求,方案两种:一个叫做递归,一个叫做迭代...迭代DNS查询 迭代查询可以简单地理解为我可以不知道,但是我可以告诉你谁知道。...递归DNS查询 递归DNS查询就是不用你亲自跑腿儿了,我们是联合部门,内部查好告诉你最终结果即可。...递归查询对于最终用户来说更为简单,但可能给单个DNS服务器带来更多的压力;而迭代查询则分散了查询压力,但需要客户端具备更复杂的逻辑来处理多步查询过程。

    22110

    DNS递归和迭代过程详解

    DNS原理解析 DNS进化史 etc/hosts –> NIS –>DNS 起初域名和ip地址之间的解析都是完全存放在一个名为hosts的文件当中,在这个文件当中我们建立了ip和域名的一一对应的关系...DNS查询流程 我们以客户端第一次查询百度为例子解释DNS的查询流程 递归和迭代的区别?...所谓 递归查询过程 就是 “查询的递交者” 更替, 而 迭代查询过程 则是 “查询的递交者”不变。...如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。...参考文献 《鸟哥的linux私房菜服务篇》 DNS解析的工作原理及递归与迭代的区别 《TCP/IP详解卷一:协议》 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134835

    2.8K41

    java迭代和 递归的异同_递归和迭代有什么区别?简述区别

    大家好,又见面了,我是你们的朋友全栈君。 你对于递归和迭代都了解吗?那么你是否知道递归和迭代的区别呢?那么下面就和小编一起来了解一下,这两者之间的区别究竟是怎样的吧!...一、递归和迭代区别 首先我们要讲到的就是两者之间的概念。 首先,程序调用自身的编程技巧叫做递归,函数自己调用自己。 一个函数在它的定义当中,直接或者是间接的调用自身的一种方法。...可以用迭代的就不用递归,递归调用函数,比较的浪费空间,除此之外,递归还非常容易造成堆栈的溢出。 递归和迭代都是循环的一种。...简单的来讲的话,递归是重复调用函数自身实现循环,迭代是函数内某段代码实现循环。 迭代和普通循环区别: 循环代码当中,参与运算的变量同时是保存结果的变量,眼前,保存的结果作为下一次循环计算的初始值。...关于递归和迭代之间的区别你都了解了吗?看完上面的内容,你应该可以理解了吧。 好啦,假如你还想了解更多这方面的基础知识,请继续的关注奇Q工具网的java入门栏目来进行了解吧。

    48210

    java递归和迭代的区别

    大家好,又见面了,我是你们的朋友全栈君。 能使用迭代的不适用递归,另外一半递归有明确的父子关系或者 数据逐级演变为简单的算法!...递归是将上一步结果不断的压入站内, 所以递归很容易出现栈的溢出.而迭代不会! 递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己....使用递归要注意的有两点: 1)递归就是在过程或函数里面调用自身; 2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口....迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B....递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.

    52520

    迭代和递归的理解和区别

    二.迭代 迭代的经典例子 1.斐波那契数列(没错,又是我) 2.汉诺塔问题(这不巧了么) 3.背包问题 有N件物品和一个容量为V的背包。第i件物品的重量是w[i],价值是v[i]。...迭代和递归的关系和区别(敲黑板) 从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值得编程思想。...简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。...迭代与普通循环的区别是:迭代时,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。...递归与普通循环的区别是:循环是有去无回,而递归则是有去有回(因为存在终止条件)。 在循环的次数较大的时候,迭代的效率明显高于递归。

    1K20

    关于DNS解析试题分析和查询方式讲解

    在实际中,客户机向本地域名服务器查询是递归查询,本地域名服务器向其他域名服务器是迭代查询,但是这里题目要求就是递归查询。...大致过程如下图: 扩展阅读:https://jocent.me/2017/06/18/dns-protocol-principle.html 接下来来分析一下: 递归查询和迭代查询的区别 (1)递归查询...(2)迭代查询 DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台...这两种查询中,递归是优于迭代的,因为迭代只有客户机和域名服务器之间的操作,而递归是除了客户机和域名服务器之间的操作,还涉及域名服务器之间的操作。 根服务器–最高层次的域名服务器,最重要的域名服务器。...从技术上讲,任何DNS查询既可以是迭代的也可以是递归的。 现在在实践中,查询通常遵循下图的模式,从请求主机到本地DNS服务器的查询是递归的,其余的查询是迭代的。

    1.7K20

    【应用层】P2P、DNS、递归查询、迭代查询、FTP、电子邮件系统、万维网和HTTP

    ---查询服务和远程作业登录dns 应用服务模型----C/S、P2P DNS-----获得IP门牌号-----再去找门 域名----标号--就是www com cs。。...-直到找到ip-----------------------------根域名服务器一共有13个a.rootservers.net---m.rootservers.net 递归查询------靠别人--...---------------------迭代查询-------------靠自己--更常用 TFTP----trivial 小文件------UDPP FTP------提供不同主机系统文件传输能力...—查询服务和远程作业登录dns 应用服务模型----C/S、P2P DNS-----获得IP门牌号-----再去找门 域名----标号–就是www com cs。。...—直到找到ip-----------------------------根域名服务器一共有13个a.rootservers.net—m.rootservers.net 递归查询------靠别人---

    78320

    递归和迭代有什么区别?

    “递归”和“迭代”的区别如下: 1、递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决...3、递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出。 递归和迭代都是循环的一种。...简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。...递归的例子,比如给定一个整数数组,采用折半查询返回指定值在数组中的索引,假设数组已排序,为方便描述,假设元素都为正数,数组长度为2的整数倍。 折半查询是查询的一种,比遍历所有元素要快很多。...return Find(ary,index,half,value); 15 } 迭代经典例子就是实数的累加,比如计算1-100所有实数的和。

    6.1K20

    【计算机网络】应用层 : DNS 域名解析系统 ( 域名 | 域名服务器 | 域名解析过程 | 递归查询 | 迭代查询 | 高速缓存 )

    文章目录 一、域名 二、域名服务器 三、域名解析过程 四、递归查询 五、迭代查询 六、高速缓存 一、域名 ---- 域名 : ① 域名表示方法 : 字母 , 数字 , “-” 符号 , “.”...: 类别域名 : com , org , gov 行政区域域名 : 省 , 自治区 , 直辖市 , bj , js 自己注册的域名 ④ 三级域名 : 获取 二级域名 , 就可以解析 三级域名 ; ⑤...; ④ 本地域名服务器 : 主机向 本地域名服务器 发出 DNS 查询请求 ; 三、域名解析过程 ---- 域名解析过程 : 递归查询 迭代查询 四、递归查询 ---- 递归查询 : 委托给别人查找...IP 地址后 , 按照委托顺序 , 权限域名服务器 -> 顶级域名服务器 -> 根域名服务器 -> 本地域名服务器 -> 主机 , 返回查找的域名对应的 IP 地址 ; 五、迭代查询 ---- 迭代查询..., 缓存域名信息 ; 在 递归 或 迭代 查找域名时 , 优先从高速缓存中查找域名 , 如果没有 , 再执行相关操作 ; 如果 本地域名服务器的 高速缓存中 存储 着 顶级域名服务器 地址 , 就不用再访问根域名服务器了

    4.8K01

    Kubernetes 中的 DNS 查询

    nameserver 10.152.183.10 options ndots:5 DNS 客户端使用此配置将 DNS 查询转发到 DNS 服务器, resolv.conf 是解析程序的配置文件,其中包含以下信息...search:表示特定域的搜索路径,有趣的是 google.com 或 mrkaran.dev 不是 FQDN 形式的域名。大多数 DNS 解析器遵循的标准约定是,如果域名以 ....有一些 DNS 解析器会尝试用一些自动的方式将 . 附加上。所以, mrkaran.dev. 是 FQDN,但 mrkaran.dev 不是。...不到5个,那么进行 DNS 查找,将使用非完全限定名称,如果你查询的域名包含点数大于等于5,那么 DNS 查询默认会使用绝对域名进行查询。...如果您的应用程序具有大量的外部网络调用,那么在流量繁忙的情况下,DNS 可能会成为瓶颈,因为在触发真正的 DNS 查询之前还会进行很多额外的查询。

    5.7K20

    查询DNS的记录 查看域名解析是否正常

    nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。...直接查询 查询一个域名的A记录 nslookup domain [dns-server] nslookup www.google.com 8.8.8.8 Server: 8.8.8.8 Address...nslookup -qt=type domain [dns-server] 其中,type可以是以下这些类型: A 地址记录 AAAA 地址记录 AFSDB Andrew文件系统数据库服务器记录 ATMA...ATM地址记录 CNAME 别名记录 HINFO 硬件配置记录,包括CPU、操作系统信息 ISDN 域名对应的ISDN号码 MB 存放指定邮箱的服务器 MG 邮件组记录 MINFO 邮件组和邮箱的信息记录....25地址记录 查询更具体的信息 nslookup –d [其他参数] domain [dns-server] 只要在查询的时候,加上-d参数,即可查询域名的缓存。

    15.4K20

    SQL中的递归查询

    至少包含两个查询,第一个查询为定点成员,定点成员只是一个返回有效表的查询,用于递归的基础或定位点;第二个查询被称为递归成员,使该查询称为递归成员的是对CTE名称的递归引用是触发。...在逻辑上可以将CTE名称的内部应用理解为前一个查询的结果集。 递归查询的终止条件 递归查询没有显式的递归终止条件,只有当第二个递归查询返回空结果集或是超出了递归次数的最大限制时才停止递归。...2、迭代公式是 UNION ALL 下面的查询语句。在查询语句中调用中CTE,而查询语句就是CTE的组成部分,即 “自己调用自己”,这就是递归的真谛所在。...所谓迭代,是指每一次递归都要调用上一次查询的结果集,UNION ALL是指每次都把结果集并在一起。...3、迭代公式利用上一次查询返回的结果集执行特定的查询,直到CTE返回NULL或达到最大的迭代次数,默认值是32。

    25611

    Python Web学习笔记之递归和迭代的区别

    电影故事例证: 迭代——《明日边缘》 递归——《盗梦空间》 迭代是更新变量的旧值。递归是在函数内部调用自身。 迭代是将输出做为输入,再次进行处理。...用程序表述就是:for (int i=0; i < 100; i++) n = f(n); 再给迭代举个通俗点的例子:假如你有一条哈士奇和一条中华田园犬,怎么让它们串出比较纯正的哈士奇呢?...比如,显示器中的显示器,镜子中的镜子。我前面写着:摄像头对着显示器,镜子对着镜子是迭代,怎么现在又改成递归了?...这不矛盾,因为摄像头对着显示器,镜子对着镜子这种行为是输出做为输入,再次进行处理,所以是迭代。显示器中的显示器,镜子中的镜子这种效果是自己包含自己,所以是递归。...如同上面那幅图像,生成它的代码是迭代,而分形的效果是递归。 举个例子吧:你要给某个小孩子买玩具。 递归:你自己不太了解小孩子的需求,为了缩小范围,让你的儿子去给孙子挑选。

    997120

    MySQL 嵌套查询_嵌套查询和嵌套结果的区别

    自测题: 1、查询哪些课程没有人选修列出课程号和课程名; [code]select cno,cname from course where cno not in( select distinct cno...from sc)[/code] 2、用子查询实现如下查询: (1)查询选修了1号课程的学生姓名和所在系; [code]select sname,sno from student where sno in...( select sno from sc where cno=1)[/code] (2)查询“数据库”成绩在80分以上的学生的学号和姓名; [code]Select sno,sname From student...1号和2号课程的学生学号 [code]select sno from sc where cno=1 and sno in( select sno from sc where cno=2)[/code]...course.cno=sc.cno and course.cname=’离散数学’)[/code] 5、查询选修课程名为“数据库”的学生姓名(子查询) [code]select sname from

    4.3K20

    java递归和迭代_Java中的迭代与递归

    在进行每一步计算时,只要要知道当前结果(product)和i的值即可以了。这种计算形式称之为迭代。迭代有这样几个条件:1、有一个有初始值的变量。2、一个说明变量值如何升级的规则。3、一个结束条件。...( 循环三要素:循环变量、循环体和循环终止条件 )。和递归一样。时间要求随着输入的增长呈线性的可以叫做线性迭代。...迭代 VS 递归 比较了两个程序,我们可以发现,他们看起来几乎相同,特别是其数学函数方面。在计算n!的时候,他们的计算步数都是和n的值成正比的。...但是,假如我们站在程序的角度,考虑他们是如何运行的话,那么这两个算法就有很大不同了。 (注:原文中关于其区别写的有点扯,这里就不翻译了,下面是笔者自己总结内容。)...递归中肯定有迭代,但是迭代中不肯定有递归,大部分可以相互转换。 能用迭代的不要用递归,递归调用函数不仅白费空间,假如递归太深的话还容易造成堆栈的溢出。

    2.1K40
    领券