网络分层模型有哪些?各层的作用和协议是什么?
简化版
有三种分法:OSI 七层(理论模型:物理、数据链路、网络、传输、会话、表示、应用)、TCP/IP 四层(工程实现:网络接口、网际、传输、应用)、以及教学常用的五层模型(物理、数据链路、网络、传输、应用)。分层的意义是各层职责单一、互相解耦:每层只管自己的事、只依赖下层提供的服务,某层协议变化不影响其他层。
详细版
三种模型对照:
| OSI 七层 | 五层模型 | TCP/IP 四层 | 典型协议/设备 |
|---|---|---|---|
| 应用层 | 应用层 | 应用层 | HTTP、DNS、FTP、SMTP |
| 表示层 | (并入应用) | 应用层 | 加密、压缩、编码 |
| 会话层 | (并入应用) | 应用层 | 会话管理 |
| 传输层 | 传输层 | 传输层 | TCP、UDP |
| 网络层 | 网络层 | 网际层 | IP、ICMP、ARP;路由器 |
| 数据链路层 | 数据链路层 | 网络接口层 | 以太网、MAC;交换机、网卡 |
| 物理层 | 物理层 | 网络接口层 | 网线、光纤、比特流 |
每层干什么(自底向上):
- 物理层:传输原始比特流(0/1 的电信号/光信号)。
- 数据链路层:相邻节点间的数据帧传输,靠 MAC 地址寻址,负责差错检测。
- 网络层:把数据包从源主机路由到目的主机,靠 IP 地址寻址。
- 传输层:提供端到端(进程到进程)的数据传输,靠端口号区分应用,TCP 可靠、UDP 高效。
- 应用层:面向具体应用的协议,如 HTTP、DNS。
完整版教学
一、为什么要分层
网络通信极其复杂,从「电信号怎么传」到「网页怎么显示」跨度巨大。分层的思想是把大问题拆成一层层小问题,每层只解决一个层面的事:
- 职责单一:每层只干自己的活(物理层管比特、网络层管路由、传输层管端到端可靠);
- 解耦:上层通过下层提供的「服务」工作,不关心下层怎么实现。比如 HTTP(应用层)不用管底层是 TCP 走光纤还是 WiFi;
- 可替换:某一层的技术升级(如物理层从网线换成光纤、传输层 TCP 换成 QUIC)不影响其他层。
这就是「分层解耦」——和软件工程里分层架构是同一个道理。
二、三种模型:理论、教学、实现
- OSI 七层是 ISO 提出的理论参考模型,划分最细(多了会话层、表示层),但过于理想化,现实中没有严格按它实现。
- TCP/IP 四层是实际互联网采用的模型,把 OSI 的应用/表示/会话合并成一个「应用层」,物理和数据链路合并成「网络接口层」。这是工程现实。
- 五层模型是教学折中:保留 TCP/IP 的应用层合并,但把网络接口层拆回物理层和数据链路层,便于讲解。面试常用它。
记的时候以五层为主线:物理 → 数据链路 → 网络 → 传输 → 应用。
三、寻址方式:每层认的「地址」不同
一个高频追问:数据怎么找到目标?不同层用不同的「地址」,逐层配合:
- 数据链路层:MAC 地址——网卡的物理地址,用于同一局域网内相邻设备寻址;
- 网络层:IP 地址——用于跨网络把包路由到目标主机;
- 传输层:端口号——同一台主机上区分是哪个应用/进程。
所以「一个数据包送到某台机器的某个程序」= IP(找到机器)+ MAC(一跳跳转发)+ 端口(找到程序)三者配合。
四、数据的封装与解封装
数据从应用层往下走,每经过一层就加上该层的头部(封装),到接收方再逐层拆掉头部(解封装):
应用层数据
→ 传输层加 TCP 头(含端口)→ 段 Segment
→ 网络层加 IP 头(含 IP)→ 包 Packet
→ 数据链路层加帧头/帧尾(含 MAC)→ 帧 Frame
→ 物理层变成比特流发出
接收方反过来一层层拆头、把数据交给上层。这就是「封装/解封装」,也解释了为什么每层的数据单元有不同名字(段/包/帧)。
五、常见误区
- ❌ 把 OSI 七层当成实际实现——它是理论模型,互联网实际用 TCP/IP 四层。
- ❌ 记不清传输层和网络层——传输层端到端(端口、TCP/UDP),网络层主机到主机(IP、路由)。
- ❌ 以为路由器工作在传输层——路由器是网络层设备(看 IP),交换机是数据链路层(看 MAC)。
- ❌ 把 IP 放传输层、TCP 放网络层——IP 在网络层,TCP/UDP 在传输层,别记反。
六、常见误区与追问
| 考点 | 正确口径 |
|---|---|
| OSI 七层 | 理论完整,利于讲职责边界 |
| TCP/IP 四层 | 更贴近互联网协议栈实现 |
| 五层模型 | 教学常用,兼顾清晰和实用 |
HTTP data
-> TCP segment
-> IP packet
-> Ethernet frame
-> bits on wire
分层模型的关键不是背层数,而是说清每层解决什么问题、封装什么头、认什么地址。
- 误区:OSI 七层就是实际互联网实现。 OSI 更偏理论模型,实际工程常按 TCP/IP 四层或五层模型讲。
- 误区:HTTP、TCP、IP 属于同一层。 HTTP 在应用层,TCP 在传输层,IP 在网络层,职责不同。
- 误区:交换机和路由器都看 IP。 二层交换机主要看 MAC,路由器按 IP 转发,设备层次要分清。
- 追问:封装和解封装怎么理解? 发送端每下一层加本层首部,接收端每上一层剥掉对应首部。
- 追问:各层地址分别是什么? 应用层常用域名/URL,传输层用端口,网络层用 IP,数据链路层用 MAC。
- 追问:为什么要分层? 分层能隔离变化、复用能力,让上层不必关心下层具体传输细节。
七、加强记忆
分层是为了职责单一 + 解耦。三种模型:OSI 七层(理论)、TCP/IP 四层(实现)、五层(教学)。以五层为主线自底向上——物理(比特)、数据链路(MAC/帧)、网络(IP/路由)、传输(端口/TCP·UDP)、应用(HTTP/DNS)。寻址靠 MAC + IP + 端口三层配合,数据逐层封装/解封装成帧/包/段。