前言
理解网络模型是掌握计算机网络的基础。本文将详细介绍 OSI 七层参考模型 和 TCP/IP 五层模型,帮助读者建立完整的网络协议体系认知。
OSI 七层模型
ISO(国际标准化组织)为了更好的使网络应用更为普及,推出了 OSI 参考模型(Open Systems Interconnection Reference Model)。
OSI 七层模型是网络通信的分层架构模型,将网络通信过程划分为七个层次,每一层负责特定的功能。
各层数据单元(PDU)
| 层级 | PDU 名称 | 说明 |
|---|---|---|
| 应用层 | 数据(Data) | 用户原始数据 |
| 表示层 | 数据(Data) | 格式化后的数据 |
| 会话层 | 数据(Data) | 会话管理数据 |
| 传输层 | 报文段(Segment)/数据报(Datagram) | TCP 为段,UDP 为数据报 |
| 网络层 | 分组/包(Packet) | IP 数据报 |
| 数据链路层 | 帧(Frame) | 带 MAC 地址的数据帧 |
| 物理层 | 比特(Bit) | 0/1 电信号 |
应用层(Application Layer)
应用层是 OSI 参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。
常见应用层协议:
| 协议 | 全称 | 作用 | 默认端口 |
|---|---|---|---|
| HTTP | Hyper Text Transfer Protocol | 超文本传输,网页浏览 | 80 |
| HTTPS | HTTP Secure | HTTP + TLS 加密传输 | 443 |
| FTP | File Transfer Protocol | 文件传输 | 20/21 |
| SMTP | Simple Mail Transfer Protocol | 邮件发送 | 25 |
| POP3 | Post Office Protocol v3 | 邮件接收 | 110 |
| DNS | Domain Name System | 域名解析 | 53 |
HTTP vs HTTPS:HTTPS 在 HTTP 下层加入了 TLS/SSL 加密层,提供数据传输安全性,防止中间人攻击。
表示层(Presentation Layer)
表示层提供数据编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
主要功能包括:
- 数据格式转换:如 EBCDIC 与 ASCII 之间的转换
- 数据压缩:减少传输数据量
- 数据加密/解密:如 SSL/TLS 的加密功能
base64 编码的功能(数据格式转换)与表示层的职责相符,常用于在文本协议中传输二进制数据。
会话层(Session Layer)
会话层就是负责建立、管理和终止表示层实体之间的通信会话。
该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
主要功能:
- 会话建立和拆除
- 会话同步(使用检查点实现断点续传)
- 会话管理和控制(如全双工、半双工通信模式)
传输层(Transport Layer)
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,处理差错控制和流量控制。
该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。
通常说的 TCP、UDP 就是在这一层:
| 特性 | TCP | UDP |
|---|---|---|
| 全称 | Transmission Control Protocol | User Datagram Protocol |
| 连接方式 | 面向连接 | 无连接 |
| 可靠性 | 可靠(确认、重传、排序) | 不可靠(尽力而为) |
| 传输效率 | 较低(有开销) | 高 |
| 适用场景 | 文件传输、网页浏览、邮件 | 视频流、DNS、实时通信、游戏 |
端口号用于标识主机上的具体应用程序,实现进程级别的通信复用。知名端口:HTTP(80)、HTTPS(443)、SSH(22)。
网络层(Network Layer)
网络层通过 IP 寻址来建立两个节点之间的连接,负责路由选择和分组转发。
就是通常说的 IP 层。这一层就是经常说的 IP 协议层。IP 协议是 Internet 的基础。
核心概念:
- IP 协议:Internet 的基础协议,提供逻辑寻址
- 路由:选择数据包从源到目的的最佳路径
- 分组转发:将数据包从一个网络节点传送到下一个节点
可以这样理解,网络层规定了数据包的传输路线,而传输层则规定了数据包的传输方式。
数据链路层(Data Link Layer)
数据链路层将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用 MAC 地址)来访问介质,并进行差错检测。
数据链路层分为两个子层:
- LLC(逻辑链路控制)子层:向上层提供服务接口,处理差错控制
- MAC(介质访问控制)子层:控制物理介质的访问,MAC 地址在此层使用
网络层与数据链路层的区别就是,网络层是规划了数据包的传输路线,而数据链路层就是传输路线且还增加了差错控制的功能。
物理层(Physical Layer)
物理层负责比特流的物理传输,定义电气、机械、功能和规程特性。
常用设备和介质:
- 设备:集线器(Hub)、中继器(Repeater)、调制解调器(Modem)
- 介质:双绞线、同轴电缆、光纤、无线电波
OSI 七层模型通信特点:对等通信
为了使数据分组从源传送到目的地,源端 OSI 模型的每一层都必须与目的端的对等层进行通信,这种通信方式称为对等通信(Peer-to-Peer Communication)。
在每一层通信过程中,使用本层自己协议进行通信。
TCP/IP 五层协议
说明:TCP/IP 实际标准为四层模型(应用层、传输层、网际层、网络接口层),五层模型是将网络接口层细分为数据链路层和物理层,便于与 OSI 模型对比理解。
应用层(Application Layer)
应用层通过应用层协议直接为应用进程提供服务。
应用层协议定义的是应用进程间通讯和交互的规则,不同的应用有着不同的应用层协议。
| 协议 | 用途 |
|---|---|
| HTTP/HTTPS | 万维网服务 |
| FTP/SFTP | 文件传输 |
| SMTP/POP3/IMAP | 电子邮件 |
| DNS | 域名查询 |
| SSH/Telnet | 远程登录 |
| DHCP | 动态主机配置 |
传输层(Transport Layer)
与 OSI 传输层功能相同,提供端到端通信服务。
传输层负责为两台主机中的进程提供通信服务。有时也译为运输层。
该层主要有以下两种协议:
-
传输控制协议(Transmission Control Protocol,TCP) 提供面向连接的、可靠的数据传输服务,数据传输的基本单位是报文段(Segment)。
-
用户数据报协议(User Datagram Protocol,UDP) 提供无连接的、尽最大努力的数据传输服务,不保证数据传输的可靠性,数据传输的基本单位是用户数据报。
网络层(Internet Layer)
网络层负责为两台主机提供通信服务,并通过选择合适的路由将数据传递到目标主机。有时也译为网际层。
核心协议:
- IP(IPv4/IPv6):逻辑寻址和路由
- ICMP:Internet 控制报文协议(如 ping 命令)
- IGMP:Internet 组管理协议
- ARP:地址解析协议(IP → MAC)
- RARP:反向地址解析协议(MAC → IP)
数据链路层(Data Link Layer)
数据链路层负责将网络层交下来的 IP 数据报封装成帧,并在链路的两个相邻节点间传送帧,每一帧都包含数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
物理层(Physical Layer)
确保数据可以在各种物理媒介上进行传输,为数据的传输提供可靠的环境。
TCP/IP 五层协议的通信方式
TCP/IP 五层协议的通信方式也是对等通信。
TCP/IP 五层协议和 OSI 七层协议的对应关系
TCP/IP 模型比 OSI 模型更加简洁,它把应用层、表示层、会话层全部整合为了应用层,其他层都是对应的。
| OSI 七层模型 | TCP/IP 五层模型 | TCP/IP 四层模型 |
|---|---|---|
| 应用层、表示层、会话层 | 应用层 | 应用层 |
| 传输层 | 传输层 | 传输层 |
| 网络层 | 网络层 | 网际层 |
| 数据链路层 | 数据链路层 | 网络接口层 |
| 物理层 | 物理层 | 网络接口层 |
在每一层都工作着不同的设备:
| 层级 | 典型设备 | 工作层次说明 |
|---|---|---|
| 应用层 | 服务器、客户端应用、应用层防火墙 | 处理具体应用逻辑 |
| 传输层 | 四层交换机、负载均衡器 | 基于端口转发 |
| 网络层 | 路由器、三层交换机 | 基于 IP 地址转发 |
| 数据链路层 | 以太网交换机、网卡、网桥 | 基于 MAC 地址转发 |
| 物理层 | 中继器、集线器、传输介质 | 信号放大和比特传输 |
在每一层实现的协议也各不同,即每一层的服务也不同:
| 层级 | 协议 |
|---|---|
| 应用层 | HTTP、FTP、SMTP、DNS、SSH |
| 传输层 | TCP、UDP |
| 网络层 | IP(IPv4/IPv6)、ICMP、OSPF |
| 数据链路层 | 以太网、网桥协议、ARP(地址解析协议) |
| 物理层 | 电压/编码规范 |
总结
| 对比维度 | OSI 七层模型 | TCP/IP 五层模型 |
|---|---|---|
| 设计目标 | 理论参考模型 | 实际应用模型 |
| 层数 | 7 层 | 5 层(教学用) |
| 通用性 | 通用网络模型 | 特定于 TCP/IP 协议族 |
| 实用性 | 理论指导 | 实际应用广泛 |
| 发展 | 1984 年提出 | 1970s 发展,事实标准 |
理解这两个模型有助于:
- 排查网络问题时定位故障层次
- 理解各层协议的设计思想
- 学习新协议时快速归类理解