【计算机网络】深入浅出DNS:网络世界的地址簿与导航系统 - 教程

news/2025/11/23 21:45:57/文章来源:https://www.cnblogs.com/tlnshuju/p/19261623

【计算机网络】深入浅出DNS:网络世界的地址簿与导航系统 - 教程

2025-11-23 21:39  tlnshuju  阅读(0)  评论(0)    收藏  举报

文章目录

  • 前言
  • 1. 前置
  • 2. DNS 查询过程

前言

TCP/IP 网络协议栈中使用 IP 地址和端口号来确定网络上的一台主机的一个代码。但是IP 地址不方便记忆。于是人们发明了一种叫主机名的东西,是一个字符串,并且使用 hosts 文件来描述主机名和 IP 地址的关系。

最初,凭借互连网信息中心(SRI-NIC)来管理这个 hosts 文档的。

  1. 如果一个新计算机要接入网络,或者某个计算机 IP 变更,都需要到信息中心申请变更 hosts 文件。
  2. 其他计算机也需要定期下载更新新版本的 hosts 文件才能正确上网。

但是产生了 DNS 系统就是这样就太麻烦了,于。(域名服务器)

  1. 一个组织的系统管理机构,维护系统内的每个主机的 IP 和主机名的对应关系。

  2. 如果新计算机接入网络,将这个信息注册到数据库中;

后面用户输入域名的时候,会自动查询 DNS 服务器,由 DNS 服务器检索数据库, 得到对应的 IP 地址

域名(如:www.google.com):就像一个人的名字。我们记名字很容易,但很难记住他家的具体经纬度坐标。
IP地址(如:142.251.42.206):就像这个人的“经纬度坐标”或“电话号码”。这是计算机在网络上定位另一台计算机的唯一方式。
DNS的作用就是:当你在浏览器里输入一个名字(域名)时,它帮你查到这个名字对应的电话号码(IP地址),这样你的浏览器才能打电话(建立连接)给正确的服务器。

本文章就是和大家简单介绍一下 DNS 技术。

1. 前置

小结:

小结:

2. DNS 查询过程

  • 前置:DNS 服务器:

    DNS一个单一的服务器就是不,而是一个全球分布的层级架构,主要分为四层:

    1. 根域名服务器:全球只有13组(注意是组,每组都有很多台镜像服务器),它们知道所有顶级域(如 .com, .net, .cn)的信息。

    2. 顶级域(TLD)域名服务器:负责管理特定的顶级域。比如 .com TLD服务器知道所有以 .com 结尾的域名的授权信息。

    3. 权威域名服务器:是域名真正的主人管理的服务器。它存储着该域名下所有子域名(如 www, mail)和其IP地址的最终映射关系

    4. 本地DNS服务器:通常由你的网络运营商(如电信、联通)提供,或者是你自己设置的。它是你电脑发起 DNS 查询的“第一站”和“代理”。

