1. 为什么需要分层模型
网络通信涉及硬件、软件、协议等复杂环节,分层可以将庞大问题拆解为多个可管理的子问题,每层只负责特定功能。
分层的优点:
- 各层独立:层内修改不影响其他层
- 标准化:统一接口,不同厂商设备可互通
- 可复用:下层服务可为多种上层协议共用
2. OSI 七层模型
┌─────────────┬──────────────┬────────────────────────────────┐
│ OSI 层 │ PDU │ 典型协议/设备 │
├─────────────┼──────────────┼────────────────────────────────┤
│ 7 应用层 │ 数据 │ HTTP、FTP、SMTP、DNS、SSH │
│ 6 表示层 │ 数据 │ TLS/SSL、JPEG、ASCII、MPEG │
│ 5 会话层 │ 数据 │ NetBIOS、RPC、PPTP │
│ 4 传输层 │ 段/数据报 │ TCP、UDP、SCTP │
│ 3 网络层 │ 分组 │ IP、ICMP、ARP、OSPF、BGP │
│ 2 数据链路层 │ 帧 │ Ethernet、PPP、Wi-Fi、交换机 │
│ 1 物理层 │ 比特 │ 网线、光纤、集线器、中继器 │
└─────────────┴──────────────┴────────────────────────────────┘
记忆口诀:All People Seem To Need Data Processing(每层首字母)
2.1 各层职责详解
第七层:应用层
- 直接为用户应用程序提供服务
- 定义了应用间通信的协议和数据格式
第六层:表示层
- 数据格式转换(如加密解密、压缩解压)
- 编码协商(如 UTF-8 vs ASCII)
第五层:会话层
- 建立、管理和终止会话
- 会话恢复(断线重连)
第四层:传输层
- 端到端的可靠/不可靠数据传输
- 端口寻址、流量控制、差错恢复
第三层:网络层
- 逻辑寻址(IP 地址)
- 路由选择与分组转发
第二层:数据链路层
- 物理寻址(MAC 地址)
- 帧的封装、差错检测、介质访问控制
第一层:物理层
- 比特流的电气/光学/无线传输
- 定义电压、线序、速率等物理特性
3. TCP/IP 四层模型
TCP/IP 是实际互联网采用的标准,将 OSI 的上三层合并为应用层。
┌───────────────┬────────────────────────────────┐
│ TCP/IP 层 │ OSI 对应层 │
├───────────────┼────────────────────────────────┤
│ 应用层 │ 应用层 + 表示层 + 会话层 │
│ 传输层 │ 传输层 │
│ 网络层 │ 网络层 │
│ 链路层 │ 数据链路层 + 物理层 │
└───────────────┴────────────────────────────────┘
3.1 TCP/IP 协议栈
应用层 HTTP FTP DNS SSH SMTP
│ │ │ │ │
└───────┴──────┴──────┴──────┘
┌────────────────────────────────┐
传输层 │ TCP │ UDP │
└────────────────┴───────────────┘
┌────────────────────────────────┐
网络层 │ IP │ ICMP │ ARP │
└────────────┴────────┴──────────┘
┌────────────────────────────────┐
链路层 │ Ethernet │ Wi-Fi │ PPP │
└────────────┴─────────┴─────────┘
4. 数据封装与解封装
4.1 封装过程
发送方(从上到下):
应用层数据
↓ + TCP/UDP 头部
传输层段(Segment)
↓ + IP 头部
网络层分组(Packet)
↓ + Ethernet 头部 + FCS
数据链路层帧(Frame)
↓ 转为比特流
物理层比特(Bit)
每经过一层,添加该层协议头部(尾部)
4.2 解封装过程
接收方(从下到上):
物理层:比特 → 识别帧边界
↓
链路层:移除 Ethernet 头部/FCS,提取 IP 分组
↓
网络层:移除 IP 头部,提取 TCP/UDP 段
↓
传输层:移除 TCP/UDP 头部,提取应用数据
↓
应用层:解析数据
4.3 实际数据包示例
Frame 1: 74 bytes on wire
├── Ethernet II, Src: aa:bb:cc..., Dst: 11:22:33...
│ ├── Destination MAC: 11:22:33:44:55:66
│ ├── Source MAC: aa:bb:cc:dd:ee:ff
│ └── Type: IPv4 (0x0800)
│
├── Internet Protocol Version 4
│ ├── Version: 4
│ ├── Header Length: 20 bytes
│ ├── Total Length: 60
│ ├── Source IP: 192.168.1.100
│ ├── Destination IP: 142.250.190.78
│ └── Protocol: TCP (6)
│
├── Transmission Control Protocol
│ ├── Source Port: 54321
│ ├── Destination Port: 443 (HTTPS)
│ ├── Sequence Number: 0
│ ├── Flags: SYN
│ └── Window Size: 64240
│
└── [TCP Segment Len: 0] ← 应用层数据在此之后
5. 层间服务与接口
5.1 服务原语
| 原语 | 含义 | 例子 |
|---|---|---|
| Request | 上层请求下层服务 | 应用请求建立 TCP 连接 |
| Indication | 下层通知上层事件 | 收到 SYN 报文通知应用 |
| Response | 上层响应下层指示 | 同意建立连接 |
| Confirm | 下层确认请求完成 | TCP 握手完成确认 |
5.2 服务访问点(SAP)
层 N+1 层 N
│ │
│ 数据 │
↓ ↓
SAP ──────→ 接口
↑ ↑
│ (端口号) │
传输层 SAP = 端口号(Port)
网络层 SAP = IP 地址
链路层 SAP = MAC 地址
6. 常见设备工作层级
| 设备 | 工作层级 | 功能 | 寻址依据 |
|---|---|---|---|
| 中继器 | 物理层 | 信号放大,延长传输距离 | — |
| 集线器 | 物理层 | 多端口中继器,广播所有端口 | — |
| 网桥 | 数据链路层 | 连接两个局域网,基于 MAC 转发 | MAC 地址 |
| 交换机 | 数据链路层 | 多端口网桥,学习 MAC 表转发 | MAC 地址 |
| 路由器 | 网络层 | 基于 IP 路由表选择路径 | IP 地址 |
| 三层交换机 | 数据链路层+网络层 | 兼具交换和路由功能 | MAC + IP |
| 网关 | 传输层及以上 | 协议转换 | 应用层信息 |
| 防火墙 | 网络层-应用层 | 访问控制、NAT | IP、端口、内容 |
7. 互联网核心思想
1. 端到端原则(End-to-End Principle)
→ 核心网络尽量简单,功能放到端系统
→ 例子:TCP 的可靠传输在端系统实现,而非每个路由器
2. 尽力而为(Best Effort)
→ IP 层不保证送达、不保证顺序、不保证无重复
→ 可靠性由上层(TCP)负责
3. 分层自治
→ 各层协议可独立演进
→ 应用层可用 HTTP/2 或 HTTP/3,不改动下层
参考文章
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。