Skip to content

5. 核心模块 ​

网络可以拆成多个核心模块。本章聚焦 AI Infra 工程师最经常打交道的几个:NIC、协议栈、RDMA、CNI、DNS、负载均衡、网络可观测。

5.1 NIC 与网卡驱动 ​

NIC(Network Interface Card)是服务器连接网络的硬件。现代 NIC 已经从简单的收发设备变成强大的“网络协处理器”。

传统 NIC ​

  • 数据收发都要经过内核协议栈;
  • CPU 负责中断处理、协议解析、数据拷贝。

SmartNIC / DPU ​

  • 把网络、存储、安全卸载到网卡;
  • 常见:NVIDIA ConnectX / BlueField、Intel IPU、AWS Nitro、Alibaba XPU。

RDMA NIC ​

  • 支持 RDMA 的网卡,如 NVIDIA ConnectX-7(400G)、ConnectX-8 SuperNIC(800G,2025 年发布);
  • bypass 内核,直接读写远程内存;
  • 需要支持 RoCE 或 InfiniBand 的交换机;
  • 下一代将直接支持 UEC 的增强传输能力(包喷洒、乱序交付、增强重传)。

5.2 Linux 网络协议栈 ​

Linux 内核网络协议栈从底到上:

应用层:socket API
↓
传输层:TCP / UDP
↓
网络层:IP / ICMP / ARP
↓
数据链路层:Ethernet / VLAN
↓
网卡驱动 / NIC

NAPI ​

传统网卡每收到一个包就中断 CPU,高吞吐下中断风暴会拖垮 CPU。NAPI 让网卡在收到一批包后才中断一次。

RPS / RFS / XPS ​

技术作用
RPS把软中断分发到多个 CPU
RFS把同一 flow 的处理固定到同一个 CPU
XPS把发送队列映射到特定 CPU

分布式训练常用 RFS 把同一 NCCL 通信流的处理固定,减少缓存失效。

XDP / DPDK / RDMA ​

技术特点
XDP内核早期包处理,可 drop/redirect,延迟低
DPDK用户态轮询网卡,完全 bypass 内核
RDMA网卡直接读写远程内存,CPU 不参与数据搬运

5.3 RDMA 与 Verbs ​

RDMA 编程基于 Verbs API:

c
ibv_create_qp();      // 创建 Queue Pair
ibv_reg_mr();         // 注册 Memory Region
ibv_post_send();      // 下发发送请求
ibv_poll_cq();        // 轮询完成队列

RoCEv1 vs RoCEv2 ​

协议层级特点
RoCEv1二层(Ethernet)不需要 IP,但无法跨三层路由
RoCEv2三层(UDP/IP)可路由,主流选择

RoCEv2 需要网络支持 PFC(Priority Flow Control) 和 ECN(Explicit Congestion Notification) 来避免丢包和死锁。行业趋势是:通过 UEC 的增强传输能力(包喷洒、乱序交付、增强重传),让 RDMA 逐步摆脱对 PFC 的强依赖(见 3.8 节);在此之前,生产环境仍以 PFC + ECN 的无损方案为主。

5.4 CNI 插件 ​

bridge ​

最简单的 CNI:每个节点创建一个 Linux bridge,Pod veth 连到 bridge,bridge 通过 host 路由出节点。

Calico ​

  • 使用 BGP 在节点之间发布 Pod 路由;
  • 性能好,支持 NetworkPolicy;
  • 适合大规模集群。

Cilium ​

  • 基于 eBPF 实现 CNI、kube-proxy、NetworkPolicy、Service Mesh;
  • 高性能可观测;
  • 支持 RDMA/SR-IOV 集成。

Multus ​

允许一个 Pod 拥有多个网卡,适合:

  • RDMA 网络和管理网络分离;
  • 存储网络(如 NFS/RDMA)独立。

5.5 DNS ​

DNS 是互联网的命名系统,把域名解析为 IP。

DNS 解析流程 ​

DNS 在 Kubernetes 中 ​

Kubernetes 用 CoreDNS 为集群提供 DNS:

  • Service DNS:my-svc.my-namespace.svc.cluster.local;
  • Pod DNS:pod-ip.my-namespace.pod.cluster.local。

AI 推理服务中,DNS 解析延迟和 TTL 缓存会影响冷启动和故障切换速度。

5.6 负载均衡 ​

kube-proxy 模式 ​

模式特点
iptables默认,规则多时有性能问题
ipvs内核级,性能好
eBPFCilium 直接转发,延迟最低

Ingress / Gateway API ​

  • Ingress:K8s 的七层入口抽象;
  • Gateway API:Ingress 的下一代,更灵活,支持 TCP/UDP/HTTP/TLS 路由。

服务网格 ​

Istio/Envoy 提供:

  • 流量管理(路由、灰度、熔断、重试);
  • 安全(mTLS);
  • 可观测(trace、metrics)。

AI 推理服务常用 Envoy 做 L7 网关。

5.7 网络可观测工具 ​

工具用途
ping测试连通性和 RTT
traceroute / mtr追踪路径
tcpdump抓包分析
ss / netstat查看 socket 状态
iperf / iperf3测带宽
nccl-tests测 NCCL all-reduce 带宽和延迟
nvidia-smi topo查看 GPU/NIC 拓扑
perftestRDMA 性能测试
bpftool / bcc / bpftraceeBPF 动态追踪

网络遥测的新范式 ​

传统网络排障靠“登录设备看计数器”,现代 AI 集群的网络遥测已经走向流式、带内、开箱即用:

  • INT / IOAM:交换机在转发路径上把每跳延迟、队列深度写进包头的遥测字段,实现逐 hop 的延迟定位;
  • gNMI 流式订阅:通过 gNMI Subscribe 持续推送端口计数器、队列水位,替代轮询 SNMP;
  • “刚刚发生了什么”(WJH)类事件遥测:交换机直接上报“这个包为什么被丢/被 pause”,例如 Arista WJH、SONiC 的带内遥测;
  • RDMA 专用计数器:NVIDIA 网卡暴露 hw_counters(重传、out-of-order、pause 帧),是定位 RoCE 问题的第一手数据。

在 51.2T/102.4T 的 AI 网络里,抓包成本越来越高,带内遥测 + 流式指标 + 事件上报正在取代 tcpdump 成为主要排障手段。

5.8 本节小结 ​

模块核心关注点
NIC传统 NIC / SmartNIC / DPU / RDMA NIC
Linux 协议栈socket/TCP/UDP/IP、NAPI、RPS/RFS/XPS、XDP/DPDK/RDMA
RDMAVerbs、QP/CQ/MR、RoCEv2、PFC/ECN
CNIbridge/Calico/Cilium/Multus
DNS解析流程、CoreDNS、TTL
负载均衡kube-proxy、Ingress/Gateway API、Envoy/Istio
可观测ping、tcpdump、iperf、nccl-tests、perftest、bcc、INT/IOAM、gNMI、WJH

下一节,我们通过源码分析深入一个具体机制。

Released under CC-BY-SA-4.0 License.