news 2026/10/6 3:05:07

InfiniBand是什么?与以太网、RDMA、AI集群网络的本质区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
InfiniBand是什么?与以太网、RDMA、AI集群网络的本质区别

第一次听到 InfiniBand(简称 IB)这个词的人,十有八九会被它的中文直译名“无限带宽”唬住。我当年第一次在机房里见到 IB 实机,也下意识觉得这是更贵、更快的“万兆以太网”。等到真正把 IB 链路拉起来、跑完一轮 MPI 带宽测试,才意识到这种想象错得有多离谱——InfiniBand 的“Infini”确实来自 infinite,但它并不是要取代以太网去做通用网络,而是专门给高性能计算和 AI 集群准备的一套“算力互联”协议栈。换句话说,一台普通服务器上网用不到它,但一台 GPU 服务器想高效和其他 GPU 对话,IB 可能是最省心的选择。

下面我会用尽量通俗的话解释 IB 到底是什么,它的协议和硬件是怎么配合的,以及它和以太网之间最关键的几个区别。如果你正在面临 HPC 集群、AI 训练网络或者分布式存储组网的选型,可以参考我这几年来回折腾后积累的实际判断。

1. 为什么会有 IB:算力互联需要的不只是一张“更快的网卡”

1.1 以太网解决的是“连通”,IB 解决的是“效率”

聊 IB 之前,得先想清楚服务器之间的流量其实分成两类。一类是通用业务流量:网页请求、数据库查询、容器通信,特点是路径乱、规模大、连接多,目的只是“连得上、差不多不丢包就行”。另一类是算力集群里的流量:MPI 通信、GPU 分布式训练的参数梯度交换、分布式存储的数据回写。这类流量有个致命特点:单个消息可能很小,但数量极大,而且对延迟极其敏感。一个 8 字节的同步消息如果在网络里多磨蹭 1 微秒,外面看起来可能只是慢了一点点,放到上万节点并行计算里,就是整个任务被卡在原地。

以太网从诞生第一天起,就不是为第二种流量设计的。它要兼容打印机、路由器、服务器、云平台,甚至各种嵌入式终端。为了让连接足够“通用”,以太网的协议栈必须一层一层往上搭,每层都留足余地。这种设计换来了超强的生态适配性,也换来了协议开销和不确定的时延波动。你可以在以太网上把丢包率压得很低,但无法天然保证每次转发都像钟表一样稳定。

InfiniBand 走的是另一条路。它最初是几家大厂在 1999 年前后为了替代服务器内部并行总线而定义的互联规范,后来逐渐从机箱内部延伸到机柜与数据中心。设计目标从头到尾只有一句话:让计算节点之间的数据传输又稳、又快、又少占 CPU。它不是“另一种局域网”,更像是一条为计算设备专门开辟的专用铁路。

1.2 IB 的“无限带宽”名不副实,但点破了它的独特基因

很多人把 IB 幻想成“无限带宽”,实际恰恰相反,IB 是有边界的。它强调的是有限物理区域内、数量可控设备之间的确定性传输。翻译成大白话就是:我不追求谁都能接进来,我只负责把已经规划好的服务器集群连接做到极致。

这个基因决定了 IB 和以太网的所有差异。以太网的广播域、VLAN、路由协议、安全策略都是后加的复杂机制;IB 的寻址、路由、流控、可靠性则是一开始就在硬件里强制设计好的。用交通工具打比方,以太网是公路上跑的卡车,哪儿都能去,但路上有红绿灯会堵车;IB 是厂区里的专用轨道,轨道只能通到特定车间,一旦通起来,每一班车都按时刻表跑。理解了这种基因差异,后面看协议细节就不会乱。

2. IB 的底层运转方式,和以太网完全不同的几个关键点

2.1 物理链路:Lane 决定速率,代际决定上限

IB 物理层和以太网最大的共同点,是都用了 SerDes 差分信号把数据跑在铜缆或光纤上。但 IB 对“通道”的处理方式更直白:一条 IB 物理链路内部可以捆绑多个 lane,常见的是 4 个 lane(称为 4X),每个 lane 有固定速率。链路总带宽等于 lane 数乘单 lane 速率。

