-
三次握手
- 目的:确认客户端与服务器的双向通信能力(发送/接收),并同步初始序列号124。
- 过程:
- 第一次握手:客户端发送
SYN
报文,携带初始序列号x
,进入SYN_SENT
状态14。 - 第二次握手:服务器回复
SYN+ACK
报文,携带自身初始序列号y
,并确认客户端序列号x+1
,进入SYN_RECEIVED
状态14。 - 第三次握手:客户端发送
ACK
报文,确认服务器序列号y+1
,双方进入ESTABLISHED
状态,连接正式建立14。
- 第一次握手:客户端发送
- 关键作用:防止已失效的连接请求突然到达服务器,导致资源浪费或错误连接4。
-
四次挥手
- 目的:优雅关闭双向通信通道,确保数据完整传输124。
- 过程:
- 第一次挥手:客户端发送
FIN
报文,请求关闭连接,进入FIN_WAIT_1
状态14。 - 第二次挥手:服务器回复
ACK
报文,确认客户端关闭请求,进入CLOSE_WAIT
状态(此时服务器仍可发送数据)14。 - 第三次挥手:服务器发送
FIN
报文,请求关闭服务器到客户端的通道,进入LAST_ACK
状态14。 - 第四次挥手:客户端回复
ACK
报文,确认服务器关闭请求,进入TIME_WAIT
状态(等待 2MSL 时间确保服务器收到确认),最终释放连接14。
- 第一次挥手:客户端发送
- 关键原因:TCP 是全双工协议,需单独关闭两个方向的连接,且服务器可能在
CLOSE_WAIT
状态处理剩余数据24。