你的理解就是典型的局域网主机访问外网的流程,分两部分:
1. 主机端的处理
-
目的地判断
- 主机拿到一个要发送的 IP 数据包(比如目标
8.8.8.8),先计算“网络号”。 - 发现
8.8.8.8不在自己子网(如192.168.1.0/24)范围内。
- 主机拿到一个要发送的 IP 数据包(比如目标
-
查路由表
- 主机的路由表里有一条 default route(默认路由),指向网关 IP(即路由器在 LAN 侧的 IP,通常是
192.168.1.1)。
- 主机的路由表里有一条 default route(默认路由),指向网关 IP(即路由器在 LAN 侧的 IP,通常是
-
ARP 查询
- 主机对网关的 IP 发起 ARP 请求,得到路由器 LAN 口的 MAC 地址。
-
封装以太网帧
- 将 IP 包封到以太网帧里,目的 MAC 填成路由器的 MAC,源 MAC 填自己网卡的 MAC。
-
发送到交换机/路由器
- 以太网帧发出后,局域网交换机会根据 MAC 转发表把它交到路由器。
2. 路由器端的处理
-
接收并解封装
- 路由器 LAN 口收到以太网帧,解析出 IP 包。
-
NAT 转换
-
路由器把 IP 包的源 IP(
192.168.1.100)和源端口(如12345)改为自己的公网 IP(如123.45.67.89)和某个高端口(如60001),并在 NAT 映射表中记录:192.168.1.100:12345 ↔ 123.45.67.89:60001
-
-
查路由表 & 转发
- 路由器根据目的 IP(
8.8.8.8)在自己的路由表中找到下一跳(通常是 ISP 的路由器),将封好的包通过 WAN 口发出去。
- 路由器根据目的 IP(
-
返回时还原
- 外网的回应包发回到
123.45.67.89:60001,路由器查 NAT 表,找到对应的内网192.168.1.100:12345,把包头改回去,然后通过 LAN 发回给你的主机。
- 外网的回应包发回到
🔑 关键点总结
- 主机:目的不在本网 → 发给默认网关(路由器 LAN IP)
- 路由器:接收 → NAT 源地址+端口 → 转发到外网
- 路由器 LAN 口:既有内网 IP(供主机当网关用),又有公网 IP(WAN 口,供外网识别)
这样就完成了“跨子网”的通信。希望这下把整个链路彻底串起来了!
路由器的每一个接口(无论是有线 LAN 口,还是无线 WLAN 接口)都相当于它自己的一块网卡,都有各自的 MAC 地址。
对的,从主机的角度看,路由器的每一个接口(无论是有线 LAN 口,还是无线 WLAN 接口)都相当于它自己的一块网卡,都有各自的 MAC 地址。下面再具体说明几种常见情况:
1. 有线 LAN 口
- 家用路由器背后的 4×LAN 口,看似 4 个接口,实际上它们通常接在一个“小交换机芯片”上。
- 这个交换机芯片对外只暴露一个“CPU 端口”的 MAC,所有的 LAN 口共用这一 MAC。
- 所以你 ARP 查
192.168.1.1(路由器的内网 IP)时,会拿到这个交换机芯片的 MAC。
2. 无线 WLAN 接口
- 无线网卡是另一块网卡,它有独立的 MAC(通常打印在路由器上 “Wi‑Fi MAC” 标签里)。
- 当你的手机/电脑连 Wi‑Fi,ARP/通信看到的,就是 WLAN 接口的 MAC。
3. WAN 口
- 同理,路由器外网(WAN)口也有自己的 MAC,用于和上游运营商设备的以太网对接。
小结
- 每个物理/逻辑网络接口(CPU‑侧交换机口、无线接口、WAN 口)都有自己唯一的 MAC。
- ARP 请求针对的是“某个 IP 在你这一段网里的对应接口”,它会返回那个接口的 MAC。
这样设计能让路由器在不同网络(LAN vs. WLAN vs. WAN)上都能独立地和邻居设备通信。
3万+

被折叠的 条评论
为什么被折叠?



