Protocolo e transporte IB: camadas, QPs, RDMA, gerenciador de sub-rede
O InfiniBand foi projetado desde o início como uma fabric para computadores conversarem com a memória uns dos outros, não para pacotes entre desconhecidos. Suas camadas, endereçamento e gerenciamento parecem estranhos para engenheiros de Ethernet, mas são simples uma vez que o vocabulário está estabelecido — e explicam por que a camada física é mantida sob padrões tão rígidos. Esta página é a visão de protocolo; a óptica está em óptica do InfiniBand.
Camadas
| Camada | Conteúdo | Notas |
|---|---|---|
| Física | lanes (1x, 4x, 8x, 12x), sinalização por lane (NRZ até o PAM4 do HDR… veja velocidades), codificação (8B/10B até QDR, 64B/66B a partir de FDR), FEC (opcional a partir de FDR, RS-FEC em HDR/NDR) | o mundo do transceptor |
| Enlace | cabeçalho de roteamento local (LRH) com LIDs, lanes virtuais (VL0–VL14 dados, VL15 gerenciamento), controle de fluxo baseado em créditos por VL, CRC de camada de enlace (ICRC/VCRC) | sem perdas por projeto |
| Rede | cabeçalho de roteamento global (GRH) com GIDs de 128 bits para roteamento multi-sub-rede | raramente usado dentro de um único cluster |
| Transporte | queue pairs (QPs) com fila de envio/recebimento, tipos de serviço RC/UC/UD/XRC, segmentação até o MTU, ACK/NAK para serviço confiável | é aqui que vive o RDMA |
| Superior | verbs API, MPI, NCCL (via UCX/SHARP), armazenamento (SRP, iSER, NVMe/IB), IPoIB | o que as aplicações usam |
Endereçamento e identidade
| Identificador | Tamanho | Atribuído por | Significado |
|---|---|---|---|
| GUID | 64 bits | fabricante | identidade permanente de uma porta, nó ou sistema (como um MAC) |
| LID (identificador local) | 16 bits | subnet manager | endereço dentro de uma sub-rede; as tabelas de encaminhamento usam LIDs |
| GID | 128 bits | SM (prefixo) + GUID | prefixo de sub-rede + GUID; usado entre sub-redes e pelo RoCE |
| PKey (chave de partição) | 16 bits | SM | associação a uma partição (como uma VLAN); membros completos/limitados |
| QPN | 24 bits | HCA | número de queue pair — o ponto de extremidade dentro de uma porta |
Queue pairs e serviços de transporte
Um queue pair é uma fila de envio e uma fila de recebimento na HCA, pertencente a uma aplicação. As solicitações de trabalho postadas nele são executadas pelo hardware; as conclusões chegam a uma fila de conclusão. Tipos de serviço:
| Tipo | Confiável | Conectado | Uso |
|---|---|---|---|
| RC — conexão confiável | sim (ACK/NAK, retransmissão) | sim, um QP por peer | a maior parte do tráfego RDMA; MPI, NCCL, armazenamento |
| UC — conexão não confiável | não | sim | raro |
| UD — datagrama não confiável | não | não, um QP para todos os peers | gerenciamento, IPoIB, multicast |
| XRC — conexão confiável estendida | sim | filas de recebimento compartilhadas entre processos | jobs grandes de MPI para reduzir o número de QPs |
| RD — datagrama confiável | sim | não | praticamente sem uso |
As operações de RDMA (READ, WRITE, atomic) movem dados diretamente entre buffers de aplicação em dois hosts sem que nenhuma das CPUs precise copiá-los; SEND/RECEIVE transporta mensagens. A memória precisa ser registrada (fixada e receber uma chave) antes que a HCA possa acessá-la. O GPUDirect RDMA estende isso à memória de GPU (fabrics de GPU).
Controle de fluxo e MTU
Todo enlace executa controle de fluxo baseado em créditos por lane virtual: o receptor anuncia o espaço de buffer disponível, e o transmissor nunca envia mais do que o outro lado pode absorver. Nenhum quadro é descartado por congestionamento; em vez disso, a contrapressão se propaga — a mesma relação de compromisso dos créditos do Fibre Channel, e o motivo pelo qual um único enlace lento ou com erros degrada um job inteiro. O MTU do enlace é de 256–4096 bytes (4096 típico); o MTU do caminho é negociado de ponta a ponta. Os níveis de serviço (SL) são mapeados para as VLs para separar classes de tráfego, e o roteamento adaptativo pode desviar fluxos de enlaces congestionados.
O subnet manager
Exatamente um subnet manager (SM) está ativo por sub-rede (os demais ficam em espera). Ele:
- Descobre a topologia percorrendo a fabric com pacotes de gerenciamento de rota direcionada (SMPs na VL15/QP0) — cada switch e porta de HCA.
- Atribui LIDs e configura as portas (velocidade, largura, MTU, arbitragem de VL, PKeys).
- Calcula rotas — min-hop, up-down, fat-tree, dragonfly+, roteamento adaptativo — e programa a tabela de encaminhamento linear de cada switch.
- Varre periodicamente e em traps (porta up/down), refazendo o roteamento para contornar falhas.
- Executa o subnet administrator (SA), que responde a consultas de caminho dos hosts.
O OpenSM (código aberto) e os fabric managers de fabricantes (UFM) o implementam; o fabric manager também é onde os erros de porta, os resultados de negociação de velocidade/largura de enlace e o DDM óptico são coletados em toda a frota (Confiabilidade e monitoramento de enlace).
Negociação de enlace
Na subida do enlace, as duas pontas negociam largura (1x/2x/4x) e velocidade (taxa por lane) até o maior valor comum. Um enlace que sobe em 2x, ou uma geração mais lento do que o esperado, é o equivalente, no InfiniBand, ao “enlaces em 10G, não 25G” do Ethernet: a fibra ou o laser de uma lane, um cabo no limite, ou uma geração de transceptor incompatível (Velocidade e taxa). O fabric manager informa o estado negociado; ibstat / ibportstate mostram isso em um host.
Ferramentas de gerenciamento e diagnóstico
| Ferramenta | Finalidade |
|---|---|
ibstat, ibstatus | estado local da porta, taxa, largura, LID |
ibnetdiscover | dump da topologia |
ibdiagnet | verificação em toda a fabric: erros, incompatibilidades de velocidade/largura, GUIDs duplicados, informações de cabo |
perfquery, ibqueryerrors | contadores por porta: erros de símbolo, enlace desativado, recuperação de enlace, erros de recepção de porta, estouro excessivo de buffer, VL15 descartado, contadores de FEC |
mlxlink, mlxcables | detalhes de PHY por porta e EEPROM de cabo/transceptor, DDM, histograma de FEC |
ibportstate | forçar velocidade/largura, reiniciar uma porta |
Erros de símbolo e recuperações de enlace são os contadores de camada física — o equivalente ao CRC/FEC do Ethernet, relacionados à potência Rx e à limpeza (Fabric).
InfiniBand vs RoCE em um parágrafo
O RoCE v2 transporta o mesmo verbs/RDMA sobre UDP/IP/Ethernet; ele substitui o subnet manager por roteamento IP e os PKeys por VLANs, e substitui o controle de fluxo por créditos por PFC/ECN (DCQCN) — que precisa estar configurado corretamente para ser sem perdas (Ethernet sem perdas, Interconexões). Os transceptores são fisicamente os mesmos; apenas a codificação de identidade e as políticas de host diferem.
No CodingBox
Os módulos InfiniBand são lidos como qualquer QSFP/OSFP: identidade (incluindo os bits de taxa do InfiniBand no byte 164 do SFF-8636 ou nas aplicações do CMIS), DDM por lane e somas de verificação em Check transceiver e DDM. Uma porta que negocia abaixo da velocidade nominal justifica uma leitura de bancada em ambas as pontas.