RDMA的3种Queue Pair类型

本文详细介绍了RDMA中的三种Queue Pair(QP)类型:可靠的连接(RC)、不可靠的连接(UC)和不可靠的数据报(UD),包括各自的特点、应用场景及消息传输机制。RC QP提供可靠的消息传递,适合需要网络保障的场景;UC QP适用于不要求网络可靠性的场合,允许数据包丢失;而UD QP则用于高带宽和多播需求,不保证消息顺序或可靠性。
摘要由CSDN通过智能技术生成

本文翻译自英文博客,原文地址:https://www.rdmamojo.com/2013/06/01/which-queue-pair-type-to-use/

 

在编写RDMA应用程序时(就像在套接字上编写应用程序时一样),应该决定使用哪种QP类型。

在这篇文章中,我将详细描述每种传输类型的特征。

在RDMA中,有三种QP类型。它们可以表示为: XY

     X可以是:

     可靠的(Reliable): 有一个保证,即消息最多被传递一次,有顺序,没有损坏。

     不可靠(Unreliable): 不能保证消息将被传递,也不能保证包的顺序。

     

     在RDMA中,每个包都有一个CRC,被破坏的包被丢弃(对于任何传输类型)。QP传输类型的可靠性是指整个消息的可靠性。

     Y可以是:

     连接(Connected): 一个QP只与一个QP 发生send/receive操作

     无连接(Unconnected):一个QP可与任意个QP发生send/receive操作

在RDMA中使用了以下机制:

* CRC: CRC字段,用于验证包是否沿路径损坏。

* PSN: 数据包序列号确保订单接收到数据包。这有助于检测丢失的包和包复制。

* ack: (仅在可靠的连接(RC)中)只有在应答方成功写入消息后,才会将ack包发送回请求方。如果请求者没有接收到ack,它将根据QP的属性重新发送消息。如果QP中没有任何ack(或nack),它将报告有一个错误(重试超出)。如果在响应端(保护、资源等)有任何类型的错误,一个ack将被发送到请求者,它将报告有一个错误。

 

Reliable Connected (RC) QP

一个RC QP被可靠地连接到一个RC QP上(即发送和接收消息)。可以保证消息从请求者最多一次传递到响应者,且顺序正确且没有损坏。支持的最大消息大小为2GB(这个值可能更低,取决于支持的RDMA设备属性)。RC QP支持send操作(w/o immediate)、RDMA writ操作(w/o immediate)、RDMA read操作和atomic操作(取决于原子操作中的RDMA设备支持级别)。
如果消息大小大于MTU,则它在发送数据的端被分割,在接收端被重新组装。
请求者一旦接收到来自响应方将消息读/写进内存的ack,就认为消息传递完成了。
接收端在消息被读/写其(本地)内存后,认为一个消息操作完成。

Unreliable Connected (UC) QP

一个UC QP正在以不可靠的方式连接到一个UC QP上(即发送和接收消息)。不能保证消息将被另一方接收:损坏的或序列不一致的包将被丢弃。如果一个信息包被丢弃,那么它所属的整个消息都将被丢弃。在这种情况下,接收端不会停止,而是继续接收传入的数据包。包的顺序没有任何保证。支持的最大消息大小为2GB(这个值可能更低,取决于支持的RDMA设备属性)。RC QP支持send操作(w/o即时)和RDMA write操作(w/o即时)。
如果消息大小大于MTU,则它在发送数据的端被分割,在接收端被重新组装。
请求者认为,在将所有消息发送到链路之后,消息操作就完成了。
接收端在消息被读/写其(本地)内存后,认为一个消息操作完成。

Unreliable Datagram (UD) QP

一个QP可以不可靠地以单播(一对一)或多播(一对多)的方式向任何其他UD QP发送和接收消息。不能保证消息将被另一方接收:损坏的或顺序不一致的包将被丢弃。包的顺序没有任何保证。支持的最大消息大小是最大MTU。UD QP只支持send操作。
请求者认为,在将所有消息发送到链路之后,消息操作就完成了。
接收端在消息被读/写其(本地)内存后,认为一个消息操作完成。

 

选择合适的QP类型

选择正确的QP类型对于应用的正确性(correction)和可拓展性(scalability)至关重要。

在下列情况下,应选择RC QP:
           网络的可靠性是需要的
           网络带宽不高或集群很大,但并非所有节点都向同一节点发送流量(一个受害者)
RC QP的几种用途是:RDMA上的FTP或RDMA上的文件系统。

在下列情况下,应选择UC QP:
                不需要网络保证可靠性(例如,可靠性根本不重要,或者由应用程序处理)
                网络带宽不高或集群很大,但并非所有节点都向同一节点发送流量(一个受害者)
                大规模数据(比MTU路径更大)需要传输
UC QP的一个用途是:通过RDMA传输视频。

