For AI agents: the complete documentation index is available at https://tingfeng347.github.io/windwiki/llms.txt, the full documentation bundle is available at https://tingfeng347.github.io/windwiki/llms-full.txt, and this page is available as Markdown at https://tingfeng347.github.io/windwiki/terminology/computer-network.md.

计算机网络 · 面试清单

面试权重:★★★★★ 几乎所有技术岗都会问;特点是「看着简单、一追问就露底」。


一、分层模型

术语一句话释义
OSI 七层物理、数据链路、网络、传输、会话、表示、应用——理论模型,工程上不照搬
TCP/IP 四层网络接口层、网际层、传输层、应用层,是实际实现
五层折中模型物理、数据链路、网络、传输、应用,教材与面试通用
封装与解封装每层加自己的头(首部)再交给下层,逐层像剥洋葱一样拆开
MTU / MSSMTU 是链路层最大传输单元(以太网 1500 字节),MSS 是 TCP 有效载荷上限(约 1460)
PDU协议数据单元;链路层叫帧,网络层叫包,传输层叫段

二、TCP 基础

术语一句话释义
TCP 特点面向连接、可靠、字节流、全双工、一对一
UDP 特点无连接、不可靠、报文边界、支持一对多,头部仅 8 字节
TCP vs UDP 选用要顺序与完整性用 TCP;要低延迟、可容忍丢包用 UDP(音视频、DNS、游戏、QUIC)
序列号 / 确认号序列号标识本端字节流位置,确认号表示「期望收到的下一个字节」
滑动窗口接收方通告还能收多少,实现流量控制与批量确认
累计确认确认号 N 表示 N 之前全部收到;丢了只会重复确认前面的号
超时重传 RTO根据 RTT 动态估算,采用指数退避
快速重传收到 3 个重复 ACK 就立即重传,不等超时
SACK选择性确认,告诉发送方具体哪些段丢了,避免重传一片
Nagle 算法攒小包再发以减少网络开销,与延迟敏感场景冲突,可用 TCP_NODELAY 关闭

三、握手、挥手与状态机

术语一句话释义
三次握手SYN → SYN+ACK → ACK,目的是双向确认收发能力并同步初始序列号
为什么不是两次两次无法确认客户端的接收能力,且历史失效的 SYN 会让服务端误建连接
为什么不是四次服务端的 ACK 与 SYN 可以合并在一个报文里
半连接队列 / 全连接队列前者存 SYN_RCVD 状态(tcp_max_syn_backlog),后者存已完成握手待 accept 的连接(somaxconn)
SYN Flood大量伪造 SYN 占满半连接队列;防御靠 SYN Cookie、缩短超时、加代理
四次挥手FIN → ACK → FIN → ACK,因为 TCP 全双工,两个方向各自独立关闭
TIME_WAIT主动关闭方最后的状态,等 2MSL;作用是确保最后的 ACK 到达并让旧报文自然消亡
TIME_WAIT 过多高并发短连接常见,优化手段是连接池、tcp_tw_reuse
CLOSE_WAIT 过多被动关闭方没调用 close(),几乎总是代码 bug(忘了关连接),比 TIME_WAIT 更危险
为什么等 2MSL1 个 MSL 让最后 ACK 有机会重传,1 个 MSL 让本次连接的残留报文在网络中消失
TCP 状态机LISTEN/SYN_SENT/SYN_RCVD/ESTABLISHED/FIN_WAIT_1/FIN_WAIT_2/CLOSE_WAIT/LAST_ACK/TIME_WAIT/CLOSED

四、可靠传输与拥塞控制

术语一句话释义
流量控制 vs 拥塞控制前者是接收方怕被淹没(点对点),后者是网络怕被压垮(全局)
拥塞窗口 cwnd发送方维护的网络容量估计,实际发送窗口 = min(cwnd, rwnd)
慢启动cwnd 从 1 个 MSS 开始每 RTT 翻倍,指数增长到阈值
拥塞避免超过 ssthresh 后改为每 RTT 加 1,线性增长
快重传 + 快恢复3 个重复 ACK 时 ssthresh 减半并直接进快恢复,不必回到慢启动
超时退避超时则 ssthresh 减半、cwnd 归 1,从头再来
BBR基于带宽与 RTT 建模而非丢包判断,在高丢包长肥管道上明显优于 CUBIC
CUBICLinux 默认拥塞控制算法,用三次函数曲线替代线性增长
粘包 / 拆包TCP 是字节流不保留边界;解法是长度字段、固定长度或分隔符

五、HTTP

