IB-Protokoll und Transport: Schichten, QPs, RDMA, Subnet-Manager · InfiniBand · Technologien · Dokumentation · CodingBox
CodingBox Dokumentation

IB-Protokoll und Transport: Schichten, QPs, RDMA, Subnet-Manager

InfiniBand wurde von Anfang an als Fabric für Computer entworfen, die auf den Speicher des jeweils anderen zugreifen, nicht für Pakete zwischen Fremden. Schichten, Adressierung und Verwaltung wirken auf Ethernet-Ingenieure ungewohnt, sind aber einfach, sobald das Vokabular sitzt — und sie erklären, warum die physikalische Schicht so strengen Maßstäben unterliegt. Diese Seite behandelt die Protokollsicht; die Optik steht unter InfiniBand-Optik.

Schichten

SchichtInhaltHinweise
PhysikalischLanes (1x, 4x, 8x, 12x), Signalisierung pro Lane (NRZ bis zu PAM4 bei HDR … siehe Geschwindigkeiten), Kodierung (8B/10B bis QDR, 64B/66B ab FDR), FEC (ab FDR optional, RS-FEC bei HDR/NDR)die Welt des Transceivers
Linklokaler Routing-Header (LRH) mit LIDs, virtuelle Lanes (VL0–VL14 Daten, VL15 Management), kreditbasierte Flusskontrolle pro VL, CRC der Link-Schicht (ICRC/VCRC)von Haus aus verlustfrei
Netzwerkglobaler Routing-Header (GRH) mit 128-Bit-GIDs für Multi-Subnetz-Routinginnerhalb eines einzelnen Clusters selten genutzt
TransportQueue Pairs (QPs) mit Sende-/Empfangswarteschlangen, Diensttypen RC/UC/UD/XRC, Segmentierung auf die MTU, ACK/NAK für zuverlässigen Diensthier lebt RDMA
ObersteVerbs-API, MPI, NCCL (über UCX/SHARP), Storage (SRP, iSER, NVMe/IB), IPoIBwas Anwendungen nutzen

Adressierung und Identität

BezeichnerGrößeVergeben vonBedeutung
GUID64-BitHerstellerdauerhafte Identität eines Ports, Knotens oder Systems (wie eine MAC-Adresse)
LID (Local Identifier)16-BitSubnetzmanagerAdresse innerhalb eines Subnetzes; Forwarding-Tabellen verwenden LIDs
GID128-BitSM (Präfix) + GUIDSubnetz-Präfix + GUID; subnetzübergreifend und von RoCE verwendet
PKey (Partitionsschlüssel)16-BitSMMitgliedschaft in einer Partition (wie ein VLAN); volle oder eingeschränkte Mitglieder
QPN24-BitHCAQueue-Pair-Nummer — der Endpunkt innerhalb eines Ports

Queue Pairs und Transportdienste

Ein Queue Pair besteht aus einer Sendewarteschlange und einer Empfangswarteschlange in der HCA und gehört einer Anwendung. Work Requests, die dort eingereicht werden, führt die Hardware aus; Abschlüsse landen in einer Completion Queue. Diensttypen:

TypZuverlässigVerbundenVerwendung
RC — zuverlässig, verbindungsorientiertja (ACK/NAK, Neuübertragung)ja, ein QP pro Peerder meiste RDMA-Verkehr; MPI, NCCL, Storage
UC — unzuverlässig, verbindungsorientiertneinjaselten
UD — unzuverlässig, datagrammbasiertneinnein, ein QP für alle PeersManagement, IPoIB, Multicast
XRC — erweitert, zuverlässig, verbindungsorientiertjagemeinsame Empfangswarteschlangen über mehrere Prozesse hinweggroße MPI-Jobs, um die Zahl der QPs zu senken
RD — zuverlässig, datagrammbasiertjaneinpraktisch ungenutzt

RDMA-Operationen (READ, WRITE, atomar) bewegen Daten direkt zwischen den Anwendungspuffern zweier Hosts, ohne dass eine CPU sie kopiert; SEND/RECEIVE transportiert Nachrichten. Speicher muss registriert sein (gepinnt und mit einem Schlüssel versehen), bevor die HCA darauf zugreifen darf. GPUDirect RDMA erweitert dies auf GPU-Speicher (GPU-Fabrics).

Flusskontrolle und MTU

