首页 > 解决方案 > 如何让服务器通过 RDMA 写入客户端设备的内存区域

问题描述

正如标题所示,我正在尝试将数据发送到客户端(通过 RDMA),而不是客户端发送到服务器。我可以在该主题上找到的所有示例都是服务器的客户端。有什么我可以参考的资源/参考吗?

标签: rdma

解决方案


将 libibverbs 库用于 RDMA 动词时,在大多数情况下,没有客户端和服务器的概念。使用带外通道(TCP 或 RDMA CM)在两个队列对之间建立连接,然后使用交换的连接信息配置 QP。建立连接后,如果 QP 配置允许,双方都可以使用 RDMA 单向操作。

此类应用程序的一个示例是perftest,它与 TCP(或 RDMA CM)交换连接信息,然后测量 RDMA 单面和双面操作的性能。

对于 librdmacm 和 rsockets,有一个服务器(监听 ID 或套接字)和一个客户端的概念。尽管如此,在建立连接后,双方都可以使用 RDMA。您可以在 rdma-core 存储库中找到两者的示例。例如,rping使用 RDMA CM 并调用从服务器到客户端的 RDMA 读取和写入,而riostream使用 rsockets 并从客户端和服务器调用 RDMA 写入。


推荐阅读