真实面经题目 · 原创解析
计算机网络知识体系面试中应该如何展开?
这类问题不是在考背诵协议名,而是在考候选人能否把计算机网络讲成一个有层次、有主线、能落到排障和工程实践的知识体系。高质量回答应先给出分层框架,再围绕 HTTP/HTTPS、TCP/UDP、DNS、连接生命周期、拥塞控制、流量控制和常见问题定位展开,避免想到哪里说到哪里。
真实面经题目 · 原创解析
这类问题不是在考背诵协议名,而是在考候选人能否把计算机网络讲成一个有层次、有主线、能落到排障和工程实践的知识体系。高质量回答应先给出分层框架,再围绕 HTTP/HTTPS、TCP/UDP、DNS、连接生命周期、拥塞控制、流量控制和常见问题定位展开,避免想到哪里说到哪里。
可以按“分层模型 + 核心协议 + 一次请求链路 + 可靠性与性能 + 排障方法”来回答。网络整体上可分为应用层、传输层、网络层和链路层:应用层关心 HTTP、HTTPS、DNS 等协议;传输层重点是 TCP、UDP 的差异、可靠传输、连接管理、拥塞控制和流量控制;网络层关注 IP、路由、NAT、ICMP;链路层关注 ARP、MAC、MTU 等。一次访问服务通常会经历 DNS 解析、建立连接、TLS 握手、发送 HTTP 请求、服务端处理、响应返回、连接复用或关闭。排查网络问题时,可以从域名解析、连通性、端口监听、握手失败、证书、超时、丢包、负载均衡、代理和服务端日志逐层定位。
先明确这是开放题,不能直接罗列零散概念。更稳的结构是先讲网络分层,再讲关键协议,再串起一次完整请求,最后补充性能优化和问题排查。这样能体现知识体系,而不是只会背 TCP 三次握手、四次挥手。
网络知识可以用 TCP/IP 四层模型组织:应用层负责面向业务的协议,如 HTTP、HTTPS、DNS;传输层负责端到端通信,如 TCP、UDP;网络层负责寻址和路由,如 IP、ICMP;链路层负责局域网内传输,如以太网、ARP、MTU。回答时也可以对比 OSI 七层,但重点应落在实际工程常用的 TCP/IP 模型。
HTTP 是应用层协议,关注请求方法、状态码、Header、Cookie、缓存、长连接、连接复用等。HTTPS 本质是在 HTTP 与 TCP 之间加入 TLS,解决身份认证、加密传输和完整性校验问题。常见考点包括 TLS 握手、证书链、对称加密与非对称加密配合、HTTP/1.1 的队头阻塞、HTTP/2 的多路复用以及 HTTP/3 基于 QUIC 的变化。
TCP 面向连接,提供可靠、有序、基于字节流的传输,适合对准确性要求高的场景。UDP 无连接,协议开销小,不保证可靠和有序,适合实时性要求更高或上层自定义可靠机制的场景。回答时不能只说 TCP 可靠、UDP 不可靠,还应解释 TCP 通过序号、确认应答、重传、滑动窗口、拥塞控制来实现可靠传输。
TCP 建立连接依赖三次握手,用来确认双方收发能力、同步初始序列号并建立连接状态。关闭连接通常是四次挥手,因为 TCP 是全双工通信,双方的发送方向需要分别关闭。还应理解 TIME_WAIT 的意义:保证迟到报文不会污染后续连接,并确保最后一个 ACK 丢失时对端能够重传 FIN。
DNS 负责把域名解析为 IP 地址。一次解析可能经过浏览器缓存、操作系统缓存、本地 DNS、根域名服务器、顶级域名服务器和权威 DNS。面试中可以补充 DNS 缓存、TTL、递归查询、迭代查询、CNAME、负载均衡、DNS 污染或解析异常等问题。排查访问失败时,DNS 是很早需要检查的一环。
流量控制解决接收方来不及处理的问题,核心是接收窗口,避免发送方把接收方缓冲区打满。拥塞控制解决网络中间链路过载的问题,典型机制包括慢启动、拥塞避免、快速重传、快速恢复。两者容易混淆:流量控制看接收端能力,拥塞控制看网络整体承载能力。
网络排障要从现象反推链路:域名是否能解析,IP 是否可达,端口是否监听,TCP 握手是否成功,TLS 证书是否有效,HTTP 状态码是否正常,是否存在超时、重置、丢包、MTU、代理、负载均衡或防火墙问题。优秀回答会把 ping、traceroute、telnet/nc、curl、dig/nslookup、tcpdump、日志和监控指标串起来。
三次握手可以确认双方的发送和接收能力,并同步初始序列号。两次握手无法让服务端确认客户端是否收到了服务端的确认,也容易受到历史连接请求报文的影响,导致错误建立连接。
TCP 是全双工通信,一端没有数据要发只能说明该方向关闭,另一端可能仍有数据需要发送。因此 FIN 和 ACK 通常分开,等对端数据发送完后再发 FIN。某些情况下 ACK 和 FIN 可以合并,但不能作为通用前提。
HTTP/1.1 支持长连接但仍容易出现队头阻塞;HTTP/2 在一个 TCP 连接上做多路复用,提升并发效率,但 TCP 层丢包仍可能影响整体;HTTP/3 基于 QUIC,运行在 UDP 之上,改进连接建立和丢包影响范围。
先检查本地缓存和 hosts 配置,再用 dig 或 nslookup 查询解析结果,观察是否命中正确的权威记录、TTL 是否异常、CNAME 链是否过长、本地 DNS 是否故障,以及不同网络环境下解析是否一致。
可能是 DNS 解析慢、网络不可达、端口未开放、TCP 握手失败、TLS 握手卡住、防火墙拦截、负载均衡异常、服务端连接池耗尽、丢包重传、MTU 问题或代理链路异常。排查时应结合 curl 时间分解、tcpdump、服务日志和监控指标定位。
UDP 协议开销小、无连接、延迟低,适合实时音视频、游戏、DNS、QUIC 等场景。可靠性并非只能由传输层提供,很多系统会在应用层按场景定制重传、确认、丢包容忍和顺序控制。