两模型对照与协议归层
基于 HTTP 现代标准 · 核于 2026-06
速查
- 三模型一句话:OSI 七层是理论参考模型(细分、教学/排障用);TCP/IP 四层是互联网实际采用的工程模型;五层模型是教学折中——把 TCP/IP 的链路层拆回「数据链路 + 物理」,便于讲解。
- 核心映射:OSI 的应用 / 表示 / 会话三层 → TCP/IP 的应用层一层合并;OSI 传输 → 传输、**网络 → 网际(Internet)**一一对应;OSI 数据链路 + 物理 → 链路层合并。
- 为什么互联网用 TCP/IP 而非 OSI:OSI 标准化太晚、过于理论,TCP/IP 先有可用实现、简单务实,最终胜出。Wikipedia/Cloudflare 均指出「现代互联网更接近 TCP/IP 而非严格遵循 OSI」。
- 应用层协议:HTTP / HTTPS / DNS / FTP / SMTP / WebSocket / SSH(OSI 视角横跨 5~7 层,TCP/IP 统归应用层)。
- 传输层协议:TCP(可靠、有序、面向连接)、UDP(不可靠、无连接、快);新晋 QUIC 跑在 UDP 之上。
- 网络层(网际层)协议:IP(寻址 + 路由)、ICMP(差错/控制报文,如 ping)、IGMP(组播)。
- ARP 归属有争议:解析 IP→MAC,跨接网络层与链路层。OSI 语境多归第 2 层(数据链路),TCP/IP 语境归链路层——细节见下文容器。
- 链路层协议:Ethernet(以太网)、Wi-Fi(802.11)、PPP——负责同一物理网段内的帧传输。
- 设备归层:集线器 hub→物理层(1);交换机 switch→数据链路层(2);路由器 router→网络层(3);网关 gateway→应用层(7,跨协议翻译);防火墙 firewall→3~7 层(按规则深度)。
- 记忆口诀:设备工作在「能看懂的最高层」——hub 只看电信号(1),switch 看 MAC(2),router 看 IP(3),网关/应用防火墙能看到载荷(7)。
- PDU 速记:传输层叫段(Segment)、网络层叫包(Packet)、链路层叫帧(Frame)、物理层叫比特(Bit)——封装细节见上一页。
一、三模型对照大表
三种模型是「同一套分层思想的不同切法」,并非互相矛盾:OSI 切得细、TCP/IP 切得粗、五层模型取中间。下表横向对齐,相同行表示职责对应:
| OSI 七层 | TCP/IP 四层 | 五层教学模型 | 典型协议 / 关注点 | PDU |
|---|---|---|---|---|
| 7 应用层 Application | 应用层 Application | 应用层 | HTTP / HTTPS / DNS / FTP / SMTP / WebSocket / SSH | 数据 Data |
| 6 表示层 Presentation | (并入应用层) | (并入应用层) | 编码 / 加密 / 压缩(如 TLS 的部分职责) | 数据 Data |
| 5 会话层 Session | (并入应用层) | (并入应用层) | 会话建立 / 同步 / 断点续传 | 数据 Data |
| 4 传输层 Transport | 传输层 Transport | 传输层 | TCP / UDP / QUIC | 段 Segment |
| 3 网络层 Network | 网际层 Internet | 网络层 | IP / ICMP / IGMP | 包 Packet |
| 2 数据链路层 Data Link | 链路层 Link | 数据链路层 | Ethernet / Wi-Fi / PPP / ARP | 帧 Frame |
| 1 物理层 Physical | (并入链路层) | 物理层 | 电缆 / 光纤 / 无线信号、比特流 | 比特 Bit |
三模型的差异与联系
联系:都基于「分层 + 逐层封装」,传输层与网络层在三者中完全一致,是稳定的「腰部」。 差异:① 上三层——OSI 拆成应用/表示/会话三层,TCP/IP 与五层模型嫌其在实践中难以截然分开(HTTP 一个协议就同时承担会话与表示职责),合并为单一应用层;② 下两层——OSI 与五层模型都区分「数据链路 + 物理」,TCP/IP 则把它们打包为一个链路层。 结论:讲职责、排故障用 OSI 七层(颗粒细);理解真实互联网用 TCP/IP 四层(就是协议栈的实际形态);入门教学常用五层模型(既合并了难分的上三层,又保留了好讲的物理层)。
1.1 为什么互联网最终采用 TCP/IP 而非 OSI
OSI 由 ISO(国际标准化组织)自上而下精心设计,理论体系完备;TCP/IP 则源于 ARPANET 的实际需求、自下而上演化而来。两者曾在 1980 年代「标准之争」,结果 TCP/IP 胜出,原因可归纳为三点:
- 先有可用实现:TCP/IP 早早随 BSD Unix 免费分发、有大量真实部署,OSI 标准敲定时互联网生态已成既定事实。
- 简单务实:OSI 七层(尤其表示层、会话层)在工程上职责难以截然切开,反而增加复杂度;TCP/IP 四层「够用就好」。
- 官方共识:Cloudflare 与 Wikipedia 都明确指出——「现代互联网并不严格遵循 OSI 模型,而更接近更简单的 TCP/IP 协议族」。OSI 的价值因此从「实现蓝图」转为「通用排障语言与教学框架」(如「七层负载均衡」「四层攻击」之说仍沿用 OSI 编号)。
1.2 上三层为何被合并
OSI 把应用相关职责拆成应用(7)/ 表示(6)/ 会话(5)三层,但在真实协议里它们往往由同一个应用协议一并承担:HTTP 既定义资源访问语义(应用层职责)、又靠 Keep-Alive / Cookie 管理会话(会话层职责)、还能协商 Content-Encoding 压缩与字符集(表示层职责)。强行三分既不符合实现、也无操作意义,所以 TCP/IP 与五层模型干脆合为单一应用层。这正是「理论模型」与「工程模型」最大的取舍分歧所在。
二、常见协议归层
把协议「对号入座」是面试高频题。注意:OSI 视角下应用层协议会被细分到 5~7 层,但 TCP/IP 视角统归应用层——本表以 TCP/IP 四层为主轴标注。
| 协议 | TCP/IP 层 | OSI 层 | 作用速记 |
|---|---|---|---|
| HTTP / HTTPS | 应用层 | 7(HTTPS 的加密涉及 6) | Web 请求/响应;HTTPS = HTTP + TLS |
| DNS | 应用层 | 7 | 域名 → IP 解析(多用 UDP,亦可 TCP) |
| FTP | 应用层 | 7 | 文件传输 |
| SMTP | 应用层 | 7 | 邮件发送 |
| WebSocket | 应用层 | 7 | 全双工长连接(由 HTTP 升级而来) |
| TCP | 传输层 | 4 | 可靠、有序、面向连接的字节流 |
| UDP | 传输层 | 4 | 不可靠、无连接的数据报,快 |
| IP(IPv4/IPv6) | 网际层 | 3 | 逻辑寻址 + 路由(跨网段送包) |
| ICMP | 网际层 | 3 | 差错/控制报文(ping、traceroute 依赖它) |
| ARP | 链路层 | 2(跨 2/3,见下) | 同网段内 IP → MAC 地址解析 |
| Ethernet(以太网) | 链路层 | 2 | 有线局域网帧传输 |
| Wi-Fi(802.11) | 链路层 | 2 | 无线局域网帧传输 |
ARP 归层为何有争议
ARP(地址解析协议)的任务是把网络层的 IP 地址解析成链路层的 MAC 地址,因此它同时触及第 2 层和第 3 层:
- OSI 语境:多数教材将 ARP 归为第 2 层(数据链路层),因为它最终服务于「在本地链路上交付帧」,且 ARP 报文本身封装在以太网帧里、不经过 IP。也有观点认为它「横跨 2/3」或属于 2.5 层。
- TCP/IP 语境:Wikipedia《Internet protocol suite》明确把地址解析(IP→MAC)的职责划归链路层(Link Layer)。
- 实务结论:面试答「链路层 / OSI 第 2 层」最稳妥,并补一句「它跨接网络层与链路层、为 IP 寻址服务」即可体现深度。
2.1 前端常打交道的协议:归层与「叠加关系」
前端工程师日常接触的协议大多在应用层,但它们彼此并非平级,而是有「谁建在谁之上」的叠加关系,理解这点比死记归层更有用(各协议自身细节见对应叶页):
- HTTPS = HTTP + TLS:HTTPS 不是独立协议,而是把 HTTP 报文交给 TLS 加密后再走 TCP。归层上仍算应用层,但其加密/解密职责对应 OSI 表示层(6)——这正是「上三层难以截然分开」的活例。
- WebSocket 由 HTTP 升级而来:握手阶段是一次带
Upgrade: websocket头的 HTTP 请求,升级成功后切换为全双工长连接。它归应用层,底层同样依赖 TCP。 - DNS 在传输层多走 UDP:DNS 是应用层协议,但查询通常用 UDP(快、单包够用),响应过大或区域传送时改用 TCP——说明「应用层协议 ≠ 只能配某一种传输层协议」。
- 共同底座是 TCP/UDP:上述应用层协议无一例外都要落到传输层的 TCP 或 UDP,再经 IP 跨网段送达。应用层关心「传什么」,传输层关心「怎么可靠地传」,分工清晰。
三、常见网络设备归层
设备工作在「它能解析到的最高层」——层级越高,看到的信息越多、能做的决策越复杂。
| 设备 | 工作层 | 依据的地址/信息 | 行为 |
|---|---|---|---|
| 集线器 Hub | 物理层(1) | 无(只认电信号) | 收到信号向所有端口广播,不做任何寻址(已基本淘汰) |
| 交换机 Switch | 数据链路层(2) | MAC 地址 | 按 MAC 表精准转发帧到目标端口,隔离冲突域 |
| 路由器 Router | 网络层(3) | IP 地址 | 按路由表跨网段转发包,连接不同网络 |
| 网关 Gateway | 应用层(7) | 协议/载荷 | 在不同协议体系间翻译转换(广义网关) |
| 防火墙 Firewall | 3~7 层 | IP/端口 ~ 应用载荷 | 包过滤防火墙看 3/4 层;应用防火墙(WAF)深入 7 层 |
「集线器 vs 交换机」是经典对照
两者外形相似,但集线器是物理层「傻广播」(所有端口都收到,靠主机自己丢弃),交换机是链路层「智能转发」(学习 MAC 地址、只发给目标口)。这正是「物理层 vs 数据链路层」差异的最直观体现:前者不懂地址,后者懂 MAC。
注意「网关」一词的语境
日常说的「默认网关(default gateway)」通常指路由器(工作在第 3 层),是主机出本地网络的下一跳;而 OSI 模型语境下的「网关」特指第 7 层的协议翻译设备。同名不同义,按上下文判断即可。
3.1 从「工作层」看设备如何切分网络
设备工作在第几层,直接决定了它能「隔离」什么——这是设备归层最实用的推论:
- 集线器(1 层):不隔离任何东西,所有端口同属一个冲突域与广播域,任意两台主机同时发数据就会冲突,效率随接入数下降。
- 交换机(2 层):能读 MAC、按端口转发,因此每个端口是独立冲突域(消除了冲突),但默认所有端口仍在同一广播域——一个广播帧(如 ARP 请求)会泛洪到全网段。
- 路由器(3 层):以 IP 为单位转发、不转发广播,因此天然分隔广播域,是连接不同网络(不同网段)的边界设备。
一句话串起来:层级越高,隔离的范围越大——hub 什么都不隔离,switch 隔离冲突域,router 隔离广播域。这也解释了为何现代局域网早已用交换机取代集线器、并用路由器划分子网。
小结
- 三模型不是竞争而是切法不同:OSI 七层重理论与排障,TCP/IP 四层是互联网工程实际形态,五层模型是教学折中;传输层与网络层在三者中完全一致,是理解映射的锚点。
- 协议归层抓主轴:应用层(HTTP/HTTPS/DNS/FTP/SMTP/WebSocket)、传输层(TCP/UDP)、网络层(IP/ICMP)、链路层(Ethernet/Wi-Fi/ARP)——ARP 跨 2/3 层,答「链路层」最稳。
- 设备归层看「最高可解析层」:hub(1) → switch(2) → router(3) → 网关/应用防火墙(7),层级越高决策越智能。
- 上一页数据封装与解封装讲清了「段/包/帧」如何逐层套壳;带着本页的「协议与设备归在哪一层」,下一页一个 HTTP 请求穿越协议栈的端到端旅程将把这些静态归类串成一次真实请求的动态全程。