Spring 系列高危漏洞速览:Spring4Shell、SpEL RCE、Actuator 信息泄露、Fastjson 联动,含影响版本和修复版本对照表。
写在前面:合法学习边界
本文讲 TCP 协议原理,不涉及攻击利用。
一、TCP 三次握手

1
2
3
4
5
6
7
8
9
10
| 第 1 步:Client 发送 SYN(syn=x)→ Server
状态:Client: SYN_SENT | Server: LISTEN
第 2 步:Server 回复 SYN+ACK(syn=y, ack=x+1)→ Client
状态:Server: SYN_RCVD | Client: ESTABLISHED
第 3 步:Client 发送 ACK(ack=y+1)→ Server
状态:Client: ESTABLISHED | Server: ESTABLISHED
连接建立,开始数据传输
|
为什么是三次而不是两次?
1
2
3
| 第三次是 Client 确认 Server 的 ACK 能力。
如果只有两次,Client 无法确认 Server 能正常接收数据。
三次握手同时初始化了双方的序列号(ISN)。
|
二、TCP 四次挥手
1
2
3
4
5
6
| 第 1 步:Client 发送 FIN → Server(请求关闭)
第 2 步:Server 回复 ACK(确认,但可能还有数据要发)
第 3 步:Server 发送 FIN → Client(数据发完后请求关闭)
第 4 步:Client 回复 ACK → Server(确认后进入 TIME_WAIT)
TIME_WAIT 状态持续 2MSL(最长报文段寿命),确保最后一个 ACK 到达 Server。
|
为什么是四次?
1
2
3
| TCP 是全双工协议,Client 和 Server 各自独立关闭。
Client 说"我发完了",Server 说"好的"但可能还有数据要发,
所以不能合并。
|
三、TCP 标志位
1
2
3
4
5
6
| SYN = 同步(建立连接)
ACK = 确认
FIN = 结束
RST = 重置连接
PSH = 推送数据
URG = 紧急指针
|
四、小结
三次握手保证双方收发能力正常 + 初始化序列号。四次挥手保证全双工连接优雅关闭。TIME_WAIT 是防止最后一个 ACK 丢失的机制。