这也解释了为什么 IB 的速率演进总是跳跃式的。从最早的 SDR 到后来的 DDR、QDR、FDR、EDR、HDR、NDR,每一代基本就是把单链路速率翻一倍或更新一次编码方式。

IB 代际单链路速率与 4X 链路总带宽(约)大概出现的年代
SDR2.5 Gbps/lane,约 10 Gbps2001 年前后
DDR5 Gbps/lane,约 20 Gbps2005 年前后
QDR10 Gbps/lane,约 40 Gbps2008 年前后
FDR14.0625 Gbps/lane,约 56 Gbps2011 年前后
EDR25 Gbps/lane,约 100 Gbps2015 年前后
HDR50 Gbps/lane,约 200 Gbps2019 年前后
NDR100 Gbps/lane,约 400 Gbps2022 年前后
XDR200 Gbps/lane,约 800 Gbps2024 年之后开始铺开

这里想提醒一点:表格里的数字是链路聚合后的标称速率,实际有效载荷还要扣除前导码、校验和编码开销。但看趋势比看数字重要——IB 的单链路速率基本跟着 SerDes 工艺水平走,它并没有比以太网神秘太多,只是把整条路径上的协议裁剪得更符合高性能计算的需求。

实际接线时有个容易踩的坑:不同代际的 IB 物理规格不一定兼容。SDR/DDR/QDR 时代还能通过线缆协商降速兼容,到了 FDR/EDR/HDR 之后,模块和线缆的编码方式差距明显,插错常常导致链路起不来。所以别只看网卡是什么代际,交换机端口、光模块、线缆规格最好每次一起核对。

2.2 链路层的信用流控:从源头杜绝“塞车丢包”

以太网在二层是“发出去就不管”的设计,数据帧到了交换机如果缓冲区满了,就直接丢弃。看似简单,但在高性能场景里,任何一次拥塞丢包都需要上层协议去发现和重传,开销非常大。IB 在链路层则用了完全不同的信用流控(credit-based flow control):接收方在硬件里预先分配好缓冲区额度,然后周期性告诉发送方“我还剩多少信用可以用”,发送方只有拿到信用额度才发送数据。

这个过程很像餐厅发餐券。厨房不一次性把所有菜做好,而是根据前厅回收的空盘数量决定下一批菜能不能下锅,这样永远不会出现“菜做了一大堆、桌上腾不出位置”的情况。IB 的信用流控在硬件上实现,时延极低,而且让数据流在正常情况下不会因缓冲区溢出而丢失。注意这里说的是“不会因拥塞丢包”,链路故障导致的错包仍然会丢——这个区别很重要,后面讲误解时会再展开。

信用流控还配合了虚拟通道(Virtual Lane)机制。一条物理链路可以被划分成多个虚拟通道,比如流量控制消息走 VL0,大数据块走 VL1,互不干扰。当某条链路被大流量占满时,管理消息仍然能优先通过,避免了以太网常见的“管理请求被业务洪峰堵死”的尴尬。

2.3 子网管理器与寻址:IB 的路由是“被集中管出来的”

以太网的二层寻址靠 MAC 地址加 MAC 表,三层靠 IP 地址和路由协议,设计上是分布式完成、自发协商,没有谁统一指挥。而 IB 网络里有一个非常特殊的角色:子网管理器(Subnet Manager,SM)。这个管理器可以是软件,也可以固化在交换机里。它负责发现整个 IB 子网的拓扑,给所有节点的端口分配 LID(本地标识符),计算最优路径,然后把这些转发规则下发到各交换机的硬件转发表。

LID 可以理解成 IB 子网内部的“临时地址”。以太网交换机看到 MAC 地址还要查表学习,IB 交换机则在 SM 分配 LID 的同时就拿到的就是完整的路由信息。子网内所有数据包都会带源 LID 和目的 LID,交换机只需要精确匹配。子网之间要互通或者和外部网络互通时,才需要 IB 路由器,用 64 位的 GID 做全局寻址。如果子网没有规划好,GID 冲突、P_Key 不匹配之类的问题会让你排查到怀疑人生。

