Open Systems Interconnection Reference Model — 开放系统互连参考模型
OSI(Open Systems Interconnection,开放系统互连)七层模型 是国际标准化组织(ISO)于 1984 年发布的一套概念框架,用于将网络通信划分为七个逻辑层次。每一层都有明确的职责,并向其上一层提供服务,同时依赖下一层提供的功能。
该模型的核心思想是分层抽象:把复杂的网络通信问题拆解成若干更小、更易管理的子问题。开发人员只需关注自己所在层的功能,而无需理解底层的全部细节——例如,编写一个 Web 应用时,你操作的是 HTTP(应用层),而不需要知道数据是如何通过光纤以电压脉冲的形式传输的。
20 世纪 70 年代末至 80 年代初,计算机网络领域百花齐放——IBM 的 SNA、DEC 的 DECnet、Xerox 的 XNS 等私有协议各自为政,不同厂商的设备几乎无法互通。为了打破这种"巴别塔"困境,国际标准化组织(ISO)联合 国际电信联盟电信标准分局(ITU-T,当时称 CCITT)启动了 OSI 项目。
| 时间 | 里程碑 |
|---|---|
| 1977 | ISO 成立 TC97/SC16 技术委员会,正式启动 OSI 项目 |
| 1979 | 初步确定七层架构 |
| 1984 | ISO 7498 标准发布,OSI 参考模型正式确立 |
| 1994 | ISO 7498-1 修订版发布 |
从用户最近(顶层)到物理介质最近(底层)排列:
▲ 点击每一层可跳转到详细说明
应用层是离用户最近的一层——它不包含"应用程序"本身,而是定义了应用程序如何访问网络服务的接口和协议。
| 协议/技术 | 全称 | 用途 | 默认端口 |
|---|---|---|---|
| HTTP / HTTPS | HyperText Transfer Protocol (Secure) | Web 浏览、REST API | 80 / 443 |
| FTP | File Transfer Protocol | 文件传输 | 20, 21 |
| SMTP | Simple Mail Transfer Protocol | 发送邮件 | 25 / 587 |
| POP3 / IMAP | Post Office Protocol v3 / Internet Message Access Protocol | 接收邮件 | 110 / 143 |
| DNS | Domain Name System | 域名 → IP 解析 | 53 |
| SSH | Secure Shell | 安全远程登录 | 22 |
| DHCP | Dynamic Host Configuration Protocol | 动态分配 IP 地址 | 67, 68 |
表示层充当翻译官——确保一台机器发送的数据能被另一台正确理解,处理编码转换、加密和压缩。
| 类型 | 示例 | 说明 |
|---|---|---|
| 字符编码 | UTF-8, ASCII, Unicode | 确保文本在不同系统间正确显示 |
| 加密协议 | TLS 1.3 / SSL | HTTPS 的安全基础 |
| 媒体编码 | JPEG, PNG, H.264, MP3, AAC | 图像/音视频压缩与解压 |
| 数据序列化 | JSON, XML, ASN.1, Protocol Buffers | 结构化数据的跨平台表示 |
会话层负责对话控制——在两台机器之间建立、维护、同步和拆除会话。
| 协议 | 说明 |
|---|---|
| NetBIOS | Windows 网络中文件和打印机共享的会话管理 |
| RPC(Remote Procedure Call) | 远程过程调用的会话维护 |
| PPTP | VPN 隧道协议中的会话层功能 |
| SOCKS | 代理协议,包含会话协商 |
传输层提供端到端(End-to-End)的数据传输服务——它是 OSI 模型中第一个真正"端到端"的层,也是网络应用开发者打交道最多的一层。
| 特性 | TCP | UDP |
|---|---|---|
| 连接类型 | 面向连接(三次握手) | 无连接 |
| 可靠性 | 可靠——确认、重传、排序 | 尽力而为,不保证送达 |
| 顺序保证 | ✅ 有序交付 | ❌ 可能乱序 |
| 速度 | 较慢(开销大) | 快(头部仅 8 字节) |
| 典型用途 | Web、邮件、文件传输、SSH | 视频流、VoIP、DNS、在线游戏 |
| 头部大小 | 20–60 字节 | 8 字节 |
| 数据单元 | Segment(段) | Datagram(数据报) |
| 范围 | 类别 | 示例 |
|---|---|---|
| 0 – 1023 | 知名端口(Well-Known) | HTTP:80, HTTPS:443, SSH:22 |
| 1024 – 49151 | 注册端口(Registered) | MySQL:3306, Redis:6379, 代理:8080 |
| 49152 – 65535 | 动态/私有端口 | 客户端临时端口(Ephemeral) |
网络层负责将数据包从源主机路由到目标主机——跨越多个网络(路由器/跳),通过逻辑地址(IP 地址)进行寻址。
| 特性 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位(4 字节) | 128 位(16 字节) |
| 表示方式 | 点分十进制:192.168.1.1 | 冒号十六进制:2001:db8::1 |
| 地址数量 | 约 43 亿 | 约 3.4×10³⁸(几乎无限) |
| NAT 需求 | 普遍需要 | 原则上不需要 |
| 头部大小 | 20–60 字节 | 固定 40 字节 |
| 广播 | 支持 | 不支持(用组播替代) |
| IPSec | 可选 | 内置支持 |
| 协议 | 说明 |
|---|---|
| IP (Internet Protocol) | 核心协议——无连接、尽力而为的数据包投递 |
| ICMP | 控制消息协议——ping、traceroute 依赖它 |
| ARP | 地址解析协议——IP → MAC 地址映射 |
| OSPF | 开放式最短路径优先——内部网关路由协议 |
| BGP | 边界网关协议——互联网骨干路由 |
| IPSec | IP 层安全——VPN 加密 |
数据链路层负责相邻节点之间的可靠数据传输——将网络层的包封装成帧(Frame),通过物理地址(MAC 地址)在同一局域网内投递。
| 子层 | 英文 | 职责 |
|---|---|---|
| 逻辑链路控制 | LLC (Logical Link Control) | 向上层提供统一接口,处理流量控制和差错控制 |
| 介质访问控制 | MAC (Media Access Control) | 控制物理介质的访问,MAC 地址寻址 |
| 技术 | 标准 | 典型速率 |
|---|---|---|
| Ethernet | IEEE 802.3 | 10 Mbps – 400 Gbps |
| Wi-Fi | IEEE 802.11 | 可达数 Gbps (Wi-Fi 6/7) |
| PPP | RFC 1661 | 拨号/DSL 封装 |
| VLAN | IEEE 802.1Q | 虚拟局域网划分 |
| ARP | RFC 826 | IP → MAC 地址解析 |
物理层是唯一实际传输信号的层——将比特流(0 和 1)转化为电信号、光信号或无线电波,在物理介质上传输。
| 介质/接口 | 类型 | 典型距离 | 典型速率 |
|---|---|---|---|
| RJ45 (双绞线) | 铜缆 | ≤ 100 m | 最高 40 Gbps (Cat8) |
| 单模光纤 | 光纤 | 可达 80+ km | 100 Gbps+ |
| 多模光纤 | 光纤 | ≤ 550 m | 100 Gbps+ |
| Wi-Fi 无线电 | 无线 | 室内 ~50 m | 可达数 Gbps |
| 同轴电缆 | 铜缆 | ≤ 500 m | 有线电视/DOCSIS |
| RS-232 | 串口 | ≤ 15 m | 最高 115.2 kbps |
| USB | 串行总线 | ≤ 5 m | 最高 40 Gbps (USB4) |
| 编码 | 说明 |
|---|---|
| NRZ / NRZI | 不归零编码,以太网早期使用 |
| Manchester | 曼彻斯特编码,10BASE-T 以太网 |
| 4B/5B + MLT-3 | 100BASE-TX 快速以太网 |
| PAM-4 / PAM-16 | 脉冲幅度调制,高带宽以太网和 DSL |
| OFDM | 正交频分复用,Wi-Fi / LTE / 5G |
数据从发送方应用层向下传递时,每一层都会在原始数据前添加自己的头部(Header)——这个过程称为封装(Encapsulation)。第二层还会在尾部添加一个尾部(Trailer)(如 FCS 校验码)。到达接收方后,每一层剥离对应的头部/尾部——这称为解封装(Decapsulation)。
| 层 | 名称 | PDU 英文名 |
|---|---|---|
| L7, L6, L5 | 数据(Data) | Data |
| L4 传输层 | 段 / 数据报 | Segment (TCP) / Datagram (UDP) |
| L3 网络层 | 数据包 | Packet |
| L2 数据链路层 | 帧 | Frame |
| L1 物理层 | 比特 | Bit |
互联网实际使用的是 TCP/IP 模型(也称 DoD 模型——由美国国防部资助开发)。它只有四层,但功能覆盖了 OSI 的全部七层:
| OSI 七层 | TCP/IP 四层 | 对应协议示例 |
|---|---|---|
| L7 应用层 | 应用层 Application |
HTTP, FTP, DNS, TLS, SSH, SMTP |
| L6 表示层 | ||
| L5 会话层 | ||
| L4 传输层 | 传输层 Transport |
TCP, UDP, SCTP |
| L3 网络层 | 互联网层 Internet |
IP, ICMP, ARP, OSPF, BGP |
| L2 数据链路层 | 网络接入层 Network Access |
Ethernet, Wi-Fi, PPP, MAC |
| L1 物理层 |
下表展示了 OSI 各层在真实网络设备、诊断工具和攻击类型中的体现:
| OSI 层 | 典型设备 | 诊断工具 | 常见攻击/威胁 |
|---|---|---|---|
| L7 — 应用层 | 负载均衡器、WAF、API 网关 | curl, Postman, 浏览器 DevTools | SQL 注入、XSS、CSRF、DDoS (HTTP Flood) |
| L6 — 表示层 | SSL/TLS 加速器 | OpenSSL, Wireshark (TLS 解密) | SSL 剥离、降级攻击 (POODLE) |
| L5 — 会话层 | 会话控制器 | netstat, ss | 会话劫持、重放攻击 |
| L4 — 传输层 | 防火墙(状态检测)、四层负载均衡 | netstat, tcpdump, Wireshark | SYN Flood、端口扫描、TCP 劫持 |
| L3 — 网络层 | 路由器、三层交换机 | ping, traceroute, ip route | IP 欺骗、Smurf 攻击、路由投毒 |
| L2 — 数据链路层 | 交换机、网桥、AP | arp, macof, Wireshark | ARP 欺骗、MAC 泛洪、VLAN 跳跃 |
| L1 — 物理层 | 中继器、集线器、光收发器 | 线缆测试仪、OTDR | 线缆窃听、电磁干扰、物理破坏 |
| 语言 | 口诀 | 对应 |
|---|---|---|
| 英文 | All People Seem To Need Data Processing | Application · Presentation · Session · Transport · Network · Data Link · Physical |
| 英文(反向) | Please Do Not Throw Sausage Pizza Away | Physical · Data Link · Network · Transport · Session · Presentation · Application |
| 中文 | 物数网传会表应 | 物理层 · 数据链路层 · 网络层 · 传输层 · 会话层 · 表示层 · 应用层 |
| # | 名称 | 核心问题 | 数据单元 | 地址类型 | 关键协议 |
|---|---|---|---|---|---|
| 7 | 应用层 | 用户想做什么? | Data | — | HTTP, FTP, SMTP, DNS |
| 6 | 表示层 | 数据长什么样? | Data | — | TLS, JPEG, UTF-8, JSON |
| 5 | 会话层 | 如何保持对话? | Data | — | NetBIOS, RPC, SOCKS |
| 4 | 传输层 | 如何可靠地送达? | Segment | 端口号 | TCP, UDP |
| 3 | 网络层 | 走哪条路? | Packet | IP 地址 | IP, ICMP, OSPF, BGP |
| 2 | 数据链路层 | 邻居之间如何传? | Frame | MAC 地址 | Ethernet, Wi-Fi, ARP |
| 1 | 物理层 | 用什么信号? | Bit | — | RJ45, 光纤, 无线电 |