【面试真题拆解】被问懵的计算机网络7层_5层_4层模型
好几次面试都被问了计算机网络模型,一次是让我讲讲7层模型,还有让我讲讲5层模型,4层模型的。
这群面试官完全不按套路出牌,昨天刚问完 7 层模型,今天就换成了 4 层模型。
我当场脑子一片空白,支支吾吾说不清楚,直接就凉了。
首先,为什么会有三个版本?
且看:
- 7层模型(OSI参考模型)
这是国际标准化组织定的理论学术标准,是网络分层的“祖宗”,但实际互联网几乎不用。
- 4层模型(TCP/IP模型)
互联网实际在用的工业落地标准,我们现在上网、写代码用的HTTP、TCP、IP,全是基于这个模型跑的,是真正“干活”的模型。
- 5层模型(教材简化模型)
国内计算机教材最常用的简化教学版,把4层模型的最底层拆成了2层,方便理解学习。
面试的时候,不管面试官问哪个模型,可以先把下面这张对应关系表讲出来,这样就能把三个模型的边界划清楚,也不容易搞混。
| 7 层 OSI 参考模型 | 5 层教材简化模型 | 4 层 TCP/IP 工业模型 | 作用 |
|---|---|---|---|
| 应用层 | 应用层 | 应用层 | 给用户/应用提供服务,比如浏览器、APP |
| 表示层 | (合并到应用层) | (合并到应用层) | 数据加密、格式转换、统一编码 |
| 会话层 | (合并到应用层) | (合并到应用层) | 建立和维持应用之间的会话连接 |
| 传输层 | 传输层 | 传输层 | 给数据标端口,控制端到端的传输方式 |
| 网络层 | 网络层 | 网际层 | 给数据标 IP,规划端到端的传输路线 |
| 数据链路层 | 数据链路层 | 网络接口层 | 给数据标 MAC 地址,相邻节点之间的传输 |
| 物理层 | 物理层 | (合并到网络接口层) | 电信号、光信号的物理传输 |
7层OSI参考模型
7. 应用层
应用层主要是给用户/应用提供可操作的服务,定义数据的业务含义。
统称为 消息/报文 (Message)。
我们写代码天天接触的HTTP、HTTPS、DNS、FTP、WebSocket、RPC协议,全在这一层。
浏览器发请求、APP调接口,都是在应用层完成的。
6. 表示层
表示层主要是统一数据格式,保证收发双方能看懂对方的数据,核心负责数据的加密解密、格式转换、压缩解压、编码统一。
理论上 OSI 模型把加密解密放在表示层;
但在实际 TCP/IP 模型中,TLS/SSL 属于应用层实现,工作在应用层与传输层之间。
5. 会话层
会话层主要是管理应用之间的会话,保证数据不会串线。
负责建立、维持、有序断开应用之间的会话连接,提供会话同步、全双工 / 半双工切换等管理能力;
该层仅存在于 OSI 理论模型中,实际 TCP/IP 体系中无独立对应层,相关会话逻辑由应用层 + 传输层共同实现。
4. 传输层
传输层是端到端的传输控制,保证数据能准确送到对应的应用程序。
数据单位称为 段 (Segment)。
TCP(可靠传输)、UDP(不可靠传输),还有端口号(HTTP的80端口、HTTPS的443端口),都在这一层。
3. 网络层
作用是网络寻址和路由选择,保证数据能从源主机送到目标主机。
数据单位称为 包 (Packet) 或 分组。
IP 协议(IPv4/IPv6)、ARP(IP 转 MAC 地址)、ICMP(ping/tracert 命令)、OSPF/RIP 路由协议,都在这一层。
2. 数据链路层
相邻节点之间的可靠传输,负责成帧 (Framing)、差错检测和流量控制。
数据单位称为 帧 (Frame)。
MAC地址、以太网协议、交换机转发,都在这一层。
给 IP 数据包加上 MAC 头部,标上源 MAC 和下一跳的 MAC 地址,保证相邻节点之间能准确传输。
1. 物理层
物理介质上的比特流传输。只负责传输0和1的比特流,不管数据是什么含义。
数据单位称为 比特 (Bit)。
网线、光纤、网卡、集线器、电信号、光信号,都在这一层。
4层TCP/IP模型
OSI模型太理想化、太复杂,实际互联网落地的时候,做了两层合并,就成了现在真正在用的4层模型:
- 应用层:合并了OSI的应用层+表示层+会话层
- 传输层:同OSI的传输层
- 网际层:同OSI的网络层
- 网络接口层:合并了OSI的数据链路层+物理层
我们现在上网、写代码的所有网络请求,全是跑在这个4层TCP/IP模型上的,是真正的工业标准。
5层教材简化模型
国内教材为了兼顾教学易懂性和底层逻辑完整性,以 OSI 7 层模型为基础做简化,保留应用层、传输层、网络层,同时将底层拆分为数据链路层 + 物理层,形成了教学通用的 5 层简化模型。
这个模型既保留了底层的物理传输逻辑,又简化了上层的复杂分层。
举个例子
在浏览器输入网址,到页面显示出来,经过了网络模型的哪些层?
(1)客户端发送请求(从上到下封装数据包)
- 应用层
浏览器解析网址,先通过 DNS 协议解析域名,拿到服务器的 IP 地址,再生成对应的 HTTP 请求。
- 传输层
先通过三次握手与服务器建立 TCP 连接,再给 HTTP 请求加上 TCP 头部,标上源端口和目标端口,完成传输层封装。
- 网络层
给TCP数据包加上IP头部,标上源IP和目标IP,路由器根据IP地址规划路由,找到服务器的网络地址。
- 数据链路层
给IP数据包加上MAC头部,标上源MAC和下一跳的MAC地址,交换机根据MAC地址完成相邻节点转发。
- 物理层
把数据包转换成电信号/光信号,通过网线、光纤、基站等物理介质,传输到目标服务器。
(2)服务器接收并处理请求(从下到上解析数据包)
服务器收到数据后,从下到上逐层解包:物理层➡️数据链路层➡️网络层➡️传输层➡️应用层,最终解析 HTTP 请求、执行业务逻辑并返回响应。
(3) 客户端渲染页面
浏览器收到响应后,解析HTML/CSS/JS,渲染页面并显示给用户。
每层对应的协议
| 层级名称 | 协议 |
|---|---|
| 应用层 | HTTP、HTTPS、DNS、FTP、SMTP(邮件发送)、POP3/IMAP(邮件接收)、WebSocket、SSH、Dubbo 等 RPC 协议 |
| 传输层 | TCP(可靠传输)、UDP(不可靠传输) |
| 网络层 | IPv4、IPv6、ARP(IP 转 MAC 地址)、ICMP(ping/tracert)、OSPF、RIP 等路由协议 |
| 数据链路层 | 以太网协议、PPP 点对点协议、VLAN 协议、MAC 地址规范 |
| 物理层 | 无专属网络协议,相关规范:网线、光纤、网卡、集线器、RJ45 接口 |
小贴士:
ARP 协议逻辑上属于网络层(核心为 IP 协议提供地址解析服务,是 TCP/IP 网际层的核心配套协议),仅从报文封装形式来看,它被直接封装在以太网帧中,因此也有观点认为它属于数据链路层。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)