网络验证 / 系统验证工程师
深度面试复习与问题集(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) 故障/极端:边缘情况、已知限制、会怎么坏。
话术模板:"这个特性我理解是……它的关键在……我们验证时会构造……场景,关注……指标,判据是……;风险点通常是……"——这比纯背概念得分高得多。

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 章呼应)

算法核心增窗/降窗适用
RenoAIMD,丢包信号加性增、乘性减(×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

速率标准编码/调制典型介质
1G1000BASE-T/SX/LX8b/10b 或 4D-PAM5铜/光
10G10GBASE-SR/LR/CR/KR64b/66bSFP+/DAC
25/100G25GBASE / 100GBASE64b/66b, RS-FECSFP28/QSFP28
200/400G200/400GBASEPAM4 + 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 -Sfec_corrected/fec_uncorrectable)。
  • 线缆:DAC(直连铜,短距廉价)、AOC(有源光)、光模块(SR 短距多模 / LR 长距单模);注意兼容性、功率、温区。

2.3 自协商、双工与统计

  • 自协商(Clause 28/73):两端协商速率/双工/流控能力;一端固定一端自适应 → 双工不匹配 → 高吞吐时冲突/late collision/CRC 错误飙升(经典故障)。
  • 关键计数:FCS errors(帧校验失败,物理层/双工问题)、align errorssymbol errorsrx_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 offloadRSS(多队列哈希)、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–50sBPDU,选 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_affinityirqbalance;软中断在 /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/topCPU/中断/软中断/系统瓶颈
QoStc qdisc/clsact整形/限速/优先级/镜像

6.5 网络命名空间与虚拟设备

  • ip netns:隔离网络栈,模拟多主机/多租户;veth pair 跨 ns 桥接;bridge/OVS 做软桥。
  • macvlan/ipvlan:一物理网卡虚多 MAC/IP;vlan subinterfaceeth0.100)做 802.1Q。
  • Linux VRFip 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 v1Ethernet L2(EtherType 0x8915)仅同二层;已基本被 v2 取代
RoCE v2UDP/IP(端口 4791)可路由、跨子网;依赖以太网无损
iWARPTCP基于 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 6349TCP 吞吐量测试方法

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 网络"间歇性吞吐骤降、延迟尖峰"怎么定位?场景
参考答案要点
  • 先看是否丢包:perfqueryibstatdmesg|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/perf CPU/中断。
软中断打满导致吞吐上不去,怎么排查优化?进阶
参考答案要点
  • top 看 si、/proc/softirqs 看哪核高;/proc/interrupts 看中断分布。
  • 优化:开 RSS 多队列、irqbalance/手动绑核、RPS/RFS/XPS、增大 netdev_max_backlog、开 GRO、busy_poll、DPDK 用户态。
创建两个互通的 netns 模拟两台主机?基础
参考答案要点
  • ip netns add A/Bip 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 retransmitss -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_secondend.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 / Jumbo1500 / 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、混沌矩阵)是区分资深候选人的关键。