3.1 可用的通信操作
3.1.1 发送 / 带立即数发送
发送操作允许您将数据发送到远程 QP 的接收队列。接收方必须事先发布接收缓冲区才能接收数据。发送方无法控制数据在远程主 机中的驻留位置。可选地,可以使用数据缓冲区传输一个 4 字节的立即数。此即时值作为接收通知的一部分呈现给接收方,并不包 含在数据缓冲区中。
3.1.2 接收
这是与发送操作相对应的操作。接收主机会收到数据缓冲区已收到的通知,可能带有内联立即值。接收应用程序负责接收缓冲区的维 护和发布。
3.1.3 RDMA 读
从远程主机读取一段内存。调用者指定要复制到的远程虚拟地址以及本地内存地址。在执行 RDMA 操作之前,远程主机必须提供适当 的权限来访问其内存。设置这些权限后,RDMA 读取操作将在不向远程主机发出任何通知的情况下进行。对于 RDMA 读取和写入,远 程端都不知道此操作已完成(除了准备权限和资源)。
3.1.4 RDMA 写 / RDMA 带立即数写
与 RDMA 读取类似,但数据写入远程主机。RDMA 写入操作在不通知远程主机的情况下执行。但是,RDMA 立即写入操作会将立即值 通知远程主机。
3.1.5 原子 Fetch and Add / 原子比较和交换
这些是 RDMA 操作的原子扩展。原子 Fetch and Add 操作以原子方式将指定虚拟地址处的值增加指定量。增加之前的值将返回给 调用者。原子比较和交换将以原子方式将指定虚拟地址处的值与指定值进行比较,如果它们相等,则将指定值存储在该地址处。