【系统架构设计师】DNS查询过程

目录

          • [1. DNS查询的起点](#1. DNS查询的起点)
          • [2. 本地查询](#2. 本地查询)
            • [2.1 检查hosts文件](#2.1 检查hosts文件)
            • [2.2 查询本地DNS缓存](#2.2 查询本地DNS缓存)
          • [3. 本地DNS服务器查询](#3. 本地DNS服务器查询)
          • [4. 上级DNS服务器查询](#4. 上级DNS服务器查询)
            • [4.1 根域名服务器](#4.1 根域名服务器)
            • [4.2 顶级域名服务器](#4.2 顶级域名服务器)
            • [4.3 权威域名服务器](#4.3 权威域名服务器)
          • [5. 查询结果返回](#5. 查询结果返回)
          • [6. 缓存更新](#6. 缓存更新)
          • [7. 例题](#7. 例题)
            • [7.1 例题1](#7.1 例题1)
1. DNS查询的起点
  • 1.DNS查询过程通常从客户端(如浏览器或应用程序)发起。
  • 2.当用户在客户端输入一个域名时,客户端会向DNS系统发起查询请求,以获取该域名对应的IP地址。
2. 本地查询
2.1 检查hosts文件
  • 1.操作系统首先会检查本地hosts文件。
  • 2.hosts文件是一个简单的文本文件,存储在计算机上,包含了域名与其对应IP地址的手动映射。
  • 3.如果在hosts文件中找到了与输入域名匹配的条目,操作系统会直接返回该域名对应的IP地址,跳过后续的DNS查询过程。
2.2 查询本地DNS缓存
  • 1.如果hosts文件中没有匹配的条目,操作系统会查询本地DNS缓存。
  • 2.本地DNS缓存是操作系统维护的一个动态数据库,存储了最近使用的域名及其对应的IP地址。
  • 3.如果在本地DNS缓存中找到了匹配的条目,操作系统会返回该域名对应的IP地址,从而提高DNS解析的效率。
3. 本地DNS服务器查询
  • 1.如果本地查询失败,客户端会向本地DNS服务器发起查询请求。
  • 2.本地DNS服务器在DNS查询过程中扮演着关键角色,充当客户端和上级DNS服务器之间的中介。
  • 3.缓存查询:本地DNS服务器首先检查其缓存中是否已有该域名的解析记录。缓存查询几乎不需要额外的网络开销,因此是最高效的方式。如果找到匹配的记录,本地DNS服务器会立即返回结果给客户端。
  • 4.转发查询:如果本地DNS服务器的缓存中没有所需信息,它会采取不同的查询策略,包括递归查询和迭代查询。
  • 5.递归查询:本地DNS服务器负责执行完整查询过程,直至获得最终结果。
  • 6.迭代查询:本地DNS服务器将查询请求转发给其他DNS服务器,逐步推进查询过程。
4. 上级DNS服务器查询
  • 1.在转发查询的过程中,本地DNS服务器会依次向根域名服务器、顶级域名服务器和权威域名服务器发起查询请求。
4.1 根域名服务器
  • 1.根域名服务器位于DNS层级结构的最高级别,掌握着所有顶级域名服务器的信息。
  • 2.本地DNS服务器会向根域名服务器发起查询请求,根域名服务器会返回负责该顶级域名的权威DNS服务器的IP地址。
4.2 顶级域名服务器
  • 1.顶级域名服务器负责管理和解析特定顶级域名下的所有二级域名。
  • 2.本地DNS服务器会根据根域名服务器提供的指引,向相应的顶级域名服务器发起查询请求。
  • 3.顶级域名服务器会返回该域名的权威DNS服务器的地址。
4.3 权威域名服务器
  • 1.权威域名服务器是DNS查询过程的最后一环,负责提供最终的IP地址解析结果。
  • 2.本地DNS服务器会通过迭代查询或递归查询到达权威域名服务器,权威服务器会直接返回所请求的IP地址。
5. 查询结果返回
  • 1.权威域名服务器返回IP地址后,该信息会沿着查询路径逐级返回给本地DNS服务器,并最终返回给客户端。
  • 2.客户端收到IP地址后,就可以与该IP地址对应的服务器进行通信,从而访问所需的资源。
6. 缓存更新
  • 1.在整个DNS查询过程中,各级DNS服务器都会缓存查询结果,以提高后续相同域名查询的速度。
  • 2.每个缓存条目都关联一个TTL(Time to Live)值,指示该条目在缓存中存活的有效期。
  • 3.当缓存条目过期时,系统会自动清除或更新相应的条目,确保缓存中的信息始终保持最新状态。
7. 例题
7.1 例题1
  • 1.题目

    1.主机PC对某个域名进行查询,最终由该域名的授权域名服务器解析并返回结果,查询过程如下图所示。
    这种査询方式中不合理的是(A)。
    A.根域名服务器采用递归查询,影响了性能
    B.根域名服务器采用迭代查询,影响了性能
    C.中介域名服务器采用迭代查询,加重了根域名服务器负担
    D.中介域名服务器采用递归查询,加重了根域名服务器负担

  • 2.解析

    1.在域名解析过程中,一般有两种查询方式:递归查询和迭代查询。
    2.递归查询:服务器必须回答目标IP与域名的映射关系。
    3.迭代查询:服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其他DNS服务器的地址。
    4.递归查询会向下探索,最终返回答案,迭代查询不会向下探索,会立即返回消息,可以只返回线索。

相关推荐
吴建旭 智宅焕1 天前
智能家居B端客户路径诊断的系统架构设计与实现:背景采集、经验分层与交付确定性
系统架构·智能家居
长不大的杨瑞杰4 天前
ChatGPT 广告技术栈架构拆解:多轮意图、LLM 工具编排、ANN 召回与拍卖闭环
人工智能·chatgpt·系统架构·推荐系统·广告
艺杯羹5 天前
Windows原生软件锁设计:从暴力杀进程丢数据到零轮询事件驱动架构
windows·系统架构·开源·开源软件·内存管理·开源协议
jktantan5 天前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·后端·算法·spring cloud·系统架构
艺杯羹7 天前
MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信
人工智能·python·ai·系统架构·大语言模型·ai编程·mcp
奇树谦7 天前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
无心水7 天前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
拆房老料9 天前
DeepSeek Super-agent 架构解析:从单任务 Agent 到持续运行的任务系统
人工智能·设计模式·系统架构
Jmyd01239 天前
文物3D数字化的技术选型指南:从WW/T 0115标准到落地工程,一次讲透采集、建档、管理与展示
3d·系统架构·博物馆·数字展厅·博物馆数字化
薛定谔的猫-菜鸟程序员9 天前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师