一句话总结:OSI 是“网络分工说明书”——每一层只干一件事,上层不用关心下层怎么干。 口诀(自下而上):物、链、网、传、会、表、应。
一、为什么需要分层
- 解耦:换网线(物理层)不影响浏览器(应用层)。
- 标准化:不同厂商的设备能互通。
- 好排错:出问题先定位在哪一层,再查具体协议。
二、七层职责一览
| 层 | 名称 | 数据单元(PDU) | 核心职责 | 典型协议 | 典型设备 |
|---|---|---|---|---|---|
| 7 | 应用层 Application | 数据 Data | 为用户程序提供网络服务 | HTTP、DNS、FTP、SMTP、SSH、DHCP | 服务器、客户端软件 |
| 6 | 表示层 Presentation | 数据 Data | 编码转换、加密解密、压缩 | TLS/SSL、ASCII、JPEG、MPEG | — |
| 5 | 会话层 Session | 数据 Data | 建立、管理、终止会话 | RPC、NetBIOS、SIP | — |
| 4 | 传输层 Transport | 段 Segment | 端到端传输、端口寻址、可靠/不可靠 | TCP、UDP | 防火墙(L4) |
| 3 | 网络层 Network | 包 Packet | 逻辑寻址(IP)、路由选择、跨网段转发 | IP、ICMP、ARP*、OSPF | 路由器、三层交换机 |
| 2 | 数据链路层 Data Link | 帧 Frame | 成帧、MAC 寻址、差错检测、介质访问控制 | 以太网、PPP、VLAN、STP | 交换机、网桥、网卡 |
| 1 | 物理层 Physical | 比特 Bit | 电信号/光信号、编码、接口、速率 | RJ45、光纤、802.11 物理层 | 集线器、中继器、网线 |
*ARP 通常被归到网络层或“L2.5”,见第四节。
三、封装与解封装
发送方从上往下加头,接收方从下往上拆头:
应用数据
└─ + TCP 头(源端口/目的端口/序号) → 段 Segment
└─ + IP 头(源IP/目的IP/TTL) → 包 Packet
└─ + 以太网头(源MAC/目的MAC)+ FCS → 帧 Frame
└─ 转成 0/1 电信号或光信号 → 比特 Bit
每层只看自己那层的头,像拆快递:快递员只看面单(L2),分拣中心只看城市(L3),收件人才看里面是什么(L7)。
四、协议归属:重点说清 ARP
| 协议 | 主要工作层次 | 核心作用 |
|---|---|---|
| 以太网 Ethernet | 数据链路层 L2,同时包含物理层 L1 规范 | 用 MAC 地址在本地链路传帧、成帧、CRC 校验 |
| IP | 网络层 L3 | 用 IP 地址逻辑寻址、路由、跨网段转发 |
| ARP | L2 和 L3 之间,常被归为网络层或“L2.5” | 把 IP 地址解析成 MAC 地址 |
严格说,OSI 七层是理论模型,ARP 并不完全对应某一层。更准确的说法是:
ARP 为网络层 IP 服务,但它的报文封装在数据链路层的以太网帧里传输。
- ARP 请求是广播(FF:FF:FF:FF:FF:FF),响应是单播。
- 以太网类型字段
0x0806表示 ARP。 - 结果缓存在 ARP 表里:
ip neigh(旧命令arp -a),默认几分钟过期。
“谁知道 192.168.1.20?请告诉 192.168.1.10。” ← ARP 请求(广播)
“192.168.1.20 的 MAC 是 xx:xx:...,告诉 192.168.1.10。” ← ARP 响应(单播)
以太网在二层搬帧,IP 在三层找路,ARP 在二三层之间翻译地址。 三者配合,IP 数据才能真正发到网线上。
五、OSI 与 TCP/IP 四层模型的对应
| TCP/IP 四层 | 对应 OSI |
|---|---|
| 应用层 | 应用层 + 表示层 + 会话层 |
| 传输层 | 传输层 |
| 网络层(网际层) | 网络层 |
| 网络接口层(链路层) | 数据链路层 + 物理层 |
实际抓包时看到的层次就是 TCP/IP 的划分,OSI 更多用于教学和描述设备/协议。
六、一次网页访问的分层全景
访问 https://www.baidu.com,在真正发出 HTTP 请求之前,底层已经跑了好几趟:
| 步骤 | 层次 | 发生了什么 |
|---|---|---|
| 1 | 应用层 | 浏览器查缓存、hosts,向 DNS 查 www.baidu.com 的 IP |
| 2 | 传输层 | DNS 默认走 UDP/53;拿到 IP 后 TCP 三次握手建连接 |
| 3 | 网络层 | 判断目的 IP 是否同网段;不同则发给网关(查路由表) |
| 4 | 链路层 | 用 ARP 把网关 IP 解析成 MAC,封装成以太网帧 |
| 5 | 物理层 | 变成电信号/光信号发出去 |
| 6 | 应用层 | 连接建好后发 HTTP 请求;HTTPS 还要先做 TLS 握手 |
正式通信前,网络已经在底层来回跑了好几趟了:ARP、DNS、TCP 握手、TLS 握手,缺一不可。
七、常见误区
| 误区 | 正确理解 |
|---|---|
| 交换机是三层设备 | 普通交换机工作在 L2,靠 MAC 转发;三层交换机才有路由功能 |
| 路由器只看 IP | 路由器会拆到 L3 看 IP,但转发时要重新封装 L2 帧,所以也关心 MAC |
| ARP 是三层协议 | 它解决 L3 到 L2 的映射,报文在 L2 传输,归为 L2.5 更准确 |
| 集线器和交换机一样 | 集线器是 L1,所有端口共享带宽、共享冲突域;交换机是 L2,每端口独立 |
| 分层是真实存在的 | 分层是逻辑模型,实际协议栈是连续封装,没有物理上的“层” |
速查表
7 应用层 HTTP DNS FTP SMTP SSH DHCP PDU: 数据
6 表示层 TLS/SSL 编码 压缩 加密
5 会话层 RPC 会话管理
4 传输层 TCP UDP 端口 PDU: 段
3 网络层 IP ICMP ARP* 逻辑地址 路由 PDU: 包
2 链路层 以太网 VLAN STP MAC 成帧 PDU: 帧
1 物理层 电信号 光信号 接口 速率 PDU: 比特
| 设备 | 工作层 | 依据 |
|---|---|---|
| 集线器、中继器 | L1 | 只放大信号 |
| 交换机、网桥 | L2 | MAC 地址表 |
| 路由器、三层交换机 | L3 | 路由表 |
| 防火墙 | L3/L4,应用防火墙到 L7 | 五元组 / 应用内容 |
练习(12 题)
- 从下到上写出 OSI 七层的名称。
- 传输层的数据单元叫什么?网络层呢?
- 端到端通信、端口寻址是哪一层的职责?
- 逻辑寻址和路由选择是哪一层?
- 集线器、交换机、路由器分别工作在哪一层?
- 以太网协议主要属于哪一层?它还包含哪一层的规范?
- ARP 的作用是什么?请求和响应分别是广播还是单播?
- 为什么说 ARP 不完全属于网络层?
- TCP/IP 四层模型和 OSI 七层怎么对应?
- 把“发送 HTTP 请求”的封装过程按从上层到下层写出来。
- HTTPS 的加密发生在哪一层(或哪两层之间)?
- 访问一个网站,在发出 HTTP 请求前,底层通常已经完成了哪些交互?
答案与解析
1.
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层(物链网传会表应)。
2.
传输层是段(Segment),网络层是包(Packet);链路层是帧,物理层是比特。
3.
传输层,用端口号区分同一台主机上的不同应用,并提供端到端(进程到进程)的传输。
4.
网络层,靠 IP 地址做逻辑寻址,靠路由表决定下一跳。
5.
集线器 L1(只放大信号)、交换机 L2(看 MAC 转发)、路由器 L3(看 IP 路由)。
6.
主要是数据链路层 L2(成帧、MAC、CRC),它的物理介质、编码、速率部分对应物理层 L1。
7.
已知 IP 求 MAC:请求是广播,响应是单播。
8.
它解决的是 L3 地址到 L2 地址的映射,但报文封装在以太网帧中传输(类型 0x0806),所以通常称为 L2.5,或“为网络层服务的链路层协议”。
9.
应用层 = OSI 的应用 + 表示 + 会话;传输层 = 传输层;网络层 = 网络层;网络接口层 = 数据链路 + 物理。
10.
应用数据 → 加 TCP 头成段 → 加 IP 头成包 → 加以太网头尾成帧 → 转成比特在线路上传输。
11.
TLS/SSL 工作在表示层(OSI)或应用层与传输层之间(TCP/IP 视角),为 HTTP 提供加密。
12.
DNS 解析、ARP 解析网关 MAC、TCP 三次握手(HTTPS 还有 TLS 握手),之后才发 HTTP 请求。