三次握手
协议相关
- 客户端向服务端发送
[SYN]
报文,申请链接。 - 服务端回复
[SYN,ACK]
报文,确认收到申请。 - 客户端回复
[ACK]
报文,确认收到服务端响应,链接建立成功。
状态相关
- 客户端发送了
[SYN]
报文后状态为:SYN_SEND - 服务端收到了链接请求后状态为:SYN_RCVD
数据传输
协议相关
数据传输为一次[PSH]
数据推送和一次[ACK]
对方应答。
状态相关
客户端与服务端状态均为ESTABLISHED,表示链接已正常建立。
四次挥手
协议相关
- 客户端主动关闭链接,发送
[FIN]
报文。 - 服务端回复
[ACK]
报文。 - 服务端发送
[FIN]
报文。 - 客户端回复
[ACK]
。
状态相关
- 客户端主动发起关闭链接后,状态变更为:FIN_WAIT1
- 客户端收到服务端回复到收到服务端关闭链接报文之间,状态变更为:FIN_WAIT2
- 客户端给予服务端关闭链接报文回复后,状态变更为:TIME_WAIT,保留2MSL时长
- 服务端收到客户端主动关闭请求并给予回复后,状态变更为:CLOSE_WAIT
- 服务端发送了关闭链接报文后到收到客户端响应前,状态变更为:LAST_ACK
- 最终,客户端和服务端的链接状态都会变更为:CLOSED
注意:关闭链接客户端和服务端的角色是可以互换的,即双方都可以主动发起关闭链接的请求。