目录

  1. 概述
  2. 网络分层模型
  3. TCP 与 UDP
  4. IP 与路由
  5. HTTP 与 API
  6. AI 场景的网络:RDMA 与集群
  7. 常见网络问题排查
  8. 实践建议
  9. 参考文献

1 概述 {#1}

计算机网络让设备之间交换数据,是分布式系统、多 GPU 训练、服务部署的基础。对 AI 工程师而言,理解网络有助于:部署推理服务、排查训练通信瓶颈、理解 RDMA 与集群调度(见 ai-infrastructure.md)。

本章从分层模型讲起,逐步深入到 AI 最关心的传输层与集群网络。


2 网络分层模型 {#2}

2.1 OSI 七层

名称 职责 示例
7 应用层 应用协议 HTTP, DNS, SSH
6 表示层 数据编码/加密 TLS 的一部分
5 会话层 建立/维护会话 很少单独实现
4 传输层 端到端传输 TCP, UDP
3 网络层 路由与寻址 IP
2 数据链路层 相邻节点帧传输 Ethernet, WiFi
1 物理层 比特传输 网线、光纤

2.2 TCP/IP 四层(实际使用)

应用层  (HTTP, SSH, NFS)
传输层  (TCP, UDP)
网络层  (IP)
链路层  (Ethernet)

2.3 分层的好处

每层向上层隐藏细节、向下层提供标准接口,使不同厂商组件可互操作。理解分层有助于定位问题”出在哪一层”。


3 TCP 与 UDP {#3}

3.1 TCP(可靠传输)

  • 面向连接:三次握手建立连接;
  • 可靠:确认、重传、排序;
  • 流式:字节流,无消息边界;
  • 适用:需要可靠性的场景(HTTP、SSH、数据库)。

三次握手:

Client → Server: SYN
Server → Client: SYN + ACK
Client → Server: ACK

3.2 UDP(无连接)

  • 无连接:不建立连接;
  • 不可靠:不保证送达与顺序;
  • 低延迟:无握手开销;
  • 适用:实时音视频、DNS、部分分布式通信。

3.3 与 AI 的关系

  • 多 GPU 训练(NCCL)通常用 RDMA(RoCE/IB),其行为介于 TCP 与 UDP 之间,强调低延迟高带宽;
  • 服务部署的 HTTP 通信基于 TCP;
  • 了解两者差异有助于诊断”延迟高/丢包”问题。

4 IP 与路由 {#4}

4.1 IP 地址

  • IPv4:32 位,如 192.168.1.1
  • IPv6:128 位,如 2001:db8::1
  • 私有地址:10.x172.16-31.x192.168.x(内网)。

4.2 子网与 CIDR

CIDR 用前缀长度表示网络范围:

192.168.1.0/24  → 前 24 位为网络号,256 个地址

4.3 路由

路由器根据目的 IP 选择下一跳。理解”主机 → 网关 → 路由器 → 目标”的数据路径,有助于排查连通性问题。

4.4 常用命令

ping <host>        # 连通性 + RTT
traceroute <host>  # 路径追踪
ip addr            # 本机 IP
ip route           # 路由表
ss -tulpn          # 监听端口

5 HTTP 与 API {#5}

5.1 HTTP 基础

  • 请求方法:GET、POST、PUT、DELETE、PATCH;
  • 状态码:2xx 成功、4xx 客户端错误、5xx 服务端错误;
  • 头部:Content-Type、Authorization、Cache-Control。

5.2 RESTful API

以资源为中心的接口设计:

GET    /models/{id}      查询模型
POST   /inference        发起推理请求
DELETE /models/{id}      删除模型

5.3 与 AI 服务的关系

  • 推理服务(见 model-serving.mdllm-ops.md)通常暴露 HTTP/gRPC 接口;
  • 流式输出(SSE / WebSocket)用于逐 token 返回;
  • 认证(API Key、OAuth)保护服务。

6 AI 场景的网络:RDMA 与集群 {#6}

6.1 RDMA 简介

RDMA(Remote Direct Memory Access)允许直接访问远端内存,绕过 CPU 与内核协议栈,实现低延迟高带宽。AI 集群(见 ai-infrastructure.md)大量使用:

  • InfiniBand:专用 RDMA 网络,低延迟高带宽;
  • RoCE:在以太网上实现 RDMA;
  • GPUDirect RDMA:GPU 显存直接经网卡传输,绕开主机内存。

6.2 集合通信

多 GPU 训练依赖集合通信(AllReduce、AllGather、ReduceScatter),由 NCCL 实现(见 distributed.md):

AllReduce: 各节点有部分数据 → 汇总 → 广播给所有节点

通信瓶颈直接决定大规模训练效率,网络拓扑(Fat-Tree、Rail-Optimized)至关重要。

6.3 分布式系统的网络

  • 集群内:高速 RDMA(训练数据);
  • 集群间:广域网/对象存储(checkpoint、数据同步);
  • 对外服务:负载均衡、网关、CDN。

7 常见网络问题排查 {#7}

现象 可能原因 排查命令
无法连通 网络/防火墙 ping, nc -vz host port
端口拒绝 服务未启动 ss -tulpn, systemctl status
训练变慢 通信瓶颈/丢包 nvidia-smi topo -m, ibstat, 带宽测试
连接超时 防火墙/路由 traceroute, iptables -L
DNS 失败 DNS 配置 nslookup, cat /etc/resolv.conf

8 实践建议 {#8}

  • 先掌握分层模型与 TCP/UDP 差异,再深入 HTTP 与 RDMA;
  • ping/traceroute/ss 等命令排查连通性;
  • 推理服务注重 HTTP/gRPC 与流式输出设计;
  • 多 GPU 训练关注 NCCL 通信与网络拓扑;
  • 分布式系统(Kubernetes)中的 Service、LoadBalancer、NetworkPolicy 都基于网络概念。

9 参考文献 {#9}

[1] J. Kurose, K. Ross, Computer Networking: A Top-Down Approach, Pearson.

[2] A. S. Tanenbaum, D. J. Wetherall, Computer Networks, Pearson.

[3] NVIDIA, GPUDirect RDMA / NCCL Documentation.

[4] IETF, RFC 793 (TCP), RFC 768 (UDP), RFC 7230 (HTTP/1.1).

[5] Kubernetes 文档: Networking, https://kubernetes.io/docs/concepts/services-networking/

留下评论