这个设计带来两个实际效果。第一,IB 拓扑的自动发现和管理能力很强,新挂上去一台交换机,SM 很快算好路径并下发,不需要像以太网那样担心二层环路、生成树阻塞、STP 收敛等问题。第二,集中式的 SM 一旦出问题,或者主备切换异常,整个子网的路径计算都会受影响。生产环境里,OpenSM 这类组件的配置不能太“裸”,至少要规划好主备节点和 Subnet 管理权限。

我在实际运维里最常用的几个 IB 诊断命令就是:

ibstat # 查看网卡端口状态、链路速率 ibswitches # 查看子网内的交换机列表 ibdiagnet # 做完整的连通性和健康检查

ibstat 能快速判断端口是不是 Active、链路速率是否符合预期;ibdiagnet 跑一遍能发现线缆、供电、LID 分配的问题。新手第一次接触 IB,不要一上来就去抓包分析,先拿这些命令把物理层和链路层的状态确认完,后面的事情会简单一大截。

另外,IB 的 P_Key 分区机制和以太网 VLAN 有相似之处。P_Key 是用来隔离不同业务流量的,很多第一次接入 IB 子网的人发现“明明链路是 UP 的,怎么对端不通”,十次里有八次是 P_Key 没配对。排查 IB 连通性问题时,先看链路速率,再看 SM 里有没有分到 LID,最后看 P_Key,这个顺序基本能覆盖九成故障。

2.4 传输层的队列对与 RDMA:让网卡直接读写内存

IB 和以太网在传输层上的差异最明显。以太网上最常见的传输模型是 socket:应用通过操作系统协议栈创建 TCP 连接,数据从用户态复制到内核,再经网卡发送,接收侧则要经过中断、拷贝、通知。每一步都有 CPU 参与,时延很难压到微秒级以下。

IB 的默认语义是 RDMA(远程直接内存访问)。应用在使用 IB 之前,需要创建队列对(Queue Pair,QP),一个 QP 就是一条完整的数据收发通道。调用 verbs 接口下发工作请求(WQE),网卡拿到之后直接用硬件 DMA 把内存里的数据发出去。发送完成后,对应的完成队列(CQ)会通知应用,整个过程不需要操作系统协议栈反复处理数据包。应用还会提前注册内存区域,网卡可以直接操作这整块物理内存,实现零拷贝传输。

用 RDMA 做远程读写,就像我给你一把我家里储物柜的钥匙,让你按标签自己把文件放进指定格子。你不是把文件递到我手里,而是直接放进目标位置,我再核对一下有没有放错。这比传统方式省掉了一层又一层的“快递分发”手续。

IB 的传输服务类型分可靠连接(RC)、不可靠连接(UC)、可靠数据报(RD)、不可靠数据报(UD)等。生产环境中最常用的还是 RC,因为它提供端到端可靠性,对应到 TCP 那样的可靠传输,但整个重传、确认、顺序保证都在网卡硬件里完成,CPU 只负责发起和收完成通知。这也是为什么 IB 在数据库、分布式锁这类高频小消息场景里,优势能比普通以太网高出好几个数量级。

3. 与以太网的关键区别,我用五个维度拆开讲

3.1 算力场景里,带宽不是唯一指标

很多人第一反应是“IB 比以太网快,是因为带宽更大”。实际上单论端口速率,到了 400G 时代,以太网和 IB 都已经能做到单端口 400G 甚至 800G,物理层极限并没有差出代差。真正拉开差距的是:同样 400G 端口的吞吐,IB 网卡能把 CPU 占用率压到很低,同时把端到端时延压到微秒级以下;而普通以太网上的 TCP 流量,数据经过内核协议栈时就已经吃掉了大量 CPU 周期。所以 IB 的优势从来不是“线速更快”,而是“更少浪费”。

这种情况很像两条都是双向八车道的公路。普通公路上每辆车到了出口都要排队登记、人工检查,哪怕车道再宽也快不起来;IB 则是全程电子标签扫描,车到了自动放行,真正跑起来之后效率差距才会放大。

3.2 时延消耗在哪,决定了 IB 的体验上限

