分层模型(OSI 七层 & TCP/IP 四层)
1.1 OSI 七层模型
OSI(Open Systems Interconnection)是 ISO 制定的理论参考模型,自下而上分为七层:
| 层号 | 名称 | 核心功能 | 典型协议 | 典型设备/组件 |
|---|---|---|---|---|
| 7 | 应用层 | 为用户应用程序直接提供网络服务 | HTTP、FTP、DNS、SMTP、SSH | 应用程序、网关 |
| 6 | 表示层 | 数据格式转换、加密解密、压缩 | TLS/SSL、JPEG、ASCII/Unicode | — |
| 5 | 会话层 | 建立、管理、终止会话 | RPC、NetBIOS、PPTP | — |
| 4 | 传输层 | 端到端(进程到进程)传输、端口复用与分用、可靠传输 | TCP、UDP | 四层防火墙、四层负载均衡(LVS) |
| 3 | 网络层 | 逻辑寻址(IP)、路由选择、分组转发 | IP、ICMP、IGMP | 路由器、三层交换机 |
| 2 | 数据链路层 | 成帧、MAC 寻址、差错检测、相邻节点传输 | Ethernet(以太网)、PPP、VLAN(802.1Q) | 交换机、网桥、网卡 |
| 1 | 物理层 | 比特流传输、电气/光学特性 | RS-232、双绞线、光纤规范 | 集线器、中继器、网线、光模块 |
记忆要点:物数网传会表应(物理、数据链路、网络、传输、会话、表示、应用)。
1.2 TCP/IP 四层模型
TCP/IP 是实际互联网使用的协议族,自下而上分为四层:
| TCP/IP 层 | 对应 OSI 层 | 核心协议 | 功能概述 |
|---|---|---|---|
| 应用层 | 应用层 + 表示层 + 会话层 | HTTP、HTTPS、DNS、FTP、SSH、DHCP、SMTP | 把 OSI 上三层合并,直接为应用服务 |
| 传输层 | 传输层 | TCP、UDP | 端到端传输,用端口号区分进程 |
| 网络层(互联网层) | 网络层 | IP、ICMP、ARP* | 主机到主机的寻址与路由 |
| 网络接口层 | 数据链路层 + 物理层 | Ethernet、Wi-Fi(802.11)、PPP | 相邻节点帧传输与物理比特流 |
*注:ARP 严格说工作在数据链路层与网络层之间(它为网络层的 IP 服务,但用链路层广播实现),教材划分略有差异,面试时能讲清「ARP 完成 IP 地址到 MAC 地址的映射」即可。
1.3 数据的封装与解封装
发送方自上而下加头(封装),接收方自下而上去头(解封装):
- 应用层产生数据(Data);
- 传输层加上 TCP/UDP 头(含源端口、目的端口)→ 段(Segment);
- 网络层加上 IP 头(含源 IP、目的 IP、TTL)→ 包(Packet);
- 网络接口层加上帧头(含源 MAC、目的 MAC)和帧尾(FCS 校验)→ 帧(Frame);
- 物理层把帧转成比特流(Bits)发送。
每层的头部只对同层的对等实体有意义,这就是「分层解耦」:每一层只信任并使用下一层提供的服务,修改某一层不影响其他层。
1.4 高频面试题
Q1:交换机和路由器的区别?
| 维度 | 交换机(二层) | 路由器(三层) |
|---|---|---|
| 工作层次 | 数据链路层 | 网络层 |
| 转发依据 | MAC 地址表 | 路由表(目的 IP) |
| 寻址方式 | MAC(物理地址,出厂烧录) | IP(逻辑地址,可动态分配) |
| 转发原理 | 收到帧后学习源 MAC → 查 MAC 表 → 命中则单播转发,未命中则向除入口外所有端口泛洪 | 收到包后查路由表最长前缀匹配 → 修改 TTL 并重新计算校验和 → 从对应接口转发 |
| 广播域 | 不隔离广播域(划分 VLAN 才能隔离) | 隔离广播域 |
| 典型场景 | 局域网内部互联 | 局域网之间、连接互联网 |
补充:三层交换机 = 二层交换 + 三层路由功能,用于大中型局域网内 VLAN 间高速转发。
Q2:为什么 TCP/IP 实际用四层而不是七层?
- OSI 是「先有模型后有协议」的理论标准,设计理想化;TCP/IP 是「先有协议后有模型」的工程实践,简洁务实。
- OSI 的表示层、会话层功能在实际中很少作为独立层实现:加密/压缩(表示层)通常直接做在应用层或 TLS 里,会话管理由应用程序自己完成。
- 分层越多,协议实现越复杂、开销越大;四层模型够用且高效,成为事实标准。
- 现实中常见「五层」教学模型(物理、链路、网络、传输、应用),是为了讲清原理对 TCP/IP 的细化,面试答出这层理解是加分项。
Q3:数据从主机 A 发送到主机 B,经历了什么过程?
答:按封装→传输→解封装叙述:应用产生数据,逐层加 TCP 头、IP 头、帧头帧尾变成比特流;中间经过交换机(查 MAC 表转发帧)和路由器(查路由表转发包,TTL 递减,每跳重写链路层帧头);到达 B 后逐层去头,最终应用层拿到数据。要点是讲清「中间设备改写哪些头部」:交换机不改 IP、路由器每跳换 MAC、IP 端到端不变(无 NAT 时)。