下面我们来讲解 DNS 的查询过程:

  1. 浏览器缓存:我们在浏览器输入 www.example.com 后,浏览器第一会检查自己的缓存里有没有该域名的IP地址。假如有(并且没过期),直接使用,解析结束。

  2. 操作系统缓存:假如浏览器缓存没有,浏览器会去询问操作系统的缓存。在Windows里是 hosts 文件,在Mac/Linux里也是 /etc/hosts 文件以及系统自身的 DNS 缓存。

  3. 询问本地 DNS 服务器:如果前两步都没找到,你的电脑就会把查询请求发送给本地DNS服务器(这个地址通常在连接网络时自动获取)。

  4. 本地DNS服务器的查询(递归查询):(先查本地 DNS 的缓存)我们的电脑对本地 DNS 服务器说:“帮我找到 www.example.com 的IP”。接下来,本地DNS服务器就开始替你去奔波了:

    • 询问根域名服务器:本地 DNS 服务器最初去问 13 个根服务器之一:“你知道 www.example.com 在哪吗?” 根服务器不会直接给出答案,但它会回复说:“我不知道 www.example.com 的IP,但我可以告诉你 .com 顶级域服务器的地址,你去问它吧。”

    • 询问顶级域(TLD)服务器通过:本地DNS服务器拿着根服务器给的地址,去问 .com TLD服务器:“你知道 www.example.com 在哪吗?” TLD服务器同样不会给出最终答案,但它会回复:“我不知道 www.example.com 的IP,但我能够告诉你 example.com 这个域的权威域名服务器的地址,你去问它吧。”

    • 询问权威域名服务器:本地 DNS 服务器最后拿着 TLD 服务器给的地址,去问 example.com 的权威服务器:“请告诉我 www.example.com 的IP地址” 这次,权威服务器终于给出了最终的答案:“www.example.com 的IP是 93.184.216.34。”

  5. 返回结果并缓存:本地DNS服务器终于拿到了IP地址,这下它会做两件事情:

    • 首先,把该结果缓存起来(根据TTL值设定有效期,缓存在 DNS 本地服务器上),下次再有人问同样的问题,它就可以直接回答,不用再跑一圈了。

    • 然后,把IP地址 93.184.216.34 返回给你的电脑。

  6. 操作系统缓存并返回:你的操作系统收到IP后,也把它放进自己的缓存里,随后交给浏览器。

  7. 浏览器发起连接:浏览器终于拿到了 www.example.com 的IP地址,现在它可以与目标服务器建立TCP连接,发起 HTTP 请求,然后获取网页内容了。

  • 整个流程如下图:

    在这里插入图片描述


  • 加入缓存的流程图:
用户/浏览器 浏览器缓存 操作系统缓存本地DNS服务器根/TLD/权威服务器第一次查询(无缓存场景) 输入网址 查询DNS 浏览器缓存未命中查询平台缓存系统缓存未命中查询本地DNS本地DNS缓存未命中开始迭代查询返回最终IP 权威结果! 在本地DNS缓存 返回IP 在操作系统缓存 返回IP 在浏览器缓存 返回IP 第二次查询(缓存命中场景)再次访问同一网址浏览器缓存命中!直接利用IP(查询结束,无需后续步骤)用户/浏览器 浏览器缓存 操作系统缓存本地DNS服务器根/TLD/权威服务器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/974263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025-01-24-Fri-T-如何做一个开源项目

创建和维护一个开源项目是一个非常有意义的工作,它可以帮助你与全球开发者合作,同时建立个人或团队的影响力。以下是详细步骤,帮你从零开始创建一个成功的开源项目。 1. 确定项目目标 解决实际问题:选择一个对你或…

利用大语言模型分析技术支持诈骗Facebook群组的网络犯罪研究

本文介绍了一项利用大语言模型分析Facebook上技术支持诈骗群组的研究,涉及38万条帖子的分类分析,揭示了网络犯罪服务的运作模式和最新趋势。网络犯罪与刑罚:我们在APWG eCrimes会议上关于技术支持诈骗Facebook群组的…

一些唐话

学OI学的言论均为转载 不保证言论可读你干嘛直接放 *3500 啊?!正经比赛里不是这样的!你应该先放两个简单签到,然后提升我的心态。偶尔给我送送强点的大样例,然后在那个我上厕所的时候跟我有神秘互动。最后在某个我…

2025-05-29-Thu-T-设计模式

目录1. 设计模式相关内容介绍1.1 设计模式概述1.2 UML类图类的表示方式类之间的关系表示方法1.3 软件设计原则1.1 开闭原则1.2 里氏代换原则1.3 依赖倒转/依赖倒置原则1.4 接口隔离原则1.5 迪米特法则1.6 合成复用原则…

2025-05-27-Tue-T-JVM

目录1 JVM与Java体系结构1.1 JVM 结构简图1.2 Java代码执行流程1.3 JVM的架构模型1.4 JVM的生命周期一、内存结构1. 程序计数器2. 虚拟机栈2.1 定义2.2 栈内存溢出2.3 线程运行诊断3. 本地方法栈4. 堆4.1 定义4.2 堆内…

11-28

