🔌 第三章 从网线到网络设备
📄 一句话概括

路由器收包三步:核对目的 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 秒实验

  1. Wireshark 抓跨网段的包,看 MAC 头在每跳变化。
  2. 想想路由器为什么必须接收所有到达它的帧。
  3. 对比主机与路由器收包的差异(有无转发分支)。

常见误区

  1. 以为路由器原样搬运——它会重写 MAC 头。
  2. 以为 IP 头每跳都变——只有 TTL 等少数字段变。
自测三问(点开对答案) 1. 路由器收到帧先核对什么? —— 目的 MAC 是不是自己。 2. 转发时改动什么头? —— MAC 头(换下一跳)。 3. IP 头会变吗? —— 基本不变,TTL 减一。

相关笔记