【华为HCIA路由交换认证指南】第二章 TCP/IP

文章目录

    • [1. 什么是协议 (Protocol)?](#1. 什么是协议 (Protocol)?)
    • [2. TCP/IP 栈的分层(四层模型)](#2. TCP/IP 栈的分层(四层模型))
      • 各层的功能详解
        • [🟢 第 4 层:应用层 (Application Layer)](#🟢 第 4 层:应用层 (Application Layer))
        • [🔵 第 3 层:传输层 (Transport Layer)](#🔵 第 3 层:传输层 (Transport Layer))
        • [🟡 第 2 层:网络层 (Internet Layer)](#🟡 第 2 层:网络层 (Internet Layer))
        • [🔴 第 1 层:链路层 (Link Layer)](#🔴 第 1 层:链路层 (Link Layer))
    • [3. 数据的奇幻漂流:封装 (Encapsulation)](#3. 数据的奇幻漂流:封装 (Encapsulation))
    • [4. 包裹的抵达:解封 (Decapsulation)](#4. 包裹的抵达:解封 (Decapsulation))
    • [5. TCP/IP 核心知识点总结](#5. TCP/IP 核心知识点总结)
    • 应用层协议详解
      • [1. 什么是应用层协议?](#1. 什么是应用层协议?)
      • [2. 应用层协议的标准化](#2. 应用层协议的标准化)
      • [3. HTTP 协议](#3. HTTP 协议)
        • [HTTP 特点:](#HTTP 特点:)
        • [HTTP 报文结构](#HTTP 报文结构)
          • [① 客户端请求 (Request)](#① 客户端请求 (Request))
          • [② 服务器响应 (Response)](#② 服务器响应 (Response))
      • [4. 抓包分析应用层协议](#4. 抓包分析应用层协议)
        • [分析过程(以 HTTP 为例):](#分析过程(以 HTTP 为例):)
        • [如何分析 HTTPS?](#如何分析 HTTPS?)
      • [5. FTP 协议](#5. FTP 协议)
        • [1. 通俗比喻:专门的文件搬运工](#1. 通俗比喻:专门的文件搬运工)
        • [2. FTP 最独特的特点:两个通道](#2. FTP 最独特的特点:两个通道)
        • [3. 为什么这个"双通道"设计很麻烦?](#3. 为什么这个“双通道”设计很麻烦?)
        • [4. 重点:FTP 安全吗?](#4. 重点:FTP 安全吗?)
        • [5. 现代的替代方案](#5. 现代的替代方案)
      • [6. DNS 协议](#6. DNS 协议)
        • [1. 什么是 DNS?(互联网的"电话簿")](#1. 什么是 DNS?(互联网的“电话簿”))
        • [2. DNS 的查询"奇幻之旅" (分层与分布式)](#2. DNS 的查询“奇幻之旅” (分层与分布式))
          • [第 0 步:检查缓存 (Cache)](#第 0 步:检查缓存 (Cache))
          • [第 1 步:求助"本地 DNS 服务器"(递归解析器)](#第 1 步:求助“本地 DNS 服务器”(递归解析器))
          • [第 2 步:本地 DNS 服务器"寻根问底"(迭代查询)](#第 2 步:本地 DNS 服务器“寻根问底”(迭代查询))

1. 什么是协议 (Protocol)?

在我们的比喻中,协议就是"共同的语言和规则"

  • 场景:一个中国公司要寄送包裹给一个德国客户。

  • 问题:双方需要统一规则。比如:地址用德语还是英语写?重量单位用"斤"还是"千克"?海关申报单怎么填?

  • 网络中的协议 :就是计算机之间"对话"的规则。TCP/IP 不是一个单一协议,而是一个协议族 (Suite) ,包含了几十个规则。其中 TCPIP 是两个最核心的规则,所以我们统称它为 TCP/IP。


2. TCP/IP 栈的分层(四层模型)

想象一下,你(用户)只需要"下单",物流公司会处理一切。这家物流公司内部有明确的分工:客服部、打包部、总调度中心、本地配送站。

TCP/IP 协议栈就是这样,它把复杂的网络任务"分层"处理。最常见的模型是四层栈:

层次 名称 (Layer) 快递比喻
第 4 层 应用层 (Application Layer) 客户(你)
第 3 层 传输层 (Transport Layer) 打包与客服部
第 2 层 网络层 (Internet Layer) 全球总调度中心
第 1 层 链路层 (Link Layer) 本地配送站与货车

各层的功能详解

🟢 第 4 层:应用层 (Application Layer)
  • 功能: 直接面向用户,提供各种网络服务。

  • 快递比喻:就是你(客户)。你决定要寄什么(数据),以及使用什么服务。

  • 细节: 你不会直接和卡车司机打交道,你只会使用"服务"。

  • 你想浏览网页 ,就使用 HTTP/HTTPS服务。

  • 你想发邮件 ,就使用 SMTP/POP3 服务。

  • 你想传文件 ,就使用 FTP服务。

  • 你想查地址 (域名),就使用 DNS 服务。

核心: 这一层决定了"你要干什么"。

🔵 第 3 层:传输层 (Transport Layer)
  • 功能: 负责"端到端"的通信管理,确保数据的可靠性或速度。

  • 快递比喻:打包与客服部 。这个部门不关心包裹的内容 ,只关心如何寄送

  • 细节: 这一层提供了两种主要的"寄送服务":

  • TCP (传输控制协议)精细打包服务(如寄送易碎品)

  • 特点: 可靠、面向连接、慢。

  • 流程:

  • 打电话确认(三次握手): 先打电话给收件人:"你好,在吗?""在。""好,我准备发货了。"(建立连接)

  • 编号和追踪: 把你的大包裹拆成小盒子,并编号(如"1/10"、"2/10")。

  • 确认签收: 每收到一个盒子,对方就回一个消息:"第2号收到了"。如果"第3号"丢了,对方会说:"第3号没收到,重发!"(可靠传输)

  • 控制速度: 如果对方说:"盒子太多,我来不及拆",你就会放慢发送速度(流量控制)。

  • 适用: 网页浏览 (HTTP)、文件传输 (FTP)、邮件 (SMTP)。(绝不能少一个字)

UDP (用户数据报协议)普通平邮服务

  • 特点: 不可靠、无连接、快。

  • 流程: 把包裹直接扔进邮筒,不打电话确认,不编号,丢了也不管。

  • 适用: 视频直播、在线游戏、语音通话。(丢一两帧画面/声音没关系,但卡顿绝对不行)

关键地址:端口号 (Port Number) 。如果说 IP 地址是"大楼地址",端口号就是"房间号/部门号"。(例如:HTTP 服务默认在 80 端口,HTTPS 在 443 端口)。

端口范围 | 名称俗称 | 比喻用途

复制代码
    0 - 1023 | 熟知端口 (Well-Known) | 系统端口 / 政府大楼:全球统一分配的系统核心服务 (如 HTTP, SSH)

    1024 - 49151 | 注册端口 (Registered) | 用户端口 / 注册商铺:分配给特定应用程序 (如 MySQL, 远程桌面)

    49152 - 65535 | 动态/私有端口 (Dynamic) | 临时端口 / 酒店客房:客户端发起连接时,由操作系统动态分配
🟡 第 2 层:网络层 (Internet Layer)
  • 功能: 负责在整个互联网中找到最佳路径,把数据从源头送到目的地。

  • 快递比喻:全球总调度中心

  • 细节:

  • 核心协议:IP (网际协议)

  • 功能: 这个调度中心只看"总地址",它负责规划"跨国路线"。比如:包裹从 A 市 -> B 国 C 市。它会规划出:先走高速到上海(路由器A),再空运到法兰克福(路由器B),最后转运到 C 市(路由器C)。

  • 路由 (Routing): 这种"规划路线"的行为就叫路由。

关键地址:IP 地址 (IP Address) 。这是你在互联网上的"全球统一地址 "(例如 192.168.1.1172.217.14.228)。

  • 功能: 负责相邻两个设备(比如你的电脑到路由器)之间的"本地"通信。

  • 快递比喻:本地配送站和货车司机

  • 细节:

  • 总调度中心(网络层)只告诉货车司机:"把这个包裹送到上海中转站"。

  • 本地司机(链路层)不关心包裹的最终目的地是德国。他只关心"在本地高速上怎么开,才能到上海中转站(下一个路由器)"。

  • 这一层还包括了物理媒介(Physical Layer),比如网线、光纤、Wi-Fi 信号,也就是"公路本身"。

关键地址:MAC 地址 (Media Access Control Address) 。这是网卡的"物理身份证号 ",全球唯一,只在本地网络(局域网)内使用。(例如00-1A-2B-3C-4D-5E)。


3. 数据的奇幻漂流:封装 (Encapsulation)

好了,了解了分工,我们来看看当你发送一个消息(比如"Hello")时,数据是如何被"打包"(封装)的。

封装就是一层层地"套娃"或"贴快递单"。

你(应用层): 写了一封信(数据 "Hello")。

打包部(传输层): 把信("Hello")放进一个小盒子里。贴上传输层标签(TCP 头),写上"服务端口"(比如:寄给网页服务的 80 端口)。

  • 这个小盒子现在叫:数据段 (Segment)

总调度(网络层): 把小盒子放进一个大纸箱。贴上网络层标签(IP 头),写上"最终收件地址"(目标 IP 地址)和"发件地址"(你的 IP 地址)。

  • 这个大纸箱现在叫:数据包 (Packet)

配送站(链路层): 把大纸箱交给司机。司机再贴一个本地配送标签(链路层头,如以太网头),写上"下一站地址"(你家路由器的 MAC 地址)和"发件地址"(你电脑的 MAC 地址)。

  • 这个准备上路的包裹现在叫:数据帧 (Frame)

公路(物理层): 司机把数据帧转换成光信号或电信号(01010101),在网线上传输。


4. 包裹的抵达:解封 (Decapsulation)

当包裹(数据帧)抵达目的地电脑时,会发生一个完全相反的"拆包"过程

配送站(链路层): 收到 010101 信号,组装成数据帧。 检查"本地配送标签"(MAC 地址)。"嗯,是给我的,没错。"拆掉本地标签(链路层头),把里面的数据包取出来,交给楼上的"总调度"。
总调度(网络层): 收到数据包。检查"总地址标签"(IP 地址)。"嗯,是寄给这栋大楼(本机 IP)的。" 拆掉大纸箱(IP 头),把里面的数据段取出来,交给楼上的"打包部"。
打包部(传输层): 收到数据段。 检查"服务标签"(TCP 头)。"哦,是给'网页服务'(80 端口)的。"(如果是 TCP)检查包裹编号,排好序,拼装完整。拆掉小盒子(TCP 头),把最里面的"原始数据"取出来,交给楼上的"客户"。
客户(应用层):收到"Hello"这份原始数据。浏览器将其显示在屏幕上。

一个关键点(路由器的作用):

当包裹在半路(比如一个路由器)时,路由器只会拆到网络层(IP 层)。

  • 路由器(中间的调度中心)只会拆开数据帧 (检查 MAC),然后拆开数据包(检查 IP)。

  • 它一看 IP 地址:"哦,下一站是德国。"

  • 不会 (也无权)拆开 TCP 头或里面的数据。它只负责重新打包(封装)一个新的数据帧(贴上新的本地 MAC 地址标签),然后发往下一站。


5. TCP/IP 核心知识点总结

层次 名称 主要协议 地址类型 数据单元(PDU) 功能比喻
第 4 层 应用层 HTTP, SMTP, DNS... (无) 数据 (Data) 客户(决定服务)
第 3 层 传输层 TCP, UDP 端口号 (Port) 数据段 (Segment) 打包部(可靠或快速)
第 2 层 网络层 IP, ICMP IP 地址 数据包 (Packet) 总调度(全局路径)
第 1 层 链路层 Ethernet, Wi-Fi MAC 地址 数据帧 (Frame) 本地配送(下一跳)

应用层 (Application Layer),这是整个网络通信的最终目的。你不会为了"发TCP包"而上网,你上网是为了"看视频"、"发邮件"或"玩游戏"。应用层就是实现这些具体目标的。


应用层协议详解

1. 什么是应用层协议?

回到我们的"快递"比喻。

  • 传输层 (TCP/UDP) 提供了两种服务:"精细打包(可靠)"和"普通平邮(快速)"。

  • 应用层 则规定了你到底要寄什么,以及用什么格式来写这张"申请单"

定义: 应用层协议是为特定的网络应用 (如网页浏览、电子邮件)而设计的,它定义了通信双方(客户端和服务器)交换的消息格式交互规则

核心: 每一项服务都有自己专属的"申请表格"和"处理流程"。

  • 你想浏览网页 ?你必须使用 HTTP 协议(一种"网页申请表")。

  • 你想发邮件 ?你必须使用 SMTP 协议(一种"邮件投递表")。

  • 你想查IP地址 ?你必须使用 DNS 协议(一种"地址查询表")。

浏览器(如 Chrome)"精通" HTTP 协议,邮件客户端(如 Outlook)"精通" SMTP 协议。它们知道如何填写这些表格并与服务器对话。


2. 应用层协议的标准化

问题: 为什么你的 Chrome 浏览器(谷歌公司开发)可以访问一个用 Nginx(开源软件)搭建的服务器?

答案: 因为它们都遵守了同一个"公共标准"------HTTP 协议。

标准化 就是确保互操作性 (Interoperability) 的过程。

  • 谁来制定? 主要由 IETF (Internet Engineering Task Force, 互联网工程任务组) 负责。

  • 标准叫什么?RFC (Request for Comments, 征求意见稿)

  • 过程: 任何人都可以提出一个网络协议的草案,经过 IETF 的讨论、修改和投票,最终可能成为一个"互联网标准",发布为一个 RFC 编号。

  • 举例:

  • HTTP/1.1 协议的核心定义在 RFC 2616

  • DNS 协议定义在 RFC 1034RFC 1035

当你开发一个新的网络应用时,你可以:

  1. 使用公共协议: 比如你想做个聊天软件,可以使用已有的 XMPP 协议。

  2. 创建私有协议: 比如微信,它在 TCP/IP 之上运行着自己公司内部定义的私有通信协议。


3. HTTP 协议

全称: HyperText Transfer Protocol (超文本传输协议)。它是万维网(WWW)的基石。

核心思想: 这是一个基于客户端-服务器 (Client-Server) 模型的请求-响应(Request-Response)协议。

HTTP 特点:
  1. 无状态 (Stateless): 这是 HTTP 最重要的特点。

  2. 比喻: HTTP 服务器就像一台自动售货机。你投币,按按钮,它掉下饮料。交易结束。

  3. 不会记得 你 5 秒钟前也买过一瓶。每一次 GET 请求都是独立的,服务器不会保留你之前的任何信息。

  4. "那登录状态是怎么回事?" : 正因为 HTTP 无状态,所以需要额外的技术来"制造"状态,这就是 Cookies。服务器发给你一个"通行证 (Cookie)",你每次请求时都必须带上它,服务器才能认出你。

HTTP 报文结构

HTTP 通信就是客户端和服务器在交换两种"文本格式的申请表":请求报文响应报文

① 客户端请求 (Request)

假设你想访问 http://www.example.com/index.html

text 复制代码
GET /index.html HTTP/1.1         <-- 1. 请求行 (Method, URI, Version)
Host: www.example.com            <-- 2. 请求头 (Headers)
User-Agent: Chrome/100.0
Accept-Language: zh-CN

(空行)                           <-- 3. (空行,用于分隔)

(无请求体)                         <-- 4. 请求体 (Body, GET请求通常为空)
  • 1. 请求行:

  • Method (方法): GET (最常见的,表示"获取"资源)。其他如 POST (提交数据,如登录表单)、PUT (上传文件)、DELETE (删除资源)。

  • URI (资源标识符): /index.html (你要服务器上的哪个文件)。

  • Version: HTTP/1.1 (协议版本)。

2. 请求头 (Headers): 附加信息。Host 是必须的(因为一台服务器可能托管多个网站),User-Agent 告诉服务器你是什么浏览器。

4. 请求体 (Body): 如果你用 POST 提交表单,你的用户名密码就放在这里。

② 服务器响应 (Response)

服务器收到请求后,会回复:

text 复制代码
HTTP/1.1 200 OK                  <-- 1. 状态行 (Version, Status Code, Reason)
Content-Type: text/html          <-- 2. 响应头 (Headers)
Content-Length: 1234
Date: Tue, 04 Nov 2025 02:30:00 GMT

(空行)                           <-- 3. (空行,用于分隔)

<html>                           <-- 4. 响应体 (Body)
  <head>...</head>
  <body>Hello World!</body>
</html>
  • 1. 状态行:

  • Status Code (状态码):极其重要! 它是服务器对请求的处理结果。

  • 200 OK:一切正常,你要的资源在这里。

  • 301 Moved Permanently:你要的东西搬家了(重定向)。

  • 404 Not Found:你请求的资源(网页)不存在。

  • 500 Internal Server Error:服务器自己内部出错了。

2. 响应头 (Headers): 附加信息。Content-Type 告诉浏览器"我发给你的是一个 HTML 网页",Content-Length 告诉它有多大。

4. 响应体 (Body): 真正的网页内容 (HTML, CSS, JS, 图片等)。


4. 抓包分析应用层协议

抓包 (Packet Sniffing) 是理解协议最直观的方式。

  • 工具:Wireshark (网络分析的"显微镜")。

  • 比喻: 想象你能在快递中转站(你的网卡)截获所有的包裹,并且你有权拆开阅读里面的所有信件(数据)。

分析过程(以 HTTP 为例):
  1. 你在 Wireshark 中启动抓包,然后在浏览器访问一个 http:// (非 https ) 网站。

  2. Wireshark 会捕获到成百上千的数据包。

  3. 你设置一个过滤器,只看 http 协议。

  4. 你会清晰地看到:

  5. 一个请求包 (Request) :选中它,Wireshark 会帮你"解封",在最下面的窗口,你会看到纯文本GET /index.html ...Host: ... 等头部信息。

  6. 一个响应包 (Response) :选中它,你会看到纯文本HTTP/1.1 200 OK,以及响应体里的 HTML 源代码

关键点:HTTP 是明文的!

这就是为什么在 HTTP 网站上提交密码极其危险,因为任何中间人(如黑客、路由器管理员)都能通过抓包直接看到你的密码原文。

如何分析 HTTPS?

HTTPS = HTTP + SSL/TLS (加密)。

当你抓包 HTTPS (如访问银行网站) 时,你仍然能看到 IP 层和 TCP 层,但应用层的数据(HTTP 请求和响应)会被显示为 Encrypted Application Data(已加密的应用数据)。你无法看到里面的内容,除非你有解密的密钥。


5. FTP 协议

FTP 是文件传输协议 (File Transfer Protocol) 的缩写。顾名思义,它是一种专门用于在网络上的两台计算机之间传输文件(如上传或下载)的"古老"且基础的应用层协议。

1. 通俗比喻:专门的文件搬运工

如果你把 HTTP(网页协议)想象成一个"报刊亭",你(客户端)去"GET(获取)"一份报纸(网页)来阅读。

那么 FTP 就像一个"专业的仓库物流系统 "。它不是为了"阅读",而是为了"搬运"。

  • FTP 服务器 (Server): 一个有专人管理的大型仓库。

  • FTP 客户端 (Client): 你自己(比如你电脑上的 FileZilla 或其他 FTP 软件)。

  • 登录: 你需要用用户名和密码向仓库管理员证明身份。

  • 操作: 你可以:

  • 上传 (Upload/PUT): 把你的"包裹"(文件)存放到仓库(服务器)里。

  • 下载 (Download/GET): 从仓库里取出"包裹"(文件)带回家(你的电脑)。

  • 列出目录 (LIST): 查看仓库里有哪些"货架"和"包裹"(文件夹和文件)。


2. FTP 最独特的特点:两个通道

这是 FTP 与 HTTP 等其他协议最大的不同点,也是理解 FTP 的关键。

当你连接 FTP 服务器时,你实际上会建立两个独立的 TCP 连接:

  1. 控制连接 (Control Connection)

  2. 默认端口: 服务器上的 TCP 21 端口

  3. 比喻: 这是你和仓库管理员通话的"对讲机"。

  4. 功能:

  5. 你通过它进行身份验证USERPASS 命令)。

  6. 你通过它发送指令 (如 LIST - "我要看列表",RETR - "我要下载文件",STOR - "我要上传文件")。

  7. 这个"对讲机"在你的整个会话期间始终保持连接

  8. 数据连接 (Data Connection)

  9. 默认端口:不固定(这是关键)。

  10. 比喻: 这是用来运货的"临时货车 "或"临时卸货口"。

  11. 功能:

  12. 只用于传输真实的数据------也就是你请求的文件列表或文件本身。

  13. 每当你需要传输数据时(比如下载一个文件),就会临时建立一个数据连接。

  14. 文件传完后,这个连接立即关闭。如果你再下载另一个文件,会再新建一个数据连接。


3. 为什么这个"双通道"设计很麻烦?

因为数据连接的建立方式不同,FTP 分为两种模式,而这两种模式都可能被防火墙阻挡

  1. 主动模式 (Active Mode)

  2. 客户端(你)通过对讲机 (21号端口) 告诉服务器:"你好,我准备好接货了,请把货车派到我家的 X 卸货口(客户端的某个随机端口)。"

  3. 服务器(仓库)收到指令后,主动派出"货车"(从服务器的 20 号端口 出发),连接你(客户端)的 X 卸货口

  4. 问题: 你的家庭防火墙 (或公司防火墙)看到一个"不认识的货车"(来自服务器 20 端口的连接)试图闯入你家(客户端),防火墙会立即将其拦截。导致连接失败。

被动模式 (Passive Mode) - (现代常用)

  1. 客户端(你)通过对讲机 (21号端口) 问服务器:"你好,我要取货,我该去哪里取?"

  2. 服务器(仓库)回复:"你来我仓库的 Y 卸货口(服务器上的某个随机高位端口)等着吧。"

  3. 客户端(你)主动连接服务器的 Y 卸货口,开始取货。

  4. 优势: 这对于客户端的防火墙来说是友好的,因为是你(客户端)主动发起的连接,防火墙知道这是"你允许的",所以会放行。

  5. (潜在问题: 如果服务器端的防火墙没有配置好,不允许外部连接它的 Y 卸货口,也可能失败。但通常服务器会配置好。)


4. 重点:FTP 安全吗?

不安全!

标准的 FTP(运行在 21 端口)和 HTTP 一样,是明文传输的。

这意味着,你在登录时发送的用户名和密码 ,以及你传输的文件内容,都可以在网络上被"抓包"并直接查看原文 。在今天的互联网上,强烈不推荐直接使用不加密的 FTP。


5. 现代的替代方案

为了解决安全问题,我们现在通常使用:

  1. FTPS (FTP over SSL/TLS):

  2. 就是"FTP + 加密"(类似于 HTTPS = HTTP + SSL/TLS)。

  3. 它在原有的 FTP 协议上增加了一个 SSL/TLS 加密层,加密了控制连接和数据连接。

  4. 缺点: 依然保留了"双通道"这个麻烦的特性,配置防火墙仍然复杂。

  5. SFTP (SSH File Transfer Protocol):

  6. 注意:虽然名字像,但它和 FTP 根本不是同一个协议!

  7. 不是 在 FTP 基础上加的密,而是完全基于 SSH(安全外壳,常用于远程登录服务器,默认 TCP 22 端口)协议来传输文件的。

  8. 巨大优势:

  9. 默认加密: 基于 SSH,非常安全。

  10. 单一通道: 只使用 SSH 的22 端口,既传命令又传数据,极其方便,防火墙配置简单。

  11. SFTP 是目前服务器文件传输的行业首选。


6. DNS 协议

1. 什么是 DNS?(互联网的"电话簿")
  • 全称:域名系统 (Domain Name System)

  • 核心功能: 自动将人类易于记忆的域名 (如 www.google.com)翻译成计算机才能看懂的 IP 地址 (如172.217.14.228)。

为什么需要它?

想象一下,IP 地址是 172.217.14.228,域名是 www.google.com

  • 对人类: 记住 www.google.com 很容易,记住一长串数字很难。

  • **对计算机:**计算机(路由器)在网络层(IP 层)工作时,只认识 IP 地址 。它们不知道 www.google.com 是什么。

DNS 就是这座桥梁。 当你在浏览器输入www.google.com 时,你的电脑必须先去"查电话簿"(DNS),获取到 IP 地址,然后才能真正地(通过 IP 地址)访问谷歌的服务器。


2. DNS 的查询"奇幻之旅" (分层与分布式)

DNS 不是一个"中央电话簿"(如果它是,一旦它崩溃,全球互联网就瘫痪了)。

它是一个全球性的、分层的、分布式的数据库系统。查询过程就像一个"寻根问底"的旅程。

假设你的电脑(客户端)要访问www.google.com

第 0 步:检查缓存 (Cache)

你的电脑会先"偷懒",看看自己(浏览器缓存、操作系统缓存)或局域网内的 DNS 服务器(如你的家用路由器)最近是否查过这个域名。如果查过(且没过期),就直接使用旧答案,旅程结束。

第 1 步:求助"本地 DNS 服务器"(递归解析器)

如果缓存里没有,你的电脑会向你(或你的运营商)指定的"本地 DNS 服务器" (Recursive Resolver) 发出请求。

  • 比喻: 这就像你向本地的"114 查号台"打电话。

  • 常见的例子: 你运营商 (ISP) 的 DNS、谷歌的 8.8.8.8、Cloudflare 的 1.1.1.1

  • 你的电脑:"你好,能帮我查一下 www.google.com 对应的 IP 地址吗?"

第 2 步:本地 DNS 服务器"寻根问底"(迭代查询)

如果本地 DNS 服务器自己的缓存里也没有答案,它就会开启"逐层追问"的旅程,这个过程叫迭代查询(Iterative Query)------即本地 DNS 服务器会自己主动向更高层级的 DNS 服务器发起查询,直到获取最终答案。具体步骤如下:

  1. 第 2.1 步:询问"根服务器"(Root Server)

    本地 DNS 服务器首先会向全球 13 组根服务器(根域,用"."表示)发送查询请求:"请问 www.google.com 的 IP 地址是多少?"

    根服务器不会直接返回答案,但它知道所有"顶级域"(如 .com、.cn、.org)服务器的地址。它会回复:"我不知道 www.google.com 的地址,但我可以告诉你 .com 顶级域服务器的地址,你去问它们吧!"

  2. 第 2.2 步:询问"顶级域服务器"(TLD Server)

    本地 DNS 服务器拿到 .com 顶级域服务器的地址后,立即向其发送查询请求:"请问 www.google.com 的 IP 地址是多少?"

    .com 顶级域服务器同样不直接返回最终答案,但它知道该顶级域下所有二级域(如 google.com)服务器的地址。它会回复:"我不知道 www.google.com 的地址,但我可以告诉你 google.com 权威服务器的地址,你去问它吧!"

  3. 第 2.3 步:询问"权威服务器"(Authoritative Server)

    本地 DNS 服务器拿到 google.com 权威服务器的地址后,向其发送查询请求:"请问 www.google.com 的 IP 地址是多少?"

    权威服务器是谷歌公司自己管理的 DNS 服务器,它存储着 google.com 及其子域名(如 www.google.commail.google.com)的完整域名与 IP 对应关系,是该域名的"最终信息源"。

    因此,权威服务器会直接返回最终答案:"www.google.com 的 IP 地址是 172.217.14.228!"

(注:文档部分内容可能由 AI 生成)

相关推荐
小雨下雨的雨2 小时前
Flutter跨平台开发实战: 鸿蒙与循环交互艺术:跑马灯的无极滚动算法
算法·flutter·华为·交互·harmonyos·鸿蒙
雅欣鱼子酱5 小时前
USB Type-C PD取电(诱骗,诱电,SINK),筋膜枪专用取电芯片
网络·人工智能·芯片·电子元器件
AI大模型应用之禅12 小时前
全球股市估值与可持续农业垂直种植技术的关系
网络·ai
掘根13 小时前
【仿Muduo库项目】HTTP模块2——HttpRequest子模块,HttpResponse子模块
网络·网络协议·http
MOON404☾15 小时前
006.Backdoor后门编写
网络·安全·网络安全·系统安全
ha204289419415 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
李白你好16 小时前
Burp Suite插件 | 高级HTTP头操作工具
网络·网络协议·http
石像鬼₧魂石17 小时前
22端口(OpenSSH 4.7p1)渗透测试完整复习流程(含实战排错)
大数据·网络·学习·安全·ubuntu
xwj_86557433217 小时前
HTTP协议、接口测试流程、接口测试流程&文档&用例
网络·网络协议·http