网络验证 / 系统验证工程师
深度面试复习与问题集(v2 扩充版)
面向 Ethernet + InfiniBand 组合产品、8 年以上网络/系统验证经验岗位。相较 v1,本版在协议细节、参数取值、算法状态机、诊断决策树、基准方法论上大幅加深,并新增可观测性、故障注入、答题框架三章,面试题扩充至约 90 道。
EthernetInfiniBand / RoCETCP/IP · L2/L3
LinuxCongestion ControlAI Networking
HPCK8s / KVMTestbed · Telemetry
岗位画像与复习路线
把 JD 翻译成"能力模型",再决定复习优先级。本岗位本质是 网络深度 × 验证工程 × 动手复现 的复合体。
核心职责(你"要做"的)
- 评审 Ethernet / InfiniBand 新网络特性的架构、构建与需求
- 搭建贴近客户的复杂测试床拓扑(testbed)
- 设计/执行/优化集成测试:功能、回归、性能、规模化
- 复现并调试问题,与研发做根因分析(RCA)
- 与自动化团队协作,沉淀自动化用例
- 分析并优化网络性能、延迟、效率
- 输出状态报告、质量与性能洞察
硬性要求(你"要有"的)
- CS/EE 本科或同等经验
- 8 年以上网络 / 系统验证经验
- Linux 系统实操能力强
- 深懂 TCP/IP、UDP、Ethernet、VLAN、L2/L3
- 懂路由、交换、现代数据中心网络架构
- 分布式环境下的排错与分析能力
- 测试方法论(功能/回归/性能/规模)
- Python / Bash 脚本能力
加分项(让你"脱颖而出"的)
- 重点 RDMA 技术(RoCE / InfiniBand)
- 重点 拥塞控制算法与性能调优
- 热点 AI 工作负载及其网络需求
- HPC 环境与基准测试工具
- 虚拟化 / 容器(Kubernetes、KVM 等)
复习优先级: ① RDMA + 无损网络(最差异化,必深挖 PFC/ECN/DCQCN) → ② TCP/IP 与 L2/L3 基本功(必考) → ③ Linux 排错与性能工具链 → ④ 数据中心 CLOS/Spine-Leaf + VXLAN/EVPN → ⑤ AI/HPC 集合通信 → ⑥ 测试方法论与自动化 → ⑦ 虚拟化/容器 → ⑧ 可观测性与故障注入。基本项决定能否过,加分项决定能拿多高评级。
如何使用本手册
- 第一部分(深度知识点):每个主题给出"原理 + 关键参数/公式 + 易错点 + 验证视角"。建议配合动手(tcpdump、iperf3、ib_send_lat、容器 testbed)。
- 第二部分(面试题):
<details>折叠,先自答再展开"参考答案要点",标注 基础 / 进阶 / 场景 / 深究。 - 实战原则:该岗位偏"动手验证",几乎必给场景题。把每个知识点都准备成"如何测试 / 如何复现 / 如何定位"的角度。
面试答题框架(先记这个,再填技术)
1) 概念定义:一句话讲清"是什么、解决什么问题"。
2) 工作原理:关键对象/流程/状态机(画得出数据流)。
3) 关键参数与取值:默认值、可调范围、单位(RDMA 延迟 µs、带宽 Gb/s、PFC 阈值)。
4) 验证视角(差异化!):如何测试、如何复现、如何量化通过判据、常见坑。
5) 对比与权衡:A vs B 的取舍(如 RoCE vs IB、Ring vs Tree、CUBIC vs BBR)。
6) 故障/极端:边缘情况、已知限制、会怎么坏。
2) 工作原理:关键对象/流程/状态机(画得出数据流)。
3) 关键参数与取值:默认值、可调范围、单位(RDMA 延迟 µs、带宽 Gb/s、PFC 阈值)。
4) 验证视角(差异化!):如何测试、如何复现、如何量化通过判据、常见坑。
5) 对比与权衡:A vs B 的取舍(如 RoCE vs IB、Ring vs Tree、CUBIC vs BBR)。
6) 故障/极端:边缘情况、已知限制、会怎么坏。
话术模板:"这个特性我理解是……它的关键在……我们验证时会构造……场景,关注……指标,判据是……;风险点通常是……"——这比纯背概念得分高得多。
1. TCP/IP 协议栈(深度)
网络验证的基石。深度决定你能不能定位"为什么慢、为什么丢、为什么乱序、为什么连接建不起来"。
1.1 分层与封装
- OSI 七层 vs TCP/IP 四层:工程上以 TCP/IP 为主;常说"TCP 是传输层、IP 是网络层、Ethernet 是链路层"。
- 封装方向:应用数据 → TCP 段(加端口/序列号)→ IP 包(加源/目的 IP)→ Ethernet 帧(加 MAC/FCS);每降一层加头,接收端逐层解封装。
- TCP 段头关键字段:源/目的端口(16b)、序列号(32b)、确认号(32b)、标志位(SYN/ACK/FIN/RST/PSH/URG)、窗口(16b,可经窗口缩放扩到 1GB)、紧急指针、选项(20–60B,含 MSS/窗口缩放/SACK/时间戳)。
1.2 连接管理状态机
- 三次握手:CLOSED→SYN_SENT(SYN)→SYN_RCVD(SYN+ACK)→ESTABLISHED(ACK)。建立双向 ISN 与窗口。
- 四次挥手:ESTABLISHED→FIN_WAIT_1(FIN)→FIN_WAIT_2(ACK)→TIME_WAIT(收 FIN 后发 ACK,等 2×MSL)→CLOSED;对端 LAST_ACK→CLOSED。
- 深究 为什么三次不是两次:防止"已失效的连接请求"被服务器接受而浪费资源;同时确认双向收发能力。
- 深究 TIME_WAIT:主动关闭方停留 2×MSL(Linux 默认 MSL=60s,实际 net.ipv4.tcp_fin_timeout 控制 FIN_WAIT 超时)。作用:① 保证最后 ACK 到达(否则对端重发 FIN);② 让旧报文过期,避免新连接(同四元组)误收。短连接风暴时 TIME_WAIT 占满端口 → 用
tcp_tw_reuse(客户端安全)、连接池/长连接缓解。 - 深究 同时打开/关闭、SYN Flood(半连接队列
tcp_max_syn_backlog溢出;防御:SYN Cookie)、RST 立即断连(用于端口不可达、半打开连接探测)。
1.3 可靠传输机制
- 序列号 + 累计确认:确认号 = 期望收到的下一个字节序号。
- RTO(重传超时):基于平滑 RTT(SRTT)与 RTT 方差(RTTVAR)计算,RFC 6298:RTO = SRTT + max(G, 4×RTTVAR),下限通常 200ms 上限 120s。RTO 过大拖慢恢复,过小导致伪重传。
- 快速重传:收到 3 个重复 ACK(DupACK)→ 立即重传丢失段,不等待 RTO。
- SACK(Selective ACK,RFC 2018):通过 TCP 选项报告已收到的非连续数据块 [left:right),发送方只重传真正缺失的段,避免"重传已收到的数据"造成吞吐崩塌。配合 D-SACK 可检测伪重传/重排。
- 重排与伪重传:乱序会触发 DupACK,可能误触发重传;TS 选项可区分重传与重排。
1.4 流量控制 vs 拥塞控制
流量控制(端到端,防接收方溢出)
- 滑动窗口 rwnd,由接收方 Advertised Window 告知(基于接收缓冲空闲)。
- 窗口缩放选项(RFC 1323)把 16b 窗口扩到最大 ~1GB(高 BDP 必需)。
- 接收方可通过"零窗口"暂停;发送方周期性零窗口探测。
拥塞控制(防网络过载)
- 拥塞窗口 cwnd,发送上限 = min(cwnd, rwnd)。
- 慢启动(指数,cwnd 从 initcwnd 起)、拥塞避免(线性)、快速重传/恢复。
- 现代还有 BBR(基于模型)、以及 RoCE 的 DCQCN(见第 8 章)。
发送窗口(字节) = min(cwnd, rwnd) ;理论吞吐上限 ≈ 窗口 / RTT(受 BDP 约束)
1.5 TCP 拥塞算法(与第 8 章呼应)
| 算法 | 核心 | 增窗/降窗 | 适用 |
|---|---|---|---|
| Reno | AIMD,丢包信号 | 加性增、乘性减(×0.5) | 低 BDP 传统网络 |
| CUBIC | 凹函数,逼近上次 cwnd 后再探测 | 无丢包立方增、丢包减半 | Linux 默认,高 BDP |
| BBR | 估计 BtlBw 与 RTprop,按模型控发送 | 不依赖丢包,ProbeBW/ProbeRTT | 长肥管道、有损/缓冲大 |
| Vegas/BBRv2 | 基于 RTT 变化 | RTT 增大即降速 | 公平性改进 |
深究 Bufferbloat:路由器缓冲过大 → 排队延迟使 RTT 暴涨而 TCP 仍以为"没丢"继续发 → 实际吞吐没升、延迟崩。解决靠 AQM(CoDel/FQ_Codel)主动丢包、或用 BBR(不依赖丢包信号)。验证常测"满载下的 RTT/P99"而非只看带宽。
1.6 MTU / MSS / 分片 / PMTUD
MSS = MTU − 20(IP) − 20(TCP);握手时通过选项协商。Linux 默认tcp_base_mss~512,路径 MSS 探测会下调。- PMTUD(RFC 1191/8201):发送 DF=1 的大包,中间若 MTU 不够则回 ICMP "Fragmentation Needed",源端据此减小(黑洞问题:ICMP 被防火墙挡 → 大包静默丢)。
- PLPMTUD(RFC 4821):不依赖 ICMP,用探测包逐步试,更安全(NAT/防火墙友好)。
- IPv6 禁止中间分片,强制源端 PMTUD;UDP over IPv6 校验和必须开启。
- MSS Clamping:在 PPPoE/VPN 场景由中间设备改写 TCP MSS 选项,避免 PMTUD 失败导致的大包问题。
1.7 地址、子网与邻居
- CIDR/子网:
/24 = 256 地址(可用 254),/26=64(62);借位计算网络号/广播/可用数。验证常出"给定两个 IP 是否同子网"或"规划 VLAN 网段"。 - ARP(IPv4):广播请求→单播应答,免费 ARP 用于冲突检测/主备切换刷新;NDP(IPv6)还含邻居不可达检测(NUD)与无状态地址自动配置(SLAAC)。
- ARP 表老化(Linux 默认 ~60–120s)、代理 ARP、ARP 泛洪/欺骗缓解(DAI、静态绑定)。
- QUIC 一提:基于 UDP 的多路复用传输,内置加密与 0-RTT,规避 TCP 队头阻塞——是"UDP 之上重建可靠传输"的代表,理解其动机有助于理解为什么 RoCE 也选 UDP 承载。
面试金句:"TCP 用 rwnd 做端到端流量控制、cwnd 做拥塞控制,二者取小为发送上限;我判定网络健康不只看带宽,更看 RTT、重传率与 P99 尾延迟——因为 AI/HPC 的瓶颈常是尾延迟而非平均吞吐。"
2. Ethernet 以太网(深度)
芯片/驱动/线缆层验证绕不开以太网。重点在帧结构、编码、FEC、速率、流控与 offload。
2.1 帧结构与时序
- 前导码(7B, 10101010) + SFD(1B, 10101011) + 目的MAC(6) + 源MAC(6) + 类型/长度(2) + 数据(46–1500) + FCS(4, CRC32)。
- IFG(帧间隙) 12B、前导 8B 计入线路开销;因此"线速"实际效率 = 数据 / (数据+20B 开销+帧间隙)。小包效率低(64B 帧仅 ~64/(64+20)≈76%)。
- 最小帧 64B(含 FCS)保证 CSMA/CD 冲突检测(现代全双工已不需,但最小帧仍保留);不足则填充。
- 类型字段:0x0800=IPv4,0x0806=ARP,0x86DD=IPv6,0x8100=VLAN,0x8847=MPLS,0x8915=RoCEv1,0x0800+UDP/4791=RoCEv2。
2.2 速率、编码与 FEC
| 速率 | 标准 | 编码/调制 | 典型介质 |
|---|---|---|---|
| 1G | 1000BASE-T/SX/LX | 8b/10b 或 4D-PAM5 | 铜/光 |
| 10G | 10GBASE-SR/LR/CR/KR | 64b/66b | SFP+/DAC |
| 25/100G | 25GBASE / 100GBASE | 64b/66b, RS-FEC | SFP28/QSFP28 |
| 200/400G | 200/400GBASE | PAM4 + RS-FEC(544,514) | QSFP56/DD |
- SerDes 与编码:64b/66b 把 64 位数据块加 2 位同步头;PAM4(4 电平)在 200G+ 用,带宽翻倍但 SNR 要求更高。
- FEC(前向纠错):光模块/芯片对信号误码做纠正。RS-FEC(Reed-Solomon,如 RS(528,514)、RS(544,514))比 FC-FEC 纠错更强、延迟略高;对长距/高速链路必需。验证关注:误码率(BER)、FEC 纠正计数(
ethtool -S的fec_corrected/fec_uncorrectable)。 - 线缆:DAC(直连铜,短距廉价)、AOC(有源光)、光模块(SR 短距多模 / LR 长距单模);注意兼容性、功率、温区。
2.3 自协商、双工与统计
- 自协商(Clause 28/73):两端协商速率/双工/流控能力;一端固定一端自适应 → 双工不匹配 → 高吞吐时冲突/late collision/CRC 错误飙升(经典故障)。
- 关键计数:
FCS errors(帧校验失败,物理层/双工问题)、align errors、symbol errors、rx_missed/dropped(缓冲/CPU 跟不上)、pause frames tx/rx(流控触发)。 - 1588 PTP:精确时间同步(硬件时间戳),对金融/工业/某些同步场景必需;验证关注时钟精度、sync 报文路径延迟。
- MACsec(802.1AE):链路层加密,可选考点。
2.4 流控(与无损网络强相关)
- 802.3x 全局 PAUSE:发 PAUSE 帧(含暂停时长,单位 512bit 时间)让对端整端口停发 → 头阻塞,多优先级场景不适用。
- PFC(802.1Qbb):8 个优先级独立暂停,实现"按优先级无损"——RoCEv2 基石(第 8 章)。
- PAUSE 风暴/死锁风险:多级暂停级联、循环依赖 → 需看门狗与死锁检测。
网卡 Offload(性能验证必会)
- TSO/LSO(发送大段分片卸载)、LRO/GRO(接收合并)、UFO(UDP 分片卸载)。
- Checksum offload、RSS(多队列哈希)、RPS/RFS/XPS(软件队列亲和)。
- 验证坑:抓包看到"巨包"可能是 GRO 合并,不代表真实线上行为;offload 不一致两端会导致性能差。用
ethtool -k查看/开关。 - 中断聚合(interrupt moderation):
ethtool -C调 rx-usecs/tx-usecs,平衡延迟与 CPU;RDMA 常用 adaptive moderation。
3. VLAN 与 L2 交换(深度)
二层交换、隔离、防环与聚合是设备验证的高频考点。
- 802.1Q tag:TPID(0x8100) + PRI(3b, CoS 0–7) + CFI(1b) + VID(12b, 0–4095;0/4095 保留、1 默认)。
- 端口类型:Access(单 VLAN,去标签)、Trunk(多 VLAN 带标签,有 Native VLAN)、Hybrid(华为:可逐 VLAN 指定 tagged/untagged)。
- MAC 学习:基于源 MAC + 入端口建表(有老化,默认 300s);未知单播/广播/组播泛洪;CAM/TCAM 表项容量是规模测试点。
3.1 生成树(防环)
| 协议 | 收敛 | 机制要点 |
|---|---|---|
| STP (802.1D) | 30–50s | BPDU,选 Root→RP→DP,阻塞冗余;端口状态 Listening/Learning/Forwarding |
| RSTP (802.1w) | 秒级 | Proposal/Agreement,边缘端口立即转发,点到点快速切换 |
| MSTP (802.1s) | 秒级 | 多实例(CIST + MSTI),不同 VLAN 映射不同树,支持负载分担 |
- 选举:Bridge ID(优先级+MAC)最小为 Root;到 Root 开销最小为 Root Port;每段 Designated Port 转发。
- BPDU Guard/Root Guard/Loop Guard:防非法交换机/环路。
3.2 链路聚合 LACP
- 802.3ad LACP:active/passive 模式,LACPDU 协商;聚合口逻辑成一条。
- 哈希选口(src/dst MAC、IP、L4 端口组合)——单流不会超过单链路带宽;验证点:哈希均匀度、故障切换(failover)时间、跨框 MLAG。
- MLAG / MC-LAG / vPC:跨两台交换机做同一聚合,实现双活上行、消除 STP 阻塞,是数据中心接入常用(与 STP 互斥思路)。
3.3 VXLAN 与 EVPN(overlay 大二层)
- VXLAN:MAC-in-UDP(目的端口 4789),24bit VNI(1600 万),外层 IP=VTEP 地址;解决 VLAN 数量限制与跨子网二层延伸。
- VTEP:隧道端点(常在 Leaf 或 DPU/智能网卡);BUM(广播/未知单播/组播)流量靠头端复制(HER)或 underlay 组播。
- EVPN 控制面(RFC 7432 / 8365):用 BGP 多协议扩展分发可达性,替代泛洪学习:
- Type-2(MAC/IP 通告,含 /32 IP 路由)、Type-3(Inclusive Multicast,BUM 复制)、Type-5(IP 前缀,外部/租户路由)、Type-1(EVI/ES 自动发现,用于多归属)。
- 多归属(Multi-homing)/ ESI:一台 host 双上联两台 Leaf,EVPN 通过 ESI 实现全活与快速收敛(类似 MLAG 的控制面方案)。
- Anycast VTEP / Anycast Gateway:分布式网关,任意 Leaf 都能做默认网关,优化东西向。
易错:Trunk allowed-VLAN 两端不一致 → 某 VLAN 不通;Native VLAN 不匹配 → VLAN hopping 隐患;VXLAN 封装额外 ~50B(14 MAC + 8 VXLAN + 20 IP + 8 UDP + 外层 MAC/FCS),内部 MTU 需相应调小或开 GSO,否则大包被丢弃。
4. L3 路由与交换(深度)
4.1 转发决策与表结构
- 最长前缀匹配(LPM):路由查表选匹配前缀最长者;底层常是 trie/树或 TCAM(交换机硬件)。
- 路由来源优先级(AD):直连(0) > 静态(1) > eBGP(20) > OSPF(110) > IS-IS(115) > RIP(120) > iBGP(200)。同协议比 metric/cost。
- CEF/FIB:控制面 RIB 算出后下发转发面 FIB,硬件查表线速转发。
4.2 OSPF / IS-IS
- OSPF:链路状态,域内 SPF(Dijkstra);area 0 为骨干,ABR 汇总;LSA 类型(1 Router、2 Network、3 Summary、4 ASBR、5 External、7 NSSA);cost = 100Mbps/带宽。
- IS-IS:链路状态,用 CLNS 寻址(不依赖 IP),TLV 扩展性强,运营商/超大规模 DC 常用;Level-1/Level-2 分层。
- 收敛优化:BFD(毫秒级故障检测,见下)、SPF 节流、增量 SPF(iSPF)、部分路由计算(PRC)。
4.3 BGP 深究
- 路径矢量:用 AS_PATH 防环、表达路径;eBGP(跨 AS,TTL=1 默认)、iBGP(同 AS,next-hop 默认不变需
next-hop-self,要求全互联或用 RR/联盟)。 - 选路规则(记忆前几条):最高 LOCAL_PREF → 最短 AS_PATH → 最低 Origin → 最低 MED → eBGP>iBGP → 最低 IGP metric → 最小 Router-ID。LOCAL_PREF 影响出 AS 方向,MED 影响进邻居 AS。
- Route Reflector:替代全互联,RR 反射路由(含 Cluster-ID 防环);Add-Path 可发多条等价路径(配合 ECMP)。
- Community:BGP 团体属性做策略标记(如 NO_EXPORT、黑洞);BGP unnumbered:用 IPv6 link-local 建邻居,简化 IP Fabric 配置。
4.4 ECMP、BFD、VRF、GRE、SR
- ECMP:等代价多路径,哈希选路(L3/L4);局限:单流不叠加、哈希极化、大象流碰撞;优化:多路径一致性哈希、flowlet switching、自适应路由(NVIDIA 在 IB/RoCE 上支持)。
- BFD:双向转发检测,毫秒级(如 3×100ms=300ms 或更短)发现链路/邻居故障,与 BGP/OSPF 联动快速收敛。
- VRF / VRF-lite:虚拟路由转发实例,实现租户/业务路由隔离(数据中心 L3 VPN 基础)。
- GRE / 隧道:通用封装,常做 overlay 或 IPv6 over IPv4;注意 MTU(再减 24B 头)。
- Segment Routing(SRv6 / SR-MPLS):源路由,用 segment list 指定路径,简化 TE 与 SFC;数据中心/运营商趋势(加分了解)。
- Graceful Restart / NSR/NSF:控制面重启不丢转发,HA 关键。
5. 数据中心网络架构(深度)
5.1 三层架构 vs Spine-Leaf(CLOS)
- 传统三层:Core—Aggregation(Dist)—Access;oversubscription 高、东西向绕远、扩展差。
- Spine-Leaf(Clos 胖树):Leaf 接服务器、Spine 全互联;任意两点≤3 跳;任意 Leaf 间带宽一致;无阻塞或可控 oversubscription;天然 ECMP 与水平扩展。
- 带宽数学:若每 Leaf 上联 N 条 × 速率 r,下联服务器总带宽应 ≤ N×r 以保无阻塞;常见 oversubscription 20:1 / 10:1 / 3:1 / 1:1(无阻塞)。
- 角色:ToR(Top-of-Rack) 每机柜一台;Spine 纯转发;EOR(End-of-Row)集中式。现代大集群常 3-stage 或 5-stage(超大规模)。
5.2 IP Fabric + EVPN-VXLAN
- Underlay:三层 IP Fabric,eBGP/OSPF + ECMP(常 BGP unnumbered),提供任意 Leaf 可达。
- Overlay:VXLAN 大二层;EVPN 控制面分发 MAC/IP(Type-2)、BUM(Type-3)、外部路由(Type-5)。
- 分布式 Anycast Gateway:每个 Leaf 配同一任意播 IP 作默认网关,优化东西向、避免集中网关瓶颈。
- 开源/白盒:SONiC(微软开源网络 OS,大量云厂商采用)、Cumulus、Stratum;验证常涉及 SONiC 行为。
5.3 无损数据中心
- AI/存储要"零丢包",靠 PFC + ECN + ETS + DCQCN(第 8 章)。在 Ethernet 跑 RoCE 需整链路无损。
- 验证重点:PFC 阈值/headroom 设置、ECN 标记点、CNP 回流、PFC 风暴/死锁防护、incast 表现。
深究 机柜布线与扩展:现代 AI 集群常采用 Rail-optimized(轨道优化)拓扑——同一"轨道"内的 GPU 通过同一组交换机互联,使集合通信(尤其 all-to-all)的流量尽可能留在高性能轨道内,减少跨轨道跳数。这与传统 fat-tree 互补,是大规模训练集群的关键设计点(NVIDIA DGX/Quantum 方案)。
6. Linux 网络与系统(深度)
6.1 收发包路径(内核栈)
- 收包:NIC DMA → ring buffer → NAPI(中断+轮询混合,
poll批量收)→ GRO 合并 → IP/TCP 处理 → socket 缓冲 → 应用recv。 - 发包:应用
send→ socket 缓冲 → TCP 分段(TSO)→ 驱动 → NIC DMA → 线路。 - sk_buff(skb):核心报文结构体;零拷贝(sendfile/MSG_ZEROCOPY)、busy_poll/busy_read 降低延迟(但耗 CPU)。
6.2 多队列与亲和
- RSS:网卡用 Toeplitz 哈希把不同流分到不同收队列(与 CPU 绑定)→ 并行、避免单核瓶颈。
- RPS/RFS/XPS:内核软件实现类似效果;RFS 还做流→应用 CPU 亲和以降低缓存 miss 与延迟;XPS 绑发送队列到 CPU。
- 中断绑核:
/proc/irq/<n>/smp_affinity或irqbalance;软中断在/proc/softirqs。单核 softirq 打满是常见 PPS 瓶颈。
6.3 内核参数调优(sysctl,附典型值)
# 套接字缓冲(高 BDP 需调大)
net.core.rmem_max = 16777216 # 16MB 上限
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216 # min default max
net.ipv4.tcp_wmem = 4096 65536 16777216
# 拥塞与重传
net.ipv4.tcp_congestion_control = cubic # 或 bbr
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_retries2 = 8 # 决定超时(指数退避后)
net.ipv4.tcp_slow_start_after_idle = 0 # 长连接保持 cwnd
# 连接
net.core.somaxconn = 4096
net.ipv4.tcp_tw_reuse = 1 # 客户端 TIME_WAIT 复用
net.netfilter.nf_conntrack_max = 1000000 # 连接跟踪表
# 队列
net.core.netdev_max_backlog = 10000
net.core.netdev_budget = 600
带宽延迟积 BDP = 带宽(bit/s) × RTT(s);例 100Gbps × 100µs = 1.25MB → 缓冲须 ≥ BDP 才能填满
6.4 工具链(按场景)
| 类别 | 命令 | 用途 |
|---|---|---|
| 配置 | ip addr/link/route/neigh/netns | 地址/链路/路由/邻居/命名空间 |
| 连通 | ping/mtr/traceroute | 可达性、逐跳延迟/丢包 |
| 套接字 | ss -tunap / netstat -s | 连接状态、重传/错包统计 |
| 抓包 | tcpdump / tshark | 报文级(Wireshark 图形) |
| 网卡 | ethtool -S/-k/-l/-C | 统计/offload/队列/中断聚合 |
| 流量 | iperf3 / netperf | 吞吐/带宽 |
| 性能 | sar/perf/mpstat/top | CPU/中断/软中断/系统瓶颈 |
| QoS | tc qdisc/clsact | 整形/限速/优先级/镜像 |
6.5 网络命名空间与虚拟设备
ip netns:隔离网络栈,模拟多主机/多租户;veth pair跨 ns 桥接;bridge/OVS 做软桥。- macvlan/ipvlan:一物理网卡虚多 MAC/IP;
vlan subinterface(eth0.100)做 802.1Q。 - Linux VRF:
ip vrf实现路由隔离(等同交换机 VRF),测试多租户常用。
6.6 iptables / nftables / conntrack
- 表:filter(INPUT/FORWARD/OUTPUT)、nat(PREROUTING/POSTROUTING)、mangle(改 TOS/标记)。
- conntrack:NAT/状态防火墙核心;表满 → 新连接被丢(
nf_conntrack_max/conntrack -S)。 - nftables:新一代统一框架,规则集更高效;K8s kube-proxy 早期 iptables、现多用 IPVS(哈希表,大规模性能好)。
6.7 eBPF / XDP(趋势加分)
- eBPF:内核内可编程,做可观测(bpftrace/bcc)、网络策略(Cilium)、负载均衡,无需改内核。
- XDP:驱动层(NIC 收包最早)运行 eBPF,可做高速丢包/负载均衡/DDOS 防护,接近 DPDK 性能但更灵活。
- DPDK:用户态轮询、绕过内核协议栈,用于高性能软交换/NFV(OVS-DPDK)。
7. RDMA / InfiniBand / RoCE(深度)
本岗位最大差异化考点,也是"stand out"第一项。务必吃透原理、传输类型、无损依赖与调优。
7.1 原理与价值
- RDMA = 远程直接内存访问:NIC 直接读写远端应用内存,绕过内核、绕过 CPU;延迟亚微秒~1µs 级,CPU 占用近零,可跑满 100/200/400G。
- 对比传统 TCP socket:省内核拷贝、上下文切换、协议栈处理 → 低延迟/高吞吐/低 CPU。
7.2 三种 RDMA 传输
| 类型 | 承载 | 特点 |
|---|---|---|
| InfiniBand (IB) | 专用 IB 网络(天然无损) | 最低延迟、最完整语义;需 IB 网卡/交换机,成本高 |
| RoCE v1 | Ethernet L2(EtherType 0x8915) | 仅同二层;已基本被 v2 取代 |
| RoCE v2 | UDP/IP(端口 4791) | 可路由、跨子网;依赖以太网无损 |
| iWARP | TCP | 基于 TCP 可靠但延迟偏高,少用于 AI/HPC |
深究 RoCEv2 报文头: Ethernet(14) + IP(20, DSCP 用于映射优先级) + UDP(8, dport=4791) + RoCEv2(加 GRH 16B 用于全局路由) + BTH(Base Transport Header: opcode/PSN/QP) + 扩展(RETH/Atomic) + payload + ICRC + FCS。DSCP→PCP 映射决定它进入交换机哪个优先级队列(无损队列)。
7.3 InfiniBand 架构要素
- Subnet Manager (SM):IB 必备,负责 LID 分配、路由计算(min-hop/UPDN/fat-tree/adaptive)、分区(PKey)、多播;OpenSM 常见。
- LID/GID/SL/VL:LID 本地标识、GID 全局(含 GID Index 区分 RoCE v1/v2/IPv6)、SL 服务等级→VL 虚拟通道(避免头阻塞)。
- Fat-tree / Adaptive Routing:IB 交换机支持基于拥塞的 adaptive routing,缓解 incast 与哈希不均。
7.4 Verbs 核心对象与语义
对象
- QP(Queue Pair)= SQ + RQ,通信端点;需经 RTS 状态才收发。
- CQ:完成队列,报告 WR 完成( Poll CQ 获取 CQE)。
- MR:内存注册(锁页 + lkey/rkey);ODP(On-Demand Paging)免预注册、支持换页。
- SRQ:共享接收队列,省内存。
操作 / 传输类型
- Send/Recv 双边;RDMA Write/Read/Atomic 单边(Remote CPU 不介入,精髓)。
- WC(Work Completion)含 opcode/状态(SUCCESS/RETRY_EXC_ERR 等)。
- QP 类型:RC(可靠连接,最常用)、UD(不可靠数据报,支持多播)、UC、XRC(跨进程共享)。
- WR / SGE / doorbell:Work Request 含 scatter-gather 列表;门铃(doorbell)通知 NIC 取 WR。
- RDMA CM:连接管理(类比 socket connect/accept),协商 GID/QP;也可基于 UDP 自建。
- Atomic:Compare-and-Swap / Fetch-and-Add,分布式同步原语。
7.5 GPUDirect 与上层库
- GPUDirect RDMA (GDR):GPU 显存经 PCIe P2P 直接给 NIC DMA,绕过 CPU 与系统内存 → GPU 间通信零拷贝。
- GPUDirect Storage:存储直接到 GPU 显存。
- UCX:统一通信框架,自动选最快路径(NVLink/IB/RoCE/shared mem);MPI(OpenMPI/Intel MPI)与 NCCL 底层常用 verbs/UCX。
7.6 性能基准(命令深)
# 延迟(小消息,µs)
ib_send_lat / ib_write_lat / ib_read_lat -d mlx5_0 -F -s 64
# 带宽(大消息,Gb/s),可多 QP/多端口
ib_write_bw -d mlx5_0 -F --report_gbits -q 8 -p 1,2,3,4
# 双向 / 多流
ib_send_bw -d mlx5_0 -F -b # bidirectional
# 状态与计数器
ibstat ; ibstatus ; ibv_devinfo -d mlx5_0
perfquery -x # 扩展端口计数器(符号错、RNR、丢包)
dmesg | grep mlx # 驱动/固件日志
验证要点:① 延迟分位数(P50/P99)比平均有意义;② 带宽-消息大小曲线(小消息受延迟限、大消息受带宽限,拐点在 MTU 附近);③ 多 QP/多核扩展性(单 QP 受单核限制);④ 丢包/重传计数器(RoCE 拥塞下 RETRY_EXC_ERR、NAK);⑤ CPU 占用(RDMA 应极低)。
面试金句:"RoCEv2 跑在 UDP 上却要提供可靠无损传输,靠的是以太网侧 PFC(按优先级暂停)+ ECN(提前拥塞标记)+ ETS(带宽分配)+ DCQCN(端到端拥塞控制);整条链路都得配置成无损且 DSCP→优先级映射正确,否则任一环节缺失就会出现随机丢包和性能悬崖。"
8. 拥塞控制与性能调优(深度)
8.1 TCP 拥塞控制(机制与公式)
- 慢启动:cwnd 从
initcwnd(Linux 默认 10 段)起,每收到 ACK 加 1(实际按 ACK 数),指数增,直到 ssthresh。 - 拥塞避免:每 RTT 加 1 段(线性)。丢包(DupACK)→ ssthresh=cwnd/2,cwnd 重置(Reno)/ 进入快速恢复(CUBIC)。
- CUBIC:cwnd 随距上次最大 cwnd 的时间呈凹函数增长,公平性/高 BDP 好;BBR:测 BtlBw 与 RTprop,按 1×BDP 发送,ProbeBW/ProbeRTT 周期探测,不依赖丢包信号(高损链路更稳,但可能抢占 buffer → 与 CUBIC 混跑需调权重)。
- AQM:RED/WRED/CoDel/FQ_Codel 主动在队列溢出前丢/标记,防 bufferbloat。
8.2 以太网无损三件套(深)
PFC (802.1Qbb)
- 8 优先级独立暂停(pause 帧含 prio + 时长)。
- 阈值:xoff(启用暂停)与 xon(恢复);需 headroom 缓冲暂停帧到达前已发的包。
- 风险:HOL 阻塞、PFC 风暴、死锁(循环依赖)。
ECN (RFC 3168)
- 路由器拥塞时标 IP ECN=CE;接收端在 ACK 回 ECE;发送端降速——丢包前反应。
- 需两端协商(TCP 握手 ECN);交换机 WRED 按队列深度标记。
ETS (802.1Qaz)
- 按优先级分配带宽份额(严格/加权),避免某优先级饿死。
- 配合 PFC 形成"无损优先级 + 尽力优先级"共存的 QoS 体系。
8.3 DCQCN(RoCEv2 端到端拥塞控制,深)
- 闭环:交换机 ECN 标记 → 接收端生成 CNP(Congestion Notification Packet) 回发送端 → 发送端对某 QP 降速。
- 发送端状态机:rate 在 [min, max] 间;收到 CNP → 按
rate = rate × (1 - α/2)(α 为拥塞强度,指数加权移动平均 EWMA);周期性rate += β × rt加法增、超时乘法探测。 - 参数调优:CNP 发送间隔(防 CNP 风暴)、α 增益、DCQCN 目标速率、NP 定时器;厂商文档常给推荐值(如 Mellanox 的 recommended DCQCN profile)。
单流理想速率 ≈ 2 × ECN 标记阈值带宽 / RTT(经验上要留 headroom)
8.4 其他 RDMA 拥塞算法(加分)
- TIMELY:基于 RTT 变化(RTT 增大=拥塞)降速,不依赖 ECN,对延迟敏感。
- HPCC(High Precision Congestion Control):利用 INT(In-band Network Telemetry)获取精确链路负载,精准调速,收敛快、公平好。
8.5 典型问题与调优
- 微突发(microburst):毫秒级尖峰超缓冲 → 即使平均不拥塞也丢包;靠大/智能缓冲、PFC、ECN、突发吸收。
- PFC 死锁/活锁:多优先级循环等待;需死锁检测/定时释放、优先级依赖图设计。
- 参数组合:PFC xoff/xon 阈值、ECN 标记阈值(start/stop)、CNP 频率、DCQCN α、QP 数、中断聚合、buffer 分配。
- 验证思路:用流量发生器制造 incast,对比启用前/后吞吐稳定性与尾延迟;确认 CNP 是否回流、暂停帧是否对称。
9. AI 工作负载网络(深度)
9.1 分布式训练范式
- 数据并行(DP):每卡完整模型、不同数据分片,梯度 AllReduce 同步——通信量 = 模型大小。
- 模型并行 / 张量并行(TP):单层切多卡,激活值需通信(forward/backward 内嵌通信)。
- 流水线并行(PP):模型按层切到不同设备,micro-batch 流水,通信在阶段边界。
- ZeRO(DeepSpeed):优化器状态/梯度/参数分片,降显存;ZeRO-3 通信量更大。
- MoE(专家混合):路由专家分布在多卡 → 大量 All-to-All 通信(对网络拓扑极敏感)。
9.2 集合通信算法
| 原语 | 作用 | 典型算法 |
|---|---|---|
| AllReduce | 各节点梯度汇总后全拿到 | Ring(带宽优)、Tree(延迟优)、Halving-Doubling |
| AllGather | 收集各分片拼全量 | Ring/Tree |
| ReduceScatter | 汇总并分散结果 | Ring |
| Broadcast | 一对多分发 | Tree/Ring |
| All-to-All | 每节点发不同数据给其他 | 直接/分块(MoE 关键) |
- Ring AllReduce:每节点只与两邻居传 2(N-1)/N 数据,带宽最优,延迟随 N 线性增。
- Tree AllReduce:分治聚合,延迟 log 级、对延迟敏感;需多端口/多树。
- NCCL:NVIDIA 集合通信库,自动拓扑检测(NVLink 机内优先、再网络),选 ring/tree/collNet,支持多 channel 并行。
9.3 互联带宽与拓扑
- NVLink / NVSwitch:机内 GPU 高速互联(NVLink 4 ~900GB/s 双向、NVSwitch 全互联);NCCL 优先走 NVLink。
- InfiniBand:HDR(200G)/NDR(400G)/XDR(800G) 代际;RoCE 基于以太网(需无损)。
- Fat-tree / Rail-optimized:让任意 GPU 对带宽一致,避免 straggler;rail 优化使 all-to-all 留在高性能轨道内。
- 网络即"扩展的 NVLink":机间带宽/延迟直接决定多机扩展效率。
9.4 流量特征与影响
- 大象流:训练集合通信的大带宽持久流;老鼠流:存储/管控小突发。ECMP 哈希可能撞流 → 需 fat-tree 均衡 / 自适应路由 / 拥塞感知。
- 通信-计算重叠:NCCL 用 CUDA streams 重叠,隐藏通信;网络慢则 bubble 增大。
- 量化影响:集体通信常占训练 10%–40%;网络差 → GPU 空等 → 利用率降。指标:通信时间占比、迭代时间、强/弱扩展线性度。
深究 网络如何成为瓶颈:当"最慢一条流"决定全局步调(同步 SGD 的 barrier 语义),某一对 GPU 间链路拥塞/故障降速即拖垮整体。因此 AI 集群验证不仅看平均带宽,更要看最差对(worst-pair)带宽与 P99 集体通信延迟,以及故障切换后能否快速恢复线性度。
10. HPC 与基准测试(深度)
- MPI:并行程序标准;OpenMPI/MPICH/Intel MPI;底层常用 IB/RoCE 提供低延迟。集合通信(Barrier/Bcast/Allreduce/Alltoall)与 P2P。
- 基准工具:
- OSU Micro Benchmarks (OMB):osu_latency/osu_bibw/osu_allreduce,最常用 micro-bench。
- perftest(ib_*):RDMA 专用延迟/带宽。
- iperf3 / netperf:TCP/UDP 通用。
- HPL / LINPACK:浮点峰值(配合 MPI,测整体算力);HPCG 测访存受限性能。
- NCCL-tests:all_reduce_perf / all_gather_perf 等,针对 GPU 集合通信。
- 扩展性与 roofline:强扩展(问题规模固定、加节点,理想加速比=节点数)、弱扩展(每节点规模固定、加节点,性能应不变)。Roofline 模型(计算强度 vs 算力/带宽上限)定位瓶颈在算力还是带宽。
- IB Fabric 调优:OpenSM 路由算法(min-hop/UPDN/fat-tree/adaptive)、分区 PKey、多播;自适应路由缓解 incast。
- 调度:Slurm/PBS 作业调度,节点亲和、GPU/网络拓扑感知分配(拓扑感知调度减少跨交换机流量)。
- 关键指标:延迟(µs)、带宽(Gb/s)、消息速率(PPS)、集合通信时间、可扩展性、效率(%)。
验证方法学:先 micro-bench 找单流极限 → 多流/多节点看聚合与公平性 → 真实负载(HPL/NCCL-tests)看线性度;关注 P99、抖动、可重复;每次固定流量模型与背景负载。
11. 虚拟化与容器(深度)
11.1 KVM / QEMU / SR-IOV
- KVM:内核模块硬件辅助虚拟化;QEMU 设备模拟;virtio 半虚拟化网卡(split/packed ring)。
- SR-IOV:物理网卡切 PF(管理)+ 多 VF(直接 passthrough 给 VM,经 IOMMU/VT-d)→ 近裸金属性能,是 RDMA/低延迟 VM 关键;需 VF 驱动、信任 VF、速率限制。
- vhost-net / vhost-user:内核/用户态处理 virtio 后端,OVS-DPDK 属 vhost-user,性能高。
11.2 虚拟交换与网络虚拟化
- Linux bridge / OVS:宿主机内 VM 互通、VLAN、隧道;OVS 有 kernel datapath 与 userspace(DPDK) datapath。
- VXLAN / Geneve:overlay 大二层;硬件 offload(如智能网卡将 VXLAN 封装卸载到 NIC)。
- DPDK:用户态轮询网卡、绕过内核,NFV/高性能软交换。
11.3 容器与 Kubernetes 网络(深)
- 容器隔离:Linux namespace(net/pid/mnt 等)+ cgroups;veth pair 连容器与宿主 bridge。
- CNI:容器网络接口,插件负责 Pod IP 与连通(Calico/BGP 或 overlay、Flannel/VXLAN、Cilium/eBPF、Weave)。
- Pod 网络模型:每 Pod 独立 IP、跨节点互通、Service 虚拟 IP、外部可达;kube-proxy 用 iptables 或 IPVS(哈希,大规模优)做 Service DNAT 与负载均衡。
- NetworkPolicy:微隔离(默认全通,需 CNI 支持)。
- Cilium / eBPF:高性能、可观测、L3-L7 策略,趋势。
- RDMA/SR-IOV in K8s:Device Plugin 暴露 VF/GPU;Multus 多网卡(管理网 + RDMA 网);RDMA 设备插件(如 k8s-rdma-device-plugin)。
验证要点:容器 overlay 多一跳 NAT/封装 → 额外延迟与 MTU 问题(VXLAN 占 50B → 内部 MTU 建议 1450 或开 GSO);SR-IOV + RDMA 在 K8s 经 Device Plugin 暴露,验证需确认 VF 透传、QP 可达、PFC 在物理网生效。
12. 测试方法论(深度)
12.1 测试类型全景
- 功能(Functional):特性按规格;正向/负向/边界/一致性/互操作(多厂商)。覆盖协议一致性(如 RFC 符合度)。
- 回归(Regression):变更后旧功能不被破坏;需基线 + 自动化 + 门禁;每次 bug 沉淀为回归用例。
- 性能(Performance):吞吐、延迟、PPS、抖动、CPU;看重分位数 P99/P99.9 与稳定性(无抖动/无退化)。
- 规模化(Scale):MAC/ARP/路由表项、会话数、VLAN/VNI、节点数、流数上限与拐点(性能衰减曲线)。
- 其他:压力/soak(长时间)、HA/failover(链路/电源/进程 down)、故障注入、一致性(状态机)、互操作。
12.2 标准化测试基准(RFC)
| 标准 | 测什么 |
|---|---|
| RFC 2544 | 网络设备基准:吞吐、延迟、丢包、背靠背(frame loss) |
| RFC 2889 | 二层交换基准:转发率、拥塞、地址缓存 |
| RFC 3918 | 组播基准 |
| RFC 6349 | TCP 吞吐量测试方法 |
12.3 测试设计工程
- 用例设计技术:等价类划分、边界值分析(如 MTU 边界 1500/1501、表项满/超)、决策表、状态转换(协议状态机)。
- 测试计划模板:目标 / 范围 / 拓扑 / 通过判据 / 环境 / 风险 / 进度。通过判据必须量化(如"100G 线速零丢包、P99<X µs、扩展线性度>90%")。
- 可追溯性矩阵:需求 ↔ 用例 ↔ 结果,证明覆盖。
- 覆盖率:功能覆盖、代码/路径覆盖(白盒)、协议状态覆盖。
12.4 自动化架构
- 框架:pytest(灵活、Python 主流)、Robot Framework(关键字驱动,网络测试常见)、unittest。
- 设备控制:SSH / Netconf / REST / gNMI(gRPC) / 厂商 SDK/CLI。
- 流量发生器:TRex(stateful/stateless、可重放 pcap)、pktgen(内核高 PPS)、Scapy(任意报文构造)、iperf3。
- CI/CD:把回归套件接入流水线(门禁拦截);报告(HTML/Allure);失败自动归档抓包/日志。
- 测试床即代码(testbed-as-code):Ansible/拓扑描述驱动重建,保证可重现。
经验法则:把"人肉点击"用例变成"参数化 + 断言 + 报告"的自动化;把每次发现的 bug 沉淀成回归用例,这是验证团队最大的资产。区分"验证通过"与"验证充分"——覆盖设计比用例数量更重要。
13. 故障排查与 RCA(深度)
13.1 结构化方法论
- 分层定位:物理→链路→网络→传输→应用;或二分法(一半链路、一半节点)缩小范围。
- 关键提问:不通还是慢?持续还是间歇?单流还是所有流?单向还是双向?新出现还是一直?
- 假设—验证循环:提假设 → 设计最小复现 → 收集证据(计数器/抓包/日志)→ 证伪/证实。
13.2 工具链(按症状)
| 现象 | 工具 |
|---|---|
| 不可达 | ping / mtr / traceroute / ip route / ip neigh |
| 丢包 | ethtool -S(FCS/丢弃)、ip -s link、netstat -s(TCP 重传)、perfquery(IB) |
| 慢/延迟高 | iperf3、ss -ti(RTT/重传)、sar(CPU/中断)、tcpdump |
| 乱序/重传 | tcpdump + Wireshark、netstat -s、bcc/bpftrace |
| RDMA 问题 | ibstat、perfquery、ibv_devinfo、dmesg(mlx) |
| 内核瓶颈 | perf、flamegraph、/proc/softirqs、sar -n |
13.3 抓包分析流程
- 两端同时抓(
tcpdump -i any -w),比对"发出 vs 收到",定位丢在哪一段。 - 查握手(SYN 是否回)、重传(DupACK/Retransmission)、乱序、窗口零、RST 原因。
- Wireshark:IO Graph 看吞吐、往返时间图、专家信息(Expert Info)汇总异常。
13.4 RCA 框架与事后复盘
- 5 Whys:连续追问逼近根因;鱼骨图:人/机/料/法/环分类假设;故障树(FTA):自上而下逻辑分解。
- 时延分解:把端到端延迟拆为处理/排队/传输/传播,定位大头。
- 无责复盘(Blameless Postmortem):记录时间线、影响、根因、行动项(含永久防护:回归用例 + 监控告警)。
- 混沌工程:主动注入故障验证韧性(见第 16 章)。
深究 分布式环境 debug:多节点问题要"时间对齐"(统一 NTP),用集中日志/追踪(OpenTelemetry)关联跨节点事件;网络问题优先用硬件计数器(交换机 port stat、IB perfquery)而非仅应用日志——计数器是"第一手证据",日志是"间接证词"。
14. 测试床搭建(深度)
- 拓扑建模:据客户规模选 Spine-Leaf 层数、端口数、oversubscription 比;保留"故障注入点"(断链/拔线/power cycle/进程 kill)。
- 客户环境仿真:命名空间/VM/容器模拟多租户;流量发生器模拟生产混合(大象+老鼠、南北+东西);按比例缩放(scale-down)保持"相对关系"而非绝对规模。
- 流量建模:用生产 pcap 回放(TRex)或流量画像(流大小分布、协议比);注意保真度。
- 可重现:Ansible/拓扑即代码统一下发,testbed-as-code;版本化配置与固件。
- 可观测:集中日志、遥测(gNMI Streaming Telemetry)、流量可视化。
- 混合仿真:物理设备 + 仿真器(GNS3/containerlab/网络 OS 容器)扩展规模或加速迭代。
验证陷阱:测试床"看起来像客户"但关键参数不同(MTU、buffer、ECMP 哈希、PFC 配置、DSCP 映射)会导致"实验室没问题、上线就炸"。做 testbed 要逐项对齐客户规格,并建立"规格差异清单"。
15. 可观测性与遥测(新增)
现代验证与运维离不开数据驱动;这是"分析并优化性能"的落地手段。
- SNMP:传统轮询(MIB),粗粒度、慢,逐渐被替代。
- gNMI / gRPC:现代模型驱动遥测(YANG 模型),支持 Streaming Telemetry(订阅推送,秒/亚秒级),比 SNMP 实时。
- INT(In-band Network Telemetry):交换机在数据面注入路径/队列/延迟信息,支撑 HPCC 等精确拥塞控制与故障定位。
- Streaming vs polling:流式主动推送减少轮询开销,适合高频率性能监控。
- 关键遥测指标:端口字节/包/丢/错、队列深度、PFC 暂停计数、ECN 标记、缓冲占用、ECMP 分布、流级延迟(eBPF)。
- 可视化/告警:Prometheus + Grafana、Elastic;基线 + 异常检测;把关键指标接告警(P99 超阈、丢包突增、PFC 风暴)。
验证用法:性能测试时用 telemetry 实时看"缓冲是否打满、是否触发 ECN/PFC、ECMP 是否均匀",比事后看计数器更能解释尾延迟来源。
16. 故障注入与混沌工程(新增)
验证"系统质量"不仅要测 happy path,更要测韧性。
- 故障注入类型:链路 down/up、端口错包注入、延迟/丢包(tc netem)、CPU/内存压测、进程 kill、电源循环、配置错误、时钟偏移(NTP)、固件/软件升级回滚。
- 工具:
tc netem(延迟/丢包/抖动/乱序)、iptables丢包、chaos-mesh(K8s 混沌)、自研故障脚本。 - 韧性指标:故障检测时间、收敛/切换时间(failover)、数据面中断时长、是否零/低丢包、恢复后是否回到基线性状。
- 混沌实验原则:先小范围、有稳态假设(steady state)、自动终止(blast radius 可控)、可回滚。
- 与验证结合:在性能压测中并发注入故障,验证"降级是否平滑、是否雪崩、恢复是否自动"。
面试加分点:能系统阐述"如何设计故障注入矩阵覆盖关键路径、如何量化韧性、如何把混沌结果转化为产品改进(监控+自动恢复+回归)",体现成熟的系统验证思维。
第二部分 · 面试题集(约 90 题,含深究)
先自答再看"参考答案要点"。标签:基础 进阶 场景 深究。
网络基础题
TCP 三次握手和四次挥手的过程?为什么需要 TIME_WAIT?基础
参考答案要点
- 三次握手:SYN(客户端 ISN)→ SYN+ACK(服务器 ISN+确认)→ ACK。确认双向收发能力与初始序列号。
- 四次挥手:主动方 FIN → 被动方 ACK → 被动方 FIN → 主动方 ACK。因 TCP 全双工,关闭需各方向独立。
- TIME_WAIT 持续 2×MSL:(1) 确保最后一个 ACK 到达对端(否则重发 FIN);(2) 让残留旧报文过期,不被新连接(同四元组)误收。主动关闭方进入。
- 追问:短连接高并发服务器 TIME_WAIT 过多?→
tcp_tw_reuse(客户端)、连接池/长连接、SO_LINGER 强制 RST(慎用)、调小tcp_fin_timeout。
流量控制和拥塞控制区别?cwnd 和 rwnd 怎么配合?基础
参考答案要点
- 流量控制:防发送方淹没接收方,由 rwnd(基于接收缓冲)驱动,端到端。
- 拥塞控制:防压垮网络,由 cwnd 驱动,基于丢包/延迟/ECN 信号。
- 实际可发量 = min(cwnd, rwnd)。慢启动→ssthresh→拥塞避免;丢包触发降窗。
MTU/MSS 是什么?Jumbo Frame 验证注意什么?PMTUD 失败怎么表现?基础
参考答案要点
- MTU=链路层一帧最大数据(1500);MSS=TCP 单段最大数据=MTU−40,握手协商。
- Jumbo(9000)提升大块效率降 CPU,但链路所有节点 MTU 必须一致。
- PMTUD 失败 = DF=1 + 中间 MTU 小 + ICMP 被挡 → 大包静默丢,"小包通大包不通"。缓解:MSS Clamping、PLPMTUD(RFC 4821)。
- 验证:
ping -s 1472 -M do探测路径 MTU;overlay 预留封装头。
TCP 快速重传和超时重传的区别?SACK 解决什么问题?进阶
参考答案要点
- 超时重传:RTO 到期(基于 SRTT/RTTVAR,通常 ≥200ms),最慢;快速重传:收 3 个 DupACK 立即重传,不等待 RTO。
- SACK:报告非连续已收块,只重传真正缺失段,避免"重传已收到的数据"导致吞吐崩。D-SACK 还能检测伪重传/重排。
ARP 怎么工作?免费 ARP 用途?ARP 欺骗怎么缓解?基础
参考答案要点
- ARP:已知 IP 求 MAC,广播请求→单播应答,双方缓存(有老化)。
- 免费 ARP:自问自答,用于 IP 冲突检测、VRRP/主备切换刷新对端缓存、MAC 变更通告。
- 缓解:DAI(动态 ARP 检测)、ARP 限速、静态绑定、端口安全。
为什么高 BDP 链路 TCP 跑不满?怎么算所需缓冲?进阶
参考答案要点
- BDP = 带宽 × RTT;若窗口(rwnd/cwnd) < BDP,管道填不满。
- 例 100Gbps × 100µs = 1.25MB,需缓冲 ≥ 此值;还要开窗口缩放(window scaling)否则 16b 窗口上限仅 64KB。
- 解决:调大 tcp_rmem/tcp_wmem/rmem_max,用 BBR,增大 initcwnd。
两台同网段主机 ping 不通,排查步骤?场景
参考答案要点
- 物理/链路(灯、
ip link、双工速率);IP/掩码正确无冲突。 - ARP 是否学到对端 MAC(
ip neigh);不通则抓包看 ARP。 - 防火墙(iptables/nftables/host fw)、是否同 VLAN/二层域。
- 两端 tcpdump 比对收发;MTU、offload、驱动;跨交换机查 VLAN 放行/STP 状态。
TCP 和 UDP 的本质区别?为什么 RoCE/QUIC 选 UDP 承载?进阶
参考答案要点
- TCP 可靠有序、有连接、内建拥塞控制但开销大、有队头阻塞;UDP 不可靠无连接、低开销、灵活。
- RoCEv2 选 UDP:复用成熟 IP 路由/负载均衡(ECMP 按 5 元组)、可路由、且 RDMA 自身在传输层提供可靠(RC)与拥塞控制(DCQCN),无需 TCP 的通用机制。
- QUIC 选 UDP:为绕过 TCP 队头阻塞与中间设备僵化,在 UDP 上自建可靠/加密/多路复用。
如何判断网络中存在乱序?乱序对 TCP/RDMA 各有何影响?深究
参考答案要点
- TCP:乱序触发 DupACK → 可能误触发快速重传(伪重传),TS 选项可区分;严重乱序降吞吐(Receiver 等待重排)。
- RDMA RC:底层 IB/RoCE 保序(同 QP 有序),乱序多由多路径导致,依赖网络层保序或上层处理;UD 本身不可靠需应用处理。
- 定位:tcpdump 看 SEQ 非单调、netstat -s 的 reordering 计数;ECMP 不均/多路径是常见源。
TCP 初始拥塞窗口 initcwnd 默认值?调大会有什么利弊?深究
参考答案要点
- Linux 默认 10 段(RFC 6928 建议 10)。太小则短连接/小文件首屏慢(慢启动太久)。
- 调大(如 20–30):首字节/小文件更快;但突发更大,易在浅缓冲链路造成瞬时丢包(bufferbloat 反向)。需结合 RTT 与缓冲权衡。
RDMA / 无损网络题
RDMA 是什么?相对 TCP socket 的优势?基础
参考答案要点
- 远程直接内存访问:NIC 直接读写远端内存,绕过内核与 CPU。
- 优势:延迟亚微秒~1µs、吞吐跑满 100/200/400G、CPU 占用近零,适合 HPC/AI/存储。
InfiniBand、RoCE v1/v2、iWARP 区别?基础
参考答案要点
- IB:专用网络,天然无损、最低延迟,需 IB 设备。
- RoCE v1:Eth L2(0x8915),仅同二层;RoCE v2:UDP/IP(4791),可路由,依赖以太网无损。
- iWARP:TCP,可靠但延迟高,少用于 AI/HPC。
RoCE 能在普通以太网上"无损"运行吗?前提是什么?进阶
参考答案要点
- 普通以太网有损,RoCEv2 要"无损"必须整链路:PFC(按优先级暂停)+ ECN(拥塞标记)+ ETS(带宽分配)+ DCQCN(端到端)。
- 任一缺失(某交换机没开 PFC、headroom 不足、DSCP 映射错)→ 拥塞丢包 → RDMA 性能悬崖。
PFC、ECN、DCQCN 三者关系?PFC 风险?进阶
参考答案要点
- PFC:链路层按 8 优先级独立暂停("硬"无损);ECN:IP 头标记拥塞、接收端回传降速("软"信号,先于丢包);DCQCN:RoCEv2 端到端闭环(交换机标 ECN→接收端发 CNP→发送端降速)。
- PFC 风险:HOL 阻塞、PFC 风暴、死锁(循环依赖)、暂停帧丢失仍丢包;需 headroom、看门狗、死锁检测。
QP、CQ、MR 是什么?单边 vs 双边操作?进阶
参考答案要点
- QP=SQ+RQ 通信端点;CQ 报告完成;MR 内存注册(锁页+lkey/rkey,ODP 免预注册)。
- 双边 Send/Recv 需收发双方 post;单边 RDMA Write/Read/Atomic 仅发起方操作、远端 CPU 不介入(精髓,最低延迟)。
如何用工具测 RDMA 延迟/带宽?关注哪些指标?基础
参考答案要点
ib_send_lat/ib_write_lat/ib_read_lat测延迟;ib_send_bw/ib_write_bw --report_gbits测带宽;perfquery看丢包/重传。- 关注 P50/P99、带宽-消息大小曲线、多 QP/多核扩展、计数器(RETRY_EXC_ERR/NAK)、CPU 占用。
RoCE 网络"间歇性吞吐骤降、延迟尖峰"怎么定位?场景
参考答案要点
- 先看是否丢包:
perfquery、ibstat、dmesg|grep mlx。 - 查 PFC/ECN:各交换机优先级/阈值/DSCP 映射一致?
ethtool -S看 pfcrx/pfctx 计数(暂停帧)。 - 构造 incast 复现;观察 CNP 是否回流、DCQCN 是否降速。
- 查 buffer/headroom、微突发、ECMP 撞流、固件/已知 bug。
RoCEv2 报文头结构?DSCP 为什么重要?深究
参考答案要点
- Eth(14)+IP(20,DSCP 用于优先级映射)+UDP(8,dport 4791)+RoCEv2 BTH(16 GRH 用于路由)+RETH/Atomic+payload+ICRC+FCS。
- DSCP→PCP 映射决定 RoCE 流量进入哪个交换机优先级队列;映射错则进尽力队列 → 无 PFC 保护 → 丢包。所以 DSCP 信任与映射配置是无损前提之一。
InfiniBand Subnet Manager 干什么?路由算法有哪些?深究
参考答案要点
- SM 负责 LID 分配、路由计算、PKey 分区、多播、端口激活;OpenSM 常见,需高可用(主备 SM)。
- 路由算法:min-hop(最短路)、UPDN(防环路/上行下行)、fat-tree(针对胖树优化)、adaptive(基于拥塞自适应路由,缓解 incast)。
GPUDirect RDMA 是什么?为什么对 AI 训练关键?进阶
参考答案要点
- GDR:GPU 显存经 PCIe P2P 直接给 NIC DMA,绕过 CPU 与系统内存,GPU 间通信零拷贝、低延迟。
- 没有 GDR 则需经过系统内存两次拷贝 + CPU 参与,延迟与 CPU 开销大幅上升,成为多机训练的瓶颈。
RDMA RC 可靠是如何实现的?和 TCP 可靠有何不同?深究
参考答案要点
- RC 用 PSN(包序号)+ ACK/NAK + 重试实现可靠;接收端按序交付;超时/NAK 触发重传;拥塞由 DCQCN(RoCE)或 IB 信用机制处理。
- 不同:RDMA 可靠在硬件 NIC 完成(不占 CPU),TCP 可靠在内核协议栈;RDMA 还能单边 RDMA Write/Read(远端无 CPU),TCP 必须双方系统调用。
Linux / 排错题
排查网络问题常用哪些命令?各解决什么?基础
参考答案要点
ip(addr/link/route/neigh)、ss -tunap(连接/重传)、netstat -s(协议栈统计)。tcpdump/tshark抓包;ethtool -S/-k网卡统计/offload;iperf3带宽;sar/perfCPU/中断。
软中断打满导致吞吐上不去,怎么排查优化?进阶
参考答案要点
top看 si、/proc/softirqs看哪核高;/proc/interrupts看中断分布。- 优化:开 RSS 多队列、irqbalance/手动绑核、RPS/RFS/XPS、增大 netdev_max_backlog、开 GRO、busy_poll、DPDK 用户态。
创建两个互通的 netns 模拟两台主机?基础
参考答案要点
ip netns add A/B;ip link add vethA type veth peer name vethB;分别ip link set vethA netns A。- 各自配 IP、up,互 ping;可加 bridge/OVS 连多 ns 模拟交换机。
进程监听端口但外部连不上,可能原因?场景
参考答案要点
- 监听地址是 127.0.0.1 而非 0.0.0.0/
( ss -tlnp看 Local Address)。 - 防火墙/安全组/SELinux;路由/ARP 不可达;conntrack 表满;backlog 满(somaxconn);容器/K8s 的 Service/iptables/IPVS/NetworkPolicy 错。
诊断"TCP 重传高/吞吐低"的方法?进阶
参考答案要点
netstat -s | grep retransmit、ss -ti看 RTT/重传/cwnd。- tcpdump 统计重传/乱序/DupACK,区分真丢包 vs 乱序伪重传。
- 查链路层丢包(ethtool -S)、buffer 溢出、ECMP 不均、MTU;调拥塞算法/窗口/offload。
如何实时监控某网卡收包/丢包速率(脚本思路)?基础
参考答案要点
- 读
/sys/class/net/<iface>/statistics/rx_packets|rx_errors|rx_drop,间隔 sleep 1 再读,作差/时间。 - 或
ip -s link/ethtool -S解析;多队列需累加所有队列。
conntrack 表满会有什么现象?如何缓解?进阶
参考答案要点
- 现象:新连接被丢、
dmesg报 "nf_conntrack: table full"、CPU 软中断升、丢包。 - 缓解:调大
nf_conntrack_max、缩短nf_conntrack_tcp_timeout_established、用无状态规则(NOTRACK)、关不需要的跟踪、高并发用 IPVS/nftables 优化。
eBPF/XDP 在网络验证与性能优化中能做什么?深究
参考答案要点
- eBPF:内核内可编程,做可观测(bpftrace 看 syscalls/协议栈延迟)、网络策略(Cilium)、负载均衡,无需改内核/重启。
- XDP:驱动最早收包点运行 eBPF,做高速丢包/负载均衡/DDOS 防护,近 DPDK 性能更灵活。
- 验证用途:流级延迟/丢包测量、故障注入(drop/延迟)、快速原型数据面。
数据中心 / 架构题
Spine-Leaf 相比传统三层好在哪?基础
参考答案要点
- 任意 Leaf 间≤3 跳、带宽一致;横向扩展强、无核心瓶颈;天然 ECMP 与东西向高效。
- 传统三层阻塞比高、东西向绕远、扩展差。
VXLAN 与 VLAN 区别?EVPN 作用?进阶
参考答案要点
- VXLAN:MAC-in-UDP(4789),24bit VNI(1600 万租户),overlay 大二层跨三层;解决 VLAN 数量限制与跨子网二层延伸。
- EVPN(BGP 扩展)作控制面:Type-2 MAC/IP、Type-3 BUM、Type-5 外部路由,替代泛洪学习,控制/转发分离,支持多归属。
Underlay 与 Overlay 是什么?为什么分层?基础
参考答案要点
- Underlay:底层物理 IP 网络(IP Fabric,eBGP/OSPF+ECMP);Overlay:隧道之上逻辑网络(VXLAN/Geneve)。
- 分层好处:租户网络与物理拓扑解耦、独立扩展、简化运维、支撑多租户与大规模。
设计测试床复现 200 台 GPU 训练集群网络,怎么搭?场景
参考答案要点
- 拓扑:Spine-Leaf CLOS,按客户 oversubscription 选 Spine/Leaf 数与端口;GPU 服务器双上联。
- 网络:IB 或 RoCEv2 无损(PFC/ECN/ETS/DCQCN),对齐 DSCP/CoS 与 buffer 参数。
- 流量:NCCL-tests/OMB 跑集合通信;TRex/iperf 混打大象+老鼠流;注入 incast、链路故障。
- 验收:线性度、P99、零丢包线速、故障切换时间;Ansible testbed-as-code + 遥测。
BGP unnumbered 是什么?为什么 IP Fabric 常用?深究
参考答案要点
- 用 IPv6 link-local 地址建立 eBGP 邻居,无需给每链路配 IPv4 地址。
- 好处:极大简化 Spine-Leaf 配置、减少地址规划、便于自动化;配合 ECMP 形成无环 IP Fabric。
Rail-optimized 拓扑是什么?为什么对 all-to-all 重要?深究
参考答案要点
- Rail-optimized:同一"轨道"内的 GPU 经同一组交换机互联,集合通信流量尽量留在轨道内。
- all-to-all(MoE)每节点向所有节点发不同数据,对跳数/带宽极敏感;rail 优化减少跨轨道跳数,降低延迟与拥塞,提升扩展效率。
ECMP 哈希为何会让"单流不提速"且"大象流相撞"?怎么缓解?进阶
参考答案要点
- ECMP 按 5 元组哈希选路,单条流固定走一条 → 不超单链路带宽;多股大象流哈希到同链路 → 碰撞降吞吐。
- 缓解:多路径一致性哈希、flowlet switching(按突发切流)、自适应路由(IB/RoCE)、细粒度负载均衡(如 Arista 的 ATF、Cisco 的算法)。
AI / HPC 场景题
AllReduce 是什么?Ring vs Tree 取舍?进阶
参考答案要点
- AllReduce:各节点数据规约(求和等)后都拿到结果,同步梯度核心。
- Ring:带宽最优(每节点传 2(N-1)/N),延迟随 N 线性增;Tree:延迟 log 级、对延迟敏感,需多端口/树。
- NCCL 按拓扑自动选 ring/tree(含 NVLink 机内+网络机间混合、多 channel)。
大象流 vs 老鼠流?对网络设计影响?进阶
参考答案要点
- 大象流:训练集合通信大带宽持久流;老鼠流:存储/管控小突发。
- 影响:大象流要求高带宽、无损、低尾延迟(否则 GPU 空等);老鼠流要求低延迟;ECMP 可能撞大象流 → fat-tree 均衡/自适应路由/拥塞感知。
网络变差时分布式训练会发生什么?如何量化影响?场景
参考答案要点
- 集合通信变慢 → GPU 等待(bubble)→ 利用率降、迭代时间增、甚至超时失败。
- 量化:通信时间占比(NCCL 计时)、端到端迭代时间、强/弱扩展线性度;对比理想与实际带宽、P99;看是否 straggler。
AI 网络基准测试工具与流程?基础
参考答案要点
- Micro:OMB、perftest(ib_*)、NCCL-tests(all_reduce_perf);通用 iperf3/netperf;算力 HPL/HPCG。
- 流程:单流 micro 找极限 → 多流/多节点看聚合与公平 → 真实负载看线性度与稳定;重 P99、抖动、可重复。
NVLink/NVSwitch 与 IB/Ethernet 各管什么?进阶
参考答案要点
- NVLink/NVSwitch:机内 GPU 高速互联(带宽远高于网络),NCCL 优先走。
- IB/Ethernet(RoCE):跨节点互联,扩展算力;网络即"扩展的 NVLink"。
- 机间带宽/延迟直接决定多机扩展效率与线性度。
数据并行/模型并行/流水线并行/ZeRO 对网络需求有何不同?深究
参考答案要点
- DP:梯度 AllReduce,通信量≈模型大小,对 all-reduce 带宽敏感。
- TP:层内切分,forward/backward 内嵌激活通信,对延迟极敏感(频繁小通信)。
- PP:阶段边界通信,通信量小但引入 bubble,对调度/延迟敏感。
- ZeRO-3:分片参数/梯度,通信量更大(每步多一次 all-gather);MoE 引入大量 all-to-all。
如何解释"最慢一条流决定全局步调"?验证中怎么测?深究
参考答案要点
- 同步 SGD 的 barrier 语义:所有 rank 完成一步才进下一步,最慢者拖垮整体;任一 GPU 对链路拥塞/故障降速即全局变慢。
- 验证:测 worst-pair 带宽(每对 GPU 互测)、P99 集体通信延迟、注入单链路故障看整体线性度下降幅度;关注长尾而非平均。
MoE(专家混合)为何对网络特别苛刻?进阶
参考答案要点
- MoE 路由专家分布多卡,token 需 all-to-all 分发/收集,通信模式是 N×N 全交换,对网络带宽与任意对延迟极敏感。
- 不均衡路由(专家热点)会放大拥塞;需 fat-tree/rail 优化与自适应路由保证任意对带宽一致。
强扩展与弱扩展区别?如何判断训练集群"扩展性差"是网络问题?进阶
参考答案要点
- 强扩展:问题规模固定、加节点,理想加速比=节点数;弱扩展:每节点规模固定,性能应不变。
- 判网络:对比理想线性度 vs 实测;用 NCCL-tests 看集合通信时间占比是否随规模超线性增长;排除算力/IO 瓶颈;注入网络无故障基线 vs 故障看相关性。
测试 / 自动化题
功能/回归/性能/规模测试各关注什么?如何定义"通过"?基础
参考答案要点
- 功能:按规格(正/负/边界/一致性/互操作);回归:变更不破坏旧功能;性能:吞吐/延迟/PPS/抖动/CPU(看重分位与稳定);规模:表项/会话/节点/流上限与拐点。
- 通过判据量化:如"线速零丢包、P99<X µs、规模达 Y 万表项且性能衰减<5%"。
搭建网络设备自动化回归框架的思路?进阶
参考答案要点
- 选型 pytest/Robot;设备控制 SSH/Netconf/gNMI/REST;流量 TRex/iperf/pktgen;断言计数器/遥测/抓包;报告 HTML/Allure;CI 门禁。
- 每次失败沉淀回归用例;testbed-as-code 可重建;覆盖设计优先于用例数量。
性能测试为什么不能只看平均?看哪些统计量?进阶
参考答案要点
- 平均掩盖尾延迟与抖动;AI/HPC 对 P99/P99.9 极敏感(一个慢流拖垮全局)。
- 看:吞吐、P50/90/99/99.9 延迟、抖动、PPS、CPU/中断、稳定性(长时方差)、丢包率、各流公平。
如何测试交换机在 incast 下的无损表现?场景
参考答案要点
- 拓扑:多发送端→同一接收端(或同上行口)制造 incast;使能 PFC/ECN。
- 观测:是否丢包(perfquery/ethtool 丢帧)、PFC 暂停帧计数、CNP 是否产生、吞吐稳定与 P99。
- 对比开关无损差异;调 PFC 阈值/headroom/ECN 找最优;加背景流看公平。
RFC 2544 测什么?在 RDMA/AI 场景还够用吗?深究
参考答案要点
- RFC 2544:吞吐、延迟、丢包率、背靠背帧——面向传统网络设备基准,假设稳态均匀流量。
- 不足:AI/RDMA 是动态拥塞、incast、集合通信、微突发、无损语义;需补充 incast、CNP/ECN、PFC 行为、集体通信线性度等针对性测试,RFC 2544 仅作基础吞吐/延迟基线。
如何设计"规模化"测试以暴露拐点而非只看上限?进阶
参考答案要点
- 阶梯式增加表项/流/节点,记录每阶的吞吐/延迟/CPU,绘制性能-规模曲线,找衰减拐点(如 80% 容量处延迟陡增)。
- 关注资源(CAM/TCAM/内存/会话表)耗尽行为:是优雅降级还是雪崩;混合负载下拐点是否提前。
如何保证测试结果"可重现"?进阶
参考答案要点
- 固定流量模型、背景负载、拓扑、固件/配置版本;testbed-as-code;多次运行取分布;控制环境噪声(隔离其他业务、统一时钟)。
- 记录每次运行的环境指纹(配置 hash、版本),失败可回溯。
编程 / 脚本题
Python 并发 ping 多台主机的思路与关键点?基础
参考答案要点
- subprocess + 线程池/asyncio 并发
ping -c1 -W1,收集返回码与 RTT。 - 关键点:超时控制、并发度限制、结果汇总(可达/不可达/RTT)、异常处理、参数化清单。
Bash 统计网卡 1 秒收包/丢包速率?基础
参考答案要点
- 读
/sys/class/net/<iface>/statistics/rx_packets|rx_errors|rx_drop,sleep 1 再读,作差/时间;或ip -s link解析;多队列累加。
Scapy 构造带 VLAN tag 的自定义报文?进阶
参考答案要点
pkt = Ether()/Dot1Q(vlan=100,prio=3)/IP(dst="10.0.0.2")/TCP(dport=80)/"hi";sendp(pkt, iface="eth0")。- 需 root;可做协议一致性/边界字段模糊测试。
解析 iperf3 JSON 提取吞吐与重传?基础
参考答案要点
iperf3 -c host -J输出 JSON;取end.sum_received.bits_per_second与end.streams[].retransmits/tcp_retrans。- 批量跑组合生成对比报表;pytest 中断言吞吐达标、重传为 0。
用 Python 解析交换机 gNMI 遥测流并触发告警的思路?深究
参考答案要点
- 用 gNMI 客户端(如 pygnmi)订阅路径(端口统计/队列/ECN/PFC),接收 JSON/Protobuf 推送。
- 解析指标、存时序(Prometheus)、设阈值(如 P99 超阈、丢包突增、PFC 风暴计数增长)→ 触发告警/自动诊断。
- 价值:实时解释性能测试中尾延迟来源,比事后计数器更及时。
如何用 Python 多线程跑 perftest 并汇总 RDMA 带宽矩阵?进阶
参考答案要点
- 对每对 (src,dst) 启
ib_write_bw服务端+客户端(subprocess/paramiko),解析输出 Gb/s。 - 并发受端口/资源限制;汇总成 N×N 矩阵,标出 worst-pair,辅助定位拓扑不均衡。
行为与综合题
描述一次最难的网络问题定位(STAR)?场景
参考答案要点(STAR)
- 情境:客户/实验室现象(间歇性丢包/性能劣化)。
- 任务:隔离范围、复现、找根因。
- 行动:分层/二分定位、抓包、计数器、假设验证;与研发协作(可重现用例+日志+抓包)。
- 结果:根因(MTU 不一致/PFC 缺失/固件 bug)、修复、沉淀回归用例与监控。
- 强调数据驱动 + 可重现 + 协作,而非"凭感觉重启"。
如何把一次 bug 转化为长期价值(防复发)?进阶
参考答案要点
- 写最小可重现用例 → 加入自动化回归(CI 门禁)。
- 加监控/告警(遥测计数、日志关键字)提前发现。
- 沉淀测试床 checklist 与知识库;同步自动化团队标准化。
与 R&D / 自动化团队协作出现分歧怎么处理?场景
参考答案要点
- 以数据和可重现证据说话(抓包/计数器/最小用例),非主观判断。
- 边界:验证负责"是否/如何复现与影响",R&D 负责根因与修复,自动化负责固化。
- 定期同步状态/风险/优先级;模糊需求主动澄清验收标准。
8 年经验,如何快速上手全新网络特性(如新 RDMA 特性)?基础
参考答案要点
- 先读架构/设计文档与协议标准(RFC/IBTA spec)建心智模型。
- 搭最小 testbed 验证 hello-world,再逐步加压/加故障。
- 对齐客户需求和验收判据;复用框架快速补用例;与 R&D/架构师沟通边界与已知限制。
如何向非技术的 stakeholder 汇报"系统质量与性能洞察"?进阶
参考答案要点
- 用业务语言:可用性、SLA 达成、风险等级、对上线/客户的影响,而非堆技术细节。
- 给结论先行 + 证据支撑 + 建议(是否可发布、风险缓解);用趋势图/对比表,标注不确定性。
- 区分"已知问题/风险/已验证充分"。
如何设计"故障注入矩阵"验证系统韧性?深究
参考答案要点
- 列出关键路径组件(链路/电源/控制面/数据面/时钟/升级),对每类设计故障(down/错包/延迟/进程 kill/回滚)。
- 定义稳态假设与度量(检测时间、收敛时间、丢包、恢复后线性度);小范围、可终止、可回滚。
- 把结果转为改进:监控补全 + 自动恢复 + 回归用例。
附 · 速查表 & 工具清单
常用命令速查
# 连通性 / 路径
ping -s 1472 -M do <host> # MTU 探测(1472+28=1500)
mtr -n <host> ; traceroute <host>
# 连接 / 协议栈
ss -tunap ; ss -ti ; netstat -s | grep -i retrans
# 抓包
tcpdump -i eth0 -nn -w cap.pcap 'tcp port 80'
tcpdump -i eth0 'icmp or arp'
# 网卡
ethtool -S eth0 | grep -Ei 'err|drop|pause' ; ethtool -k eth0 ; ethtool -l eth0 ; ethtool -C eth0
# 路由 / 邻居 / 命名空间
ip -s link ; ip route ; ip neigh ; ip netns ; ip vrf
# 性能
iperf3 -c <host> -P 8 -J ; sar -n DEV 1 ; perf top
# RDMA
ibstat ; ibstatus ; ibv_devinfo -d mlx5_0 ; perfquery -x
ib_write_bw -d mlx5_0 -F --report_gbits ; ib_send_lat -d mlx5_0 -F
# 故障注入 / QoS
tc qdisc add dev eth0 root netem delay 50ms loss 1%
tc qdisc add dev eth0 ingress ; tc filter add ... mirred egress redirect
关键默认端口 / 编号
| 项 | 值 |
|---|---|
| RoCEv2 UDP 目的端口 | 4791 |
| VXLAN UDP 端口 | 4789 |
| VLAN ID 范围 | 0–4095(0/4095 保留,1 默认) |
| 以太网 MTU / Jumbo | 1500 / 9000 |
| TCP/IP/UDP 头 | 20/20/8 字节 |
| PFC 优先级 | 8 个 (0–7) |
| TCP initcwnd(Linux) | 10 段 |
| TCP 知名端口 | 22/53/80/443/3306/6379… |
| RDMA 延迟量级 | ~1 µs(IB/RoCE RC) |
工具分类清单
- 抓包分析:tcpdump、Wireshark/tshark、Scapy
- 带宽/延迟:iperf3、netperf、perftest(ib_*)、OSU Micro Benchmarks、NCCL-tests
- 流量发生:TRex、pktgen、Scapy、iperf3
- 性能剖析:sar、perf、bpftrace/bcc、mpstat、top/htop、flamegraph
- 自动化/配置:pytest、Robot Framework、Ansible、Netconf/gNMI/REST
- 虚拟化:KVM/QEMU、libvirt、Docker、Kubernetes(CNI)、OVS、DPDK
- RDMA 诊断:ibstat、ibstatus、ibv_devinfo、perfquery、dmesg(mlx)、OpenSM
- 遥测/混沌:Prometheus+Grafana、gNMI streaming、chaos-mesh、tc netem
最后一句:本岗位是"验证 + 网络深度 + 动手"的复合体。把每个知识点都准备成"我能怎么测、怎么复现、怎么定位",比背概念更能打动面试官。深究章节(RoCEv2 头、DCQCN 状态机、SM 路由、并行范式、rail 拓扑、gNMI、混沌矩阵)是区分资深候选人的关键。