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

路由器转发出口侧与主机发包完全同构:查表定下一跳、ARP 找 MAC、写新 MAC 头、TTL 减一后交网卡——所以路由器就是一台特殊计算机。

📝 本节和前面几节的关系

3.3.7 处理了尺寸;本篇走完出口侧,与第二章主机发包工单闭环。

一、同构的四步

① 查表定下一跳;② ARP 查下一跳 MAC; ③ 写新 MAC 头(源=出口网卡);④ TTL 减一,交网卡。

二、结论

路由器内部的协议栈与主机同源—— 【路由器=一台有多个网口的计算机】是理解它的最短路径。

三、动手 Demo:路由器发包和电脑一样

出口侧四步:

for s in ['1. 查表定出口(同 2.5.2 的工单)',
          '2. 找下一跳 IP -> ARP 查它的 MAC',
          '3. 写新 MAC 头(源=本路由器出口)',
          '4. TTL 减一后交网卡发出']:
    print(s)

实跑输出:

--------------------------------------------------------------------
路由器发包和电脑一样
--------------------------------------------------------------------
  路由器转发时的动作,和一台主机发包姿势相同:

    1. 查表定出口(本机 2.5.2 的工单)
    2. 找下一跳 IP -> ARP 查它的 MAC
    3. 写新 MAC 头(源=本路由器出口,目的=下一跳)
    4. TTL 减一后交网卡发出

  所以【路由器就是一种特殊的计算机】——
  它内部的协议栈与主机同源。

这也解释了为什么【路由器也能当主机用】—— ping 路由器、登录它管理,走的都是同一套栈。

30 秒实验

  1. ping 自家网关,确认路由器本身就是一个 IP 主机。
  2. 想想防火墙(包过滤)插在这四步的哪一步。
  3. 对照 2.5.2 工单,标出两处不同(多了 TTL 减一)。

常见误区

  1. 以为路由器转发有独门算法——出口侧照搬主机流程。
  2. 以为路由器不能有 IP——它每口都有。
自测三问(点开对答案) 1. 路由器出口侧四步是什么? —— 查表、ARP、写 MAC 头、TTL 减一发出。 2. 为什么说路由器是特殊计算机? —— 协议栈与主机同源。 3. 与主机发包的差异在哪? —— 多一步 TTL 减一。

相关笔记