计算机网络常见面试题

返回 面试

OSI/TCP 模型、TCP/HTTP/HTTPS 为后端面试高频。详解 计算机网络


网络模型

模型典型协议
TCP/IP 四层链路 / 网络 / 传输 / 应用Ethernet / IP / TCP·UDP / HTTP
OSI 七层了解即可

封装:应用数据 → TCP 段 → IP 包 → 以太网帧。


TCP vs UDP

TCPUDP
连接面向连接无连接
可靠性可靠、有序可能丢、乱序
开销大(握手、确认、重传)小(8 字节头)
场景HTTP、MySQL、RPCDNS、视频、游戏、QUIC

三次握手

客户端 ── SYN(seq=x) ──────────────► 服务端
客户端 ◄─ SYN+ACK(seq=y,ack=x+1) ── 服务端
客户端 ── ACK(ack=y+1) ───────────► 服务端  [ESTABLISHED]

为何三次:确认双方收发能力;防止历史 SYN 被当成新连接。

为何不是两次:服务端无法确认客户端收到了自己的 SYN-ACK。

SYN Flood:伪造 SYN 占半连接队列 → syncookie、限速、WAF。


四次挥手

A ── FIN ──► B
A ◄─ ACK ── B
A ◄─ FIN ── B
A ── ACK ──► B
A 进入 TIME_WAIT(2MSL)

为何四次:TCP 全双工,关闭需两个方向各发 FIN

TIME_WAIT:保证最后 ACK 可达;让旧报文消散。短连接过多会占端口 → tcp_tw_reuse、长连接、连接池。


可靠传输(TCP)

机制作用
序列号 / 确认号有序、丢包重传
超时重传RTT 估算
滑动窗口流量控制(接收方能力)
拥塞控制慢开始、拥塞避免、快重传/快恢复

HTTP 常考

问题简答
GET vs POSTGET 幂等、参数在 URL;POST 非幂等、有 Body(语义,非绝对)
幂等GET/PUT/DELETE 设计上幂等;POST 否
状态码200 成功;301/302 重定向;304 缓存;401 未认证;403 无权限;404 不存在;502 网关上游错;503 不可用
无状态服务端不记会话;Session/Cookie/JWT 在应用层补状态

HTTP 版本

版本要点
1.0短连接
1.1Keep-Alive;队头阻塞
2二进制帧、多路复用、HPACK 头压缩
3QUIC(UDP),无 TCP 队头阻塞

队头阻塞:HTTP/1.1 同一连接请求排队;HTTP/2 单连接多流但 TCP 层仍可能阻塞;HTTP/3 用 QUIC 解决。


HTTPS

HTTP over TLS
  ① TCP 握手
  ② TLS 握手(证书、密钥协商)
  ③ 加密 HTTP
说明
证书CA 签发,防中间人
对称加密传数据(AES)
非对称握手阶段交换密钥(RSA/ECDHE)
TLS 1.3更少往返、更安全套件

HTTPSTLS


DNS(简)

域名 → IP;递归 + 迭代查询;本地缓存 → 根 → TLD → 权威。见 DNS


前后端认证(简)

Cookie-Session、JWT、CSRF、跨域 CORS — 见 前后端交互SpringBoot常见面试题


常见面试题

Q:输入 URL 到页面展示?
A:DNS → TCP → TLS(HTTPS) → HTTP 请求 → 解析 HTML → 拉资源 → 渲染(可简答各层)。

Q:TCP 和 HTTP 关系?
A:HTTP 是应用层协议,默认跑在 TCP 上;HTTP/3 跑 QUIC(UDP)。

Q:长连接 vs 短连接?
A:HTTP/1.1 Keep-Alive 复用 TCP;减少握手开销。

Q:零拷贝?
A:见 零拷贝


相关笔记