本系列基于哈工大李全龙课程
目录
一.DNS概述
1.1概述
问题:DNS和IP地址之间如何映射?
当用户在浏览器中输入一个域名(比如www.example.com)时,浏览器会向本地DNS服务器发送一个查询请求,询问该域名对应的IP地址。本地DNS服务器会首先查询自己的缓存,如果有对应的IP地址,则直接返回给浏览器。
如果本地DNS服务器的缓存中没有该域名对应的IP地址,它会向根域名服务器发送一个查询请求。根域名服务器会返回一个指向顶级域名服务器的IP地址,比如.com域名的顶级域名服务器。
本地DNS服务器再向顶级域名服务器发送查询请求,顶级域名服务器会返回该域名的权威域名服务器的IP地址。权威域名服务器是负责管理该域名的IP地址记录的服务器。
最后,本地DNS服务器向权威域名服务器发送查询请求,权威域名服务器会返回该域名对应的IP地址。本地DNS服务器将该IP地址存入缓存,并将结果返回给浏览器。
1.2DNS作用过程:
本地:
1.3两种DNS查询示例:
迭代查询:
递归查询:
问题:这两种查询的优劣?
在DNS查询中,递归查询和迭代查询是两种不同的查询方式,各自具有不同的优势和效率。
-
递归查询:在递归查询中,DNS客户端向本地DNS服务器发送查询请求,本地DNS服务器会负责向其他DNS服务器发起查询,并一直追踪直到找到最终的查询结果,然后将结果返回给客户端。递归查询的优势在于它可以减少客户端的工作量,因为客户端只需要发送一次查询请求,然后等待结果即可。但是递归查询可能会增加本地DNS服务器的负担,因为它需要不断地向其他DNS服务器发起查询并等待结果。
-
迭代查询:在迭代查询中,DNS客户端向本地DNS服务器发送查询请求,本地DNS服务器只负责返回一个指向其他DNS服务器的IP地址,而不会主动去查询其他DNS服务器。然后客户端会直接向这个指定的DNS服务器发送查询请求,然后再返回结果。迭代查询的优势在于它可以减轻本地DNS服务器的负担,因为它只需要返回一个IP地址,而不需要进行递归查询。但是迭代查询可能会增加客户端的工作量,因为客户端需要主动向其他DNS服务器发起查询。
总体而言,递归查询相对于迭代查询来说更加高效,因为它可以减少客户端的工作量,而且大多数DNS服务器都支持递归查询。但是在某些情况下,迭代查询也可以提供更好的性能,特别是在网络环境复杂或DNS服务器负载较高的情况下。因此,选择使用递归查询还是迭代查询取决于具体的网络环境和需求。