SciTech-EECS-Network: OSI七层网络模型 明释
https://www.cnblogs.com/madtom/p/19048854
OSI七层网络模型
OSI七层网络模型详解
概述
OSI(Open Systems Interconnection)七层网络模型是国际标准化组织(ISO)制定的网络互连标准模型,用于描述网络通信的标准框架。该模型将网络通信分为七个抽象层次,每层负责特定的功能,为网络设备制造商和软件开发者提供了统一的标准。
OSI七层模型架构图
┌─────────────────────────────────────────┐
│ 第7层:应用层 (Application) │ ← 用户接口
├─────────────────────────────────────────┤
│ 第6层:表示层 (Presentation) │ ← 数据格式转换
├─────────────────────────────────────────┤
│ 第5层:会话层 (Session) │ ← 会话管理
├─────────────────────────────────────────┤
│ 第4层:传输层 (Transport) │ ← 端到端传输
├─────────────────────────────────────────┤
│ 第3层:网络层 (Network) │ ← 路由选择
├─────────────────────────────────────────┤
│ 第2层:数据链路层 (Data Link) │ ← 帧传输
├─────────────────────────────────────────┤
│ 第1层:物理层 (Physical) │ ← 比特传输
└─────────────────────────────────────────┘
各层详细解析
第1层:物理层 (Physical Layer)
- 数据单位:比特(Bit)
- 功能职责:
定义网络设备间的物理连接
负责比特流的传输
规定电气特性、机械特性、功能特性和过程特性 - 关键技术:
- Media: 传输媒介:双绞线、光纤、无线电波、同轴电缆
- Signal&Enc/Dec(信号编码):曼彻斯特编码、差分曼彻斯特编码
- Modulation(调制技术):ASK、FSK、PSK、QAM
- Synchronization(同步机制):时钟同步、帧同步
- 典型设备:
网线、光纤
集线器(Hub)
中继器(Repeater)
调制解调器(Modem) - 关键特性:
物理特性:
├── 机械特性:连接器形状、引脚数量
├── 电气特性:电压范围、阻抗匹配
├── 功能特性:引脚功能定义
└── 过程特性:建立连接的时序
第2层:数据链路层 (Data Link Layer)
-
数据单位:帧(Frame)
-
功能职责:
在不可靠的物理链路上, 提供可靠的数据传输:
帧同步、流量控制、错误检测与纠正、MAC(介质访问控制) -
核心机制:
帧封装格式:| 帧起始符 | 头部 | 数据 | 校验 | 帧结束符 |
| FLAG | Header | Data | FCS | FLAG | -
错误检测机制:
CRC校验:循环冗余校验
奇偶校验:简单错误检测
海明码:单比特错误纠正 -
流量控制:
停止等待协议:发送方等待确认
滑动窗口协议:提高传输效率 -
介质访问控制:
CSMA/CD:载波监听多路访问/冲突检测
令牌环:令牌传递控制访问
TDMA/FDMA:时分/频分多址 -
典型协议:
以太网协议:IEEE 802.3
WiFi协议:IEEE 802.11
蓝牙协议:IEEE 802.15
PPP协议:点对点协议 -
典型设备:
网桥(Bridge)
交换机(Switch)
网卡(NIC)
第3层:网络层 (Network Layer)
- 数据单位:Packet(数据包)
- 功能职责:
路径选择和路由
逻辑地址分配(IP地址)
数据包转发
网络互连
核心概念:
IP地址体系:
- 突破 65535(16bit) 端口上限:
16bit的端口位, 理论上最大端口号 65535,- 对外服务用 IPv4:
- 对内,将本地 Clusters of Server 的TCP/IP Sockets 直接用 UNIX Sockets 代替;
实现无缝切换。或将IPv4的端口转发到localhost 或 LAN的UNIX Sockets 代替
debug时,用TCP/IP Sockets就行。
- IPv4地址结构:
32位 = 网络位 + 主机位; - IPv6地址结构:
128位,8个16进制数段
2001:0db8:85a3:0000:0000:8a2e:0370:7334 - 路由算法:
距离向量算法:RIP(Routing Information Protocol)
链路状态算法:OSPF(Open Shortest Path First)
路径向量算法:BGP(Border Gateway Protocol) - 子网划分:
网络地址:192.168.1.0/24
子网掩码:255.255.255.0
可用主机:254台(2^8-2)
广播地址:192.168.1.255 - 核心协议:
IP协议:Internet Protocol
ICMP协议:Internet Control Message Protocol
ARP协议:Address Resolution Protocol
DHCP协议:Dynamic Host Configuration Protocol - 典型设备:
路由器(Router)
三层交换机
防火墙
路由表示例:
| 目标网络 | 子网掩码 | 网关 | 接口 | 跳数 |
|---|---|---|---|---|
| 0.0.0.0 | 0.0.0.0 | 192.168.1.1 | eth0 | 1 |
| 192.168.1.0 | 255.255.255.0 | 0.0.0.0 | eth0 | 0 |
| 10.0.0.0 | 255.0.0.0 | 192.168.1.254 | eth0 | 2 |
第4层:传输层 (Transport Layer)
- Segment(数据单位)
- 功能职责:
端到端的可靠数据传输
流量控制和拥塞控制
数据分段与重组
端口复用
核心协议对比:
| 特性 | TCP | UDP |
|---|---|---|
| 连接性 | 面向连接 | 无连接 |
| 可靠性 | 可靠传输 | 不可靠传输 |
| 流量控制 | 支持 | 不支持 |
| 拥塞控制 | 支持 | 不支持 |
| 开销 | 较大 | 较小 |
| 应用场景 | 文件传输、网页浏览 | 视频流、游戏 |
TCP协议详解
- TCP头部结构
- TCP三次握手
- TCP四次挥手
- TCP拥塞控制算法:
慢启动:指数增长
拥塞避免:线性增长
快重传:重复ACK触发
快恢复:避免慢启动
第5层:会话层 (Session Layer)
- 功能职责:
建立、管理和终止会话
会话检查点和恢复
数据同步
对话控制
核心机制:
会话建立过程:
应用A 会话层 应用B
│ │ │
│─── 会话建立请求 ──→ │ │
│ │ ─── 连接建立 ───→ │
│ │ ←─── 连接确认 ─── │
│ ←── 会话建立确认 ─── │ │
│ │ │
│ 会话建立完成 │
-
对话模式:
单工:单向数据传输
半双工:双向交替传输
全双工:双向同时传输 -
同步点机制:
发送方 接收方
│───── 数据块1 ────→ │
│←──── 确认 ─────── │
│───── 同步点标记 ───→ │
│───── 数据块2 ────→ │
- 典型协议:
NetBIOS:网络基本输入输出系统
RPC:远程过程调用
SQL Session:数据库会话
LDAP Session:目录访问会话
数据单位:消息(Message)
第6层:表示层 (Presentation Layer)
- 数据单位:格式化数据
- 功能职责:
数据格式转换
数据加密解密
数据压缩解压
字符编码转换
核心功能:
* 数据格式转换:
应用层格式 → 网络标准格式 → 目标应用格式
本地格式 → ASN.1/XDR → 目标格式
* 加密算法类型:
对称加密:AES、DES、3DES
非对称加密:RSA、ECC、DSA
哈希算法:MD5、SHA-1、SHA-256
* 压缩算法:
无损压缩:LZ77、LZ78、Huffman
有损压缩:JPEG、MP3、MPEG
* 字符编码:
* 编码类型:
ASCII:7位英文字符, 8bit扩展英文编码
UTF-8:变长Unicode编码
UTF-16:16位Unicode编码
GBK:中文字符编码
ISO-8859:西欧字符编码
* 典型协议和标准:
ASN.1:抽象语法记号
XDR:外部数据表示
MIME:多用途因特网邮件扩展
SSL/TLS:安全套接字层
JPEG:图像压缩标准
第7层:应用层 (Application Layer)
* 数据单位:应用数据
* 功能职责:
为应用程序提供网络服务
用户接口
网络资源访问
主要协议分类:
- Web服务协议:
HTTP/HTTPS:超文本传输协议
WebSocket:全双工通信协议
REST/GraphQL:API接口标准
- 文件传输协议:
FTP/SFTP:文件传输协议
SMB/CIFS:网络文件共享
NFS:网络文件系统
- 邮件协议:
SMTP:简单邮件传输协议
POP3/IMAP:邮件接收协议
- 远程访问协议:
SSH:安全外壳协议
Telnet:远程登录协议
RDP:远程桌面协议
- 域名系统:
DNS:域名解析系统
mDNS:多播DNS
HTTP协议详解
[HTTP请求示例]
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml
Connection: keep-alive
[HTTP响应示例]
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Server: Apache/2.4.41
Cache-Control: max-age=3600
[HTTP状态码]
1xx:信息性状态码
├── 100 Continue
└── 101 Switching Protocols
2xx:成功状态码
├── 200 OK
├── 201 Created
└── 204 No Content
3xx:重定向状态码
├── 301 Moved Permanently
├── 302 Found
└── 304 Not Modified
4xx:客户端错误
├── 400 Bad Request
├── 401 Unauthorized
├── 403 Forbidden
└── 404 Not Found
5xx:服务器错误
├── 500 Internal Server Error
├── 502 Bad Gateway
└── 503 Service Unavailable
OSI模型与TCP/IP模型对比
| OSI层次 | OSI模型 | TCP/IP模型 | 主要协议 |
|---|---|---|---|
| 7 | 应用层 | 应用层 | HTTP、FTP、SMTP、DNS |
| 6 | 表示层 | ↑ | SSL/TLS、JPEG、MPEG |
| 5 | 会话层 | ↑ | NetBIOS、RPC |
| 4 | 传输层 | 传输层 | TCP、UDP |
| 3 | 网络层 | 网络层 | IP、ICMP、ARP |
| 2 | 数据链路层 | 网络接口层 | Ethernet、WiFi |
| 1 | 物理层 | ↑ | 网线、光纤、无线 |
数据封装与解封装过程
# 数据封装过程(发送端)
应用层: [应用数据]
↓
表示层: [格式化数据]
↓
会话层: [会话头|数据]
↓
传输层: [TCP头|数据] (段 Segment)
↓
网络层: [IP头|TCP头|数据] (包 Packet)
↓
数据链路层: [帧头|IP头|TCP头|数据|帧尾] (帧 Frame)
↓
物理层: [比特流] (比特 Bits)
# 数据解封装过程(接收端)
物理层: [比特流] → 比特流转换为帧
↓
数据链路层: [帧头|IP头|TCP头|数据|帧尾] → 去除帧头帧尾
↓
网络层: [IP头|TCP头|数据] → 去除IP头
↓
传输层: [TCP头|数据] → 去除TCP头
↓
会话层: [数据] → 建立会话
↓
表示层: [数据] → 格式转换
↓
应用层: [应用数据] → 交给应用程序
实际网络通信示例
Web浏览器访问网站的完整过程
应用层:用户在浏览器输入URL
表示层:浏览器解析URL,准备HTTP请求
会话层:建立与服务器的会话
传输层:TCP三次握手建立连接
网络层:IP路由寻找服务器
数据链路层:以太网帧传输
物理层:通过网线/WiFi传输比特流
实际抓包分析
Frame 1: 74 bytes on wire
Ethernet II, Src: aa:bb:cc:dd:ee:ff, Dst: 11:22:33:44:55:66
Internet Protocol Version 4
Source: 192.168.1.100
Destination: 93.184.216.34
Transmission Control Protocol
Source Port: 52347
Destination Port: 80 (http)
Flags: 0x018 (PSH, ACK)
Hypertext Transfer Protocol
GET / HTTP/1.1\r\n
Host: example.com\r\n
User-Agent: Mozilla/5.0\r\n
OSI模型的Pros与Cons
* Pros.
- 标准化:提供统一的网络通信标准
- 模块化:各层功能独立,便于维护
- 互操作性:不同厂商设备可互连
- 故障定位:便于网络问题诊断
- 教学价值:理论完整,便于学习
* Cons.
- 理论性强:实际应用中TCP/IP更普及
- 复杂度高:七层划分过于细致
- 性能开销:每层都有处理开销
- 成本较高:完整实现所有层次复杂
现代网络中的OSI应用
软件定义网络(SDN)
┌─────────────────────────────────────────┐
│ SDN控制器 (应用层) │ ← 网络应用和服务
├─────────────────────────────────────────┤
│ 北向接口 (会话层) │ ← API接口
├─────────────────────────────────────────┤
│ 控制平面 (网络层) │ ← 路由决策
├─────────────────────────────────────────┤
│ 南向接口 (传输层) │ ← OpenFlow协议
├─────────────────────────────────────────┤
│ 数据平面 (数据链路层) │ ← 交换机转发
└─────────────────────────────────────────┘
云计算网络模型
应用层: 云服务 (SaaS)
表示层: API网关、负载均衡
会话层: 会话保持、服务发现
传输层: 微服务通信 (gRPC, HTTP/2)
网络层: 容器网络 (CNI)
数据链路层:虚拟交换机 (OVS)
物理层: 物理服务器网络
故障排查与网络诊断
分层故障排查方法
-
物理层故障:
网线连接检查
网卡状态确认
信号强度测试 -
数据链路层故障:
MAC地址冲突
交换机端口状态
VLAN配置错误 -
网络层故障:
IP地址冲突
路由表错误
子网掩码配置 -
传输层故障:
端口被占用
防火墙阻止
连接超时 -
应用层故障:
服务未启动
配置文件错误
权限问题
常用诊断工具
# 物理层和数据链路层
ping -t 192.168.1.1 # 连通性测试
arp -a # ARP表查看
# 网络层
tracert www.baidu.com # 路由跟踪
route print # 路由表查看
# 传输层
netstat -an # 端口状态查看
telnet 192.168.1.1 80 # 端口连通性测试
# 应用层
nslookup www.baidu.com # DNS解析测试
curl -I http://example.com # HTTP头部测试
网络安全与OSI模型
各层安全措施
| 层次 | 安全威胁 | 防护措施 |
|---|---|---|
| 应用层 | SQL注入、XSS | WAF、输入验证 |
| 表示层 | 数据泄露 | 加密、数字签名 |
| 会话层 | 会话劫持 | 会话令牌、超时控制 |
| 传输层 | 端口扫描 | 防火墙、端口隐藏 |
| 网络层 | IP欺骗 | 路由过滤、ACL |
| 数据链路层 | MAC泛洪 | 端口安全、VLAN |
| 物理层 | 物理接入 | 机房安全、线路保护 |
总结
OSI七层网络模型, 虽然在实际应用上不如TCP/IP模型普及,
但它提供了完整的网络通信理论框架。
理解OSI模型有助于:
- 系统化学习:按层次理解网络技术
- 故障定位:快速识别网络问题层次
- 技术选型:根据需求选择合适的网络技术
- 架构设计:设计可扩展的网络架构
- 安全防护:建立多层次安全防护体系
现代网络技术如SDN、NFV、5G等,都在某种程度上体现了OSI模型的分层思想,
证明了这一理论模型的持续价值和指导意义。
参考资料
- ISO/IEC 7498-1: 开放系统互连基本参考模型
- RFC 1122: Internet主机需求 - 通信层
- IEEE 802.3: 以太网标准
- ITU-T建议书: 各层协议标准
本文来自博客园,作者:MadLongTom,
转载请注明原文链接:https://www.cnblogs.com/madtom/p/19048854

浙公网安备 33010602011771号