深入看时延,以太网的消耗主要在三块:网卡到达 CPU 的中断和拷贝、TCP/IP 协议栈的逐层处理、交换机队列拥塞。IB 把前两块全部搬到了硬件上,网卡直接访问应用内存,不需要内核协议栈,端到端往返时延可以做到 1 微秒上下的量级,而标准 TCP over 10GbE 通常要 10 微秒以上。注意这不是说 IB 总能在任意场景胜出,大块文件传输时 TCP 通过卸载也可以表现不错,但在海量小消息、多对多同步的典型 HPC 负载里,差距非常明显。

IB 对时延的“确定性”也体现在长尾上。普通以太网一旦出现交换机队列深度波动,某个包的延迟可能从 20 微秒直接跳到几百微秒。这种毛刺对普通业务无所谓,但对大规模并行训练是致命的。IB 通过虚拟通道和硬件级流控把抖动控制得更紧,即使网络拥塞,高优先级流量也能保持相对稳定的延迟曲线。

3.3 可靠性:无损机制的底层思路不一样

标准以太网本身不保证无损,TCP 靠重传应对丢包。无损以太网通常会打 PFC(优先级流控)来模拟不丢包,但也因此带来链头阻塞、PFC 风暴等一系列副作用,运维上非常考验功底。IB 则把无损写进了链路层信用流控和虚拟通道机制里,不需要额外配置复杂的“无损模式”,天然就没有因为拥塞导致丢包的问题。拥塞时 IB 会通过减速、流控、拥塞通知(CC)等手段让流量曲线变平滑,而不是粗暴丢包再重传。

这里要特别提醒:IB 的无损是设计出来的,不是配置出来的。评价一个网络能不能跑 RDMA 业务,看它“是否默认无损”比看“峰值带宽多少”更关键。 IB 从网卡固件到交换机队列,整条链路都按无损前提设计,而 RoCE 要靠底层网络做一堆 PFC 参数调优,这是两者运维工作量差异的最主要来源。

3.4 组网与管理模型:集中式 vs 分布式

以太网的成功很大程度来自生态和分布式协议:VLAN、STP、BGP、EVPN,任何一台交换机都能接入,标准公开且互相兼容。运维人员也好找,遇到问题网上资料多。IB 的集中式子网管理则更接近“高架单轨”:SM 掌握全局拓扑,路径统一计算,天然适合多层 Clos 网络里的最优调度。代价是 IB 交换机生态相对封闭,管理工具偏向厂商方案,出问题时的排查路径也短。

IB 的集中式管理也带来了一个以太网没有的好处:路径规划更全局。以太网的链路状态协议在每个节点上各自计算,虽然也能动态绕行,但很难做到像 IB 那样以微秒级粒度统一调度多路径。应付常规流量没问题,但面对数千 GPU 同时通信的“策略型流量”时,集中式规划明显更从容。

3.5 生态成本与适用场景

用一句话概括:以太网是“万能插座”,从办公室到云数据中心都能用;IB 则更像“特种装备”,只有算力密度高、延迟敏感的场景才需要上。成本上,IB 网卡、交换机、光模块和配套软件都比同速率以太网贵,运维门槛也高。可一旦选了 IB,它提供的确定性往往是通用以太网很难短期复制的。

对比维度InfiniBand以太网
设计初衷高性能算力集群互连通用网络互连
原生 RDMA是,verbs 原生需 RoCE / iWARP 等扩展
无损机制链路信用流控 + VLPFC / ECN / DCQCN 配置
路由方式子网内 SM + LID 集中管理分布式 MAC/IP 学习与路由协议
时延控制硬件直通、内核旁路依赖协议栈和网卡卸载能力
生态灵活性较高独特性极强通用性
适用场景HPC、AI 训练、高性能存储云、园区、传统业务、边缘
成本较高较低且选择丰富

这个表格简化了很多细节,但基本把骨干区别列全了。真到项目里,你还会遇到更多具体取舍,比如 IB 的交换机端口速率对齐、路由策略、线缆选型,和以太网的 DCB 调优、RoCE 流控参数,每一项都能写一大篇排错经验。

4. 为什么现在 RoCE 和超大 AI 集群都在“贴脸竞争”

