计算机网络面试题考察的是你是否理解数据如何在机器之间传输:分层、主要协议,以及出问题时会发生什么。下面是 20 道题及参考答案,你可以根据自己的情况调整,从基础到无处不在的“输入 URL 后发生了什么”。子网示例在发布前都用 Python 的 ipaddress 模块验证过。
分层与模型
1. OSI 和 TCP/IP 模型分别是什么?
OSI 模型有七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP 模型把它们归为四层:链路层、网际层、传输层和应用层。面试通常关心的是实用的划分:链路层是 Ethernet 和 Wi-Fi,网际层是 IP,传输层是 TCP 和 UDP,应用层是 HTTP、DNS 和 TLS。
2. 交换机、路由器和负载均衡器分别工作在哪一层?
交换机在数据链路层根据 MAC 地址转发帧。路由器在网络层根据 IP 地址转发数据包。四层负载均衡器根据 IP 地址和端口选择服务器,七层负载均衡器则可以看到 HTTP 请求,比如路径或某个请求头。
3. MAC 地址和 IP 地址有什么区别?
MAC 地址标识本地链路上的一个网络接口,通常固化在硬件里。IP 地址用于路由,标识网络中的一台设备,会随着你接入的网络而变化。
传输协议
4. 用 TCP 还是 UDP?
TCP 面向连接且可靠:它给字节编号、重传丢失的报文段、按序交付,并做流量控制和拥塞控制。UDP 发送独立的数据报,不保证送达,因此开销和延迟更低。网页、文件和邮件用 TCP。对速度的要求高于完美送达的场景用 UDP,比如 DNS 查询、直播视频、语音和很多游戏。
5. 解释一下 TCP 三次握手
客户端发送 SYN 来发起连接。服务器回复 SYN-ACK。客户端再发送 ACK。之后双方就起始序列号达成一致,数据可以开始传输。关闭连接通常是在每个方向上使用 FIN 和 ACK 消息。
6. TCP 如何处理拥塞?
它一开始只发送少量数据,在数据包能顺利通过的同时提高发送速率,这叫慢启动。一旦检测到丢包,就降低速率,然后更谨慎地增长。目标是在不压垮网络的前提下充分利用可用带宽。
7. 延迟、带宽和吞吐量有什么区别?
延迟是一个数据包到达所需的时间。带宽是一条链路能承载的最大速率。吞吐量是你实际达到的速率,由于开销、丢包和延迟,它低于带宽。一条链路可能带宽很高,但如果延迟高,用起来仍然很慢。
寻址与子网划分
8. 一个 /24 网络有多少个可用主机?
一个 /24 有 256 个地址。第一个是网络地址,最后一个是广播地址,所以可用的是 254 个。对于 192.168.10.0/24,主机范围是 192.168.10.1 到 192.168.10.254,广播地址是 192.168.10.255。
9. 把一个 /24 划分成四个子网
借两位变成 /26 网络。每个有 64 个地址和 62 个可用主机。对于 192.168.10.0/24,四个子网是 192.168.10.0/26、192.168.10.64/26、192.168.10.128/26 和 192.168.10.192/26。
10. 192.168.1.130/26 属于哪个网络?
/26 的掩码是 255.255.255.192,所以网络每 64 个地址起始一次。该地址落在从 192.168.1.128 开始的块里。这个网络的范围是 192.168.1.128 到 192.168.1.191,可用主机从 .129 到 .190,广播地址是 .191。
11. 一个 /27 有多少个可用主机?
一个 /27 有 32 个地址和 30 个可用主机。对于 10.0.0.0/27,主机是 10.0.0.1 到 10.0.0.30,广播地址是 10.0.0.31。
12. 什么是 NAT?
网络地址转换让私有网络上的多台设备共用一个公网 IP 地址。路由器会改写发出数据包的源地址和端口,并维护一张表,把回复送回正确的设备。它节省了公网地址,但也让从外部主动连接其后的设备变得更困难。
核心服务
13. DNS 是做什么的?一次查询是如何进行的?
DNS 把域名转换成 IP 地址。客户端向解析器发起请求,解析器先查自己的缓存。如果缓存里没有答案,解析器会依次询问根服务器、顶级域服务器,再到该域名的权威服务器,最后把结果返回给客户端。答案会按照记录中 TTL 设定的时间被缓存。
14. ARP 和 DHCP 分别做什么?
ARP 用于在本地网络中根据 IP 地址找到对应的 MAC 地址。DHCP 负责给加入网络的设备分配 IP 地址、默认网关和 DNS 服务器。
15. HTTP 和 HTTPS 有什么区别?
HTTPS 就是运行在 TLS 之上的 HTTP。TLS 会加密流量,通过证书验证服务器身份,并防止数据被篡改。在发送任何 HTTP 数据之前,客户端和服务器会先通过 TLS 握手协商出密钥。
16. 常见的 HTTP 状态码分别代表什么?
| 状态码 | 含义 |
|---|---|
| 200 | 成功 |
| 301 | 永久重定向 |
| 304 | 未修改,使用缓存 |
| 400 | 请求错误 |
| 401 | 未认证 |
| 403 | 禁止访问 |
| 404 | 未找到 |
| 429 | 请求过多 |
| 500 | 服务器错误 |
| 502 | 网关错误 |
| 503 | 服务不可用 |
综合运用
17. 在浏览器里输入一个 URL 并按下回车,会发生什么?
- 浏览器先检查自己的缓存,然后通过 DNS 把域名解析成 IP 地址。
- 通过三次握手建立 TCP 连接。
- 如果是 HTTPS,还要进行 TLS 握手,协商密钥并验证证书。
- 发送 HTTP 请求。
- 请求可能会经过负载均衡器或 CDN,服务器返回带有状态码和内容的响应。
- 浏览器解析 HTML,拉取脚本、图片等关联资源,然后渲染页面。
你不需要把每一步都背出来。根据面试的深度选择讲多细,并说明你最熟悉哪些部分。
18. 一个网站很慢,你怎么排查原因?
先把各层拆开来看。检查 DNS 查询时间、连接和 TLS 时间、首字节时间以及下载时间。用 ping 测试可达性和往返时延,用 traceroute 看延迟在路径的哪一段开始累积,用浏览器开发者工具看哪些请求慢。然后再判断问题出在网络、服务器还是页面本身。
19. ping 和 traceroute 是什么?
ping 发送 ICMP 回显请求,用来测试主机是否可达并测量往返时间。traceroute 通过发送 TTL 逐渐增大的数据包并读取返回信息,显示路径上经过的路由器。
20. 集线器、交换机和路由器有什么区别?
集线器把每个信号转发到所有端口,现在已经很少用了。交换机会学习哪个 MAC 地址在哪个端口上,只把帧转发到需要的地方。路由器连接不同的网络,根据 IP 地址在网络之间转发数据包。
如何准备
- 要能画出各层结构,并把每个协议放到对应的层上。
- 动手练习子网计算,直到你能在一分钟内把一个 /24 拆成更小的块。
- 把“输入 URL”这道题练三个版本:30 秒版、两分钟版和深入版。
- 熟悉排查命令,知道每条命令能告诉你什么。
想找相关练习,可以看看我们的系统设计面试题、Kubernetes 面试题、AWS 面试题和网络安全分析师面试指南。
练习时请出声、用自己的话讲。事后看一遍文字记录,就能发现哪里啰嗦了或者漏掉了重点。在任何实时面试或评估中,都要遵守雇主关于 AI 工具的规定。
用 YesToTheOffer 练习你的回答
大声演练,获得基于你自己简历生成的回答,并在之后回顾你的文字记录。30 分钟免费,无需订阅。



