NVME-oF IP 设计7 :设计扫盲5

QP、WR、CQ、MR 等核心概念

RDMA 通信模型中涉及多个核心组件,其中包括队列对(QP)、工作请求(WR)、完成队列(CQ)以及内存区域(Memory Region,MR)等概念,这些组件共同构成了RDMA数据传输机制的基础。

(1)Queue Pair(QP)

QP是RDMA通信的核心结构,由发送队列(SQ)和接收队列(RQ)组成。SQ用于存放待发送的工作请求,而RQ用于存放接收缓冲区描述信息。RDMA通信双方通过QP实现数据交换,每个QP对应一个独立的通信连接。QP在初始化过程中需要经过多个状态转换,例如RESET、INIT、RTR(Ready to Receive)以及RTS(Ready to Send)等状态,当QP进入RTS状态后即可开始数据传输。

(2)Work Request(WR)

WR是RDMA操作的基本执行单元,用于描述一次数据传输请求。每个WR中包含操作类型、数据地址、数据长度以及远端内存地址等信息。根据操作类型的不同,WR可以分为SEND、RECV、READ和WRITE等多种类型。应用程序通过向SQ或RQ提交WR来发起数据传输操作。

(3)Completion Queue(CQ)

CQ用于存储通信操作完成后的结果。当RNIC执行完一个WR后,会在CQ中生成一个完成条目(Completion Queue Entry,CQE)。CQE中包含WR的执行状态、数据长度以及标识信息。应用程序可以通过轮询CQ或等待中断通知来获取CQE,从而判断对应的WR是否执行成功。

(4)Memory Region(MR)

MR是RDMA可访问的内存区域。在RDMA通信过程中,应用程序需要将内存注册为MR,RNIC才能够访问该内存空间。内存注册过程会生成本地密钥(Local Key,LKey)和远程密钥(Remote Key,RKey),其中LKey用于本地访问权限控制,而RKey用于远程节点访问权限验证。通过这种机制,RDMA可以在保证安全性的前提下实现远程内存访问。

上述组件共同构成了RDMA的通信基础,使RNIC能够独立完成数据传输操作。

B站已给出之前的相关性能演示视频,如想进一步了解,请搜索B站用户:专注与守望

https://www.bilibili.com/video/BV1f6mbBeEiH/?spm_id_from=333.337.search-card.all.click\&vd_source=c355545d27a44fe96188b7caefeda6e7

相关推荐
Tel199253080046 小时前
温度湿度信号转WiFi/MQTT/Modbus TCP采集模块 无线传输
网络·网络协议·tcp/ip·工业自动化·工控设备
lazy H9 小时前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
低慢小uav10 小时前
(已解决)Zynq芯片lwip协议栈,使用tcp作为服务器Service,接收大量数据时,长度接收正常,接收对数据校验,校验和异常分析
网络协议·tcp/ip·fpga开发
垆边人似月.10 小时前
RDMA项目踩坑(一):为什么最后一块数据必须使用实际长度?
网络·c/c++·rdma·高性能io·tcp与rdma
|_⊙13 小时前
应用层协议HTTP与HTTPS
网络·网络协议·http
垆边人似月.14 小时前
RDMA 文件传输踩坑(二):为什么 `sleep()` 不能保证接收端准备好了?
linux·服务器·网络·rdma
byte轻骑兵15 小时前
【PBAP】规范精讲[9]: 蓝牙PBAP的互联互通法则——GOEP互操作性要求深度解析
网络协议·人机交互·蓝牙协议·pbap
路由侠内网穿透.15 小时前
本地部署开源 WSGI HTTP 服务器 Gunicorn 并实现外部访问
运维·服务器·网络·网络协议·http·开源
箓维15 小时前
TCP Socket的基础实现
网络·网络协议·tcp/ip
川石课堂软件测试1 天前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http