4.1 RoCE 是给以太网补课的结果

既然 IB 的 RDMA 优势这么明显,为什么没有把以太网彻底挤出去?答案很简单:生态和成本。IB 再怎么强,它也是一套相对专用的协议栈,想与普通业务网互通还得费劲。为了让不换交换机、不换网卡也能跑 RDMA,IBTA 定义了 RoCE(RDMA over Converged Ethernet):把 IB 的 verbs 语义跑在以太网上,做一层封装。

RoCEv1 只能在二层以太网内跑,RoCEv2 改用了 UDP/IP 封装,于是可以跨三层路由。表面上好像得到了“以太版 IB”,实际上也继承了以太网的不确定性。为了不让重传毁掉 RDMA 的低时延优势,RoCE 网络通常要启用 PFC 无损队列、ECN 拥塞标记、DCQCN 等一堆机制。这些机制在 IB 里是出厂自带,在以太网里要靠配置一行行堆出来。所以经常出现的情况是:RoCE 测试时跑得很好,生产一上流量,某个交换机队列深度没调对,性能一下子跪了。排查这种问题时,一层层看 ethtool、dcb、ntuple、丢包计数器,非常考验耐心。

4.2 面对 AI 训练集群,IB 有独到优势

这两年我接触的大模型训练集群,几乎都在同一个选择上反复纠结:用 IB 还是用 400G 以太网加 RoCE。只看测试数据,IB 的端到端时延和长尾性能确实更稳。AI 训练本质上是一个又一个同步屏障(barrier):所有 GPU 算完一小批,就得互相等梯度。网络里只要有一个节点延迟抖动,整个训练效率就被拖住。IB 的确定性在这里体现得特别明显,这也是为什么从超算到 AI 集群,大量头部项目仍把 IB 作为“省心方案”。

但也不是越高越好。如果业务本身就是通用型云平台,既有普通虚拟机流量,也有少量 GPU 训练需求,那上 IB 反而自找麻烦:IB 隔离子网和现有云网络的融合、驱动部署、运维知识储备,每一项都是投入。这种场景下,我更倾向于先用 100G/400G 以太网加 RoCE,把部署成本降下来,再根据实际训练效率决定要不要升级到 IB。规模小的时候,RoCE 完全够用;规模大到一定程度,比如上百台 GPU 服务器集中训练,IB 的优势才开始真正换算成真金白银。

4.3 我实际选型时的三个判断标准

第一问瓶颈:你的应用瓶颈是时延敏感,还是吞吐敏感?吞吐敏感优先看带宽,时延敏感再深入研究流控和抖动。第二问团队:有没有能看懂 SM、P_Key、LID、VL 的人?没有的话,RoCE 反而更容易找到资料和排错经验。第三问上限:未来三年 GPU 服务器会不会快速增长到几百台?会的话,一次性把 IB 规划进去,比中途改造划算得多。

还有一个容易被忽略的变量:业务是否愿意改造应用。IB 的 RDMA 能力很强,但应用得用 verbs 或者经过 MPI 这类中间库才能发挥出来。如果团队只想沿用传统 socket 编程,那 IB 和以太网的差距会被大幅拉平,选型结果自然会向更便宜的以太网倾斜。

5. 新手最容易踩的三个误解

5.1 “IB 不就是更快的以太网吗”,是错误的理解

它的协议、寻址、可靠性、流控全都和以太网不是一套。IB 网卡接到普通交换机上不能用,普通网卡插到 IB 交换机上也不能联网。虽然 IB 最终也能在硬件接口上承载 IPv6 等网络层协议,但你要真想找“更快的以太网”,直接看 RoCE 可能更接近预期。IB 的物理形态可以做成看起来像网卡、像光模块,但它内部协议栈和以太网没有天然的兼容关系。

5.2 “IB 只能跑 HPC,不能跑 TCP/IP 业务”也太绝对

IB 确实定义了一套完整的 socket 兼容层(IP over IB,简称 IPoIB),在这套接口下,普通 TCP/UDP 应用只要装上驱动就能跑。甚至可以说,IB 并不排斥传统应用。IPoIB 的 IP 地址分配方式和普通网卡类似,底层报文的广播、组播也有映射机制,所以 DHCP 之类的基础设施仍然能工作。

