全部小册

计算机网络面试:从一次请求到协议原理
24 章最近更新 2026年10月9日
沿着一次网页请求,理解寻址、可靠传输、HTTP 与 TLS,再用面试追问和排障场景检验理解。
输入网址之后,浏览器为什么需要域名、IP、端口和 MAC 四种标识?TCP 已经可靠,为什么提交请求仍可能超时?这本小册从一次网页请求出发,让每个协议回到它要解决的具体问题。
阅读路线分为网络基础、传输协议、Web 协议和综合排障。正文用报文、时间线与算例解释机制,章末提供口述参考答案、追问解析和易错辨析。
小册正文共 24 章:网络基础七章、传输协议七章,Web 协议篇已涵盖 HTTP 报文、方法与状态码、缓存验证,登录状态与跨域安全,以及 HTTPS、TLS、证书、连接复用与会话恢复,并比较了 HTTP 三代协议、头部压缩及 QUIC 的阻塞边界,补充 WebSocket、SSE、长轮询与断线恢复,以及代理、CDN、负载均衡和回源边界,最后用 curl、dig 与分层证据定位故障,再通过综合回答、十道情景题与解析检查理解。
目录
- 01网络面试(一):输入网址之后,数据究竟去了哪里?沿一次首次 HTTPS 访问,把 DNS、TCP、TLS、HTTP、逐跳转发和浏览器渲染连起来,理解 OSI 与 TCP/IP 分层、封装与解封装,以及缓存和 HTTP/3 如何改变流程。约 12 分钟
- 02网络面试(二):延迟低就一定快吗?用两条链路和三个算例区分带宽、吞吐量、有效吞吐量与 RTT,解释传输、传播、排队和处理时延,以及为什么高带宽仍可能被窗口与丢包限制。约 11 分钟
- 03网络面试(三):局域网里的设备怎样找到彼此?追踪同一交换机上的一次通信,区分 MAC、IP、交换机地址表与 ARP 缓存,理解广播、未知单播、VLAN,以及访问远端网站时为什么先找网关。约 10 分钟
- 04网络面试(四):IP 地址为什么要带子网掩码?从两台设备能否直接通信出发,用 /26 的位运算和子网划分解释 IPv4、CIDR,再根据路由表追踪最长前缀匹配、默认路由与下一跳选择。约 12 分钟
- 05网络面试(五):电脑如何获得地址并共享公网出口?从一台刚接入网络的电脑出发,追踪 DHCP 租约与两台设备的 NAPT 映射,再解释 IPv6、SLAAC、DHCPv6 与邻居发现各自负责什么。约 14 分钟
- 06网络面试(六):ping 通能证明网站正常吗?从小包能通、大响应卡住的现象出发,解释 ICMP、TTL 与 traceroute,再用报文长度和分片算例区分 MTU、MSS、IPv4/IPv6 分片与路径 MTU 发现。约 13 分钟
- 07网络面试(七):域名是怎样变成 IP 地址的?沿着一次无缓存的 DNS 查询区分递归解析器与权威服务器,用 TTL 时间线解释地址更新,再澄清记录类型、负缓存、UDP/TCP、DoT、DoH 与 DNSSEC 的边界。约 13 分钟
- 08网络面试(八):同一个端口怎样接待多个客户端?用三条连接追踪端口与五元组,区分监听 Socket、已连接 Socket 和进程,再比较 TCP 字节流与 UDP 数据报的交付语义。约 12 分钟
- 09网络面试(九):TCP 为什么要三次握手?用两套初始序列号追踪 SYN、SYN-ACK、ACK 与双方状态,解释第三次确认、旧 SYN、握手丢包,以及 SYN Flood、选项和 Fast Open 的边界。约 11 分钟
- 10网络面试(十):丢包和乱序之后,TCP 怎样交付正确数据?追踪五段字节区间中的一个缺口,理解累计 ACK、重复数据、RTO 与快速重传,再用 SACK 区分已到达的乱序数据和已经累计确认的数据。约 11 分钟
- 11网络面试(十一):TCP 为什么不能一直发?用字节窗口算出还能发送多少,区分接收端的 rwnd 与发送端的 cwnd,再追踪零窗口恢复、慢启动、拥塞避免和经典 Reno 的丢包响应。约 13 分钟
- 12网络面试(十二):一次 send 为什么不对应一次 recv?从 PING 与 STATUS 的真实 TCP 接收轨迹出发,用长度前缀恢复消息边界,验证残缺与超长帧,再区分 Nagle、延迟 ACK 和应用分帧。约 14 分钟
- 13网络面试(十三):TCP 为什么通常四次挥手?从关闭发送后仍能收到 PONG 的实验,追踪 FIN 与双方状态,解释 TIME_WAIT 的善后工作、CLOSE_WAIT 的应用责任,以及 RST 和 Keepalive 的边界。约 15 分钟
- 14网络面试(十四):TCP 可靠,为什么业务仍需超时与幂等?追踪创建订单成功却收不到响应的场景,区分传输确认与业务结果,用同一请求键管理重试,再判断超时预算、连接复用和 UDP 是否适合当前需求。约 14 分钟
- 15网络面试(十五):HTTP 请求和响应在说什么?读懂一轮创建订单的 HTTP/1.1 报文,区分请求体与消息边界、安全与幂等,再用具体场景判断 GET/POST、重定向和常见状态码。约 13 分钟
- 16网络面试(十六):再次访问,为什么不一定下载正文?用三轮订单详情请求区分直接复用与条件验证,计算响应年龄,读懂 Cache-Control、ETag、304 和 Vary,再判断刷新与缓存失效的边界。约 13 分钟
- 17网络面试(十七):HTTP 无状态,登录状态放在哪里?追踪登录后的会话标识,区分 Cookie、Session、Token 与 JWT,再用跨域提交订单解释 CORS、预检、CSRF 和 XSS 的边界。约 15 分钟
- 18网络面试(十八):HTTPS 怎么知道对方是真的服务器?区分加密、摘要、签名与密钥协商,追踪 TLS 1.3 的证书认证和握手,再用真实回环连接验证信任链与主机名是两个独立条件。约 12 分钟
- 19网络面试(十九):复用 HTTPS 连接为什么更快?用明确的 RTT 预算比较新建、复用、会话恢复和 0-RTT,追踪 TLS 票据与 PSK,再区分 SNI、ALPN 和 HTTP 目标名字。约 12 分钟
- 20网络面试(二十):HTTP/2 多路复用,为什么还会一起卡住?从大图片和小 JSON 的并发响应出发,比较 HTTP/1.1、HTTP/2 与 HTTP/3,拆开响应排队、TCP 字节缺口、QPACK 依赖与共享拥塞。约 13 分钟
- 21网络面试(二十一):WebSocket、SSE 和长轮询怎么选?沿着订单状态通知,比较实时通信的方向与消息边界,用真实 SSE 重连实验说明事件 ID、心跳和业务恢复的边界。约 14 分钟
- 22网络面试(二十二):请求为什么先到代理和 CDN?沿着浏览器到订单服务的部署路径,区分正向/反向代理、L4/L7 负载均衡与 CDN,再检查缓存键、回源 TLS、真实客户端地址和流式转发。约 15 分钟
- 23网络面试(二十三):网站打不开或很慢,怎样逐层定位?用本地 HTTPS 和 curl 实测区分连接、证书、首字节与正文等待,再结合 dig、抓包与各跳日志缩小故障范围。约 14 分钟
- 24网络面试(二十四):怎样把知识连成回答?用一次订单页访问串起协议职责,练习 TCP 连环追问与十道情景题,再按薄弱环节返回对应章节。约 16 分钟