一句话总结
OSI 七层模型(理论标准):物理层 → 数据链路层 → 网络层 → 传输层 → 会话层 → 表示层 → 应用层。TCP/IP 四层模型(事实标准):网络接口层 → 网际层 → 传输层 → 应用层。记忆口诀:"物联网传会表应"。关键协议:物理层(网线/光纤)、数据链路层(MAC/Ethernet)、网络层(IP/ICMP/ARP)、传输层(TCP/UDP)、应用层(HTTP/DNS/FTP)。数据发送时逐层加头(封装),接收时逐层去头(解封装)。
初级理解
OSI 七层模型
| 层次 | 名称 | 功能 | 协议/设备 |
|---|---|---|---|
| 7 | 应用层 | 为应用程序提供网络服务 | HTTP、DNS、FTP、SMTP |
| 6 | 表示层 | 数据格式转换、加密解密 | JPEG、ASCII、SSL/TLS |
| 5 | 会话层 | 建立、管理、终止会话 | RPC、NetBIOS |
| 4 | 传输层 | 端到端可靠传输 | TCP、UDP |
| 3 | 网络层 | 路由选择、IP 寻址 | IP、ICMP、路由器 |
| 2 | 数据链路层 | 帧封装、MAC 寻址 | Ethernet、交换机 |
| 1 | 物理层 | 比特流传输 | 网线、光纤、集线器 |
TCP/IP 四层模型
| 层次 | 名称 | 对应 OSI | 协议 |
|---|---|---|---|
| 4 | 应用层 | 应用层+表示层+会话层 | HTTP、DNS、FTP |
| 3 | 传输层 | 传输层 | TCP、UDP |
| 2 | 网际层 | 网络层 | IP、ICMP、ARP |
| 1 | 网络接口层 | 数据链路层+物理层 | Ethernet、WiFi |
中级深入
数据封装与解封装
# 发送过程(封装):
应用层:HTTP 数据
↓ 加 TCP 头(端口号)
传输层:TCP 段(Segment)
↓ 加 IP 头(IP 地址)
网络层:IP 数据包(Packet)
↓ 加 MAC 头 + FCS 尾
数据链路层:帧(Frame)
↓ 转为比特流
物理层:比特流(Bits)
# 接收过程(解封装):
物理层:比特流
↓ 去除 MAC 头
数据链路层:帧 → 检查 FCS
↓ 去除 IP 头
网络层:IP 数据包 → 路由判断
↓ 去除 TCP 头
传输层:TCP 段 → 按序列号重组
↓ 交给应用
应用层:HTTP 数据
# 关键理解:
# 1. 每层只关心自己的头部,不解析上层数据
# 2. 发送时从上层到下层逐层封装
# 3. 接收时从下层到上层逐层解封装
# 4. 中间路由器只处理到网络层
实战场景
# 场景1:浏览器输入 URL 的全过程
# 1. 应用层:DNS 解析域名 → IP
# 2. 应用层:HTTP 构造请求报文
# 3. 传输层:TCP 三次握手建立连接
# 4. 传输层:TCP 分段,添加端口号
# 5. 网络层:IP 寻址,添加 IP 头部
# 6. 网络层:ARP 获取目标 MAC 地址
# 7. 数据链路层:封装成帧,添加 MAC 地址
# 8. 物理层:转换为比特流传输
# 场景2:ping 命令涉及哪些层?
ping baidu.com
# 应用层:DNS 解析(如果 ping 域名)
# 网络层:ICMP 协议(封装在 IP 数据包中)
# 数据链路层+物理层:实际传输
# ping 不涉及传输层(TCP/UDP),直接用 ICMP
面试模拟
面试官:说说 OSI 七层模型,每层的作用?
你:从上到下:应用层(网络服务接口)、表示层(数据格式转换/加密)、会话层(会话管理)、传输层(端到端可靠传输 TCP/UDP)、网络层(路由/IP 寻址)、数据链路层(帧/MAC 寻址)、物理层(比特流传输)。记忆口诀"物联网传会表应"。
面试官:TCP/IP 四层模型和 OSI 七层模型有什么区别?
你:OSI 是理论模型(7层),TCP/IP 是事实标准(4层)。TCP/IP 将 OSI 的应用层、表示层、会话层合并为应用层,将数据链路层和物理层合并为网络接口层。OSI 先有模型后有协议,TCP/IP 先有协议后有模型。