RDMA介绍

RDMA全称是Remote Direct Memory Access,即远程直接内存访问,是一种高性能网络通信技术,可以使计算机直接访问远端计算机的内存,而无需在本地和远程计算机之间进行数据复制。

相比于传统的网络通信方式,RDMA技术具有更低的延迟,更高的带宽和更低的CPU使用率。

目前支持RDMA的网络协议主要有:

  1. IB网络,是最早支持RDMA的协议,但是与以太网不兼容,需要专门的IB网卡和IB交换机;
  2. RoCE:RDMA over Ethernet,基于以太网的RDMA实现,可以直接在以太网中访问远端内存,包括两个版本:RoCE v1和RoCE v2,RoCE v1是链路层协议,可以在同一个广播域中的两台主机间通信,RoCE v2是网络层协议,可以通过路由组网
  3. iWARP:RDMA over TCP,通过TCP实现RDMA,需要网卡支持iWARP。
### RDMA协议的可靠性服务特性 #### 特点 RDMA(远程直接内存访问)提供了一种高效的数据传输机制,其核心优势在于能够绕过传统操作系统内核路径实现数据交换。这种设计不仅提高了带宽利用率并降低了延迟[^4],还确保了高度可靠的通信质量。 对于可靠性方面,RDMA通过多种手段保障消息传递的安全性和准确性: - **连接管理**:建立稳定持久的会话通道用于两端节点间的信息交互。 - **错误检测与恢复**:利用序列号确认机制以及超时重传策略处理可能出现的数据包丢失情况。 - **流量控制**:防止拥塞发生的同时维持合理的吞吐量水平;采用信用制(credit-based flow control),即接收方告知发送方可接受的最大未完成请求数量来调节速率。 #### 实现方式 具体来说,在实际部署中通常借助InfiniBand或RoCE(RDMA over Converged Ethernet)v2这样的底层物理链路标准支持上述功能[^2]。其中, - InfiniBand天生具备完善的可靠传输能力; - 而针对以太网环境下的RoCEv2,则依赖TCP/IP之上的UDP来进行无连接但有序列化的报文投递,并结合DCQCN(Data Center Quantized Congestion Notification)算法优化拥塞状况下表现。 此外,RDMAP层作为高层抽象部分负责读/写操作的具体实施过程,同时也承担着维护事务一致性的重要职责[^1]。当遇到异常情形时,该层次可以触发相应的补偿措施,比如回滚已完成的部分动作直至恢复正常状态为止。 ```python def rdma_reliable_send(data, dest_addr): try: # 建立安全稳定的连接 conn = establish_connection(dest_addr) # 发送带有校验信息的数据帧 send_frame(conn, data_with_checksum(data)) # 接收ACK确认信号 ack = receive_acknowledgement(conn) if not validate_ack(ack): raise Exception('Invalid ACK') except Exception as e: handle_exception(e) retry_or_abort() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aolitianya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值