📄 一句话概括
收包四道关: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 秒实验
- 想想广播包为什么绕不过第三道关(特殊地址全收)。
- 开混杂模式抓全网段流量,对比普通模式。
- 算算服务器网卡每秒要扔掉多少无关广播包。
常见误区
- 以为网卡收下所有帧上交——MAC 过滤先挡一道。
- 以为坏帧会重传——丢弃,等 TCP 补。
自测三问(点开对答案)
1. 收包第一道关是什么? —— FCS 验伤,坏帧丢弃。 2. 什么包例外全收? —— 广播包。 3. 过滤掉的包去哪了? —— 网卡直接丢弃,不上交。- ☐ 下一节(2.5.11 将服务器的响应包从IP传递给TCP)
相关笔记
- 将服务器的响应包从IP传递给TCP — 上交之后
- 接收HTTP响应消息 — 应用层接手
- 🔌 网络是怎样连接的 · 索引