外观
计算机网络 速查卡
🎯 覆盖 18 题 | ⭐ 高频 7 题 | 预计扫描 9 分钟 📌 先看⭐一句话答案 → 展开要点 → 自测清单检验
一、TCP / UDP
知识地图:TCP(可靠/连接/慢) ←对比→ UDP(不可靠/无连接/快)
⭐ TCP vs UDP
一句话: TCP 是面向连接的可靠传输(三次握手 + ACK + 重传),UDP 是无连接的尽力传输(快但不保证到达)。
| 维度 | TCP | UDP |
|---|---|---|
| 连接 | 三次握手建立 | 无连接,直接发 |
| 可靠性 | ACK 确认 + 重传 + 有序 | 尽力而为 |
| 头部 | 20-60 字节 | 8 字节 |
| 场景 | HTTP/HTTPS、数据库 | DNS、视频直播、游戏、QUIC |
↳ 记忆:TCP = 打电话(先拨号,确认对方在),UDP = 发短信(发了就不管)
⭐ 三次握手 & 为什么不是两次
一句话: 三次握手防止历史失效 SYN 导致服务端白白分配资源,同时确认双方的初始序列号。
C → SYN(seq=x) → S 第1次:客户端发起
C ← SYN-ACK(seq=y,ack=x+1) ← S 第2次:服务端确认+发起
C → ACK(ack=y+1) → S 第3次:客户端确认服务端的SYN⚠️ 易错:两次握手的问题不是"无法验证双向通信",核心是旧 SYN 延迟到达时服务端会误建连接浪费资源
↳ 追问:四次挥手中间两次(ACK 和 FIN)通常不能合并,因为服务端可能还有数据未发完(半关闭状态)
二、HTTP / HTTPS
知识地图:HTTP/1.1(队头阻塞) → HTTP/2(多路复用) → HTTP/3(QUIC/UDP,彻底解决)
⭐ HTTP 1.1 / 2 / 3 核心区别
一句话: HTTP/2 用多路复用解决应用层队头阻塞,HTTP/3 换 QUIC(基于UDP) 彻底解决传输层队头阻塞。
| 特性 | 1.1 | 2 | 3 |
|---|---|---|---|
| 多路复用 | ❌ | ✅ | ✅ |
| 队头阻塞 | 严重 | 应用层解决,TCP层仍有 | 完全解决 |
| 头部压缩 | ❌ | HPACK | QPACK |
| 底层协议 | TCP | TCP | QUIC(UDP) |
⭐ HTTP vs HTTPS + TLS 握手
一句话: HTTPS = HTTP + TLS 加密层,防窃听(加密) + 防假冒(证书) + 防篡改(MAC)。
TLS 握手核心链路:
随机数交换 → 服务端发证书(含公钥) → 客户端加密 pre-master secret → 双方推导对称密钥 → 加密通信证书验证: 服务端证书 → 中间 CA 签名验证 → 根 CA(系统内置信任)→ 检查域名匹配 + 有效期 + 吊销状态
⚠️ 易错:TLS 只在握手阶段用非对称加密交换密钥,后续数据传输用对称加密(性能好得多)
三、浏览器全流程
⭐ URL 输入到页面显示(10步)
一句话: DNS 解析 → TCP 三次握手 → TLS 握手 → HTTP 请求 → 服务端处理 → 浏览器渲染。
① URL解析 → ② 缓存检查 → ③ DNS解析(递归查询) → ④ TCP三次握手
→ ⑤ TLS握手(HTTPS) → ⑥ 发送HTTP请求 → ⑦ 服务端处理返回
→ ⑧ 解析HTML(DOM+CSSOM→Render Tree) → ⑨ 布局+绘制+合成 → ⑩ 关闭/保持连接↳ 追问"页面慢"定位:DNS慢 / TCP远 / TLS版本旧 / 服务端慢查询 / 响应体大未压缩 / JS阻塞渲染
补充速览
| 关键词 | 核心答案 |
|---|---|
| 四次挥手 | FIN → ACK → (半关闭,服务端继续发数据) → FIN → ACK;主动方等 2MSL(TIME_WAIT) |
| TIME_WAIT | 主动关闭方等 2MSL:保证最后 ACK 到达 + 让旧报文消失;过多时调 tcp_tw_reuse |
| CLOSE_WAIT 大量 | 被动方代码没调 close(),用 try-with-resources 修复 |
| 流量控制 | 滑动窗口(rwnd),接收方告知窗口大小,发送方不超过 |
| 拥塞控制 | 慢启动(指数) → 拥塞避免(线性) → 快速重传(3个重复ACK) → 快速恢复 |
| SYN Flood | 伪造 SYN 填满半连接队列;防御:SYN Cookie + 加大 backlog |
| 状态码 | 301永久/302临时/304缓存/400参数错/401未认证/403无权限/404不存在/429限流/502网关错/504超时 |
| Cookie vs Session | Cookie 客户端存/Session 服务端存;Session ID 通过 Cookie 传递 |
| epoll/虚拟内存/IPC | 已迁移至 → 14_速查_操作系统 |
| ⭐ OSI vs TCP/IP | OSI七层(理论)→TCP/IP四层(实际):应用层/传输层/网络层/网络接口层;封装逐层加头(端口→IP→MAC) |
| ⭐ DNS 解析 | 浏览器缓存→OS缓存→本地DNS(递归)→根/顶级/权威DNS(迭代)→返回IP并缓存(TTL) |
| ⭐ CORS 跨域 | 同源=协议+域名+端口相同;简单请求直发;复杂请求先OPTIONS预检→服务端返回Allow头→通过后发真实请求 |
🧠 助记汇总
| 口诀 | 含义 |
|---|---|
| SYN → SYN-ACK → ACK(三握) | 三次握手 |
| FIN → ACK → FIN → ACK(四挥) | 四次挥手 |
| 慢拥快快(慢启动/拥塞避免/快重传/快恢复) | TCP 拥塞控制四算法 |
| DNS → TCP → TLS → HTTP → 渲染 | URL 全流程主线 |
| 应传网接 | TCP/IP 四层:应用层/传输层/网络层/网络接口层 |
| 递归问到底,迭代指方向 | DNS:客户端递归查本地DNS,本地DNS迭代查各级权威 |
✅ 自测清单
| # | 问题 | 你能说出... |
|---|---|---|
| 1 | TCP vs UDP | 5 个核心区别 + 各自场景 |
| 2 | 三次握手 | 完整流程 + 为什么不是两次(历史 SYN 场景) |
| 3 | HTTP 1.1/2/3 | 各版本核心改进 + 队头阻塞如何解决 |
| 4 | HTTPS/TLS | 握手主线 + 证书验证链 |
| 5 | URL 全流程 | 10 步完整链路 |
| 6 | TIME_WAIT / CLOSE_WAIT | 各在哪方 + 大量出现的原因和解决 |
| 7 | epoll/虚拟内存/IPC | 已迁移至操作系统速查卡 |
| 8 | OSI vs TCP/IP | 七层对四层的映射 + 各层职责 |
| 9 | DNS 解析 | 递归vs迭代 + 缓存层级 |
| 10 | CORS 跨域 | 同源定义 + 简单/复杂请求 + 预检流程 |
💡 首次全部过一遍 → 第2天只过答不上来的 → 第4天再复习 → 面试前一天最后扫一遍