网络的分层结构
1. OSI 七层模型
开放式系统互连(OSI)模型是由国际标准化组织(ISO)提出的一个概念性框架,旨在为各种计算机网络协议的制定提供一个共同的基础。 该模型将网络通信划分为七个独立的层次,自下而上分别是:
| 层次 | 名称 | 主要功能 |
|---|---|---|
| 第 7 层 | 应用层 (Application Layer) | 为应用程序提供网络服务,是用户与网络的接口。常见的协议有 HTTP、HTTPS、FTP、SMTP 等。 |
| 第 6 层 | 表示层 (Presentation Layer) | 负责数据的格式转换、加密和解密、压缩和解压缩,确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。 |
| 第 5 层 | 会话层 (Session Layer) | 负责建立、管理和终止不同设备上应用程序之间的会话或连接。 |
| 第 4 层 | 传输层 (Transport Layer) | 提供端到端的可靠或不可靠的数据传输服务,进行流量控制和差错校验。主要协议有 TCP 和 UDP。 |
| 第 3 层 | 网络层 (Network Layer) | 负责将数据包从源地址路由到目标地址,实现逻辑寻址和路径选择。核心协议是 IP 协议。 |
| 第 2 层 | 数据链路层 (Data Link Layer) | 在物理链路上提供可靠的数据传输,将比特流组织成帧,并进行物理寻址(MAC 地址)和错误检测。 |
| 第 1 层 | 物理层 (Physical Layer) | 负责在物理媒介上传输原始的比特流,定义了接口和传输介质的物理特性,如电压、针脚、线缆等。 |
2. TCP/IP 四层模型
TCP/IP 模型是互联网实际使用的协议族的分层模型,由美国国防部提出,相较于 OSI 模型更为简洁和实用。 它通常被划分为四个层次:
| 层次 | 名称 | 对应 OSI 模型层次 | 主要功能 |
|---|---|---|---|
| 第 4 层 | 应用层 (Application Layer) | 应用层、表示层、会话层 | 为用户和应用程序提供接口,包含了多种网络应用协议,如 HTTP、FTP、DNS 等。 |
| 第 3 层 | 传输层 (Transport Layer) | 传输层 | 负责提供端到端的通信,确保数据的可靠传输(TCP)或提供尽力而为的传输(UDP)。 |
| 第 2 层 | 网络层 (Network Layer) / 网际层 (Internet Layer) | 网络层 | 负责数据包的选路和转发,将数据包从源主机发送到目标主机。 |
| 第 1 层 | 网络接口层 (Network Interface Layer) | 数据链路层、物理层 | 负责在物理网络上传输数据,处理与物理媒介相关的细节。 |
3. 五层参考模型
为了便于学习和理解,在教学中常常会采用一个综合了 OSI 和 TCP/IP 优点的五层参考模型。该模型在 TCP/IP 四层模型的基础上,将网络接口层重新划分为数据链路层和物理层,其结构如下:
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
4. 分层的价值:抽象与解耦
分层的核心价值是把复杂系统拆成“接口清晰、职责单一”的模块:
- 上层只关心“服务能力”,不必了解下层细节(例如应用层不需要理解以太网如何传比特)。
- 下层只关心“如何把数据送到下一跳”,不必理解上层业务语义(例如 IP 不理解 HTTP)。
- 分层让协议可演进:下层替换实现(光纤/无线、IPv4/IPv6)时,上层尽量不变。
5. 每层的协议与设备定位
| 层次 | 典型协议/机制 | 典型设备 |
|---|---|---|
| 应用层 | HTTP、DNS、TLS(更常被当作“应用层上层协议”) | 代理、网关、应用服务器 |
| 传输层 | TCP、UDP | 四层负载均衡(L4 LB) |
| 网络层 | IP、ICMP、路由协议(OSPF/BGP) | 路由器、三层交换机 |
| 数据链路层 | 以太网、ARP、VLAN | 交换机、网卡 |
| 物理层 | 光纤、双绞线、无线电 | 集线器、中继器 |
实际工程里经常把“L4/L7”用来描述负载均衡工作在哪一层:四层看 IP + 端口,七层看 HTTP 等应用协议内容。
6. 封装与解封装(数据单位 PDU)
分层通信可以用“封装”理解:上层数据到下层会不断加上头部(Header),到达对端再按相反方向解封装。
- 物理层:bit(比特)。
- 数据链路层:frame(帧),用 MAC 寻址。
- 网络层:packet(包),用 IP 寻址与路由。
- 传输层:segment(段),用端口标识进程与连接。
- 应用层:message(消息),承载业务语义。