网络基础高频面试问题(OSI、TCP/IP、HTTP、DNS等)
网络基础是网络运维工程师面试的必考模块,涵盖 OSI 七层模型、TCP/IP 协议栈、HTTP 状态码、DNS 解析流程等。面试官通过这些问题考查候选人对网络分层、协议交互和排障思维的掌握程度。以下给出结构化答题框架与高频追问避坑指南。
面试问题:请简述 OSI 七层模型,并说明与 TCP/IP 四层模型的对应关系。
- 网络分层思维和协议归属
- 理论模型与实际协议栈的区别
- 向下向上封装/解封装过程
- 从下至上说出 OSI 七层名称(物理层~应用层)
- 指出 TCP/IP 四层(网络接口、网际、传输、应用)
- 说明 OSI 上三层(应用/表示/会话)归并至 TCP/IP 应用层
- 举例:IP 属网际层,TCP/UDP 属传输层,HTTP 属应用层
- 总结分层意义(解耦、标准化、排障定位)
OSI 七层自下而上:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP 四层将上三层合并为应用层,网络接口层对应物理+数据链路。例如 IP 工作在网络层,TCP/UDP 在传输层,HTTP 在应用层。分层使各层独立演进,排障时能逐层定位问题。
- TCP/IP 为什么比 OSI 更实用?
- 封装和解封装过程中各层添加了什么头部?
- 坏路器(Hub)、交换机、路由器分别工作在哪几层?
❌ 不要只背诵七层名称而不讲对应关系。❌ 不要把 TCP/IP 层的名称说错(如“物理层 vs 网络接口层”)。✅ 主动用“封装过程”串联各层,展示工程理解。
面试问题:请描述 TCP 三次握手的过程,为什么不是两次或四次?
- 对 TCP 可靠连接建立机制的理解
- 序列号和确认号的作用
- 对“半连接”和“已失效连接”的防范
- 客户端发送 SYN,seq=x
- 服务端回复 SYN+ACK,seq=y, ack=x+1
- 客户端发送 ACK,seq=x+1, ack=y+1
- 为什么两次不够:无法确认服务端接收能力
- 为什么四次冗余:三次即可同步双方序号和窗口
第一次客户端发 SYN 携带初始序号 x;第二次服务器回 SYN+ACK 携带序号 y,确认号 x+1;第三次客户端发 ACK 确认号 y+1。两次无法防止已失效的 SYN 请求到达服务器后建立空闲连接;四次则浪费一次交互,三次刚好协商双方起始序号并完成双向确认。
- 三次握手中可以携带数据吗?第三次握手可以携带数据吗?
- 如果第三次握手丢失会怎样?
- 什么是 SYN Flood 攻击?如何防御?
❌ 不要只画图不讲完整性校验(序号同步)。❌ 不要把“两次不安全”只说“浪费资源”,要强调“历史连接干扰”。✅ 补充“连接建立后双方可预知对方窗口大小”,体现协议设计思想。
面试问题:浏览器输入 www.example.com 后发生了什么?请完整描述 HTTP 请求和 DNS 解析过程。
- DNS 递归/迭代解析流程
- HTTP 请求与响应结构
- ARP、路由、NAT 配合理解
- 性能优化点(DNS 缓存、CDN)
- 浏览器缓存 → 操作系统缓存 → hosts → 本地 DNS 服务器
- 本地 DNS 向根/顶级/权威服务器迭代查询
- 获得 IP 后发起 TCP 三次握手
- 浏览器发送 HTTP GET 请求(含请求行/头部/空行)
- 服务器返回 HTTP 响应(状态码/头部/正文)
先查本地缓存,未命中则向本地DNS递归请求,本地DNS再迭代查询根→.com→example.com权威服务器,返回IP。浏览器缓存IP后,通过ARP获取网关MAC,经过路由转发建立TCP连接,之后发送HTTP GET请求,服务器返回200 OK和页面内容。
- DNS 使用 TCP 还是 UDP?为什么?
- HTTP/1.1 和 HTTP/2 有什么区别?
- HTTPS 握手过程额外多了哪些步骤?
❌ 不要只谈DNS不谈TCP连接和HTTP。❌ 不要把“递归”和“迭代”概念搞混。✅ 用“浏览器行为→网络层→应用层”逐层展开,体现系统思维。✅ 主动提CDN、DNS缓存优化加分。
项目案例:企业办公网 DNS 流量优化与 HTTP 劫持治理
| 项目名称 | 企业办公网络 DNS 解析加速与 HTTP 劫持防护改造 |
| 业务背景 | 总部 2000+ 用户访问外网时偶发页面被插入广告,且首次打开慢(DNS 超时)。需要将 DNS 解析延迟降到 50ms 以下,并阻断篡改。 |
| 规模指标 | 接入用户 2000+,DNS 请求峰值 8000 QPS,外网带宽 1Gbps。改造后 DNS 成功率 99.95%,页面加载速度提升 40%。 |
| 技术栈 | BIND 9、DNS-over-TLS(DoT)、HTTP/2、Nginx、Wireshark、Squid 代理 |
| 核心难点 | 运营商 DNS 劫持导致 HTTP 响应被篡改;本地 DNS 递归解析慢,受 UDP 丢包影响。需同时解决解析加速和内容完整性。 |
| 面试高频追问 |
|
| 可迁移回答话术 | “我们在处理 DNS 问题时,优先启用 DoT 加密解析,并搭建本地 Forwarder 缓存热点域名。对于 HTTP 劫持,推动业务方统一 HTTPS 并配置 HSTS,同时在防火墙侧拦截 80 端口重定向。这套方案既提升了用户体验,又保障了传输安全。” |
本章小结:网络基础面是“基础但不简单”。掌握 OSI/TCP/IP 分层回答框架,熟练三次握手、四层释放过程,并对 DNS 迭代/递归、HTTP 状态码、HTTPS 握手形成闭环记忆。项目经验中一定要体现“检测→防护→优化”的工程链路。