什么是 DNS?DNS 的三种查询方式?

1. DNS是什么

DNS(Domain Names System),域名系统,是互联网一项服务,是进行域名和与之相对应的 IP 地址进行转换的服务器。

简单来讲,DNS相当于一个翻译官,负责将域名翻译成ip地址。

域名是一个树状结构,最顶层的域名是根域名(root),然后是顶级域名(top-level domain,简写 TLD),再是一级域名、二级域名、三级域名
在这里插入图片描述

例如www.xxx.com,www为三级域名、xxx为二级域名、com为顶级域名,系统为用户做了兼容,域名末尾的根域名. 一般不需要输入。

这种树状结构的意义在于,只有上级域名,才知道下一级域名的 IP 地址,需要逐级查询。每一级域名都有自己的 DNS 服务器,存放下级域名的 IP 地址。

2. DNS 查找有哪些步骤?

通常,DNS 查找信息将本地缓存在查询计算机内,或者远程缓存在 DNS 基础设施内。DNS 查找通常有 8 个步骤。缓存 DNS 信息时,将从 DNS 查找过程中跳过一些步骤,从而使该过程更快。以下示例概述了不缓存任何内容时的所有 8 个步骤。

  1. 用户在 Web 浏览器中键入 “example.com”,查询传输到互联网中,并被 DNS 递归解析器接收。
  2. 接着,解析器查询 DNS 根域名服务器(.)
  3. 然后,根服务器使用存储其域信息的顶级域(TLD)DNS 服务器(例如 .com 或 .net)的地址响应该解析器。在搜索 example.com 时,我们的请求指向 .com TLD。
  4. 解析器向 .com TLD 发出请求。
  5. TLD 服务器随后使用该域的域名服务器 example.com 的 IP 地址进行响应。
  6. 最后,递归解析器将查询发送到域的域名服务器。
    example.com 的 IP 地址而后从域名服务器返回解析器。
  7. 然后 DNS 解析器使用最初请求的域的 IP 地址响应 Web 浏览器。
  8. DNS 查找的这 8 个步骤返回 example.com 的 IP 地址后,浏览器便能发出对该网页的请求:
  9. 浏览器向该 IP 地址发出 HTTP 请求。
  10. 位于该 IP 的服务器返回将在浏览器中呈现的网页
    在这里插入图片描述

3. DNS查询方式

1. 递归查询

客户端向 DNS 服务器发送查询请求,要求 DNS 服务器负责获取最终的 IP 地址并返回给客户端。查询的整个过程由 DNS 服务器完成,客户端只与 DNS 服务器交互一次,收到最终结果。如果 DNS 服务器找不到结果,会返回错误。

查询过程:
1.客户端发起递归查询请求。
2.DNS 服务器查询本地缓存
3.如果缓存中没有记录,服务器向其他 DNS 服务器发起多次查询(逐级向根、顶级域名(TLD)、权威 DNS 查询)。
4.最终结果返回给客户端。

2. 迭代查询

客户端向 DNS 服务器发出查询请求,DNS 服务器如果无法直接解析,会返回下一步查询的推荐地址。客户端根据推荐的地址继续发起查询,直到获取最终结果。
客户端主动与多个 DNS 服务器交互,DNS 服务器只返回下一步信息,而不负责整个解析过程。过程更灵活,但客户端负担较大。

查询过程:
1.客户端发起迭代查询请求。
2.DNS 服务器返回推荐的下一级 DNS 服务器地址
3.客户端再次向推荐的 DNS 服务器发起查询。
4.反复进行,直到获取最终结果。

3. 非递归查询

客户端直接向能够解析请求的 DNS 服务器查询 IP 地址,DNS 服务器只在本地缓存中查找记录并返回结果 。不涉及多次查询,查询速度快,由于只能使用服务器的已有缓存,结果可能不全面。常用于本地缓存查询。

查询过程:
1.客户端发起非递归查询请求。
2.DNS 服务器查找本地缓存并返回结果。
3.如果没有缓存,DNS 服务器返回错误。

4. 实际 DNS 查询过程

通常 DNS 查询是递归查询迭代查询的结合:
1.客户端向本地 DNS 服务器发起递归查询
2.本地 DNS 服务器向根 DNS、顶级域名(TLD)服务器、权威服务器发起迭代查询
3.本地 DNS 服务器获取结果后返回给客户端。

5. DNS缓存

为了优化 DNS 查询速度,减少重复查询,DNS 使用多级缓存机制

缓存存在于:客户端操作系统(如 DNS 缓存表)、本地 DNS 服务器、中间网络设备(如路由器)

DNS 数据可缓存到各种不同的位置上,每个位置均将存储 DNS 记录并保存由**生存时间(TTL)**决定的一段时间。

TTL (Time-To-Live) 表示某条 DNS 记录在缓存中存活的时间,是域名系统中为每条 DNS 记录设置的一个生命周期。

🔍https://www.ruanyifeng.com/blog/2022/08/dns-query.html
🔍什么是 DNS? | DNS 的工作方式

🔖更多阅读:
🔍HTTP1.0/1.1/2.0/3.0 的区别?
🔍HTTP请求中的安全性和幂等性
🔍OPTIONS 预检请求是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值