
三次握手标准流程图

四次挥手标准流程图
一、TCP三次握手|建立连接
目标:确认客户端、服务器的「发送、接收」能力都正常
核心标志位:SYN(建立连接)、ACK(确认应答)
流程
- 1. 客户端 → 服务器
SYN=1,序列号seq=x
我可以发起连接吗? - 2. 服务器 → 客户端
SYN=1,ACK=1,ack=x+1,seq=y
收到,我能收能发,你呢? - 3. 客户端 → 服务器
ACK=1,ack=y+1,seq=x+1
收到,双方能力正常,连接建立
二、为什么必须是三次握手?
三次是确保「双工通信」可靠的最小次数。
深层逻辑
1次:只能证明客户端能发
2次:只能证明客户端能发、服务器能收
3次:才能确认
✅ 客户端能发、能收
✅ 服务器能发、能收
防止已失效的连接请求突然到达服务器,造成资源浪费。
三、TCP四次挥手|断开连接
目标:优雅关闭,不丢数据,双向独立关闭
核心标志位:FIN(结束连接)、ACK(确认)
流程
- 1. 客户端 → 服务器
FIN=1,我发完了,请求关闭 - 2. 服务器 → 客户端
ACK=1,收到,但我还在传输数据 - 3. 服务器 → 客户端
FIN=1,我也发完了,可以关闭 - 4. 客户端 → 服务器
ACK=1,收到,正式关闭
为什么是四次?
因为关闭是双向独立的
一方发完≠另一方发完
所以必须:客户端关→确认→服务器关→确认
共4次
四、举一反三
- 两次握手可以吗?
不可以!无法确认客户端接收能力,会造成无效连接占用资源 - 三次握手失败会怎样?
超时重传,达到阈值后放弃建立连接 - TIME_WAIT 是什么?
客户端最后等待2MSL,确保服务器收到最终ACK - 挥手为什么不能是三次?
服务器收到关闭后,可能还有数据要传,必须分两步回复
10秒速记
✅ 三次握手:你能发→我能收能发→你也能收,连接建立
✅ 三次原因:最小可靠双工验证,避免失效连接
✅ 四次挥手:我关→你收到→你关→我确认,优雅断开
✅ 核心:TCP可靠连接的基石
MiaoAll