SAS传输协议处理流程
SAS协议支持三种主要的传输协议,每种协议用于不同的应用场景:
- SSP (Serial SCSI Protocol): 用于SCSI命令传输
- SMP (Serial Management Protocol): 用于管理SAS拓扑
- STP (Serial ATA Tunneling Protocol): 用于SATA命令传输
1. SSP协议处理流程
SSP (Serial SCSI Protocol) 是SAS中用于SCSI命令传输的协议,支持完整的SCSI功能集。
1.1 SSP协议特点
- 基于SCSI命令集
- 支持全双工通信
- 提供可靠的数据传输
- 支持任务管理功能
- 使用CRC校验保证数据完整性
1.2 SSP帧结构
+----------------+----------------+----------------+----------------+
| SOF (1 byte) | 帧头 (8 bytes) | 数据负载 | CRC (4 bytes) |
+----------------+----------------+----------------+----------------+
- SOF: 帧起始标记
- 帧头: 包含目标/源SAS地址、帧类型等信息
- 数据负载: 根据帧类型不同,包含命令、数据或响应
- CRC: 循环冗余校验,确保数据完整性
1.3 SSP目标端处理流程
-
连接建立
- 接收OPEN地址帧
- 验证发起方SAS地址和权限
- 确认连接类型为SSP
- 建立双向通信通道
-
命令接收
- 接收COMMAND帧
- 验证帧CRC
- 解析SCSI命令
- 提取LUN、CDB和任务属性
-
命令处理
- 将命令转发给STE模块
- STE模块根据命令类型分发
- 执行SCSI命令操作
- 准备响应数据
-
响应发送
- 生成RESPONSE帧
- 包含状态码、感知数据等
- 发送响应数据
- 对于读命令,先发送DATA帧,再发送RESPONSE帧
-
连接关闭
- 发送CLOSE原语
- 更新任务状态
- 释放资源
1.4 SSP发起端处理流程
-
连接建立
- 发送OPEN地址帧
- 指定SSP协议
- 包含目标SAS地址
- 等待连接确认
-
命令发送
- 构造COMMAND帧
- 包含LUN、CDB和任务属性
- 计算并添加CRC
- 发送SCSI命令
-
响应接收
- 接收RESPONSE帧
- 验证帧CRC
- 解析响应数据
- 对于读命令,先接收DATA帧,再接收RESPONSE帧
-
连接关闭
- 接收CLOSE原语
- 更新任务状态
- 通知上层应用
1.5 SSP错误处理
-
传输错误:
- CRC校验失败时重新发送
- 连接断开时重新建立连接
- 达到重试上限后报告错误
-
任务管理:
- 支持ABORT TASK、ABORT TASK SET等任务管理功能
- 可以中止特定任务或一组任务
- 支持目标设备重置
1.6 SSP与STE模块交互
+---------------+ +---------------+
| SSP传输层 | | STE模块 |
+---------------+ +---------------+
| |
|------- SCSI命令 ------------->|
| |
| |---处理命令-->|
| | |
| |<--处理结果---|
| |
|<------ 命令响应 --------------|
| |

2万+

被折叠的 条评论
为什么被折叠?



