🔌 第二章 用电信号传输TCP/IP数据
📄 一句话概括

收包四道关:PHY 还原比特、FCS 验伤丢弃坏帧、目的 MAC 核对(广播例外全收)、交驱动上送 IP 层。

📝 本节和前面几节的关系

包有来有回;本篇走反方向的路。

一、四道关

① PHY 还原比特;② FCS 不对=坏帧,丢; ③ 目的 MAC 不是我=丢(广播包例外); ④ 是我=交驱动,逐层上送。

二、MAC 过滤的意义

网卡替协议栈挡掉了大量无关流量—— 只有真正寄给自己的包才打扰上层。

三、动手 Demo:收包这条反方向的路

关卡流程:

for s in ['1. PHY 把信号还原成比特',
          '2. 查 FCS -> 坏包丢弃',
          '3. 查目的 MAC -> 不是我,丢',
          '4. 交驱动 -> 交 IP 层']:
    print(s)

实跑输出:

--------------------------------------------------------------------
收包这条反方向的路
--------------------------------------------------------------------
  网卡收到一个包:

    1. PHY 把信号还原成比特
    2. 查 FCS -> 坏包丢弃
    3. 查目的 MAC -> 不是我,丢;是我,收下
    4. 交驱动 -> 交 IP 层(看协议号)-> 交 TCP

  网卡第一道关【MAC 过滤】——广播包例外,全收。

抓包工具能看全部流量=工作在【过滤之前】, 混杂模式连不寄给自己的也收。

30 秒实验

  1. 想想广播包为什么绕不过第三道关(特殊地址全收)。
  2. 开混杂模式抓全网段流量,对比普通模式。
  3. 算算服务器网卡每秒要扔掉多少无关广播包。

常见误区

  1. 以为网卡收下所有帧上交——MAC 过滤先挡一道。
  2. 以为坏帧会重传——丢弃,等 TCP 补。
自测三问(点开对答案) 1. 收包第一道关是什么? —— FCS 验伤,坏帧丢弃。 2. 什么包例外全收? —— 广播包。 3. 过滤掉的包去哪了? —— 网卡直接丢弃,不上交。

相关笔记