IP、子网、私有地址、ARP 与 Ping 通信全过程

引言

很多人一上来就学 TCP、HTTP,但如果不知道 IP 地址、网段、MAC 地址、ARP 分别在干什么,那么"数据为什么能发到对方机器上"这件事其实并没有真正想明白。

这一篇就把几个核心问题串起来:

  • 私有 IP 地址范围是什么
  • 如何判断是否同一网段
  • ARP 是怎么找 MAC 地址的
  • Ping 在同网段和跨网段时分别怎么工作

私有 IP 地址范围

常见的私有 IP 地址范围有三段:

  1. 10.0.0.0/8
  2. 172.16.0.0/12172.31.255.255
  3. 192.168.0.0/16

它们通常出现在局域网中,不能直接在公网中路由。

简单记忆:

  • 10.x.x.x 适合大型网络
  • 172.16.x.x - 172.31.x.x 适合中型网络
  • 192.168.x.x 最常见,家庭路由器基本都在用

IP 地址如何拆成网段号和主机号

IP 地址由两部分组成:

  • 网段号
  • 主机号

关键在于"子网掩码"或者 CIDR 表示法。

通过 /24 这种写法判断

例如:

text 复制代码
10.1.1.3/24

/24 表示前 24 位是网络位,也就是前三个字节属于网段号。

所以:

  • 网段号:10.1.1
  • 主机号:3

通过子网掩码判断

例如:

text 复制代码
IP:10.1.1.3
子网掩码:255.255.255.0

255.255.255.0 本质上就是 24 位网络位,因此结论也是:

  • 网段号:10.1.1
  • 主机号:3

判断两台机器是否同网段,核心就是看它们与子网掩码进行与运算后,得到的网络地址是否相同。

MAC 地址和 ARP 到底在干什么

IP 地址负责"跨网络定位主机",MAC 地址负责"局域网内定位网卡"。

问题来了:如果我只知道对方 IP,怎么把数据交给对方网卡?

这就需要 ARP。

ARP 的作用很简单:

"根据目标 IP 地址,查询目标设备的 MAC 地址。"

典型流程如下:

  1. 发送方先查自己的 ARP 缓存。
  2. 如果缓存里已经有目标 IP 对应的 MAC,就直接发送。
  3. 如果没有,就在局域网里广播 ARP 请求。
  4. 拥有该 IP 的目标主机收到请求后,单播回复自己的 MAC 地址。
  5. 发送方把结果写入 ARP 缓存,后续就可以直接通信。

所以 ARP 解决的是"知道 IP,但不知道目标 MAC"的问题。

Ping 的本质是什么

Ping 常被用来测试网络是否可达。

它本质上使用的是 ICMP 协议。发送方发出 ICMP Echo Request,请求对方回应 Echo Reply。如果收到了回应,说明目标主机可达;如果长时间收不到,就可能是链路不通、主机不在线、被防火墙拦截,或者中间路由有问题。

同网段 Ping 的过程

假设 A 主机要 Ping B 主机,并且两台机器在同一网段。

整个过程大致如下:

  1. A 先判断目标 IP 是否与自己处于同一网段。
  2. 如果是同网段,就不需要找网关,直接准备在局域网内发送。
  3. A 先查 ARP 缓存,看是否已有 B 的 MAC 地址。
  4. 如果没有,就广播 ARP 请求。
  5. B 收到后返回自己的 MAC 地址。
  6. A 将目标 MAC 填入数据帧,发送 ICMP 请求报文。
  7. B 收到后回应 ICMP Reply。

这里有两个关键点:

  • IP 地址决定目标是谁
  • MAC 地址决定这一跳发给哪块网卡

下面这张图可以配合理解同网段下 ARP 查询和 Ping 发送的过程:

跨网段 Ping 的过程

如果 A 和 B 不在同一个网段,事情就不一样了。

此时发送方不会直接找目标主机的 MAC,而是先把数据交给"下一跳",通常就是默认网关。

流程如下:

  1. A 通过子网掩码判断,发现目标 IP 不在本地网段。
  2. A 查询路由表,找到匹配的下一跳。
  3. 在家庭或企业网络中,下一跳一般就是网关。
  4. A 如果不知道网关的 MAC 地址,就先对网关发起 ARP 查询。
  5. A 把目标 IP 仍然写成最终目标主机的 IP,但把二层帧里的目标 MAC 写成网关的 MAC。
  6. 网关收到后,查看目标 IP,再根据路由表决定下一步往哪里转发。
  7. 如果后面还要跨更多网络,就重复这个过程,直到到达目标网络。

所以跨网段通信里,真正逐跳变化的是 MAC 地址,而最终目标 IP 一般不会变。

路由表在这里做了什么

路由表的作用就是告诉主机:

"目标地址要从哪个接口发,交给哪个下一跳。"

如果找不到更精确的路由,就会匹配默认路由,也就是常见的:

text 复制代码
0.0.0.0/0

它可以理解为"万能路由"。

把 Ping 和 ARP、路由串起来

很多人把这几个知识点分开记,其实它们是一个连续过程:

  1. 先根据 IP 和子网掩码判断是否同网段。
  2. 如果同网段,就直接找目标主机的 MAC。
  3. 如果不同网段,就找下一跳,也就是网关的 MAC。
  4. 最终通过数据链路层把帧发出去。

所以一次看似简单的 Ping,背后其实涉及:

  • IP 寻址
  • 子网划分
  • ARP 解析
  • 路由选择
  • ICMP 报文收发

总结

网络通信不是"知道对方 IP 就能直接发过去",中间还有两个关键环节:

  1. 判断是本地直发还是交给网关
  2. 通过 ARP 找到这一跳对应的 MAC 地址

把这两个问题搞清楚,后面再看 TCP 建连、HTTP 请求,就不会觉得数据是在"凭空飞过去"。


如果这篇文章对你有帮助,欢迎继续阅读本系列后续内容。若文中有不准确或需要补充的地方,也欢迎指出。

相关推荐
KKKlucifer2 小时前
4A 平台合规自动化:从策略配置到审计追溯的全链路技术实现
运维·网络·自动化
zbtlink2 小时前
5G CPE和光纤宽带,谁才是未来?
网络·5g·智能路由器
爱研究的小梁2 小时前
浅析适配应急与关键场景的三类聚合终端
大数据·网络
老张的张Z2 小时前
CISSP 域5知识点 访问控制模型
网络·安全·信息安全
威联通安全存储2 小时前
基于威联通架构的制造数据中枢:边缘节点与存算一体解析
网络·nas
Gofarlic_oms12 小时前
构建可视化监控体系实现ANSYS许可证可观测管理
大数据·运维·网络·数据库·人工智能
zhang133830890753 小时前
守护水工安全:CG-85D振弦式渗压计在大坝与堤防监测中的核心作用
运维·服务器·网络·人工智能·自动化
网硕互联的小客服3 小时前
Linux root用户密码输入错误锁定策略,使用旧密码失败如何处理?
linux·服务器·网络·centos·自动化
芯盾时代3 小时前
RSAC 2026观察 智能体治理崛起
网络·人工智能·网络安全·智能体