TCP易错点总结
TCP 易错点总结
| # | 误区 | 正解 |
|---|---|---|
| 1 | ❌ 两次握手就能建立连接 | ✅ 两次握手无法防止历史连接,延迟的旧 SYN 会导致误建连接。三次握手让客户端能确认”这是我要的连接” |
| 2 | ❌ 四次挥手必须是四次 | ✅ 如果服务器没有数据要发,第二三次(ACK 和 FIN)可以合并为一次发送,变成三次挥手 |
| 3 | ❌ TIME_WAIT 是坏状态 | ✅ TIME_WAIT 是正常状态,确保连接可靠关闭 + 旧报文消逝。过多才需要优化 |
| 4 | ❌ 关闭连接就是直接断开 | ✅ 需要四次挥手,双方各自关闭自己那半条通道(TCP 是全双工) |
| 5 | ❌ SYN 报文可以携带数据 | ✅ SYN 报文不能携带数据。但第三次握手的 ACK 可以携带数据(此时连接已建立) |
| 6 | ❌ MSL 是固定值 | ✅ MSL 由系统配置,Linux 默认 60 秒,2MSL = 120 秒。可通过内核参数调整 |
| 7 | ❌ CLOSE_WAIT 是客户端状态 | ✅ CLOSE_WAIT 是被动关闭方(通常是服务器)的状态。过多 = 应用层没调 close() |
| 8 | ❌ 三次握手只建立连接 | ✅ 三次握手还同步双方的初始序列号(ISN),这是可靠传输的基础 |
| 9 | ❌ 流量控制 = 拥塞控制 | ✅ 流量控制是接收方通过滑动窗口告诉发送方”我还能收多少”(保护接收方);拥塞控制是发送方根据网络状况调整速度(保护网络) |
| 10 | ❌ TCP 一定比 UDP 慢 | ✅ 裸 UDP 头部更小(8B vs 20B),但如果在 UDP 上实现可靠性(如 QUIC),实际开销可能接近 TCP。正确对比是”谁的失败行为匹配你的场景” |
| 11 | ❌ TIME_WAIT 只出现在客户端 | ✅ 谁主动关闭谁进 TIME_WAIT。HTTP/1.0 短连接中服务端主动关闭,服务端也会进 TIME_WAIT |
| 12 | ❌ 半连接队列 = 全连接队列 | ✅ SYN 队列(半连接)存放 SYN_RCVD 状态连接;Accept 队列(全连接)存放已完成握手但未被 accept() 取走的连接 |
一图流(Mermaid)
flowchart LR A[连接建立] --> B[三次握手: SYN/SYN+ACK/ACK] C[连接关闭] --> D{谁主动关?} D -->|客户端主动| E[客户端 TIME_WAIT 等 2MSL] D -->|服务器被动| F[服务器 CLOSE_WAIT 等 close] G[两个队列] --> H[SYN 队列 半连接 SYN_RCVD] G --> I[Accept 队列 全连接 等 accept]
速记卡(面试闪卡)
Q1:一句话讲清「TCP易错点总结」到底是什么?
A:梳理 TCP 连接管理里最常被误解的那几个关键知识点。
Q2:握手:为什么不能两次 —— 怎么理解?
A:两次握手就像只确认一半就开门:延迟的旧 SYN 会误建连接白占资源。三次握手(Three-way Handshake)让客户端确认「这真是我要的连接」,还顺手同步初始序列号(ISN)。
Q3:挥手:四次与 TIME_WAIT —— 怎么理解?
A:关闭是全双工,各关各的半条通道,所以四次挥手(Four-way Handshake)。若服务器没数据,ACK 和 FIN 合并成三次;TIME_WAIT 是正常状态,等 2MSL 让旧报文消逝,不是坏东西。
Q4:状态:CLOSE_WAIT 与两个队列 —— 怎么理解?
A:CLOSE_WAIT 是被动关闭方(通常是服务器)的状态,过多说明应用没调 close();半连接队列(SYN Queue)存 SYN_RCVD,全连接队列(Accept Queue)存已完成握手等 accept 取走。
Q5:控制:流量 vs 拥塞 —— 怎么理解?
A:流量控制(Flow Control)是接收方用滑动窗口说「我还能收多少」,保护接收方;拥塞控制(Congestion Control)是发送方看网络脸色调速,保护网络。俩不是一回事。
Q6:核心速记主线有哪些?
-
三次握手防历史连接
-
挥手可合并成三次
-
TIME_WAIT 正常非坏
-
流量≠拥塞控制
口诀
A:两次握手防不住,
挥手合并三步路。
TIME_WAIT 正常处,
流控拥塞两分幕。
相关链接
-
📋 目录:00-计算机网络
-
📚 学习清单:八股文学习路线图
-
🔗 TCP三次握手与四次挥手 — 握手与挥手详解
-
🔗 TCP状态机 — 11 种状态
-
🔗 TCP可靠性与拥塞控制 — 流量控制 vs 拥塞控制
-
🔗 TCP与UDP区别 — TCP/UDP/QUIC 对比
-
🔗 TCP高频追问汇总 — 更多题