4. 网络基础与故障排查:TCP/IP协议栈、DNS解析、网络延迟、丢包分析
本章聚焦网络故障排查的分层思维与工具链,覆盖TCP/IP协议栈核心细节、DNS解析异常、网络延迟及丢包根因定位。掌握从现象到根因的闭环回答逻辑,是高级运维面试的必考点。
面试问答卡片
📌 面试问题
请描述TCP三次握手与四次挥手的过程,以及可能出现的问题。
🎯 面试官考察点
- 对TCP状态机的理解程度
- 是否了解半连接队列、TIME_WAIT等生产问题
- 能否结合抓包工具说明异常场景
📐 回答框架
先画三次挥手/四次握手流程图 → 说明每个状态转化 → 举例常见问题(如SYN Flood、大量TIME_WAIT) → 给出调整参数或配置方案(tcp_tw_reuse、syn_backlog)
💬 简短示例回答
三次握手:客户端发SYN,服务端回复SYN+ACK,客户端再发ACK。大量TIME_WAIT时可通过调整net.ipv4.tcp_tw_reuse和tcp_tw_recycle缓解,但需注意NAT环境下的兼容性。生产中还遇到过SYN队列满导致请求超时,需增大net.core.somaxconn。
🔍 可能追问
- 关闭连接时为什么需要四次?可以合并为三次吗?
- 服务端出现大量CLOSE_WAIT是什么原因?怎么排查?
📌 面试问题
如何诊断网络延迟和丢包?请举例说明。
🎯 面试官考察点
- 延迟与丢包的区分能力(重传 vs 超时)
- 工具链使用熟练度(mtr、tcpdump、Wireshark)
- 是否具备端到端排查思维
📐 回答框架
先用ping+端测判断是单向还是双向延迟 → 用mtr逐跳确认丢包点 → 若mtr正常则用tcpdump抓TCP重传包 → 分析重传间隔判断是网络拥塞还是应用层超时 → 最后检查交换机端口统计、缓冲区溢出。
💬 简短示例回答
一次生产延迟排查:用户反馈接口响应慢。第一步ping显示延迟正常,但curl耗时长达3秒。tcpdump发现大量TCP Dup ACK,确认存在30%丢包。用mtr定位到某一跳交换机丢包,最终排查是上行带宽打满导致排队。通过限速和扩容解决。
🔍 可能追问
- 如何区分网络层丢包和传输层重传导致的丢包?
- ping通但业务慢,可能是什么原因?
📌 面试问题
DNS解析故障排查步骤有哪些?
🎯 面试官考察点
- DNS体系理解(递归/迭代、缓存、TTL)
- 故障定位分为客户端、服务端、中间网络
- 是否掌握dig/nslookup高级用法
📐 回答框架
先验证本地DNS配置(/etc/resolv.conf) → 用dig+@指定上游服务器确认解析是否正常 → 若正常则检查本地DNS缓存(nscd/dnsmasq) → 若异常则排查上游DNS可达性(udp 53端口) → 最后检查域名的NS授权记录和TTL设置。
💬 简短示例回答
一次业务域名解析超时:dig +trace显示根服务器正常,但权威服务器无响应。检查防火墙发现udp 53包被丢弃。放行后恢复。对内部域名,还需排查内网DNS的forwarder配置和缓存过期策略。
🔍 可能追问
- DNS劫持或污染如何快速判断?
- CDN场景下DNS解析返回多个IP怎么选择?
项目案例模板
📁 项目名称:电商大促期间网络延迟与丢包专项排查
| 业务背景 | 双11大促,某模块订单提交成功率从99.9%骤降至95%,用户侧报接口超时。 |
| 规模指标 | 峰值10万QPS,500台应用服务器,2个数据中心。 |
| 技术栈 | Linux 5.10, iptables, tcpdump, Wireshark, BGP, 交换机组网 |
| 核心难点 | 突发流量导致接入层交换机端口buffer溢出,TCP重传率达15%;初期流量镜像误以为是应用层慢查询。 |
| 面试高频追问 |
|
| 可迁移回答话术 | “当时我们首先通过业务指标(RT上升)触发告警,然后分层排查:应用层通过接口日志排除应用逻辑,传输层用tcpdump抓包确认大量TCP重传,网络层用mtr定位到交换机端口丢包。最终通过启用流量整形和调整交换机缓冲池参数解决。这套方法同样适用于数据库连接池超时、跨机房同步延迟等场景。” |