OSI七层模型深入解析
约 1727 字大约 6 分钟
networkosi
2025-06-29
概述
OSI(Open Systems Interconnection)参考模型是国际标准化组织(ISO)于1984年提出的网络通信框架。它将网络通信划分为七个层次,每层各司其职,通过明确的接口与相邻层交互。理解OSI模型是掌握网络技术的基石。
七层架构总览
第1层:物理层(Physical Layer)
物理层负责在物理媒介上传输原始比特流,定义了电气、机械、功能和规程特性。
核心职责:
- 比特编码与信号调制(NRZ、曼彻斯特编码、4B/5B)
- 传输介质规范(双绞线、光纤、无线电波)
- 接口标准(RJ-45、SC/LC光纤接头)
- 数据传输速率与同步
典型协议与标准:
- IEEE 802.3(以太网物理层)
- RS-232/RS-485(串行通信)
- DSL、SONET/SDH
物理层传输示意:
发送端: 数据 0110 1001
↓ 编码
信号: ___‾‾‾_‾‾‾___‾‾‾___‾‾‾___‾‾‾_‾‾‾
↓ 传输介质(铜缆/光纤/无线)
接收端: 解码 → 0110 1001第2层:数据链路层(Data Link Layer)
数据链路层将不可靠的物理链路转化为可靠的数据链路,实现帧的传输、寻址和错误检测。
子层划分:
- LLC(逻辑链路控制): 提供流量控制和差错通知
- MAC(介质访问控制): 管理对物理介质的访问,使用MAC地址寻址
以太网帧结构:
+----------+----------+------+------+---------+-----+
| Preamble | SFD | Dest | Src | Type/ | FCS |
| 7 bytes | 1 byte | MAC | MAC | Length | 4B |
| | | 6B | 6B | 2B | |
+----------+----------+------+------+---------+-----+
| Payload |
| 46-1500 bytes|
+--------------+典型协议: Ethernet、Wi-Fi (802.11)、PPP、HDLC、VLAN (802.1Q)
第3层:网络层(Network Layer)
网络层负责逻辑寻址和路由选择,实现跨网络的数据包转发。
核心功能:
- IP寻址(IPv4/IPv6)
- 路由选择(RIP、OSPF、BGP)
- 分片与重组
- ICMP差错报告
IP数据报头部格式:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+第4层:传输层(Transport Layer)
传输层提供端到端的通信服务,屏蔽了底层网络的差异。
TCP vs UDP对比:
| 特性 | TCP | UDP |
|---|---|---|
| 连接性 | 面向连接 | 无连接 |
| 可靠性 | 可靠交付 | 尽力而为 |
| 有序性 | 有序 | 无序 |
| 流量控制 | 滑动窗口 | 无 |
| 拥塞控制 | 有 | 无 |
| 头部开销 | 20字节 | 8字节 |
第5层:会话层(Session Layer)
会话层管理应用程序之间的对话(会话),提供会话的建立、管理和终止功能。
核心职责:
- 会话建立、维护和终止
- 会话检查点和恢复(断点续传)
- 全双工/半双工模式管理
- 令牌管理(控制哪方可以发送数据)
典型实现: NetBIOS、RPC、PPTP的控制通道
第6层:表示层(Presentation Layer)
表示层负责数据的表示、安全和压缩,确保一个系统发送的数据能被另一个系统理解。
核心功能:
- 数据格式转换(EBCDIC ↔ ASCII)
- 数据加密/解密(SSL/TLS中的对称加密)
- 数据压缩/解压(JPEG、GIF编码)
- 序列化/反序列化(ASN.1、XDR)
第7层:应用层(Application Layer)
应用层直接为用户的应用进程提供网络服务。
典型协议: HTTP/HTTPS、FTP、SMTP、POP3/IMAP、DNS、SNMP、SSH、Telnet
TCP/IP四层模型映射
TCP/IP模型将OSI的上三层合并为应用层,下两层合并为网络接口层,更贴近实际实现。
封装与解封装过程
数据在发送端逐层向下封装,在接收端逐层向上解封装:
每层数据单元名称:
| 层次 | PDU名称 | 添加的头部信息 |
|---|---|---|
| 应用层 | 消息(Message) | 应用协议头部 |
| 传输层 | 段(Segment)/数据报(Datagram) | TCP/UDP头部(端口号) |
| 网络层 | 包(Packet) | IP头部(IP地址) |
| 数据链路层 | 帧(Frame) | MAC头部+FCS(MAC地址) |
| 物理层 | 比特(Bit) | 前导码、定界符 |
各层设备与实际对应
应用层 → 应用网关、WAF、负载均衡器(L7)
传输层 → 防火墙(L4)、负载均衡器(L4)
网络层 → 路由器、三层交换机
数据链路层 → 交换机、网桥、无线接入点
物理层 → 集线器、中继器、网线、光纤实际抓包观察分层
使用tcpdump抓包可以清晰看到分层封装:
# 抓取HTTP请求包
sudo tcpdump -i eth0 -X port 80
# 输出示例(简化)
# 以太网帧头(14字节):目的MAC + 源MAC + Type
# 0x0000: 4500 003c ... → IP头部(Version=4, IHL=5, Total Length=60)
# 0x000e: xxxx xxxx ... → TCP头部(Src Port, Dst Port, Seq, Ack...)
# 0x0022: 4745 5420 ... → HTTP请求 "GET /..."层间通信原理
同层之间通过协议进行"虚拟通信",实际数据流经物理链路:
常见面试要点
- 为什么需要分层? 降低复杂度、各层独立演进、便于标准化、促进互操作
- OSI vs TCP/IP? OSI是理论参考模型,TCP/IP是实际使用的协议栈
- 为什么TCP/IP没有严格区分会话层和表示层? 这些功能在实际中常由应用层协议自行处理
- 交换机工作在哪一层? 二层交换机工作在数据链路层,三层交换机兼具网络层功能
总结
OSI七层模型虽然在实际中未被完整实现,但它作为理解网络通信的概念框架,至今仍是网络教育和故障排查的重要工具。掌握每层的职责、协议和数据单元,能帮助我们更系统地分析网络问题,也是深入学习具体网络协议的基础。
贡献者
更新日志
9f6c2-feat: organize wiki content and refresh site setup于