本文翻译自英文博客,原文地址: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,它将根