DNS 中递归查询与迭代查询的区别

给你打个比方。
你是一台PC主机,你的老师是一台DNS服务器。
你有一个数学问题(也就是DNS查询请求)不会,于是咨询你的老师,王老师。他如果会,则直接告诉你;如果不会,那么他有几种方法寻找答案。
1、递归查询
王老师问宋校长(即根域DNS),
宋校长他不会,于是去问数学教学组的张教授(即一级DNS)。
张教授他没有直接回答,而是去问他下属的一位教几何的李老师(即二级DNS)
正巧,你问的题目李老师他懂,他把答案告诉了张教授。
张教授又把答案告诉了宋校长
宋校长又把答案告诉给你的老师,即王老师。
最后,王老师把答案告诉你,这样完成了一次递归查询。
在这个过程中,你始终等待查询结果。
流程图:
你→王老师
王老师→宋校长
宋校长→张教授
张教授→李老师
李老师→张教授
张教授→宋校长
宋校长→王老师
王老师→你

2、迭代查询
还是用这个例子来说明。
你有一个数学问题(也就是DNS查询请求)不会,于是咨询你的老师,王老师。
王老师问他的导师,宋校长(即根域DNS),

宋校长他也会,请注意,此处开始与递归查询不一样的是,他不会去帮王老师问其他人,而是对王老师说“你去找张教授(即一级DNS)”,并告诉了张教授的电话号码。
王老师打电话找到了张教授问这个问题,张教授也不知道,就对王老师说:“你去找张教授(即一级DNS)”,并告诉了张教授的电话。
张教授他没有直接回答,而是让你去问他的下属,教几何的李老师(即二级DNS)
正巧,你问的题目李老师他懂,他把答案告诉了王老师。
这么一来,王老师知道答案就很快告诉了你,这样完成了一次迭代查询。
流程图:
你→王老师
王老师→宋校长
宋校长→王老师

王老师→张教授
张教授→王老师

王老师→李老师
李老师→王老师
王老师→你

文字写的可能有点啰嗦,但基本原理是这样的。 可以结合根域、一级DNS、二级DNS理解。

发布了24 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Y_X_ngu/article/details/85308004