当前位置: 首页 > news >正文

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

【计算机网络】深入浅出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/权威服务器