OSI 七层模型与 TCP/IP
一、OSI 是什么?
OSI(Open System Interconnection)= 开放式系统互联,由 ISO 制定。
简单说:它是一套"网络通信的标准分层规范",把复杂的网络通信拆成 7 层,每层各司其职。
二、OSI 七层模型
从上到下:
| 层级 | 名称 | 干什么 | 关键协议/概念 | 数据单位 |
|---|---|---|---|---|
| 7 | 应用层 | 直接为用户应用提供服务 | HTTP、DNS、FTP、SMTP | 报文 |
| 6 | 表示层 | 数据格式转换、加密、压缩 | SSL/TLS、JPEG、ASCII | 报文 |
| 5 | 会话层 | 建立/管理/终止会话 | RPC、SQL | 报文 |
| 4 | 传输层 | 端到端的可靠传输 | TCP、UDP | 段/数据报 |
| 3 | 网络层 | 路由寻址,选择最佳路径 | IP、ICMP、ARP | 分组/包 |
| 2 | 数据链路层 | 相邻节点间的可靠传输 | MAC地址、以太网 | 帧 |
| 1 | 物理层 | 传输原始比特流(电信号/光信号) | 网线、光纤、Wi-Fi | 比特 |
面试口诀 :应表会传网数物(应 用 → 表 示 → 会 话 → 传 输 → 网 络 → 数 据链路 → 物理)
三、数据传输过程
A 发送数据给 B,发送时自上而下封装,接收时自下而上解封:
发送端 A(封装) 接收端 B(解封)
───────────── ─────────────
应用层 [Data] 应用层 [Data]
表示层 [表头 | Data] ↑ 剥离表头
会话层 [会头 | 表头 | Data] ↑ 剥离会头
传输层 [TCP/UDP | 会头 | 表头 | Data] ↑ 剥离TCP/UDP头
网络层 [IP | TCP/UDP | ...] ↑ 剥离IP头
数据链路层 [MAC | IP | TCP/UDP | ...] ↑ 剥离MAC头
物理层 → 01010110... 比特流 → 物理层
每经过一层,就加一个该层的"信封"(头部),对方收到后一层层拆信封。
四、TCP/IP 四层模型
实际使用中,OSI 七层太复杂,业界用的是 TCP/IP 四层模型:
| TCP/IP 层 | 对应 OSI 层 | 核心协议 |
|---|---|---|
| 应用层 | 应用 + 表示 + 会话 | HTTP、DNS、FTP |
| 传输层 | 传输层 | TCP、UDP |
| 网络层 | 网络层 | IP、ICMP |
| 网络接口层 | 数据链路 + 物理 | 以太网、Wi-Fi |
五、高频面试题
Q1:OSI 七层和 TCP/IP 四层的区别?
| 对比项 | OSI 七层 | TCP/IP 四层 |
|---|---|---|
| 性质 | 理论标准模型 | 实际使用模型 |
| 层数 | 7 层 | 4 层 |
| 制定者 | ISO | IETF |
| 实用性 | 学术参考 | 工程落地 |
Q2:为什么要分层?
- 解耦:每层独立,改动不影响其他层
- 标准化:不同厂商的设备可以互通
- 易于理解和维护:复杂问题拆分为小问题
Q3:数据从浏览器到服务器经历了哪些层?
应用层(HTTP请求)→ 传输层(TCP分段)→ 网络层(IP寻址)→ 数据链路层(MAC帧)→ 物理层(电信号)→ 经过路由器/交换机 → 反方向逐层解封到服务器应用层。