在下列情况下,应选择UD QP:
                不需要网络保证可靠性(例如,可靠性根本不重要,或者由应用程序处理)
                网络带宽很高,所有节点和每个节点都向网络中的任何其他节点发送消息。UD是解决可拓展性问题的最佳解决方案之一。
                 需要多播消息
UD QP的一个用途是:通过RDMA语音。

总结

 

第1章 RDMA背景简介 ............................................. 5 第2章 哪些网络协议支持RDMA ..................................... 8 2.1 InfiniBand(IB)........................................... 8 2.2 RDMA过融合以太网(RoCE)................................... 8 2.3 互联网广域RDMA协议(iWARP)................................ 8 第3章 RDMA技术优势 ............................................. 9 第4章 RDMA有哪些不同实现 ...................................... 10 第5章 RDMA有哪些标准组织 ...................................... 14 第6章 应用和RNIC传输接口层 .................................... 18 6.1 内存Verbs(Memory Verbs)............................... 19 6.2 消息Verbs(Messaging Verbs)............................ 20 第7章 RDMA传输分类方式 ........................................ 20 7.1 RDMA原语................................................ 21 7.2 RDMA 队列对(QP)....................................... 23 7.3 RDMA完成事件............................................ 23 7.4 RDMA传输类型............................................ 24 7.5 RDMA双边操作解析........................................ 26 7.6 RDMA单边操作解析........................................ 27 7.7 RDMA技术简单总结........................................ 27 第8章 InfiniBand技术和协议架构分析 ............................ 29 8.1 InfiniBand技术的发展.................................... 29 8.2 InfiniBand技术的优势.................................... 30 8.3 InfiniBand基本概念...................................... 32 8.4 InfiniBand协议简介...................................... 33 8.4.1 物理层 ............................................ 34 8.4.2 链路层 ............................................ 34 8.4.3 网络层 ............................................ 34 8.4.4 传输层 ............................................ 35 8.4.5 上层协议 .......................................... 35 8.5 IB应用场景.............................................. 36 第9章 InfiniBand主流厂商和产品分析 ............................ 37 9.1 InfiniBand网络和拓扑.................................... 38 9.2 软件协议栈OFED.......................................... 42 9.3 InfiniBand网络管理...................................... 43 9.4 并行计算集群能力........................................ 44 9.5 基于socket网络应用能力.................................. 45 9.6 存储支持能力............................................ 45 9.7 Mellanox产品介绍........................................ 46 9.8 Infiniband交换机........................................ 48 9.9 InfiniBand适配器........................................ 51 9.10 Infiniband路由器和网关设备............................. 52 9.11 Infiniband线缆和收发器................................. 53 9.12 InfiniBand主要构件总结................................. 54 9.13 InfiniBand对现有应用的支持和ULPs支持................... 55 第10章 RDMA over TCP(iWARP)协议和工作原理 ..................... 56 10.1 RDMA相关简介........................................... 57 10.2 RDMA工作原理........................................... 59 10.3 RDMA 操作类型.......................................... 61 10.4 RDMA over TCP详解...................................... 61 10.5 RDMA标准组织............................................ 7 第11章 RoCE(RDMA over Converged Ethernet)原理 ............... 65 第12章 不同RDMA技术的比较 ..................................... 67 12.1 IB和TCP、Ethernet比较.................................. 69 12.2 RoCE和InfiniBand比较................................... 70 12.3 RoCE和IB协议的技术区别................................. 71 12.4 RoCE和iWARP的区别...................................... 71 第13章 Intel Omni-Path和InfiniBand对比分析 .................... 72 13.1 Intel True Scale Fabric介绍............................ 73 13.2 Intel True Scale InfiniBand产品........................ 74 13.3 Intel Omni-Path产品.................................... 76 第14章 RDMA关键技术延伸 ....................................... 80 14.1 RDMA指令的选择......................................... 80 14.2 慎用atomic类指令....................................... 81 14.3 减少交互次数........................................... 82 14.3.1 Wr 聚合 .......................................... 82 14.3.2 SGE 聚合 ......................................... 82 14.3.3 使用imm数据 ...................................... 83 14.3.4 使用inline数据 ................................... 83 14.3.5 CQE中使用inline数据 .............................. 83 14.3.6 WC聚合 ........................................... 84 14.4 运行模式选择........................................... 84 14.4.1 连接的模式 ....................................... 84 14.4.2 运行模式 ......................................... 85 14.5 性能与并发............................................. 86 14.6 避免CPU缓存抖动........................................ 87 14.7 避免芯片内部的缓存Miss................................. 87 14.8 时延的隐藏............................................. 88 14.8.1 利用Prefetch预取指令 ............................. 88 14.8.2 异步交互操作优先 ................................. 88 14.9 RDMA性能分析........................................... 89
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值