DNS协议解析过程

一、什么是DNS协议

DNS是域名系统(Domain Name Service)的缩写,我们通常用来识别主机的方式有两种,一种是通过主机名,另外一种是通过IP地址。主机名便于我们的记忆,而路由器则更喜欢定长的、有着层次结构的IP地址。所以需要一个能将域名转变到IP地址的目录服务,这就是域名服务器存在的意义。

二、DNS解析过程

1. 浏览器缓存检查

浏览器会先检查自己是否有 www.example.com 的DNS缓存记录。如果有,直接使用。

2. 操作系统缓存检查

如果浏览器没有,操作系统(OS)会查看本机的DNS缓存。

3. hosts 文件检查(可选)

某些操作系统(如Windows和Linux)会检查本地的 hosts 文件,看是否有该域名的静态映射。

4. 发送DNS请求给本地域名服务器(递归DNS服务器)

如果本机没有缓存,系统会将查询请求发送给配置的 本地DNS服务器(通常是你路由器、ISP或设置的公共DNS,如8.8.8.8)。

此时,本地DNS服务器会开始递归查询:

5. 查询根DNS服务器

  • 本地DNS服务器先向 根DNS服务器 请求 www.example.com。
  • 根DNS服务器不负责解析具体域名,但会告诉你:".com 顶级域名的TLD服务器地址是 XX"。

6. 查询顶级域(TLD)DNS服务器

  • 本地DNS服务器向 .com 的 TLD DNS服务器 发送查询请求。
  • .com 的TLD服务器会回应:"example.com 的权威DNS服务器地址是 YY"。

7. 查询权威DNS服务器

  • 本地DNS服务器向 权威DNS服务器 请求 www.example.com 的 IP 地址。
  • 权威DNS服务器返回对应的 IP,比如:93.184.216.34。

8. 本地DNS服务器将结果缓存,并返回给客户端

  • 本地DNS服务器把这个IP地址保存到本地缓存中(根据TTL时间),并返回给你的电脑。

9. 客户端接收到IP地址,开始访问网站

  • 你的浏览器使用这个IP地址向服务器发起HTTP或HTTPS连接,请求网页内容。

三、DNS的查询方式

1. 递归查询 (Recursive Query)

在递归查询中,DNS 客户端(通常是本地 DNS 解析器)向 DNS 服务器发出查询请求。该服务器如果无法直接回答客户端的问题,它会代表客户端进行查询,直到找到最终的答案并返回给客户端。

  • 流程:

    1. 客户端发送查询请求给本地 DNS 服务器。

    2. 如果本地 DNS 服务器知道答案,它直接返回。如果不知道,它会通过其他 DNS 服务器查询。

    3. 递归查询通常从根 DNS 服务器开始,然后逐级向下查询,直到获得答案。

    4. 最后,解析结果返回给客户端。

  • 特点:

    • 客户端只需要等待最终的结果,不需要知道具体的查询路径。

    • 负担主要由 DNS 服务器承担。

2. 迭代查询 (Iterative Query)

在迭代查询中,DNS 客户端向 DNS 服务器发送查询请求。如果该服务器无法直接回答请求,它不会继续向下查询,而是返回一个指向其他 DNS 服务器的建议地址(通常是下级 DNS 服务器)。

  • 流程:

    1. 客户端向本地 DNS 服务器发送查询请求。

    2. 本地 DNS 服务器检查是否有答案。如果没有,它会返回一个上级 DNS 服务器的地址给客户端。

    3. 客户端再向上级 DNS 服务器发出查询请求,依此类推,直到获得最终的答案。

  • 特点:

    • 客户端需要知道如何进行多次查询,并且需要解析中间返回的服务器地址。

    • 每个 DNS 服务器只负责给出下一个可能的答案,而不是递归查找。

相关推荐
实点科技3 分钟前
远程IO模块的柜外安装:装在什么位置、防尘罩怎么选配
运维·服务器·网络
云絮.14 分钟前
Spring MVC(二)
服务器·spring·mvc
青梅味猪大肠26 分钟前
【操作系统-26】进程互斥软件实现-Peterson算法
linux·运维·服务器
qq_40999093?1 小时前
VyOS 入门指南:从概念认知到基础配置
网络
wdfk_prog1 小时前
Wi-Fi Direct教程 01:在 Ubuntu 搭建双 mac80211_hwsim + wpa_supplicant 2.12
linux·运维·服务器·ubuntu·ros·wifi-direct
瞬间记忆1 小时前
汽车CAN基础知识
网络
wusam1 小时前
计算机网络第二章习题解答
服务器·网络·计算机网络
EasyGBS2 小时前
国标监控PS流是什么?GB28181视频平台EasyGBS视频封装全链路讲解
服务器·音视频·gb28181
Vcaker2 小时前
Linux学习36-k8s集群升级及kube-vip高可用
linux·运维·学习
土星云SaturnCloud2 小时前
边缘计算 + AI 视频存管一体机:快递末端网点分拣提效与安全管控实战方案
服务器·人工智能·ai·边缘计算