ByteTools

OSI七层模型详解

更新于 2026-11-04

OSI 模型把网络通信分成七层,从物理线缆(第 1 层)到应用(第 7 层)。每一层只负责一项任务,并且只与紧邻的上一层和下一层交互。该模型是一种教学和故障排查工具;真实的互联网使用的是更简单的四层 TCP/IP 模型。

七个层次

在发送端,数据自上而下逐层传递,每一层都会添加自己的头部,这个过程称为封装。接收端则按相反的顺序去掉这些头部。每一层的数据单元称为 PDU(协议数据单元)。

层名称PDU协议示例典型设备
7应用层数据HTTP, DNS, SMTP, SSH代理、应用防火墙
6表示层数据TLS(部分)、字符编码、MIME-
5会话层数据RPC、NetBIOS 会话、TLS(部分)-
4传输层段(TCP)或数据报(UDP)TCP, UDP防火墙、负载均衡器
3网络层包IP, ICMP, OSPF路由器、三层交换机
2数据链路层帧Ethernet, Wi-Fi (802.11), ARP交换机、无线接入点
1物理层比特以太网线缆、光纤、无线电线缆、集线器、中继器

OSI 与 TCP/IP 的比较

TCP/IP 模型有四层,更贴近协议实际的构建方式。对应关系是近似的:

TCP/IP 层OSI 层
应用层7, 6, 5
传输层4
网际层3
链路层(网络接入层)2, 1

有些书把 TCP/IP 画成五层,将链路层拆分为数据链路层和物理层。在日常工作中,人们仍然用 OSI 的编号来说「二层交换机」或「七层防火墙」,所以两种模型都了解会很有帮助。

打开网站时发生了什么

假设你在浏览器中输入 https://example.com。

  1. 第 7 层:浏览器需要一个地址,因此先发送针对 example.com 的 DNS 查询,之后再发送 HTTP 请求。
  2. 第 6/5 层:TLS 握手协商加密密钥并检查服务器证书。
  3. 第 4 层:TCP 通过三次握手(SYN、SYN-ACK、ACK)打开到 443 端口的连接,并把数据拆分成段。
  4. 第 3 层:IP 把源地址和目的地址放入数据包,路由器逐跳转发。
  5. 第 2 层:在每一段链路上,数据包被放入带有 MAC 地址的帧中。在 IPv4 网络中,ARP 负责查找下一跳的 MAC 地址。
  6. 第 1 层:帧被转换成电信号、光脉冲或无线电波。

在服务器端,同样的步骤按相反的顺序执行,从第 1 层一直到第 7 层。

每个工具测试的是哪一层?

每项网络检测都能证明到某一层为止的各层工作正常。下表显示了我们的工具分别对应哪一层。

工具层证明了什么
Ping3 (ICMP)主机在 IP 层可达,以及一次往返所需的时间
路由追踪3路径上有哪些路由器,以及延迟或丢包从哪里开始
端口检测4 (TCP)可以打开到指定端口的 TCP 连接
SSL 检测6/5,运行于 4 之上TLS 握手正常且证书有效
HTTP 响应头7Web 服务器有响应,以及它返回的状态码和响应头
DNS 查询7名称服务器返回了预期的记录

有三点需要留意:

  • TLS 并不对应单一的层。在 OSI 模型中它常被放在第 6 层(加密与表示),有时放在第 5 层(会话)。在 TCP/IP 模型中,它只是应用层的一部分,运行在 TCP 之上。对于故障排查,只需知道 TLS 在 TCP 之后、HTTP 之前工作即可。
  • 主机正常时 ping 也可能失败。许多防火墙会丢弃 ICMP 回显请求。ping 失败并不总是意味着主机宕机,所以还要检查端口。另外,traceroute 利用 IP 数据包中的 TTL 字段和 ICMP 超时回复,有些路由器不应答,就会在输出中显示为空缺。
  • DNS 运行在第 7 层,尽管它是其他一切的前提。它通常使用 UDP 53 端口,较大的应答和区域传送则使用 TCP 53 端口。

自下而上排查故障

一种可靠的方法是从第 1 层开始逐层向上。每一步都能排除一大类可能的原因。

  1. 第 1 层:网线接好了吗?Wi-Fi 打开了吗?链路指示灯亮了吗?
  2. 第 2 层:设备与交换机或无线接入点之间有链路吗?VLAN 正确吗?检查是否有重复的 MAC 地址或 Wi-Fi 密码错误。
  3. 第 3 层:设备有有效的 IP 地址、掩码和网关吗?能 ping 通网关吗,再 ping 外部地址(例如 192.0.2.1)呢?如果路径在中途中断,请使用路由追踪。常见的地址配置错误见 IP 地址是什么和子网划分。
  4. 第 4 层:端口开放且没有被防火墙阻挡吗?参见常见端口。
  5. 第 5-6 层:TLS 握手成功吗?检查是否有证书过期、名称错误或不支持的协议版本。
  6. 第 7 层:域名能解析吗?应用程序返回的响应正确吗?

实际工作中,你也可以自上而下排查,或者从中间一分为二:如果端口检测正常,说明第 1 到第 4 层没有问题,就可以集中精力排查应用程序。

相关指南