🔌 TCP/IP 协议栈
四层/五层模型;TCP 三次握手与四次挥手;流量控制与拥塞控制;TIME_WAIT 与大量 CLOSE_WAIT 排查。
第1阶段 TCP/IP → 三次握手、四次挥手第2阶段 HTTP/HTTPS → 协议演进、HTTPS握手第3阶段 IO模型 → NIO、epoll、Reactor第4阶段 网络安全 → HTTPS、XSS、CSRF 计算机网络 │ ┌───────────┬───────────┼───────────┐ ▼ ▼ ▼ ▼ TCP/IP HTTP IO模型 安全 │ │ │ │• 三次握手 • HTTP1.1 • NIO • HTTPS• 四次挥手 • HTTP2 • epoll • XSS• 流量控制 • HTTP3 • Reactor • CSRF• 拥塞控制 • HTTPS • 零拷贝 • JWT| 专题 | 考察频率 | 难度 | 核心能力 |
|---|---|---|---|
| TCP/IP | ★★★★★ | 高 | 状态机 |
| HTTP | ★★★★★ | 中 | 协议理解 |
| IO模型 | ★★★★☆ | 高 | epoll原理 |
| 网络安全 | ★★★☆☆ | 中 | 安全防护 |
🔌 TCP/IP 协议栈
四层/五层模型;TCP 三次握手与四次挥手;流量控制与拥塞控制;TIME_WAIT 与大量 CLOSE_WAIT 排查。
🌐 HTTP/HTTPS
HTTP 1.0/1.1/2.0/3.0 演进;HTTPS 握手与证书链;Keep-Alive 与连接复用;常见状态码与缓存机制。
⚡ IO 模型
BIO/NIO/AIO 对比;select/poll/epoll 原理;Reactor 模式;零拷贝(sendfile/mmap);Netty 线程模型。
🔐 网络安全
HTTPS 中间人攻击防御;XSS/CSRF/SQL 注入;OAuth2 与 JWT;DDoS 防御策略;常见加密算法选型。
| 专题 | 初级 | 中级 | 高级 | 代表问题 |
|---|---|---|---|---|
| TCP/IP | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 三次握手为什么不能是两次?TIME_WAIT 的作用? |
| HTTP/HTTPS | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | HTTP2 相比 HTTP1.1 有哪些改进?HTTPS 如何防止中间人攻击? |
| IO 模型 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | epoll 为什么比 select 高效?ET 和 LT 模式的区别? |
| 网络安全 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | CSRF 和 XSS 的区别与防御?JWT 的安全性问题? |
应用层(Application Layer) HTTP / HTTPS / WebSocket / DNS / SMTP / FTP ↕传输层(Transport Layer) TCP(可靠、面向连接)/ UDP(不可靠、无连接) ↕网络层(Network Layer / Internet Layer) IP(路由与寻址)/ ICMP / ARP ↕数据链路层(Data Link Layer) Ethernet / Wi-Fi(IEEE 802.11) ↕物理层(Physical Layer) 光纤 / 双绞线 / 无线电波发送方: 应用数据 → [加 TCP/UDP 头] = 报文段(Segment)/ 数据报(Datagram) → [加 IP 头] = 数据包(Packet) → [加以太网帧头] = 帧(Frame) → 物理信号发送
接收方:逐层剥离头部,反向解封装| 协议 | 版本 | 重要特性 |
|---|---|---|
| HTTP | 1.0 | 短连接,每次请求新建 TCP 连接 |
| HTTP | 1.1 | 持久连接(Keep-Alive);管道化(Pipelining);分块传输 |
| HTTP | 2.0 | 多路复用;头部压缩(HPACK);服务端推送;二进制分帧 |
| HTTP | 3.0 | 基于 QUIC(UDP);解决队头阻塞;0-RTT 连接建立 |
| TLS | 1.2 | RSA/ECDHE 密钥交换;2-RTT 握手 |
| TLS | 1.3 | 移除不安全算法;1-RTT 握手;0-RTT 恢复 |
第1天 TCP 三次握手/四次挥手 → 画图讲清楚状态机,TIME_WAIT 必须深入第2天 TCP 流量控制与拥塞控制 → 滑动窗口和拥塞窗口经常混淆,要分清第3天 HTTP 协议演进 → 1.1→2.0→3.0 的每次改进是什么问题驱动的第4天 HTTPS 握手流程 → 证书链验证、密钥协商步骤要能手画第5天 IO 模型与 epoll → 理解 epoll 的 ET/LT 和红黑树+就绪队列设计