Jeder Link betreibt kreditbasierte Flusskontrolle pro virtueller Lane: Der Empfänger gibt seinen Pufferplatz bekannt, der Sender überträgt nie mehr, als dieser aufnehmen kann. Wegen Überlast wird kein Frame verworfen; stattdessen breitet sich Backpressure aus — derselbe Kompromiss wie bei den Credits von Fibre Channel, und der Grund, warum ein einzelner langsamer oder fehlerhafter Link einen ganzen Job ausbremst. Die Link-MTU liegt bei 256–4096 Bytes (typisch 4096); die Pfad-MTU wird Ende-zu-Ende ausgehandelt. Service Levels (SL) werden auf VLs abgebildet, um Verkehrsklassen zu trennen, und adaptives Routing kann Datenflüsse um überlastete Links herumlenken.

Der Subnetzmanager

Pro Subnetz ist genau ein Subnetzmanager (SM) aktiv (weitere stehen bereit). Er:

  1. Erkennt die Topologie, indem er die Fabric mit Management-Paketen mit gerichteter Route (SMPs auf VL15/QP0) durchläuft — jeden Switch- und HCA-Port.
  2. Vergibt LIDs und konfiguriert Ports (Geschwindigkeit, Breite, MTU, VL-Arbitrierung, PKeys).
  3. Berechnet Routen — Min-Hop, Up-Down, Fat-Tree, Dragonfly+, adaptives Routing — und programmiert die lineare Forwarding-Tabelle jedes Switches.
  4. Scannt das Netz periodisch und bei Traps (Port up/down) und leitet bei Ausfällen um.
  5. Betreibt den Subnetzadministrator (SA), der Pfadanfragen von Hosts beantwortet.

OpenSM (Open Source) und herstellereigene Fabric-Manager (UFM) implementieren ihn; im Fabric-Manager laufen außerdem Portfehler, die Ergebnisse der Geschwindigkeits-/Breiten-Aushandlung und die Optik-DDM flottenweit zusammen (Link-Zuverlässigkeit und Monitoring).

Beim Link-up handeln beide Enden Breite (1x/2x/4x) und Geschwindigkeit (Rate pro Lane) auf den höchsten gemeinsamen Wert aus. Ein Link, der mit 2x oder eine Generation langsamer als erwartet hochkommt, ist das InfiniBand-Äquivalent zu Ethernets „läuft mit 10G statt mit 25G“: die Faser oder der Laser einer Lane, ein grenzwertiges Kabel oder eine nicht passende Transceiver-Generation (Geschwindigkeit und Rate). Der Fabric-Manager meldet den ausgehandelten Zustand; ibstat / ibportstate zeigen ihn auf einem Host.

Verwaltungs- und Diagnosewerkzeuge

WerkzeugZweck
ibstat, ibstatuslokaler Portzustand, Rate, Breite, LID
ibnetdiscoverTopologie-Dump
ibdiagnetfabricweite Prüfung: Fehler, Geschwindigkeits-/Breiten-Fehlanpassungen, doppelte GUIDs, Kabelinformationen
perfquery, ibqueryerrorsZähler pro Port: Symbol Errors, Link Downed, Link Recovery, Port Rcv Errors, Excessive Buffer Overrun, VL15 Dropped, FEC-Zähler
mlxlink, mlxcablesPHY-Details pro Port sowie Kabel-/Transceiver-EEPROM, DDM, FEC-Histogramm
ibportstateGeschwindigkeit/Breite erzwingen, einen Port zurücksetzen

Symbol Errors und Link Recoveries sind die Zähler der physikalischen Schicht — das Äquivalent zu Ethernet-CRC/FEC, gekoppelt an Rx-Leistung und Sauberkeit (Fabric).

InfiniBand vs. RoCE in einem Absatz

RoCE v2 transportiert denselben Verbs-/RDMA-Verkehr über UDP/IP/Ethernet; es ersetzt den Subnetzmanager durch IP-Routing und PKeys durch VLANs und ersetzt die Kredit-Flusskontrolle durch PFC/ECN (DCQCN) — was korrekt konfiguriert sein muss, damit das Netz verlustfrei bleibt (Verlustfreies Ethernet, Interconnects). Die Transceiver sind physikalisch identisch; es unterscheiden sich nur die Identitätscodierung und die Richtlinien des Hosts.

In CodingBox

InfiniBand-Module werden wie jedes QSFP/OSFP ausgelesen: Identität (einschließlich der InfiniBand-Ratenbits in SFF-8636 Byte 164 oder den CMIS Applications), DDM pro Lane und Prüfsummen auf Check transceiver und DDM. Ein Port, der unterhalb seiner Nennrate aushandelt, ist auf der Werkbank an beiden Enden einen Blick wert.


Wenn Sie in diesem Artikel eine Ungenauigkeit oder einen Fehler finden, markieren Sie die betreffende Stelle und drücken Sie Ctrl+Enter, um .