术语一句话释义
HTTP 特点应用层、无状态、请求-响应、基于 TCP(HTTP/3 前)
请求方法幂等性GET/HEAD/PUT/DELETE 幂等;POST 不幂等——这是幂等键设计的依据
常见状态码200/201/204、301/302/304、400/401/403/404/409/422/429、500/502/503/504
301 vs 302301 永久(会被缓存)、302 临时;SEO 与缓存行为不同
401 vs 403401 未认证(缺或错的凭证),403 已认证但无权限
400 vs 422400 报文本身不合法,422 格式合法但语义校验失败
502 vs 504502 网关从上游拿到无效响应(后端挂了),504 网关等上游超时
Cookie / SessionCookie 存客户端,Session 存服务端靠 Cookie 里的 SessionID 关联
SameSiteCookie 属性,Strict/Lax/None 控制跨站发送,是 CSRF 的第一道防线
同源策略协议 + 域名 + 端口三者全同才算同源,是浏览器安全基石
CORS服务端用 Access-Control-Allow-* 显式授权跨源请求;简单请求与预检请求(OPTIONS)机制不同
缓存头Cache-Control/ETag/Last-Modified/Expires;强缓存不发请求,协商缓存发请求得 304
Cache-Control 常用值no-store(不缓存)、no-cache(可缓存但每次校验)、max-age、immutable
HTTP 版本演进1.0 短连接 → 1.1 长连接+管线化 → 2 多路复用+头部压缩 → 3 基于 QUIC
HTTP/2 核心特性二进制分帧、多路复用、HPACK 头部压缩、服务端推送(已废弃)
HTTP/2 队头阻塞TCP 层仍会阻塞:一个包丢了所有流都等,所以有了 HTTP/3
HTTP/3 / QUIC基于 UDP,流级独立重传、0-RTT 建连、连接迁移,彻底绕开 TCP 层队头阻塞
WebSocket一次 HTTP 握手升级后全双工长连接,适合推送与实时通信
SSE服务端单向推送的文本流,基于普通 HTTP,比 WebSocket 轻
RESTful用资源 + HTTP 动词表达语义,无状态、可缓存

六、HTTPS 与 TLS

术语一句话释义
HTTPS 组成HTTP + TLS,解决窃听、篡改、冒充三个问题
对称加密 vs 非对称加密非对称(RSA/ECDHE)慢但能安全交换密钥,对称(AES/ChaCha20)快,用它传数据
数字证书CA 用私钥对「公钥 + 域名 + 有效期」签名,客户端用 CA 公钥验签确认身份
证书链站点证书 → 中间 CA → 根 CA,根证书预置在系统/浏览器
TLS 1.2 握手ClientHello → ServerHello + 证书 → 密钥交换 → Finished,通常 2-RTT
TLS 1.3 优化砍掉冗余套件、默认前向安全、1-RTT 握手,会话复用可 0-RTT
前向安全 PFS用 ECDHE 临时密钥,长期私钥泄露也解不开历史流量
证书校验失败原因过期、域名不匹配、证书链不全、时钟偏差、自签名未信任
SNI握手时明文带域名,让一台 IP 承载多个 HTTPS 站点;ECH 用于加密它
HSTS响应头强制浏览器后续只用 HTTPS,缓解降级攻击

七、DNS 与网络基础设施

术语一句话释义
DNS 查询流程浏览器/系统缓存 → 本地 DNS → 根 → 顶级域 → 权威域名服务器
递归 vs 迭代查询递归是「你帮我问到底」(客户端对 LocalDNS),迭代是「告诉我下一步问谁」
A / AAAA / CNAME / MX / TXT / NS分别对应 IPv4、IPv6、别名、邮件路由、文本校验(SPF/DKIM)、域名服务器
TTL记录的缓存时长,切换 IP 前要提前调小
DNS 劫持篡改解析结果把流量引到假站;防法是 HTTPS + DNSSEC + 可信 DNS
CDN靠 DNS 调度 + 边缘节点缓存就近分发静态资源
NAT私网地址与公网地址转换,缓解 IPv4 枯竭;也让外部无法直接主动连接内网
正向代理 vs 反向代理正向代客户端(翻墙/公司出口),反向代服务端(Nginx 网关)
负载均衡 L4 vs L7L4 看 IP+端口、性能高、不解包;L7 能看 URL/Header,能做路由与灰度
ARP在局域网内用 IP 查 MAC;同网段通信走 MAC,跨网段走网关

八、网络排查场景

术语一句话释义
ping用 ICMP 测连通性与 RTT;不通不代表服务不可用(可能禁 ICMP)
traceroute靠递增 TTL 逐跳探测路径,定位在哪一跳断了
dig / nslookup查 DNS 解析,注意区分 LocalDNS 缓存与权威结果
telnet / nc探测端口连通性,比 ping 更贴近「服务是否活着」
tcpdump抓包看真实报文,判断是没到、被拒还是重传
ss -lntp看监听端口与连接状态;ss -s 看汇总,比 netstat 快
连接超时 vs 读取超时前者多为网络/防火墙/SYN 被丢,后者多为后端处理慢
「能 ping 通但请求不通」排查顺序端口是否监听 → 防火墙/安全组 → 代理配置 → 服务是否绑定了 127.0.0.1
常见 HTTP 层故障归因502 后端挂、504 后端慢、503 限流或过载、499 客户端主动断开

参考资料