OSI 分层模型
OSI 如何帮助理解一次网络通信?
- OSI: 开放系统互连模型把通信职责划分为七层,使复杂问题可以按边界讨论、排错和防护;
- 分层思想: 上层描述应用意图,下层逐步处理传输、寻址、链路和信号,接收端按相反方向解释数据;
- 模型边界: OSI 是概念框架,现实 TCP/IP 协议栈不必为七层各实现一个独立组件;
- 工程价值: 统一术语帮助软硬件协作,也让故障定位从“网络坏了”缩小到具体职责;
七层各自回答什么问题?
| 层次 | 主要职责 | 初学者可以提出的问题 |
|---|---|---|
| 7 应用层 | HTTP、SMTP 等应用协议 | 双方在交换什么业务消息? |
| 6 表示层 | 编码、压缩、加解密等表示转换 | 双方如何理解同一份数据? |
| 5 会话层 | 会话建立、维持、关闭与同步 | 这轮交互何时开始和结束? |
| 4 传输层 | 端到端传输、分段与重组 | 数据如何交给目标进程? |
| 3 网络层 | IP 寻址与跨网络路由 | 数据包下一步去哪里? |
| 2 数据链路层 | 同一链路上的帧传输 | 如何交给下一跳接口? |
| 1 物理层 | 比特到电、光或无线信号 | 0 和 1 怎样在介质上传播? |
- 应用层边界: 浏览器是使用 HTTP 的软件,不等于“浏览器整体就是应用层协议”;
- 加密位置: 表示层包含加密这一概念职责,但现实 TLS 的实现位置不能机械套进七层;
- 同网段通信: IP 主机即使在同一子网内通信,仍可使用 IP,不能由无需跨网段路由推出网络层不存在;
如何沿封装路径定位故障?
业务消息 → 传输层数据 → IP 包 → 链路帧 → 比特信号
业务消息 ← 传输层数据 ← IP 包 ← 链路帧 ← 比特信号
- 封装: 下层通常为上层数据增加自己的控制信息,不是每层都必然把数据切成更小片段;
- 逐层排查: 先确认链路和地址可达,再看连接、协议和业务返回,减少跨层猜测;
- 安全分析: 链路隔离、传输加密和应用鉴权保护不同边界,某一层安全不代表整条链路安全;