当你在浏览器输入baidu.com时到底发生了什么? 网络通信全流程深度解析

Carlos 发布于 2026-02-14 51 次阅读


在浏览器中输入一个网址(如baidu.com)并按下回车,网页瞬间呈现在眼前。这背后是简单的操作,其实着着复杂的网络通信流程。本文将基于网络拓扑图和OSI模型,带您一步步拆解数据包在网络中的奇妙旅程。

一、网络通信的理论基础:OSI模型 vs TCP/IP模型

在深入具体流程之前,我们需要理解数据是如何被“预留”和“解包”的。网络通信遵循一定的分层模型。

虽然理论上存在OSI七层模型,但在实际应用中,我们主要使用TCP/IP四层(或五层)模型

  • 应用层(Application Layer):直接为用户的应用程序(如浏览器)提供服务,常见协议有DNS、HTTP、FTP等。
  • 传输层(Transport Layer):负责端到端的通信,引入了端口的概念,常见的协议有TCP、UDP。
  • 网络层(Network Layer):负责数据包的路由和转发,引入了IP地址的概念。
  • 数据仓库层(Data Link Layer):负责在同类内的节点间传输,使用MAC地址
  • 物理层(Physical Layer):负责比特流在物理介质(网线、器件)上的传输。

二、模拟环境与网络拓扑

为了清晰地演示数据流向,我们设置如下的网络环境:

设备配置详情:

  1. 用户电脑(客户端)
    • IP地址:(192.168.1.10内网IP)
    • MAC地址:(AA-AA-AA-AA-AA简称AA) 网卡的唯一物理地址
    • 网关(网关):192.168.1.1 通常是路由器
    • DNS服务器:8.8.8.8
  2. 路由器(网关路由器)
    • LAN口(内网):IP 192.168.1.1、MACCC
    • WAN口(公网):IP 20.20.20.20、MACDD
    • 功能:负责路由转发和NAT(网络地址转换)
  3. DNS服务器:IP 8.8.8.8,MAC FF(假设的最终跳)
  4. 百度Web服务器:IP7.7.7.7

三、第一阶段:DNS解析——寻找百度的“门牌号”

当你在浏览器输入baidu.com时,电脑无法直接通过域名找到服务器,必须先获取其IP地址

1. 查找存储

浏览器会按照以下顺序查找IP:

  • 浏览器存储:之前是否访问过?
  • 系统存储:是否有网络存储?
  • Hosts文件:本地是否有强制映射?

如果都找不到,电脑就会向配置的DNS服务器(8.8.8.8)发起查询请求。

2. DNS请求的数据封装(Encapsulation)

电脑生成一个请求:“请告诉我 baidu.com 的 IP 地址”。这个数据包会从应用层开始,底层封装:

  • 应用层:生成DNS查询报文。
  • 传输层:封装端口。
    • 源端口:随机生成(例如404
    • 目标端口:DNS默认端口53
  • 网络层:封装IP地址。
    • 来源 IP : 192.168.1.10(本机)
    • 目标IP8.8.8.8(DNS服务器)
  • 数据地址存储层:封装MAC。
    • 电脑发现目标IP8.8.8.8不在同一个局域网,因此必须发给默认网关(路由器)
    • 通过ARP协议获取网关的MAC地址。
    • 来源 MAC : AA(本机)
    • 目标MAC:(CC路由器的LAN口)
  • 物理层:通过网线将数据发送给交换机,再由交换机转发给路由器。

四、第二阶段:数据传输与NAT转换

1.交换机(第2层)

交换机数据包,解析数据仓库层收到头部。看到目标MAC是CC,查表找到CC对应路由器的端口,然后将数据转发给路由器。

2. 路由器(第 3 层)和 NAT 的魔法

路由器数据后,进行以下操作:收到

  1. 解包:找到目标MAC是自己( CC),接收并割掉二层头。
  2. 路由:检查网络层目标IP ( 8.8.8.8),发现需要转发到公网(WAN口)。
  3. NAT(网络地址转换)这是关键的一步!
    • 内网 IP ( 192.168.1.10) 无法在公网路由。路由器预留源 IP 替换为自己的 WAN 口公网 IP ( 20.20.20.20)。
    • 同时,路由器会建立一张NAT映射表
      • 转换前: 192.168.1.10:404(内网IP:源端口)
      • 转换后:(20.20.20.20:505公网IP:路由器随机分配的新端口)
    • 现在,数据包的源IP变了20.20.20.20,源端口变了505
  4. 重新封装
    • 源 MAC : DD(路由器 WAN 口)
    • 目标 MAC:下一个跳路由器的 MAC(例如XX
    • 数据包通过WAN口飞向互联网。

五、第三阶段:DNS服务器处理与回包

1. 到达DNS服务器

数据包经过互联网上的多次截图,最终到达DNS服务器( 8.8.8.8)。

  • 服务器层解包,在应用层读懂了请求:“查询baidu.com的IP”。
  • 服务器查找数据库,找到了百度IP:7.7.7.7

2. DNS响应回传

服务器生成响应包,原路返回。

  • 传输层:源端口53->目标端口505(路由器的映射端口)。
  • 网络层:源IP 8.8.8.8-> 目标IP 20.20.20.20(路由器的公网IP)。

六、第四阶段:归途与NAT逆向转换

1.回到路由器

数据包回到路由器的WAN口。

  • 检查路由器数据包,目标是20.20.20.20:505
  • 查NAT表:发现505端口对应的是内网的192.168.1.10:404
  • 修改数据包:将目标IP改回192.168.1.10,目标端口改回404

2. 滨海湾

  • 路由器重新封装二层头部:源 MACCC -> 目标 MAC AA
  • 交换机将数据包发回给电脑。

3.获取IP

电脑数据包,层解包收到至应用层,浏览器终于​​获得了百度的IP地址:7.7.7.7


七、最终阶段:HTTP请求(访问网页)

现在电脑知道了百度的IP,真正的网页请求才刚刚开始。

  1. 构造HTTP请求:浏览器生成“获取首页数据”的请求。
  2. 封装
    • 应用层:HTTP协议。
    • 传输层:目标端口80(HTTP默认端口)。
    • 网络层:目标IP 7.7.7.7
  3. 传输:流程与上述DNS查询一致(封装 -> 路由 -> NAT -> 公网 -> 服务器)。
  4. 响应: 百度服务器 ( 7.7.7.7) 收到请求,将网页 HTML 缓存代码返回。
  5. 渲染:浏览器收到回包,解析HTML,百度的首页就这样出现在你的屏幕上了。

总结

一次简单的网页访问,实际上是无数网络设备良好工作的结果。从DNS解析获取地址,到OSI模型的层封装,再到NAT技术的地址转换,每一个阶段都至关重要。希望这篇笔记能帮助彻底理解网络通信的基本原理!

✨职务:华夏大地区域代理人 | 熬夜秃头项目主理人 💳黑卡:校园一卡通全球辅导版持有者 📍地点:宇宙-银河系-地球-东北蹲分部 🥂生活方式:沉迷于廉价多巴胺 | 致力于在该醒的时候睡觉 🚫拒绝:拒绝早起 | 拒绝内卷| 拒绝借钱 简介:虽然我没钱,但我有时间;虽然我没才华,但我有脾气。
最后更新于 2026-02-14