3、链路层基础概念:链路、端口、链路宽度与速率、链路状态与协商

核心原理:从物理连接到逻辑链路的抽象

InfiniBand 链路层的最基本任务是管理两个相邻端口之间的物理连接,并将其抽象为一条可承载数据包的逻辑链路。理解这一层的关键在于区分三个层次的概念:物理端口(Port)、物理链路(Physical Link)与逻辑链路状态(Link State)。端口是设备(HCA、交换机、路由器)上的物理收发器,每个端口拥有独立的链路状态机;链路则是由一对方向相反的差分信号对组成的物理介质;而链路状态是端口经过协商后形成的、能够收发数据包的稳定工作模式。

链路宽度(Width)与链路速率(Data Rate)共同决定了链路的原始带宽。宽度表示并行传输的通道数,速率表示每个通道的信号调制速率。两者并非独立选择,而是由端口能力、对端能力以及线缆/背板物理约束共同决定。协商过程遵循“取最小公分母”原则,确保两端在不支持最高能力时仍能降级建立链路。

关键公式:链路有效带宽 = 链路宽度 × 单通道速率 × 编码效率(如 64B/66B 编码为 0.9697)。例如:4X EDR 链路带宽 = 4 × 25.78125 Gb/s × 0.9697 ≈ 100 Gb/s。

链路层核心概念关系图 端口 (Port) • 物理收发器,含 TX/RX 差分对 • 每个端口独立状态机 • 端口能力寄存器声明支持 的宽度与速率组合 • 端口状态影响链路状态 链路宽度 (Width) • 1X:1 通道 (2.5 Gb/s @ SDR) • 4X:4 通道并行 (最常见) • 12X:12 通道 (用于交换机互连) • 通道数必须两端一致 • 协商时取较小值 链路速率 (Data Rate) • SDR: 2.5 Gb/s • DDR: 5 Gb/s • QDR: 10 Gb/s • FDR: 14.0625 Gb/s • EDR: 25.78125 Gb/s • HDR: 53.125 Gb/s (PAM4) 链路状态与协商过程 Disabled LinkDown Init Arm Active 上电 信号检测 宽度/速率协商 就绪 任何状态检测到错误 → 回到 LinkDown 重新协商 协商参数:宽度 (1X/4X/12X) + 速率 (SDR~NDR) + 极性反转 + 通道重映射

方法流程:链路协商的完整状态机

InfiniBand 链路协商遵循 物理层初始化状态机,每个端口在复位后依次经历以下状态:

  1. Disabled(禁用):端口不发送任何信号,等待管理软件下发 PortEnable 命令。
  2. LinkDown(链路关闭):端口开始发送训练信号(TS1/TS2 序列),检测对端是否存在。此阶段主要完成信号检测与时钟恢复。
  3. Init(初始化):双方交换能力声明,包括支持的宽度集合(如 1X、4X、12X)与速率集合(如 SDR、DDR、QDR)。协商算法选择双方都支持的最高宽度与速率组合。
  4. Arm(待命):完成链路参数锁定,进行最后的校验(如 CRC 校验训练序列)。
  5. Active(激活):链路完全就绪,可以开始传输数据包、流控与错误检测。

协商过程中,每个端口会发送包含其能力的 训练序列(Training Sequence),对端收到后比较双方能力,并回复确认。若两端能力交集为空(例如一端仅支持 1X SDR,另一端仅支持 4X EDR),则协商失败,链路停留在 LinkDown 状态并持续重试。

实操提示:使用 ibstat 命令可查看当前链路状态。输出中 State: Active 表示协商成功,Physical state: LinkUp 表示物理信号正常。若状态为 Init 或 Arm 长时间不变化,通常表示宽度或速率协商不一致。

案例场景:4X EDR 链路的协商过程

假设一台 HCA 端口支持 1X/4X 宽度与 SDR~EDR 速率,连接一台交换机端口仅支持 4X/12X 宽度与 QDR/FDR/EDR 速率。协商过程如下:

阶段HCA 发送交换机发送协商结果
宽度协商支持 {1X, 4X}支持 {4X, 12X}取交集 → 4X
速率协商支持 {SDR, DDR, QDR, FDR, EDR}支持 {QDR, FDR, EDR}取最高共同速率 → EDR
最终链路4X EDR,单通道 25.78125 Gb/s,总带宽 100 Gb/sActive

若交换机仅支持到 FDR,则协商结果自动降级为 4X FDR(56 Gb/s),不会导致链路中断。这种降级机制保证了不同代际设备间的互操作性。

误区与复盘:常见链路协商故障

误区 1:认为链路速率越高越好,忽略线缆质量。EDR 及以上速率对信号完整性要求极高,劣质铜缆或过长链路会导致协商成功后频繁误码,触发链路重启。

误区 2:混淆“链路宽度”与“端口数”。4X 链路是同一端口内的 4 个物理通道,不是 4 个独立端口。在 ibswitches 输出中看到的 36 端口交换机,每个端口可能是 4X 或 12X 宽度。

误区 3:忽略 PAM4 调制带来的速率跃迁。HDR 采用 PAM4(每符号 2 bit),而 EDR 及之前均为 NRZ。因此 HDR 的 53.125 Gb/s 并非简单的 NRZ 翻倍,其信噪比预算更紧张,对连接器要求更高。

复盘建议:当链路无法进入 Active 状态时,按以下顺序排查:

  • 检查物理连接:线缆是否插紧、光模块是否兼容(ibportstate -l 查看端口日志)。
  • 确认两端端口能力:使用 ibv_devinfo 查看 HCA 支持的宽度与速率。
  • 查看协商失败原因:dmesg | grep ib 或 iblinkinfo 会提示是宽度不匹配还是速率不匹配。
  • 尝试手动降级:通过 ibportstate -s 强制指定宽度或速率,验证是否为自动协商逻辑问题。

链路层协商是 InfiniBand 可靠性的第一道防线,理解其状态机与参数选择逻辑,能帮助工程师快速定位物理层故障,避免误判为上层协议问题。