OSI 七层、TCP/IP 四层和五层模型:网络分层到底怎么理解
围绕OSI 七层模型、TCP/IP 四层模型、五层体系结构和数据封装章节,讲清各层职责、对应关系和真实协议栈中的使用方式。
相关工具
分层模型是地图,不是网络本身
很多人学网络,第一关就是背 OSI 七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。背下来并不难,难的是知道这些层到底帮我们解决什么问题,以及为什么真实工程里经常又说 TCP/IP 四层或五层模型。
资料 在面试题部分先讲 OSI,再讲 TCP/IP 四层,最后补五层体系结构。这个顺序很适合学习:OSI 七层适合理解职责划分,TCP/IP 四层更贴近互联网实际协议栈,五层模型则把两者折中,便于教学和排查。
所以不要把三种模型当成三套互相冲突的答案。它们更像不同精度的地图:OSI 画得细,TCP/IP 更工程化,五层模型方便把链路和物理拆开讲。真正要掌握的,是每一层负责什么、边界在哪里、数据怎么一层层封装。
OSI 七层:从比特到应用服务
OSI 是 Open System Interconnection,开放式系统互联模型。文中说,它由 ISO 制定,用于把计算机网络通信划分为七个层级。每个层级负责特定功能,构建在下方层级之上,并为上方层级提供服务。
从下往上看,物理层负责电缆、光纤、无线信号等物理传输媒介,把 0 和 1 转成电信号或光信号再传出去。数据链路层把比特组织成帧,处理 MAC 地址、帧同步、差错校验、介质访问控制等问题。
网络层负责路由和转发,用 IP 地址标识主机和网络,常见协议有 IP、ICMP、ARP。传输层负责端到端的数据传输,TCP 和 UDP 在这一层。再往上是会话层、表示层和应用层,分别处理会话管理、数据表示转换,以及直接面向用户应用的网络服务。
不要机械背“物数网传会表应”
“物数网传会表应”很适合记顺序,但真正写文章、排查问题、回答面试时,不能只念口诀。比如浏览器打不开网页,你要知道 DNS 和 HTTP 更接近应用层,TCP 连接问题在传输层,IP 路由问题在网络层,ARP/MAC 在数据链路层,网线和无线信号才到物理层。
资料 对每层都给了具体职责。物理层传比特,数据链路层传帧,网络层传数据报,传输层提供端到端服务,应用层提供 HTTP、DNS、FTP、SMTP 这类用户可感知的网络服务。把“传输单位”和“典型协议”绑定在一起,层级就不会飘。
如果只背层名,很容易把问题放错层。比如 HTTP 500 不是网络层问题,ping 不通也不一定是应用层问题,ARP 缓存异常更不是 TCP 三次握手能解决的。分层的价值就在于让你少把所有故障混成一锅。
TCP/IP 四层:真实互联网更常用的说法
TCP/IP 模型是互联网最常用的协议栈模型。文中说,它分为四层:应用层、传输层、网际层、网络接口层。名字里虽然有 TCP 和 IP,但它不是只包含两个协议,而是用来组织一整套互联网通信协议。
应用层对应 OSI 的应用层、表示层和会话层,常见协议有 HTTP、DNS、FTP、SMTP。传输层对应 OSI 的传输层,主要有 TCP 和 UDP。网际层对应 OSI 的网络层,核心协议是 IP,也包括路由和逻辑寻址相关能力。
网络接口层则把 OSI 的数据链路层和物理层合在一起,负责以太网、Wi-Fi、MAC 地址、帧、比特传输和物理接口相关工作。这个模型更贴近实际实现,所以工程交流里经常听到“应用层、传输层、网络层、链路层”这类说法。

OSI 更细,TCP/IP 更贴近互联网实际协议栈,五层体系常用于教学和排查,把网络接口层拆成数据链路层和物理层。
五层模型:教学和排查里的折中版本
文中也列了五层网络体系结构:应用层、传输层、网络层、数据链路层、物理层。它综合了 OSI 和 TCP/IP 的特点:上面不像 OSI 那样单独拆出会话层、表示层,下面又不像 TCP/IP 那样把数据链路和物理合成一个网络接口层。
五层模型很适合初学者。应用层讲 HTTP、DNS;传输层讲 TCP、UDP 和端口;网络层讲 IP、路由、ICMP;数据链路层讲 MAC、帧、ARP、交换机;物理层讲电信号、光信号、网线、无线。
前面我们写计算机网络专题,其实也是按这个习惯展开的。先讲 URL、DNS、HTTP,再讲 TCP/UDP,再讲 IP、CIDR、ARP、MAC、MTU、网卡收发。这样学起来比一开始硬背七层更有手感。
发送时逐层加头
分层模型不是只画在纸上。真实发送数据时,协议栈会逐层封装。应用层产生业务数据,比如 HTTP 请求;传输层加 TCP 或 UDP 头,形成段;网络层加 IP 头,形成数据报;数据链路层加 MAC 头和帧尾,形成帧;物理层再把它变成比特流、电信号或光信号。
资料 第 124 页提到对应的数据封装,第 121 页的收发流程也能印证这条路径:应用调用 Socket,协议栈从发送缓冲区取数据,传输层加 TCP 头,网络层加 IP 头,网络接口层通过 ARP 获取下一跳 MAC 后加帧头帧尾,再交给网卡驱动和物理网卡发送。
理解封装后,抓包里的字段就有位置了。HTTP 头属于应用层,端口属于传输层,源 IP 和目标 IP 属于网络层,源 MAC 和目标 MAC 属于数据链路层,FCS 用于帧校验。

