📄 一句话概括
路由器收包三步:核对目的 MAC 是不是自己、剥掉 MAC 头看 IP 头、目的 IP 不是本机就准备转发——旧信封拆掉换新信封。
📝 本节和前面几节的关系
3.3.2 认识表;本篇看包进来时的处理流程。
一、三步处理
① 看目的 MAC:是自己(或广播)才收; ② 剥 MAC 头,露出 IP 头——这是它真正关心的; ③ 目的 IP 若是本机就递交上层;不是则进入转发流程。
二、信封换了,地址没变
转发的实质:拆旧 MAC 头、写新 MAC 头; IP 头的源与目的保持不变(TTL 除外)—— 这是 IP 端到端、MAC 逐跳的本质体现。
三、动手 Demo:路由器收包三件事
收包流程:
for s in ['1. 查目的 MAC -> 是我(或广播)则收下',
'2. 剥掉 MAC 头 -> 看 IP 头',
'3. 目的 IP 不是本机 -> 准备转发']:
print(s)
实跑输出:
--------------------------------------------------------------------
路由器收包三件事
--------------------------------------------------------------------
包到了路由器:
1. 查目的 MAC -> 是我(或广播)则收下
2. 剥掉 MAC 头 -> 看 IP 头(这是它关心的)
3. 目的 IP 不是本机 -> 准备转发(不是自己的包)
注意:路由器会【拆掉旧信封、写新信封】,
IP 头却基本不动(TTL 减一除外)。
对照 2.5.10【收包四道关】:主机收包到此为止, 路由器多出【转发】这一分支。
30 秒实验
- Wireshark 抓跨网段的包,看 MAC 头在每跳变化。
- 想想路由器为什么必须接收所有到达它的帧。
- 对比主机与路由器收包的差异(有无转发分支)。
常见误区
- 以为路由器原样搬运——它会重写 MAC 头。
- 以为 IP 头每跳都变——只有 TTL 等少数字段变。
自测三问(点开对答案)
1. 路由器收到帧先核对什么? —— 目的 MAC 是不是自己。 2. 转发时改动什么头? —— MAC 头(换下一跳)。 3. IP 头会变吗? —— 基本不变,TTL 减一。- ☐ 下一节(3.3.4 查询路由表确定输出端口)
相关笔记
- 接收返回包 — 主机侧的收包
- 查询路由表确定输出端口 — 下一步:查表
- 🔌 网络是怎样连接的 · 索引