网络分层模型
计算机网络是分层设计的复杂系统,理解分层模型是掌握网络协议的基础。本节介绍两种主流参考模型,以及数据在各层之间的传输形式。
OSI 七层模型
OSI(Open Systems Interconnection)模型由 ISO 制定,将网络通信划分为七层,自下而上依次为:
- 物理层:负责比特流在物理介质上的传输,涉及电压、接口、线缆标准。
- 数据链路层:将比特组织为帧,提供节点到节点的可靠传输,典型协议是以太网。
- 网络层:实现主机到主机的分组转发与路由,核心协议是 IP。
- 传输层:提供端到端的数据传输服务,代表协议为 TCP 和 UDP。
- 会话层:管理通信会话的建立、维护与终止。
- 表示层:处理数据表示、加密与压缩。
- 应用层:为用户提供网络服务接口,如 HTTP、FTP、SMTP。
TCP/IP 四层模型
实际互联网基于 TCP/IP 模型,常被划分为四层(也有五层说法),更贴近工程实践:
- 网络接口层:对应 OSI 的物理层与数据链路层。
- 网际层(IP 层):IP、ICMP、ARP 等。
- 传输层:TCP、UDP。
- 应用层:HTTP、DNS、SSH 等,合并了 OSI 的会话层、表示层、应用层。
协议数据单元(PDU)
各层在传递数据时使用的单位不同,理解 PDU 是阅读抓包数据的关键:
| 层级 | PDU 名称 | 示例内容 |
|---|---|---|
| 物理层 | 比特(bit) | 0/1 电信号 |
| 数据链路层 | 帧(frame) | MAC 头 + 数据 |
| 网络层 | 包(packet) | IP 头 + 数据 |
| 传输层 | 段(segment)/数据报(datagram) | TCP/UDP 头 + 数据 |
| 应用层 | 消息(message) | HTTP 请求行、首部、body |
数据封装与解封装
发送方自上而下逐层添加首部(封装),接收方自下而上逐层解析首部(解封装)。例如应用层数据先经传输层加上 TCP 头成为段,再经网络层加上 IP 头成为包,最后经链路层加上 MAC 头成为帧,经物理介质发出。
[应用数据]
|
[TCP 头 | 应用数据] // 段
|
[IP 头 | TCP 头 | 应用数据] // 包
|
[MAC 头 | IP 头 | ...] // 帧
理解分层与封装,后续阅读 TCP/IP 协议族中的具体协议时,就能清楚每个字段属于哪一层、解决什么问题。