发送时逐层加头,接收时逐层拆头;每层只处理自己的协议头,把剩下的数据交给上一层或下一层。
接收时逐层拆头
接收方向则反过来。物理层先收到信号,网络接口层检查帧,确认合法后去掉 MAC 头和帧尾,把 IP 数据报交给网络层。网络层看目标 IP 和协议号,判断是交给本机上层处理还是继续转发。
如果交给本机,IP 层会把 TCP 或 UDP 数据交给传输层。传输层根据端口和四元组找到对应 Socket,把数据放入接收缓冲区。应用程序最后通过 `read` 或 `recv` 读取业务数据。
每一层拆掉自己的头,只把自己处理后的内容交给上一层。这个过程让复杂通信变得可管理:应用不需要知道电信号怎么传,网卡也不需要懂 HTTP 请求体里写了什么。
每层的边界要分清
应用层关心的是业务协议和用户可感知的网络服务。HTTP 状态码、DNS 解析结果、FTP 文件传输、SMTP 邮件发送,都在这一层附近。应用层问题通常表现为状态码异常、响应内容错误、域名解析失败、认证失败等。
传输层关心端到端通信。TCP 连接状态、三次握手、四次挥手、重传、窗口、拥塞控制、UDP 是否丢包,都属于这里。传输层问题常表现为连接超时、重传多、端口不通、长连接断开。
网络层和链路层更靠近路径。IP、路由表、默认网关、ICMP、ARP、MAC、交换机、MTU 都在这里。物理层则更底,网线、光模块、无线信号、电气特性、链路速率都属于物理层关注范围。
模型越细,不代表越适合工程表达
OSI 七层很完整,但实际工程里未必总按七层说。比如会话层和表示层,在互联网应用开发中经常被并入应用层讨论。TLS、JSON、字符编码、压缩、会话保持这些事情当然存在,但不会每次都单独拿 OSI 表示层、会话层来沟通。
TCP/IP 四层更常出现在真实协议栈和网络排查里,因为它接近系统实现。Linux、抓包工具、网络设备配置,更多围绕应用、传输、网络、链路这些边界展开。
五层模型则适合教学。它比 TCP/IP 四层多拆出物理层,让 MAC 帧和电信号边界更清楚;又比 OSI 七层少一点抽象负担。学习阶段用五层梳理最舒服,面试时根据题目切到 OSI 或 TCP/IP。
怎么用分层思路排查问题
如果网站打不开,可以从上往下切。先看 URL 和 DNS:域名有没有解析到 IP?再看应用层:HTTP 请求是否返回错误状态码?然后看传输层:TCP 连接能不能建立,端口是否开放,有没有重传或超时。
再往下看网络层:本机 IP、网关、路由表、NAT、ICMP 是否正常。最后看链路层和物理层:ARP 能不能拿到网关 MAC,交换机端口是否学习到地址,网线、无线信号、网卡状态是否异常。
这不是固定流程,而是一种切割方式。分层让你知道每一步该问什么问题,也知道一个现象不能证明什么。比如 ping 通只能说明某些网络层路径可达,不能证明 HTTP 应用一定正常;HTTP 500 也不能说明 TCP 不可靠。
面试里怎么讲
如果被问 OSI 七层,可以先说顺序:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。然后不要停在口诀,补上职责:物理层传比特,数据链路层传帧并处理 MAC,网络层用 IP 做路由转发,传输层用 TCP/UDP 提供端到端通信,应用层提供 HTTP、DNS、FTP 等服务。
如果被问 TCP/IP 四层,就说它包括应用层、传输层、网际层、网络接口层。应用层大致覆盖 OSI 的应用、表示、会话层;传输层对应 TCP/UDP;网际层对应 IP 路由;网络接口层覆盖数据链路和物理传输。
如果被问封装过程,可以这样讲:发送时应用数据逐层加 TCP/UDP 头、IP 头、MAC 头和帧尾,最后变成比特流发送;接收时反向拆解,每层处理自己的协议头,最后把业务数据交给应用程序。
常见问题
OSI 七层和 TCP/IP 四层哪个更常用?
OSI 七层更适合理解理论边界,TCP/IP 四层更贴近真实互联网协议栈和工程表达。学习和排查时也常使用五层模型。
五层模型是哪五层?
五层模型通常是应用层、传输层、网络层、数据链路层、物理层。它把 TCP/IP 的网络接口层拆成数据链路层和物理层。
发送数据时为什么要逐层加头?
每层协议都需要自己的控制信息。TCP/UDP 需要端口和传输状态,IP 需要源/目标地址和路由信息,数据链路层需要 MAC 地址和帧校验信息。