
InfiniBand 协议主干教程面向 TCP/IP 资深读者目录引言InfiniBand 不是更快的以太网物理层Lane、Width 与编码链路层无丢包、信用流控与虚拟通道网络层集中式控制与 LID 路由传输层Queue Pairs、Verbs 与 RDMA上层协议与应用与 TCP/IP 的对比总结附录关键术语速查1. 引言如果你已经熟悉 TCP/IP那么理解 InfiniBand 的最佳方式不是把它当作更快的以太网而是把它当作一个从底层重新设计的高性能 I/O 通道架构。InfiniBand 诞生于 1999 年由多个竞争性的 RDMA 提案合并而成根植于 Virtual Interface Architecture (VIA) 的理念。与 TCP/IP 的分层哲学不同InfiniBand 的核心设计目标只有一个让一台机器的内存直接访问另一台机器的内存同时绕过操作系统内核。这带来了三个关键差异特性TCP/IP (以太网)InfiniBand控制平面分布式 (OSPF/BGP/ARP/STP)集中式 (Subnet Manager)流控机制端到端丢包重传 (TCP)逐链路信用流控 (CBFC)数据平面内核处理 用户态拷贝用户态直接投递 (Kernel Bypass)核心抽象Socket (字节流)Queue Pair (消息/内存语义)2. 物理层2.1 链路宽度与速率InfiniBand 的物理层使用串行比特流通过Lane差分对组合来扩展带宽链路宽度差分对数 (TxRx)常见应用1X1 对板级互连4X4 对标准端口 (QSFP28/QSFP56)12X12 对机框背板每一代的单 Lane 速率演进如下代际单 Lane 速率4X 聚合带宽编码方式典型连接器SDR2.5 Gb/s10 Gb/s8b/10bCX4DDR5 Gb/s20 Gb/s8b/10bQSFP-likeQDR10 Gb/s40 Gb/s8b/10bQSFPFDR14 Gb/s56 Gb/s64b/66bQSFPEDR25 Gb/s100 Gb/s64b/66bQSFP28HDR50 Gb/s200 Gb/s64b/66bQSFP56NDR100 Gb/s400 Gb/sPAM4 FECOSFP / QSFP112XDR100 Gb/s800 Gb/s (8X)PAM4 FECOSFPGDR200 Gb/s1.6 Tb/s (8X)PAM4 FECOSFP-XD / CPO关键区别与以太网自动协商不同InfiniBand 的代际兼容性需要连接器、固件和硬件资格认证三者匹配。不能简单地将 NDR HCA 插入 HDR 交换机并期望自动降级。3. 链路层3.1 信用流控 (Credit-Based Flow Control, CBFC)这是 InfiniBand 与 TCP/IP 最根本的区别之一。TCP 的流控是端到端的发送方根据 ACK 调整窗口丢包后重传。InfiniBand 的流控是逐链路的核心机制接收方为每个 Virtual Lane (VL) 维护接收缓冲区以64 字节块为单位向发送方授予信用 (Credit)发送方维护两个计数器FCTBS(Flow Control Total Blocks Sent)已发送的总块数FCCL(Flow Control Credit Limit)接收方授权的最大发送块数发送条件FCTBS PacketSize ≤ FCCL恢复机制接收方定期将FCCL通过反向 Credit Packet 发送给发送方Credit Packet 中同时携带FCTBS发送方视角接收方用它校正自己的ABR(Adjusted Blocks Received)防止因丢包导致计数器漂移最大信用数2048 个块 128 KB 接收缓冲区结果InfiniBand 网络在正常情况下不会丢包因为发送方永远不会溢出接收缓冲区。这与以太网尽力而为、丢包重传的哲学截然相反。3.2 虚拟通道 (Virtual Lanes, VL)一条物理链路可逻辑划分为最多16 个 Virtual Lanes其中 VL15 保留给管理流量不参与流控。每个 VL 拥有独立的收发缓冲区和独立的信用流控。与 TCP/IP 的类比类似于以太网的802.1Q VLAN 802.1p 优先级但 InfiniBand 的 VL 是硬件原生的每个 VL 有独立的缓冲和流控资源不存在以太网中高优先级流量被低优先级流量头阻塞 (Head-of-Line Blocking) 的问题服务等级 (Service Level, SL)每个数据包在 LRH 中携带一个 4-bit SL 字段0-15每个交换机端口维护SL2VL 映射表根据输入端口、输出端口和 SL 值决定该包使用哪个 VL每个 VL 可配置为高优先级或低优先级通过双优先级加权轮询 (WRR)仲裁器调度应用请求 SL → 交换机查 SL2VL 表 → 映射到 VL → VL 仲裁器调度 → 物理链路发送3.3 报文格式InfiniBand 的报文由 HCA 硬件自动分段/重组应用层可提交最大2 GB的消息被切分为 MTU 大小256B ~ 4KB的包| LRH | [GRH] | BTH | [ExTH] | [Payload] | ICRC | VCRC |字段全称作用对应 OSI 层LRHLocal Route Header源/目的 LID、SL、VL、包长度链路层GRHGlobal Route Header源/目的 GID、Traffic Class、Hop Limit网络层跨子网BTHBase Transport HeaderQP 号、操作码、序列号、PSN传输层ExTHExtended Transport HeaderRDMA 地址/长度、原子操作参数等传输层ICRCInvariant CRC端到端校验覆盖不随跳变化的字段传输层VCRCVariant CRC逐跳校验覆盖可能变化的字段链路层注意在同一子网内报文只有 LRH跨子网时才附加 GRH。这与 IP 报文始终携带 IP 头不同。4. 网络层4.1 子网与地址体系InfiniBand 网络被划分为子网 (Subnet)由 InfiniBand 路由器连接地址类型位数作用类比 TCP/IPLID(Local ID)16-bit子网内唯一由 SM 分配类似 MAC 地址但由集中管理器分配GID(Global ID)128-bit子网间唯一基于 GUID类似 IPv6 地址GUID64-bit硬件出厂固定全球唯一类似 MAC 地址的原始形态4.2 Subnet Manager (SM)集中式控制平面这是 InfiniBand 最反直觉的设计——整个子网由一个中央 Subnet Manager 控制。没有 SM端口永远停留在 “Initializing” 状态无法通信。SM 的核心职责拓扑发现通过 SMP (Subnet Management Packet) 遍历所有交换机、HCA、路由器LID 分配为每个活动端口分配唯一 LID路由计算为每个交换机生成LFT (Linear Forwarding Table)将 DLID 映射到输出端口QoS 配置设置 SL2VL 映射、VL 仲裁权重分区管理配置 P_Key 表实现类似 VLAN 的隔离健康监控轻量扫描约 5 秒周期检测拓扑变化SM 的部署方式OpenSM开源主机端 SM支持多种路由算法MinHop、Up/Down、Fat-Tree、LASH、DOR 等交换机嵌入式 SM适合小型集群16 节点功能有限NVIDIA UFM企业级方案支持自适应路由、SHARP、遥测高可用必须运行主备 SM通过优先级选举机制高优先级者为主实现故障切换。4.3 路由算法OpenSM 支持多种路由引擎选择依据是拓扑结构算法适用场景特点MinHop通用默认算法最短路径负载均衡Up/Down (UPDN)非纯 Fat-Tree存在环路防止信用环路死锁Fat-Tree对称 Fat-Tree优化 “shift” 通信模式支持非整数 CBBLASH任意拓扑分层最短路径使用 SL/VL 避免死锁DOR超立方体/网格基于维度排序避免死锁DFSSSP大规模任意拓扑死锁无关最短路径全局负载均衡关键概念InfiniBand 的死锁不是 TCP 那种超时重传而是信用环路死锁(Credit Loop Deadlock)——由于 CBFC 的依赖关系形成循环导致所有相关链路永久停滞。路由算法必须保证无死锁。4.4 分区 (Partition) 与 P_KeyP_Key (Partition Key) 是 InfiniBand 的隔离机制功能类似 VLAN Tag16-bit 值高 15 位为分区标识符最低位为成员类型位0受限成员1完全成员完全成员可与同分区的完全成员和受限成员通信受限成员只能与完全成员通信交换机检查每个数据包的 P_Key不匹配则丢弃多播组也受 P_Key 保护节点必须显式加入且 SM 授权后才能接收多播流量5. 传输层5.1 Queue Pair (QP)通信端点InfiniBand 的传输层不暴露 Socket API而是使用Queue Pair (QP)作为核心抽象┌─────────────────────────────────────┐ │ Application │ │ (通过 Verbs API 直接访问 HCA) │ └─────────────────────────────────────┘ │ ┌─────────────┼─────────────┐ ▼ ▼ ▼ ┌───────┐ ┌───────┐ ┌───────┐ │ Send │ │Receive│ │Completion│ │ Queue │ │ Queue │ │ Queue │ │ (SQ) │ │ (RQ) │ │ (CQ) │ └───────┘ └───────┘ └───────┘ │ │ │ └─────────────┴─────────────┘ │ ┌────────┴────────┐ ▼ ▼ ┌─────────┐ ┌─────────┐ │ HCA │◄────►│ HCA │ │ (本地) │ │ (远程) │ └─────────┘ └─────────┘QP SQ RQ每个 QP 包含一个发送队列和一个接收队列CQ (Completion Queue)HCA 在完成操作后将 CQE (Completion Queue Entry) 写入 CQ应用通过轮询或事件通知获取完成状态WR (Work Request)应用提交到队列的工作请求HCA 硬件按 FIFO 消费WQE (Work Queue Entry)WR 在队列中的具体条目5.2 传输服务类型类型连接方式可靠性支持 RDMA适用场景RC(Reliable Connected)面向连接可靠、有序是默认选择绝大多数应用UD(Unreliable Datagram)无连接不可靠、无序否多播、需要连接数极多的场景UC(Unreliable Connected)面向连接不可靠是容错可容忍的 RDMARD(Reliable Datagram)无一对一连接可靠是可选较少使用DC(Dynamically Connected)动态创建/销毁可靠是Mellanox 扩展接近 UD 的内存开销 RC 的语义5.3 Verbs操作语义InfiniBand 规范定义了一组语义操作 (Verbs)描述应用如何请求传输服务。实际 API 由 OpenFabrics Alliance 实现如libibverbs。核心 Verbs 操作操作描述远程 CPU 参与Send发送方指定本地数据源数据到达远程 RQ是远程需 post receiveReceive接收方在 RQ 中预备缓冲区匹配到来的 Send是需预先 postRDMA Write发送方指定本地源 远程目的地址直接写入否RDMA Read发送方指定远程源 本地目的地址主动读取否Atomic Fetch-and-Add远程原子读-修改-写返回旧值否Atomic Compare-and-Swap远程原子比较-交换返回旧值否内存注册使用 RDMA 前必须通过ibv_reg_mr()注册内存区域 (Memory Region, MR)注册后获得L_Key本地访问和R_Key远程访问远程节点需要知道R_Key 虚拟地址 长度才能执行 RDMA 操作内存注册通常在初始化阶段完成因为 RDMA Read/Write 可在远程无感知的情况下随时发生QP 状态机RESET → INIT → RTR (Ready To Receive) → RTS (Ready To Send)RTR 状态可处理 Receive WRRTS 状态可处理 Send 和 RDMA WR5.4 RDMA 的核心优势Kernel Bypass应用从用户态直接提交 WR 到 HCA不经过系统调用Zero Copy数据直接从用户缓冲区到 HCA无需内核缓冲区中转CPU OffloadHCA 硬件处理分段、重组、确认、重传、排序One-Sided OperationRDMA Read/Write 和 Atomic 操作不需要远程 CPU 参与延迟对比InfiniBand 小消息延迟约0.5-1.5 μs而 TCP/IP over Ethernet 通常在10-50 μs量级。5.5 原子操作 (Atomic Operations)InfiniBand 支持两种 64-bit 原子操作用于实现分布式锁、计数器等同步原语Fetch-and-Add (FAA)原子读取远程地址值加上指定增量写回返回旧值Compare-and-Swap (CAS)比较远程地址值与期望值相等则交换返回旧值原子性保证范围IBV_ATOMIC_HCA仅同一 HCA 上的 QP 之间原子IBV_ATOMIC_GLOB跨 HCA、跨 CPU 全局原子需要硬件支持注意RDMA 原子操作与本地 CPU 原子操作之间的原子性没有保证除非使用IBV_ATOMIC_GLOB级别。6. 上层协议InfiniBand 的传输层之上可以承载多种 ULP (Upper Layer Protocol)协议功能特点MPI消息传递接口直接基于 Verbs 实现用于 HPCNCCLNVIDIA 集合通信库专为 GPU 优化支持 SHARP 网内聚合IPoIBIP over InfiniBand在 IB 上封装 IP 报文兼容现有 TCP/IP 应用但无 RDMA 优势SRPSCSI RDMA Protocol块存储协议绕过 CPU 直接传输NVMe-oFNVMe over Fabrics基于 RDMA 的 NVMe 扩展SDPSockets Direct Protocol将 Socket 语义映射到 Verbs已较少使用SHARP (Scalable Hierarchical Aggregation and Reduction Protocol)NVIDIA Quantum 系列交换机支持在交换机硅片内执行 all-reduce 聚合将梯度求和从 O(log N) 轮次降低到 O(1)这是 InfiniBand 在 AI 训练场景中最具杀伤力的特性之一RoCEv2 无等价功能7. 与 TCP/IP 的对比总结维度TCP/IP (以太网)InfiniBand架构哲学通用、分布式、尽力而为专用、集中式、确定性控制平面协议分布在各节点 (ARP/OSPF/BGP/STP)单一 Subnet Manager 集中管理地址分配DHCP / 静态配置 / 自动协商SM 统一分配 LID路由计算各路由器独立计算SM 预计算并下发到交换机 LFT流控机制TCP 端到端拥塞控制 丢包重传逐链路 CBFC无丢包QoS 实现802.1p DSCP PFC/ECN (需调优)SL VL WRR (硬件原生)隔离机制VLAN (802.1Q)P_Key (硬件检查)应用接口Socket (字节流)Verbs / QP (消息/内存语义)数据拷贝用户态 ↔ 内核态 ↔ NIC用户态 ↔ NIC (Zero Copy)CPU 参与高中断、协议处理低HCA 硬件卸载延迟10-50 μs0.5-1.5 μs多播广播域内任意监听必须显式加入SM 授权扩展性理论上无限单个子网最多 48K 节点8. 附录关键术语速查术语全称说明HCAHost Channel Adapter主机通道适配器InfiniBand 网卡TCATarget Channel Adapter目标通道适配器存储/IO 设备端QPQueue Pair发送队列 接收队列 通信端点CQCompletion Queue完成队列通知操作完成WR/WQEWork Request / Entry工作请求/条目CQECompletion Queue Entry完成队列条目PDProtection Domain保护域绑定 QP 与 MR 的权限范围MRMemory Region注册的内存区域含 L_Key / R_KeyLIDLocal Identifier子网内 16-bit 地址GIDGlobal Identifier128-bit 全局地址类似 IPv6GUIDGlobal Unique Identifier64-bit 硬件唯一标识SMSubnet Manager子网管理器集中控制平面SMASubnet Management Agent每个 IB 设备上的 SM 代理SMPSubnet Management Packet子网管理报文MADManagement Datagram管理数据报SLService Level服务等级0-15VLVirtual Lane虚拟通道0-15VL15 管理专用P_KeyPartition Key分区密钥类似 VLANLFTLinear Forwarding Table交换机线性转发表CBFCCredit-Based Flow Control信用流控PSNPacket Sequence Number包序列号用于可靠传输SHARPScalable Hierarchical Aggregation and Reduction Protocol网内聚合协议参考阅读InfiniBand Architecture Specification Vol.1 (IBTA 官方规范)NVIDIA InfiniBand Whitepaper: Introduction to InfiniBandOpenSM 手册 (man opensm)RDMA Aware Network Programming User Manual (NVIDIA)总结InfiniBand 不是 TCP/IP 的替代品而是一个为内存语义通信重新设计的 I/O 架构。它用集中式控制换取确定性用硬件卸载换取低延迟用信用流控换取无丢包——这些设计选择使其在 HPC 和 AI 训练场景中无可替代但也意味着它无法像以太网那样即插即用。理解这一点是掌握 InfiniBand 的关键。