Hi。IC验证工程师在日常工作中会接触到各种各样的协议,小杜最近就在验证的时候接触到了MCTP协议,虽然硬件媒介层只负责传输数据,确保数据传输流程、数据包格式、数据正确即可,具体的数据包分析由软件控制,但正如小杜师傅所说,既然验到了,最好还是对协议及应用做深一步了解,这样才能对验的东西有更好的认知。本文只是对MCTP协议和基于MCTP框架的部分协议的简单介绍,如有错误,还请批请指教。
MCTP(Management Component Transport Protocol)是一种用于在计算机系统中传输管理信息的协议,具有很强的灵活性、扩展性,可用于不同的管理控制器和设备之间进行通信。因为MCTP协议可以在多种底层传输媒介上运行,如I2C、SMBus、I3C、PCIe、USB和以太网等,因此MCTP在不同的硬件平台和通信环境中具有广泛的适用性。
MCTP采用分层架构,包括MCTP控制协议层、消息传输层和底层传输媒介层。
控制协议层负责消息格式和控制命令。
消息传输层负责处理消息的分片、重组和传输。由于MCTP协议规定底层最多一次传输69 bytes,因此当消息(message)超过时,发送端需要对消息分片,接收端对片消息进行重组。这种方式可以提高传输和效率和可靠性。
底层传输媒介层负责实际的物理传输,每次传输一个MCTP packet。
MCTP还支持多级地址映射和路由,允许在复杂的系统拓扑中灵活地传输消息。
MCTP协议框架可以承载多种上层协议。比如PLDM、SPDM、NC-SI、VDM以及OEM定制协议。这里只着重介绍下PLDM和SPDM。
PLDM有多种子协议,每个子协议针对特定的管理功能,比如:
SPDM消息格式包含以下字段:
SPDM的工作流程如下:
PLDM(Platform Level Data Model)
PLDM是由DMTF定义的一组管理协议,旨在标准化系统管理组件之间的数据交换。PLDM Message由固定格式的头(Message Header)和可变长度的负载组成。头部包含以下字段:
PLDM Type:标识消息的PLDM类型
PLDM Command/Respone:标识具体的命令或响应。
Instance ID:标识消息的实例,确保消息的唯一性和可追踪性。
Payload Length:负载数据的长度,长度可变。
Payload:实际的消息内容,根据不同的PLDM类型和命令具有不同的格式。
PLDM for Firmware Update:提供固件更新的标准机制,支持固件映像的传输、验证和应用,主要用于服务器、存储设备、网络设备的固件更新。
PLDM for Monitoring and Control:提供设备状态监控和控制的标准接口,主要用于实时监控设备的健康状态,执行远程控制操作。
PLDM for Platform Initialization:定义了平台初始化和配置的标准流程,应用于系统启动过程中的设备初始化和配置管理。
PLDM for BIOS Control and Configuration:提供BIOS设置和控制的标准接口,应用于远程配置和管理BIOS设置。
SPDM (Security Protocol and Data Model)
SPDM用于设备认证和安全通信。SPDM提供设备间的双向认证机制,确保通信双方身份真实性,并且定义了建立安全通信通道的流程,确保数据传输的机密性和完整性。同时,SPDM支持多种认证和加密算法以满足不同安全级别的需求。
SPDM Version:协议版本号。
Request/Response Code:标识请求或响应的类型。
Session ID:标识会话的唯一ID。
Payload Length:负载数据的长度,长度可变。
Payload:实际的消息内容,包括认证信息、密钥协商信息和加密数据。
认证过程:通信双方发现对方的存在,初始化认证流程,随后通过数字证书和挑战-响应机制验证对方身份,认证通过后,双方协商生成会话密钥用于后续通信加密。
安全通信:使用认证过程中生成的会话密钥对传输的数据进行加密,通过消息认证码或数字签名保护数据的完整性,防止篡改,并且每次通信都会附加认证信息,确保消息的真实性,防止重放攻击。
NC-SI(Netword Controller Sideband Interface)
NC-SI协议用于管理网络和控制器,通过带外通信通道(如基板管理控制器,BMC)与网络控制器进行通信。
VDM (Vendor Defined Message)
供应商自己定义的私有消息类型,以满足其特定功能需求。
通过上述基于MCTP协议框架的协议不难猜到,MCTP主要应用于数据中心、服务器管理和高性能计算环境。
服务器和数据中心管理:通过BMC和其他管理控制器,实现对服务器硬件的监控、配置和控制。
固件更新:通过PLDM for Firmware Update协议,在运行过程中安全、可靠地更新系统固件。
安全认真和通信:通过SPDM协议来确保管理通信的安全性,防止未授权的访问和数据篡改。
网络控制器管理:通过NC-SI协议配置和管理网络控制器,以提高网络性能和安全性。
小杜这里只是对MCTP和一些承载协议的特性、功能和使用场景做了简单的介绍,具体到每个协议的使用还需要看对应的spec及具体使用场景,因为小杜目前还不涉及软件层,也尚无精力研究每一份spec,所以就先写到这儿啦。感谢你看到这里。
全部0条评论
快来发表一下你的评论吧 !