OSI模型 — 清晰、无混淆的解释(当你卡住时)
Source: Dev.to

这些笔记专为在OSI模型让人感到困惑的时刻而写。它们刻意避免术语堆砌,专注于清晰的思维模型。
1️⃣ 什么是 PDU(协议数据单元)?
PDU 只是 在特定 OSI 层上数据的形式。每一层的 PDU 名称都会变化:
| OSI 层 | PDU 名称 |
|---|---|
| 应用层 / 表示层 / 会话层 | 数据 |
| 传输层(TCP) | 段 |
| 传输层(UDP) | 数据报 |
| 网络层 | 数据包 |
| 数据链路层 | 帧 |
| 物理层 | 比特(信号) |
示例
"Hello"
2️⃣ 应用数据已经是 0 和 1 吗?
逻辑上: ❌ 否 – 它是字符串、字节、JSON、文本、对象。
物理上(稍后): ✅ 是 – 它最终会变成信号。
更高层关注 结构和意义;更低层关注 信号。两种视角都是正确的,只是处于不同的层次。
3️⃣ 传输层 (TCP / UDP)
传输层的新增内容
- 源端口
- 目标端口
- 传输控制信息
这些字段是 TCP 头部 或 UDP 头部 的一部分。
TCP 与 UDP(快速比较)
| 特性 | TCP | UDP |
|---|---|---|
| 可靠性 | ✅ 可靠 | ❌ 不可靠 |
| 有序性 | ✅ 有序 | ❌ 无序 |
| 速度 | ⏳ 较慢 | ⚡ 更快 |
| 重传机制 | ✅ 重传丢失的数据 | ❌ 无重传 |
4️⃣ 网络层
网络层添加的内容
- 源 IP 地址
- 目标 IP 地址
这些字段构成 IP 头部。
After this step:
Segment → Packet
IP 回答: “这段数据应该全局发送到哪里?”
5️⃣ 数据链路层
数据链路层添加的内容
- 源 MAC 地址
- 目的 MAC 地址
- 错误检查尾部(CRC)
这些字段组成 MAC 头部 + 尾部。
此步骤之后:
Packet → Frame
MAC 的回答: “本地网络上哪个具体设备应该接收它?”
关键规则
- IP 在端到端保持不变
- MAC 在每一次跳转时都会变化
6️⃣ 物理层
- ❌ 不理解报头或地址
- ✅ 将帧转换为物理信号
示例
- Wi‑Fi → 无线电波
- Ethernet → 电信号
- Fiber → 光脉冲
所以:
- Wi‑Fi = 无线电
- Ethernet = 电力
7️⃣ 封装流程(单行)
Data → Segment → Packet → Frame → Signals
每一层仅添加其自身的信息。
8️⃣ Header Mapping(常见疑问)
| 报头 | 包含 |
|---|---|
| TCP / UDP 报头 | 源端口,目标端口,控制信息 |
| IP 报头 | 源 IP,目标 IP |
| MAC 报头 | 源 MAC,目标 MAC |
如果这符合你的疑问,你的理解是正确的。
9️⃣ 一句式思维模型
Application 创建意义 → Transport 管理会话 → Network 寻找目的地 → Data Link 寻找设备 → Physical 移动信号
最后说明
- 轻量级
- 注重思维模型
- 随时在困惑时重新查看都很安全
祝网络顺畅 🚀