今日掌握了 HashMap 的常用方法(put ()、get ()、containsKey ()),理解了键的唯一性,学会了遍历 Map 集合的两种方式(keySet、entrySet)。 明日计划学习多线程编程,重点理解线程的概念、创建方式(继承 Thread …

20232421 2025-2026-1 《网络与系统攻防技术》实验六实验报告

1.实践内容前期渗透主机发现 端口扫描 选做:也可以扫系统版本、漏洞等。Vsftpd源码包后门漏洞(21端口) SambaMS-RPC Shell命令注入漏洞(139端口) Java RMI SERVER命令执行漏洞(1099端口) PHP CGI参数执行注入漏…

20232315 2025-2026-1 《网络与系统攻防技术》实验六实验报告

20232315 2025-2026-1 《网络与系统攻防技术》实验六实验报告20232315 2025-2026-1 《网络与系统攻防技术》实验六实验报告 目录一、实验基本信息二、实验内容及要求三、实验过程3.1 前期渗透3.2 漏洞利用四、问题及解…

[CISCN 2022 华东北]duck WP

[CISCN 2022 华东北]duck WP[CISCN 2022 华东北]duck 一、题目来源 NSSCTF-Pwn-[CISCN 2022 华东北]duck二、信息搜集 通过 file 命令查看文件类型:通过 checksec 命令查看文件开启的保护机制:题目把 libc 文件和链接…

20232320 2025-2026-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 总结一下本周学习内容,不要复制粘贴 2.实验过程 (1)前期渗透 ①主机发现(可用Aux中的arp_sweep,search一下就可以use) ②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。 ③选做:也可以…

2025-01-14-Tue-T-实体关系图ERD

实体关系图(ERD)指南 什么是实体关系图(ERD)? 数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图,便能让您生成高质量的数据库设计,用于数据库创建,管理和维护,也为人员间的交流提供…

《Either Way》

누가 내 말투가 재수없대 有人说我语气很讨人厌 잘난 척만 한대 有人说我自以为是 또 누구는 내가 너무 착하대 还有人说是我太善良 바보같을 정도래 以至于像个傻瓜 가끔은 이해조차 안 되는 시선들 有些时候 被投来不…

20232424 2025-2026-1 《网络与系统攻防技术》实验六实验报告

20232424 2025-2026-1 《网络与系统攻防技术》实验六实验报告 1.实验内容 总结一下本周学习内容,不要复制粘贴 2.实验过程 3.问题及解决方案问题1:XXXXXX 问题1解决方案:XXXXXX 问题2:XXXXXX 问题2解决方案:XXXXX…

2024-11-26-Tue-T-SSM

SSM SSM三者的关系1 Spring IoC容器 父子工程 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w…

HTML游戏创建:利用视频作为特效自动播放的方法

HTML游戏创建:利用视频作为特效自动播放的方法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

第四章-Tomcat线程模型与运行方式 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

11-21

今日学习了 Date 类的使用,掌握了 SimpleDateFormat 类的日期格式化(yyyy-MM-dd HH:mm:ss)与解析功能,完成了当前日期输出与生日计算案例。 明日计划学习异常处理机制,重点理解 try-catch-finally 语句,以及常见…

11-25

今日学习了字符流的适用场景(文本文件处理),掌握了 FileReader、FileWriter 的读写操作,以及缓冲流(BufferedReader/BufferedWriter)的效率优化。 明日计划学习集合框架,重点理解 List 接口的实现类(ArrayList…

11-24

今日掌握了字节流的核心类(FileInputStream、FileOutputStream),学会了使用字节流读取文件内容、写入数据到文件,完成了图片复制案例。 明日计划学习字符流(Reader/Writer),理解字节流与字符流的区别,重点掌握…

2023-10-15-R-如何阅读一本书

从五月份开始直至昨天,断断续续读完了这本书,但这个过程还是过于走马观花。因为是走马观花,所以大部分的内容根本没有深入理解,更谈不让将之运用于实践了。不过我知道这是一本好书,一本对于我的个人发展是一本好书…