但我还是要泼一盆冷水:IPoIB 的目的是兼容,不是拔尖。你拿 IB 网卡跑传统 TCP 应用,得到的好处远不如直接用 RDMA verbs 改造应用来得大。接受 RDMA 语义,才是把 IB 的价值榨干的前提。许多人被“IB 很贵”劝退,却不知道真正贵的是“买了 IB 却还按 socket 的老思路用”。

5.3 “无损网络就是不丢包,所以 IB 可以随便浪”是危险的想法

无损网络只针对拥塞丢包而言。链路故障、光纤老化、收发端硬件异常、SM 切换间隙,都可能造成包丢失。IB 处理拥塞靠链路层信用机制,但处理物理故障还是得靠路由收敛和重传机制。把“无损”理解成“永不丢包”,生产环境里吃大亏的案例不算少。做任何 IB 网络设计,都还是要保留监控、告警、多路径冗余和故障演练,不能因为 IB 给了你确定性就放松运维纪律。

使用 IB 一两年后,我自己的感受是:它是我见过的把“低时延”和“确定性”这两个词落地最扎实的网络技术。它不适合所有地方,但在 AI 训练、HPC 和核心存储场景里,每次因为协议栈扣掉的那点开销,都会反过来说服我愿意为不到一微秒的提升买单。如果你也在做类似的选型,别只看标称带宽和网上那些对比图,先把自己真正的流量特征写清楚,再决定要不要走进这个“专用铁路”的世界。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 3:02:47

从工业视觉到YOLOv8:瓶装白酒疵品检测数据集与训练实战

简介:瓶装白酒疵品检测数据集.zip 是一份面向工业质检场景的图像数据集,聚焦瓶装白酒的外观瑕疵识别,适合计算机视觉、机器学习方向的开发者与研究者用于训练疵品检测模型。压缩包内共包含4516张JPG格式图片和1个JSON文件,图片覆盖…

作者头像 李华
网站建设 2026/10/6 3:02:36

本科毕设恶意代码检测平台:静态特征+机器学习实战指南

简介:本资源是一套完整的本科毕业设计项目——恶意代码检测分类平台,面向计算机科学、网络安全及人工智能方向的高年级本科生与初学者,聚焦于恶意软件行为识别与机器学习分类实践。项目基于Python实现,整合了前端Web界面&#xff…

作者头像 李华
网站建设 2026/10/6 3:02:36

HITL机制在Agent工作流中的实现:从状态机到审批协议

拿到Cowork后台权限的第一个晚上,我盯着任务详情页上那个“等待人工审批”的黄色标签看了很久。HITL(Human-in-the-Loop,人在回路)这个机制,在官方文档里只是一句“支持人工介入任务执行流程”,但真到了要把…

作者头像 李华
网站建设 2026/10/6 3:02:33

C++数据结构实训:基于链表的作业管理系统实现与避坑指南

简介:一套用于数据结构C实训的作业完成情况管理程序资源,适合正在学习数据结构与C面向对象编程的高校学生,旨在通过实现作业添加、更新与查询功能,帮助学习者掌握数组、链表、栈与队列等数据结构的实际应用。压缩包内共十一个文件…

作者头像 李华
网站建设 2026/10/6 3:02:03

Redis 分布式锁宕机丢失怎么办?从持久化到 RedLock 全解析

面试官问出“Redis 宕机了锁不就丢了吗”这句话时,其实是在考察你有没有真正理解分布式锁的边界条件。很多人的第一反应是“那用 Redisson 啊,有看门狗自动续期”,但这个回答在面试官面前往往只能得个及格分。要真正把这个问题答透&#xff0…

作者头像 李华
网站建设 2026/10/6 3:02:03

微信小程序商城Java源码部署与实战避坑指南

简介:这是一套面向Java后端开发者与小程序初学者的微信在线点餐系统源码,聚焦餐饮行业轻量化SaaS解决方案,覆盖用户点餐、菜品管理、订单处理及微信支付全流程。资源共60个文件,包含10个JS逻辑文件(实现页面交互与API调…

作者头像 李华