OSI 七层模型和 TCP/IP 四层模型是什么?

基础高频约 5 分钟读完

一句话回答

OSI 七层模型从下到上是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,是一个理论上的参考模型。实际互联网使用的是 TCP/IP 四层模型:网络接口层、网络层、传输层、应用层,OSI 中会话层、表示层的功能并入了应用层。讲原理时还常用折中的五层模型。发送数据时每一层都给数据加上自己的首部(封装),接收方再逐层拆开(解封装)。

详细解析

三种模型的对应关系

OSI 七层 TCP/IP 四层 五层模型
应用层、表示层、会话层 应用层 应用层
传输层 传输层 传输层
网络层 网络层(也叫网际层) 网络层
数据链路层、物理层 网络接口层(也叫链路层) 数据链路层、物理层

五层模型把 OSI 下面两层和 TCP/IP 上面三层结合起来,既贴近实际,又能把物理层和数据链路层讲清楚,所以教学中很常用。

每一层做什么

层 作用 常见协议、设备
应用层 为应用程序提供服务,定义报文格式和交互规则 HTTP、HTTPS、DNS、FTP、SMTP、SSH、WebSocket
传输层 端口到端口(进程到进程)的通信 TCP、UDP
网络层 主机到主机的通信,负责 IP 寻址和路由选择 IP、ICMP;路由器工作在这一层
数据链路层 在同一链路上相邻节点之间传输帧,用 MAC 地址寻址 以太网;交换机工作在这一层
物理层 在介质上传输比特流 网线、光纤等传输介质;集线器

OSI 中的表示层负责数据格式转换、压缩和加密,会话层负责建立和管理会话。TCP/IP 没有单独设置这两层,相关工作由应用层协议自己完成,比如 HTTP 用 Content-Encoding 声明压缩方式。

TLS 位于应用层和传输层之间:它运行在 TCP 之上,为 HTTP 等应用层协议提供加密和身份认证。HTTPS 就是 HTTP 跑在 TLS 上,TLS 再跑在 TCP 上(见 HTTPS)。

数据的封装和解封装

以一次 HTTP 请求为例,发送方自上而下,每一层给上一层交下来的数据加上自己的首部:

文本
应用层       [应用数据]
传输层       [TCP 头][应用数据]                      段(segment)
网络层       [IP 头][TCP 头][应用数据]               包(packet)
数据链路层   [帧头][IP 头][TCP 头][应用数据][帧尾]   帧(frame)
物理层       0110 1001 0011 ...                      比特流

接收方自下而上,每一层拆掉对应的首部,把剩下的部分交给上一层,最终把应用数据交给应用程序。

  • 用 UDP 时传输层加的是 UDP 头,这一层的数据单元一般叫数据报
  • 帧尾是用来检测传输错误的校验序列
  • 传输途中,IP 头里的源 IP 和目的 IP 一般保持不变(经过 NAT 时除外),帧头里的 MAC 地址则每经过一个路由器就重写一次:源 MAC 换成这个路由器出口的地址,目的 MAC 换成下一跳的地址。路由器要拆到网络层看 IP 来决定往哪转发,交换机只看数据链路层的 MAC 地址

"四层"和"七层"负载均衡

这两个说法就来自 OSI 模型的层号:四层负载均衡工作在传输层,只根据 IP 和端口转发;七层负载均衡工作在应用层,能解析 HTTP 内容,可以按 URL、请求头、Cookie 转发。详见 反向代理和负载均衡。

面试官可能追问

ping 用的是什么协议?

ICMP,属于网络层,直接封装在 IP 包里,不经过 TCP 或 UDP,所以 ping 没有端口的概念。ping 发出 ICMP 回显请求(Echo Request),对方回复回显应答(Echo Reply)。ping 得通只说明网络层可达,不代表某个端口上的服务正常;反过来,服务器禁用了 ICMP 时 ping 不通,网站也可能照常访问。

HTTP、TCP、IP 分别属于哪一层?

HTTP 属于应用层,TCP 属于传输层,IP 属于网络层。顺带记住几个容易混的:DNS 是应用层协议,只是通常用 UDP 承载;端口是传输层的概念,IP 地址属于网络层,MAC 地址属于数据链路层。

ARP 是做什么的?

根据 IP 地址查找同一局域网内对应设备的 MAC 地址。主机先查本地的 ARP 缓存;查不到就在局域网内广播"谁是 192.168.1.1",拥有这个 IP 的设备回复自己的 MAC 地址。如果目标 IP 不在同一网段,主机要查的是网关(路由器)的 MAC 地址,把帧交给网关转发。IPv6 不使用 ARP,改用邻居发现协议(NDP)。

易错点

  • DNS 是应用层协议,不要因为它常用 UDP 就把它归到传输层
  • 路由器工作在网络层,普通交换机工作在数据链路层;集线器只是把信号转发到所有端口,属于物理层
  • OSI 是理论参考模型,实际互联网使用的是 TCP/IP 模型

AI 模拟面试官

用自己的话回答,AI 对照参考答案打分、指出遗漏,再追问,最多 3 轮

登录后就可以和 AI 面试官对练,面试记录也会保存下来。登录

这道题你掌握了吗?

选一个最接近的状态,没掌握的题会出现在"我的进度 · 待复习"里。

学习记录暂存在本机浏览器。登录后自动同步到账号,换设备也能看到。